API экстраполей (Extrafields API)
Экстраполя служат для дополнения определенными данными какие-либо сущности на сайте. Например у нас есть страницы и к ним нужно добавить новый параметр и при этом чтобы была возможность его редактирования через форму. Для этого мы заходим в админ-панель и выбираем раздел управления экстраполями для страниц, задаем идентификатор экстраполя, его название, тип элемента формы для него и другие параметры. Кроме того экстраполями можно дополнить любую таблицу в базе данных фреймворка.
Типы экстраполей:
input
inputint
currency
double
textarea
select
radio
checkbox
datetime
country
range
checklistbox
file
Все программные методы для управления и вывода экстраполей находятся в файле system/extrafields.php:
1. cot_build_extrafields($name, $extrafield, $data)
Данная функция позволяет выводить экстраполе в форме для редактирования данных.
$name - идентификатор экстраполя
$extrafiels - параметры экстаполя
$data - значение экстраполя
2. cot_import_extrafields($inputname, $extrafield, $source='P', $oldvalue='')
Позволяет получить значение экстраполя отправленное через форму.
$inputname - идентификатор переменной формы
$extrafield - параметры экстраполя
$source - метод передачи данных через форму P или G (POST, GET соответственно)
$oldvalue - предыдущее значение экстраполя перед отправкой через форму (если необходимо)
3. cot_build_extrafields_data($name, $extrafield, $value, $parser = '')
Получение значения экстраполя для вывода.
$name - идентификатор экстраполя,
$extrafield - параметры экстраполя,
$value - значение экстраполя,
$parser - тип парсера для экстраполя с типом поля textarea
4. cot_default_html_construction($type)
Получение html-конструкции для заданного типа поля (input, textarea и т.д.).
5. cot_extrafield_add($location, $name, $type, $html='', $variants='', $default='', $required=false, $parse='HTML', $description='', $params = '', $enabled = 1, $noalter = false, $customtype = '')
Создание (регистрация) экстраполя в базе данных со всеми необходимыми параметрами.
$location - расположение (таблица в базе данных где будет создано экстраполе. Например: pages, com, projects, и т.д.),
$name - идентификатор экстраполя,
$type - тип экстраполя (input, textarea, checkbox, select, radio, и т.д.),
$html='' - используемый ресурс-шаблон,
$variants='' - варианты для множественных типов (select, checkbox и т.д.),
$default='' - значения по-умолчанию,
$required=false - обязательное для заполнения или нет,
$parse='HTML' - тип парсера для textarea,
$description='' - Описание экстраполя,
$params = '' - параметры для некоторых типов экстраполей (select, checkbox и т.д.),
$enabled = 1 - Включить/выключить экстраполе,
$noalter = false - Не добавлять новое поле в БД, только зарегистрировать как дополнительное. Если отметить как true то поле не будет создано в таблице назначения, а просто будет создано как дополнительное. Данные при этом не будут сохраняться в таблице назначения,
$customtype = '' - кастомный (собственный) тип экстраполя.
6. cot_extrafield_update($location, $oldname, $name, $type, $html='', $variants='', $default='', $required=0, $parse='HTML', $description='', $params = '', $enabled = 1, $customtype = '')
Изменение параметров экстраполя в базе данных.
7. cot_extrafield_remove($location, $name)
Полное удаление экстраполя из базы данных.
8. cot_import_filesarray($file_post)
Получение данных о загружаемом файле из массива $_FILES.
9. cot_extrafield_movefiles()
Удаление всех файлов загруженных через экстраполя с типом "file".
10. cot_extrafield_unlinkfiles($fielddata, $extrafield)
Удаление файла загруженного через экстраполе с типом "file".
11. cot_load_extrafields($forcibly = false)
Получение массива всех экстраполей и сохранение их в кэше.