Разработчикам дополнительных модулей и настройщикам системы
Одним из серьезных преимуществ системы Арфа-CMS по праву считается заложенный в ядро алгоритм быстрого создания системы управления табличными данными. Манипуляции в администраторской панели по созданию удобоваримого интерфейса на которые, скажем, в Joomla, уходит большое количество нервов и времени в Арфа-CMS производятся достаточно быстро и изящно.
Однако, наличие развернутых функционалов управления различными типами данных, их поведенческие модели, отображение в зависимости от условий и прочие прелести - конечно требуют от разработчиков модулей определенных знаний и навыков.
В основе всего лежит метадата используемой таблицы.
Она представляет собой массив с четкими описаниями моделей поведения и типов полей. Не все разделы ее являются обязательными. Но, знание для чего и что используется позволит более полно использовать заложенный в систему Арфа-CMS богатейший функционал.
Общие положения
Все метадаты, используемые в модулях , находятся в подпапке Metadata основной папки модуля. Для админзоны и фронтенда используются отдельные файлы метадаты.
Файл метадаты имеет имя вида goods.defl.php - это показывает системе, что эта метадата используется для представления goods c шаблоном по умолчанию. Будет вызвана , если произошел вызов(пример без СЕО обработки запросов): http://yuor_site.com/index.php?module=catalog&view=goods
Для создания иного представления (другие поля показываются, иной порядок следования , другая реакция на пользовательский ввод и т.п.) можно скопировать файл дефолтной метадаты и переименовать постфикс, например goods.special.php - система обработает эту метадату - если произошел вызов(пример без СЕО обработки запросов):
http://your_site.com/index.php?module=catalog&view=goods&layout=special
Для примера разберем метадату таблицы товаров в админ зоне модуля Catalog (файл /administrator/modules/catalog/metadata/goods.defl.php)
Разделы метадаты
Раздел | Тип значения | Имя переменной | Назначение | Пример | Варианты использования |
Общая часть | Строка | $tablname | Имя основной таблицы, по которой строится метадата | 'goods' | |
Строка | $keystring | Ключевое поле основной таблицы | 'g_id' | ||
Строка | $namestring | Поле основной таблицы, содержащее текстовый идентификатор строки(название и т.п.) | 'g_name' | ||
Строка | $alias_field | Поле основной таблицы, содержащее псевдоним записи | 'g_alias' | Используется в SEO разделах | |
Строка | $deleted | Поле основной таблицы, содержащее признак удаления записи | 'g_deleted' | Используется в выборках | |
Строка | $enabled | Поле основной таблицы, содержащее признак активности(доступности, включенности, опубликованности) записи | 'g_$enabled' | Используется в выборках | |
Строка | $nametabl | Название таблицы, которое выводится в заголовке при верстке, пропускается через механизм переводов | Goods list |
Кастомизация пользовательских пиктограмм административного меню
При дополнении/изменении наборов пиктограмм в меню административного раздела Арфа-CMS при имеющихся классах пиктограмм (img) в таблицах стилей следует иметь в виду, что эти классы проставляются в metadata соответствующего представления. При этом суффиксом класса являются имена массива $uni_buttons.
Организация собственных форм
Проблема : Неправильно отрабатывает форма.
Возможное решение : Если включен SEO , не забывайте в формах ставить ведущий слеш в method перед index.php, иначе будет многократный вызов формы, поскольку неправильно учитывается путь. Надо так :"<form method=\"post\" action=\"/index.php\"
Персональный класс для таблиц, выводимых на фронтенде с помощью метадат
Иногда есть необходимость кастомизации внешнего вида таблиц, выводимых на фронтенде с помощью метадат модулей. Для этого наиболее очевидным является добавление персонального класса таблицам выводимых данных. По умолчанию таблицы выводятся с классом sprav-table, который является классом по умолчанию. Достаточно в начале метадаты указать еще один класс таким образом:
$classTable="sprav-table ваш-класс";
Добавленный вами дополнительный класс может быть использован для изменения стилей выводимых внутри таблицы элементов верстки, а также для исполнения скриптов js, привязанных к этому классу.
Вывод линковочного селектора
Проблема : не выводит линковочный селектор на метадатах , отличных от дефолного
Возможное решение : проверить в описание кнопок проставленный layout