Разработка:modlibs/widgets — различия между версиями
Ilya (обсуждение | вклад) (→API: добавлено описение pages_navigation) |
Ilya (обсуждение | вклад) м (→API) |
||
Строка 14: | Строка 14: | ||
Этот метод отвечает за подключение библиотеки moodleQuickForm. Если вы хотите использовать moodleQuickForm, то она подключается только при помощи этого метода. Подключение класса moodleQuickForm (или moodleform) напрямую не допускается. | Этот метод отвечает за подключение библиотеки moodleQuickForm. Если вы хотите использовать moodleQuickForm, то она подключается только при помощи этого метода. Подключение класса moodleQuickForm (или moodleform) напрямую не допускается. | ||
* '''form_classname'''() | * '''form_classname'''() | ||
− | Аналог | + | Аналог метода webform. В настоящее время '''не используется'''. Он оставлен только для совместимости, не используйте его в новых функциях. |
* '''progressbar'''($name, $percent, $width, $process, $auto_create) | * '''progressbar'''($name, $percent, $width, $process, $auto_create) | ||
Эта функция пригодится, если вам понадобится вывести прогрессбар - полоску, которая в реальном времени отображает ход выполнения какого-либо долгого процесса. | Эта функция пригодится, если вам понадобится вывести прогрессбар - полоску, которая в реальном времени отображает ход выполнения какого-либо долгого процесса. |
Версия 15:48, 17 сентября 2009
Плагин | |
Название | widgets |
Тип | modlibs |
Содержание
Описание
В этом плагине располагаются все виджеты - дополнительные средства визуального оформления интерфейса.
Структура папок
Для каждого виджета в папке widgets создается отдельная папка с его названием. Внутри этой папки должен лежать файл lib.php, в котором содержится класс виджета. Все дополнительные файлы, относящиеся к этому виджету (если они требуются) - должны лежать в этой же папке.
Стандарт именования классов
Все классы виджетов должны называться по схеме dof_modlib_widgets_<название_виджета>.
API
- webform()
Инициализировать библиотеку форм. Этот метод отвечает за подключение библиотеки moodleQuickForm. Если вы хотите использовать moodleQuickForm, то она подключается только при помощи этого метода. Подключение класса moodleQuickForm (или moodleform) напрямую не допускается.
- form_classname()
Аналог метода webform. В настоящее время не используется. Он оставлен только для совместимости, не используйте его в новых функциях.
- progressbar($name, $percent, $width, $process, $auto_create)
Эта функция пригодится, если вам понадобится вывести прогрессбар - полоску, которая в реальном времени отображает ход выполнения какого-либо долгого процесса.
Возвращает экземпляр класса dof_modlib_widgets_progress_bar. Параметры:
$name - имя html-элемента. Если прогрессбаров несколько на странице, то имена не должны повторяться.
$percent - начальное процентное значение.
$width - длина в пикселях.
$process - название процесса, который выполняется в текущий момент (загрузка... сохранение... и т. п.)
$auto_create - для этого формата возможны два значения:
true - сразу же отправить html-код прогрессбара в выходной поток. false - только создать объект, не выводя progressbar. По умолчанию true.
- pages_navigation() - одключает класс pages_navigation для отображения списка страниц
$code - код плагина, для которого будут созданы ссылки на страницы.
$recordscount - общее количество записей на всех страницах
$limitnum - по сколько записей нужно выводить на одной странице. По умолчанию NULL (вывести все на одной странице)
$limitfrom - начиная с какой записи начать выводить список.
Дополнительные классы
dof_modlib_widgets_progress_bar
- __construct($name, $percent, $width, $process, $auto_create)
Параметры:
$name - имя html-элемента. Если прогрессбаров несколько на странице, то имена не должны повторяться.
$percent - начальное процентное значение.
$width - длина в пикселях.
$process - название процесса, который выполняется в текущий момент (загрузка... сохранение... и т. п.)
$auto_create - для этого формата возможны два значения:
true - сразу же отправить html-код прогрессбара в выходной поток. false - только создать объект, не выводя progressbar. По умолчанию true.
- create() - вывести html-код прогрессбара в браузер. Эту функцию не нужно использовать, в случае если в конструкторе $auto_create стоит true.
- set_name($name) - установить имя html-элемента, которым является прогрессбар. Внутренний метод, вызывается из конструктора.
- set_percent($percent) - установить начальное процентное значение для полоски прогрессбара.
$percent - количество начальных процентов, от 0 до 100.
- set_percent_adv($cur_amount,$max_amount) - увеличить полоску прогрессбара. Полоска увеличивается в зависимости от того, сколько задач уже выполнено, а сколько еще осталось.
$cur_amount - количество уже выполненных задач
$max_amount - общее количество задач, которое надо выполнить.
- set_width($width) - установить длину прогрессбара в пикселях. Внутренний метод, используется из конструктора.
dof_modlib_widgets_form
Пустой класс. Наследует moodleform. Подробнее об использовании moodleQuickForm можно прочитать в разделе Работа с moodleQuickForm.
- __construct($dof, $code, $count, $limitnum=NULL, $limitfrom) - конструктор класса. Осуществляет все проверки данных.
- $dof - объект класса dof_control
- $code - код плагина, для которого будут созданы ссылки на страницы.
- $count - общее количество записей на всех страницах
- $limitnum - по сколько записей нужно выводить на одной странице. По умолчанию NULL (вывести все на одной странице).
- $limitfrom - начиная с какой записи начать выводить список.
- get_navpages_list($adds, $vars) - Возвращает html-строку навигации, разбивая ленту таблицы или списка на страницы. Нумерация страница всегда начинается с единицы
- $adds - дополнительный путь внутри плагина, и список дополнительных параметров для ссылки в виде строки
- $vars - список дополнительных параметров для ссылки в виде массива в формате "ключ" => "значение"
- get_page_link($pagenum, $limitfrom, $adds, $vars) - Возвращает ссылку на страницу или страницу без ссылки, если она является текущей.
- $pagenum - номер страницы
- $limitfrom - номер записи, с которой начинается просмотр
- $adds - дополнительный путь внутри плагина, и список дополнительных параметров для ссылки в виде строки
- $vars - список дополнительных параметров для ссылки в виде массива в формате "ключ" => "значение"
- get_current_page() - Получить номер страницы по номеру текущей записи, и количеству записей на странице
- get_total_pages() - Возвращает общее количество страниц для отображения
- get_current_limitfrom() - Возвращает исходный параметр номера записи, с которого начинается просмотр
- get_current_limitnum() - Возвращает исходный параметр минимального количества записей на странице
Примеры кода
Подключение библиотеки форм
$DOF->modlib('widgets')->form_classname();
Использование прогрессбара
1. Устанавливаем параметры
$name = 'pbar'; // имя html-элемента, только латинские буквы $percent = 1; // начинаем с отметки 1% $width = 200; // длинна полоски 200 пикселей $process = 'Идет сохранение...'; // какой процесс происходит $auto_create = true; // вывести прогрессбар сразу же после создания объекта
2. Создаем нужный объект
$progressbar = $DOF->modlib('widgets')->progressbar($name, $percent, $width, $process, $auto_create)
3. Вставляем прогрессбар внутрь цикла с выполняемым процессом
for ($i=1; $i<=333; $i++) { // номер текущей выполняемой задачи $cur_task = $i; // общее количество задач, которое надо выполнить их количество можно менять в ходе выполнения процесса (например, если сразу неясно сколько точно шагов будет у цикла) $num_tasks = 333; // внутри цикла производим все трудоемкие операции... ... sleep(0.1);// для теста: чтобы было видно как ползет полоска // после того как проведены все операции увеличиваем длину полоски на чуть-чуть $progressbar->set_percent_adv($cur_task,$num_tasks); }