API создания PHP плагинов для Зеброида. Этот тип плагинов больше развиваться не будет и в будущем, возможно, будет удалено из программы. Настоятельно рекомендуется переходить на Python плагины.
Скрипты
Скрипты для плагинов Зеброида выполняются на стороне веб сервера, а это значит, что на них действуют те же правила, что и для любых других скриптов на языке PHP. Зеброид лишь предоставляет дополнительные функции для доступа к данным проекта и их управлением.
Встроенные функции
/**
* возвращает количество записей в текущем проекте
*
* @return int
*/
zebroid_count();
/**
* функция возвращает значение указанного параметра в нужной записи
*
* @param int $rec_indx порядковый номер нужной записи
* @param string $param имя параметра (полный список внизу поста)
* @return string
*/
zebroid_get_data($rec_indx, $param);
/**
* возвращает массив параметров нужной записи
*
* @param int $rec_indx порядковый номер нужной записи
* @return array
*/
zebroid_get_full_data($rec_indx);
/**
* добавляет новую запись и возвращает её порядковый номер
*
* @param string $title название новой записи
* @param int $parent_id id родительской записи (если поставить -1, тогда запись окажется в корне)
* @param bool $is_static указывает на то, будет ли запись статической страницей
* @return int
*/
zebroid_add($title, $parent_id, $is_static);
/**
* удаляет нужную запись (об особенностях удаления читайте ниже)
*
* @param int $rec_indx порядковый номер нужной записи
*/
zebroid_delete($rec_indx);
/**
* ищет порядковый номер записи по его id. Возвращает -1 если не удалось ничего найти
*
* @param int $id id записи которую необходимо найти
* @return int
*/
zebroid_get_rec_indx($id);
/**
* редактирование и сохранение параметра записи
*
* @param int $rec_indx порядковый номер нужной записи
* @param string $param имя параметра
* @param string $value новое значение параметра (обязательно должно быть строковым)
*/
zebroid_save_data($rec_indx, $param, $value);
/**
* редактирование и сохранение параметра записи
*
* @param int $rec_indx порядковый номер нужной записи
* @param array $data массив параметров записи. Формат массива должен быть такой же как и у того, что возвращается функцией "zebroid_get_full_data"
*/
zebroid_save_full_data($rec_indx, $data);
/**
* перевод текста из внутреннего формата Зеброида в экспортный (заменна внутренней перелинковки и ссылок на рисунки)
*
* @param string $text текст, который нужно обработать
* @param string $index идентификатор записи которой принадлежит текст
* @return string
*/
zebroid_export_text($text, $index);
/**
* Сохранение рисунков проекта в указанную директорию
*
* @param string $folder директория сохранения
*/
zebroid_save_images(string $folder);
/**
* проверка является ли запись родительской
*
* @param int $rec_indx порядковый номер нужной записи
* @return bool
*/
zebroid_is_parent($rec_indx);
/**
* возвращает значение доп. поля с именем param. Если в переменной парам передать ZEBR_AUTHOR - тогда будет возвращено значение доп. поля отвечающее за автора статьи.
*
* @param int $rec_indx порядковый номер нужной записи
* @param string $param имя доп. поля
* @return string
*/
zebroid_addit_field_get($rec_indx, $param);
/**
* устанавливает доп. полю param значение value. Если в переменной парам передать ZEBR_AUTHOR - тогда будет возвращено значение доп. поля отвечающее за автора статьи.
*
* @param int $rec_indx порядковый номер нужной записи
* @param string $param имя доп. поля
* @param string $value устанавливаемое значение доп. поля
*/
zebroid_addit_field_set($rec_indx, $param, $value);
/**
* возвращает значение уровня вложенности в дереве проекта. Самый первый уровень - 0
*
* @param int $rec_indx порядковый номер нужной записи
* @return int
*/
zebroid_get_lvl($rec_indx);
/**
* проверка является ли запись отмеченой
*
* @param int $rec_indx порядковый номер нужной записи
* @return bool
*/
zebroid_is_checked(int $rec_indx);
/**
* изменение отметки записи
*
* @param int $rec_indx порядковый номер нужной записи
* @param bool $checked новое значение отметки (true - запись будет отмечена, false - наоборот)
*/
zebroid_set_check(int $rec_indx, bool $checked);
/**
* возвращает адрес категории "ЗЕБРОИД\php plugins\classes", которую можно использовать как общую папку для разных плагинов
*
* @return string
*/
_get_class_dir();
/**
* установка новой позиции прогресс бара
*
* @param int $position значение новой позиции
*/
_pb_set_position($position);
/**
* установка максимального значения прогресс бара
*
* @param int $max новое максимальное значение
*/
_pb_set_max($max);
/**
* добавить к текущему значению прогресс бара указанное значение
*
* @param int $i дельта смещения прогресс бара
*/
_pb_add($i);
/**
* текущая позиция прогресс бара
*
* @return int
*/
_pb_get_position();
/**
* максимальное значение прогресс бара
*
* @return int
*/
_pb_get_max();
/**
* добавить новую локальную картинку. Возвращает имя картинки для локальных ссылок
*
* @param string $filename путь к файлу
* @return string
*/
_img_add($filename);
/**
* конвертирует utf8 строку в ansi. По умолчанию, все входные параметры сохраняются в utf8, а некоторым php функциям (например для открытия файла) обязательно передавать в ansi, потому этот конвертер будет необходим для работы таких функций
*
* @param string $str строка
* @return string
*/
_utf8toansi($str);
/**
* конвертирует ansi строку в utf8
*
* @param string $str строка
* @return string
*/
_ansitoutf8($str);
/**
* количество отмеченых записей
*
* @return int
*/
zebroid_count_checked();
/**
* возвращает индекс первой записи в дереве проекта или -1, если нету
*
* @param bool $checkedOnly true если необходимы только отмеченные записи и false если все
* @return int
*/
zebroid_getFirstTreeRec($checkedOnly);
/**
* возвращает индекс следующей записи в дереве проекта или -1, если нету
*
* @param int $indx индекс записи, от которой отталкиватся
* @param bool $checkedOnly true если необходимы только отмеченные записи и false если все
* @return int
*/
zebroid_getNextTreeRec($indx, $checkedOnly);
/**
* возвращает индекс предыдущей записи в дереве проекта или -1, если нету
*
* @param int $indx индекс записи, от которой отталкиватся
* @param bool $checkedOnly true если необходимы только отмеченные записи и false если все
* @return int
*/
zebroid_getPrevTreeRec($indx, $checkedOnly);
/**
* возвращает тип записи: 0 - Категория (или Форум), 1 - Пост (или тема на форуме), 2 - Комментарий, 3 - Статическая страница
*
* @param int $indx индекс записи
* @return int
*/
zebroid_record_type( $indx);
Функции работы с Excel
/**
* загружает содержимое файла
*
* @param string $FileName полный путь к файлу
*/
Excel_LoadFile($FileName);
/**
* сохраняет содержимое файла
*
* @param string $FileName полный путь к файлу
*/
Excel_SaveFile($FileName);
/**
* возвращает содержимое ячейки
*
* @param string $col буквенное представление колонки (A, B, C ...)
* @param int $row номер строки (начиная с нуля)
* @return string
*/
Excel_ReadCell($col, $row);
/**
* записывает в ячейку значение value
*
* @param string $col буквенное представление колонки (A, B, C ...)
* @param int $row номер строки (начиная с нуля)
* @param string $value значение, которое нужно записать
*/
Excel_WriteCell($col, $row, $value);
Внимание: Работать с этими функциями лучше всего начиная с функции Excel_LoadFile даже если вам ничего не нужно сохранять. При вызове этой функции программа запоминает по расширению файла с каким типом ей нужно дальше работать и от этого зависит в каком формате будет производится сохранение.
Пример загрузки и работы с файлом:
Excel_LoadFile('C:\\myfile.xls'); // Открываем файл
$buf = Excel_ReadCell('A', 0); // Считываем содержимое ячейки в переменную buf
WriteToLog($buf); // Выводим содержимое в лог
Пример сохранения в новый файл:
Excel_LoadFile('.xlsx'); // Это необходимо, чтобы установить с каким форматом мы будем работать
Excel_WriteCell('A', 0, 'Hello world!!!'); // Записываем в ячейку
Excel_SaveFile('C:\\myfile.xlsx'); // Сохраняем в файл
Особенности работы с данными
- При удалении запись её id меняется на -1. Этот признак можно использовать для того, чтобы узнать работаем ли мы в данный момент с удалённой записью
- Если удалённой записи установить id отменный от -1, тогда такая запись восстанавливается
- Если записи изменить параметр parent_id — тогда запись будет перемещена к новому родителю
- Если записи изменить значение is_static — тогда запись будет перемещена в соответствующее дерево
Список параметров записи
- id — идентификатор записи
- is_static — значение определяющее статическая ли это страница или нет
- title — имя записи
- alt_name — alt_name записи
- keywords — keywords записи
- description — description записи
- text — текст записи (HTML)
- tags — метки записи
- date — дата публикации записи в формате дд.мм.гггг чч: нн: сс
- draft — значение определяющее является ли запись черновком
- parent_id — id родительской записи (-1 если запись находится в корне или это статическая страница)
- zebrum_h1 — параметр h1 в свойствах Zebrum Lite
- zebrum_menu — параметр menu в свойствах Zebrum Lite
- zebrum_template — параметр template в свойствах Zebrum Lite
- zebrum_template_zhtml — параметр template_zhtml в свойствах Zebrum Lite
- zebrum_time — параметр time в свойствах Zebrum Lite
- zebrum_sort — параметр sort в свойствах Zebrum Lite
- zebrum_menuid — параметр menuid в свойствах Zebrum Lite
- zebrum_nosubmenu — параметр nosubmenu в свойствах Zebrum Lite
- zebrum_nomenuitem — параметр nomenuitem в свойствах Zebrum Lite
- zebrum_menuorder — параметр menuorder в свойствах Zebrum Lite
- zebrum_module — параметр module в свойствах Zebrum Lite
- zebrum_params — параметр params в свойствах Zebrum Lite
- zebrum_donotlist — параметр donotlist в свойствах Zebrum Lite
- zebrum_split — параметр split в свойствах Zebrum Lite
- zebrum_filter — параметр filter в свойствах Zebrum Lite
- zebrum_charset — параметр charset в свойствах Zebrum Lite
Внимание: все параметры при сохранении обязательно долнжы быть строковыми. Даже если параметр носит характер числового, всё равно он при сохранении должен хранится как строка, иначе интерпретатор его пропустит