Разработчикам дополнительных модулей и настройщикам системы

Материал из AltadocCMS
Перейти к: навигация, поиск

Одним из серьезных преимуществ системы Altadoc по праву считается заложенный в ядро алгоритм быстрого создания системы управления табличными данными. Манипуляции в администраторской панели по созданию удобоваримого интерфейса на которые, скажем, в Joomla, уходит большое количество нервов и времени в Altadoc производятся достаточно быстро и изящно.

Однако, наличие развернутых функционалов управления различными типами данных, их поведенческие модели, отображение в зависимости от условий и прочие прелести - конечно требуют от разработчиков модулей определенных знаний и навыков.


В основе всего лежит метадата используемой таблицы.

Она представляет собой массив с четкими описаниями моделей поведения и типов полей. Не все разделы ее являются обязательными. Но, знание для чего и что используется позволит более полно использовать заложенный в систему Altadoc богатейший функционал.


Содержание

Общие положения

Все метадаты, используемые в модулях , находятся в подпапке 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

Кастомизация пользовательских пиктограмм административного меню

При дополнении/изменении наборов пиктограмм в меню административного раздела Altadoc при имеющихся классах пиктограмм (img) в таблицах стилей следует иметь в виду, что эти классы проставляются в metadata соответствующего представления. При этом суффиксом класса являются имена массива $uni_buttons.

Организация собственных форм

Проблема : Неправильно отрабатывает форма.

Возможное решение : Если включен SEO , не забывайте в формах ставить ведущий слеш в method перед index.php, иначе будет многократный вызов формы, поскольку неправильно учитывается путь. Надо так :"<form method=\"post\" action=\"/index.php\"

Персональный класс для таблиц, выводимых на фронтенде с помощью метадат

Иногда есть необходимость кастомизации внешнего вида таблиц, выводимых на фронтенде с помощью метадат модулей. Для этого наиболее очевидным является добавление персонального класса таблицам выводимых данных. По умолчанию таблицы выводятся с классом sprav-table, который является классом по умолчанию. Достаточно в начале метадаты указать еще один класс таким образом:

$classTable="sprav-table ваш-класс";

Добавленный вами дополнительный класс может быть использован для изменения стилей выводимых внутри таблицы элементов верстки, а также для исполнения скриптов js, привязанных к этому классу.