Появились вопросы "Как использовать данные модуля «Компания»?".
Проще всего это сделать через хэштеги (аналогично Wordpress) и хук alc_hook_content.
Создаём записи в модуле «Компания» с идентификаторами, например name, adress, phone и т.д.
В любом месте страницы (статический текст, текст из базы данных и т.п.) вставляем хэштег в произвольном формате, например, [company:name], где name идетификатор данных, которые нужно вывести на страницу. Определённого формата хэштега нет, но пример приведён именно для такого формата.
Создаём файл хука, который будет обрабатывать хэштеги. Хук alc_hook_content удобен тем, что обрабатывает полностью готовую страницу, но можно использовать любой подходящий.
Пример:
// проверка, что система корректно инициализирована
if (!isset($alc_admin_part)) die('Access denied '.basename(__FILE__));
if (!isset($alc_controller)) die('Failed to load controller. Work program aborted '.basename(__FILE__));
// код хука
alc_common_add_hook('alc_hook_content', 'my_company');
function my_company(&$content) {
global $alc_controller;
$content = preg_replace_callback('!\[company:([^\]]+)\]!sui', 'my_get_company_data', $content);
}
function my_get_company_data($matches) {
global $alc_controller;
$res = '';
/*
параметры:
'company' - имя модуля;
'get_attribute' - метод модуля;
$matches[1] - условный идентификатор;
true - получить только значения.
*/
$attr = $alc_controller->module_func_exec('company', 'get_attribute', $matches[1], true);
if (is_array($attr)) {
foreach ($attr as $v) {
$v = trim($v);
if ($v) {
if ($res) $res .= ', ';
$res .= $v;
}
}
}
return $res;
}
Пример выполнения для тестового атрибута [company:test]:
Значение атрибута "Тест" модуля "Компания"
Примечания:
1. Модуль перемещён в раздел "Информационные модули".
2. Доступ к данным модуля может быть ограничен в настройках для групп пользователей.