Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
development [2022/09/24 14:39] 127.0.0.1 зовнішнє редагування |
development [2023/06/16 14:18] (поточний) borisov |
||
---|---|---|---|
Рядок 1: | Рядок 1: | ||
- | ====== Краткое пособие по разработке модулей для Ubilling ====== | + | ====== Короткий посібник із розроблення |
- | Писать дополнительные | + | Писати додаткові модулі для Ubilling |
- | Типичный модуль Ubilling размещается в отдельном подкаталоге **/ | + | Типовий модуль Ubilling розміщується в окремому підкаталозі **/ |
\\ | \\ | ||
{{: | {{: | ||
\\ | \\ | ||
- | Давайте | + | Давайте детально розберемо що-ж знаходиться в цих двох містичних файликах.\\ |
<file php module.php> | <file php module.php> | ||
Рядок 16: | Рядок 16: | ||
</ | </ | ||
- | Содержит в себе стандартный набор описывающий | + | Містить у собі стандартний набір, який |
- | Все, | + | Все, |
\\ | \\ | ||
\\ | \\ | ||
Рядок 24: | Рядок 24: | ||
<file php index.php> | <file php index.php> | ||
<?php | <?php | ||
- | // проверяем имеет ли пользователь | + | // перевіряємо чи має користувач права на користування цим модулем |
if (cfr(' | if (cfr(' | ||
| | ||
- | //делаем запрос к БД с целью получить логины всех пользователей | + | //робимо запит до БД з метою отримати логіни всіх користувачів |
$query=" | $query=" | ||
$alllogins=simple_queryall($query); | $alllogins=simple_queryall($query); | ||
| | ||
- | //получаем масивы всех Ф.И.О. пользователей и их адресов | + | //отримуємо масиви всіх П.І.Б. користувачів |
$allrealnames=zb_UserGetAllRealnames(); | $allrealnames=zb_UserGetAllRealnames(); | ||
$alladdress=zb_AddressGetFulladdresslist(); | $alladdress=zb_AddressGetFulladdresslist(); | ||
| | ||
- | //проверяем, есть ли вообще | + | //перевіряємо, чи є взагалі |
if (!empty ($alllogins)) { | if (!empty ($alllogins)) { | ||
| | ||
- | //Собираем заголовок таблички для вывода | + | //Збираємо заголовок таблички для виведення |
$tablecells=wf_TableCell(__(' | $tablecells=wf_TableCell(__(' | ||
$tablecells.=wf_TableCell(__(' | $tablecells.=wf_TableCell(__(' | ||
Рядок 45: | Рядок 45: | ||
$tablerows=wf_TableRow($tablecells, | $tablerows=wf_TableRow($tablecells, | ||
| | ||
- | // Перебираем всех пользователей | + | // Перебираємо всіх користувачів |
foreach ($alllogins as $io=> | foreach ($alllogins as $io=> | ||
$userlogin=$eachlogin[' | $userlogin=$eachlogin[' | ||
$userip=$eachlogin[' | $userip=$eachlogin[' | ||
| | ||
- | //Собирая для каждого | + | //Збираючи |
$tablecells=wf_TableCell($userlogin); | $tablecells=wf_TableCell($userlogin); | ||
$tablecells.=wf_TableCell($userip); | $tablecells.=wf_TableCell($userip); | ||
Рядок 58: | Рядок 58: | ||
} | } | ||
| | ||
- | // объявляем как результат табличку | + | // оголошуємо |
- | // а также шириной в 100%, бордюром в 0 и классом sotrable | + | // а також шириною в 100%, бордюром в 0 і класом sotrable |
$result=wf_TableBody($tablerows, | $result=wf_TableBody($tablerows, | ||
| | ||
} else { | } else { | ||
- | //если | + | //якщо |
$result=__(' | $result=__(' | ||
} | } | ||
| | ||
- | // выводим наш результат | + | // виводимо наш результат |
show_window(__(' | show_window(__(' | ||
| | ||
} else { | } else { | ||
- | // если | + | // якщо |
show_error(__(' | show_error(__(' | ||
} | } | ||
Рядок 80: | Рядок 80: | ||
</ | </ | ||
- | Доступ | + | Доступ |
{{: | {{: | ||
- | Как видите | + | Як бачите, замість рядків **Real Name** |
- | Сделать это довольно просто - нужно создать файл **/ | + | Зробити це досить просто - потрібно створити файл **/ |
<file php samplemod.php> | <file php samplemod.php> | ||
<?php | <?php | ||
- | $lang[' | + | $lang[' |
- | $lang[' | + | $lang[' |
?> | ?> | ||
</ | </ | ||
- | После чего мы увидим как строка локализовалась сама по себе в нашем модуле:\\ | + | Після чого ми побачимо як рядок локалізувався сам по собі в нашому модулі:\\ |
{{: | {{: | ||
\\ | \\ | ||
- | Из нестандартных вещей чуждых чистому PHP мы использовали только функции библиотеки** api.astral** для | + | З нестандартних речей, чужих чистому PHP, ми використовували тільки функції бібліотеки** api.astral** для |
- | А что делать, если | + | А що робити, якщо |
<file php sampleClass.php> | <file php sampleClass.php> | ||
Рядок 125: | Рядок 125: | ||
</ | </ | ||
- | Также отличным (**и рекомендуемым!**)способом может быть помещение вашей библиотеки в **api/ | + | Також чудовим (**і рекомендованим!**) способом може бути поміщення вашої бібліотеки в **api/ |
- | А как добавляются модули на панель задач? Ну там | + | А як додаються модулі на панель завдань? Ну там |
<file ini sample.ini> | <file ini sample.ini> | ||
- | ; Идентификатор модуля. | + | ; Ідентифікатор модуля. |
ID=" | ID=" | ||
- | ; Подпись иконки модуля - будет автоматически | + | ; Підпис |
NAME=" | NAME=" | ||
- | ; URL нашего модуля. Не поверите - будет кликабельным :) | + | ; URL нашого модуля. Не повірите - буде клікабельним :) |
- | URL="? | + | URL=""? |
- | ; Иконка модуля. Сначала пытается найтись в директории taskbar текущего скина, если не существует - в глобальном skins/ | + | ; Іконка модуля. Спочатку |
ICON=" | ICON=" | ||
- | ; Право которое требует | + | ; Право, яке вимагає |
NEED_RIGHT=" | NEED_RIGHT=" | ||
- | ; Опция конфига alter.ini | + | ; Опція конфіга alter.ini |
NEED_OPTION=" | NEED_OPTION=" | ||
- | ; Данный параметр сигнализирует, что опция является необязательной. | + | ; Цей параметр сигналізує, що опція є необов'язковою. |
- | ; Если удалить данный параметр - панель задач будет орать о недостающей | + | ; Якщо видалити цей параметр - панель завдань буде |
UNIMPORTANT=1 | UNIMPORTANT=1 | ||
- | ; Тип елемента. | + | ; Тип елемента. |
TYPE=" | TYPE=" | ||
</ | </ | ||
- | А что же с виджетами, | + | А що ж із віджетами, |