ALite CMS 41.04
О системе > Новости
Язык: 
ALite CMS

Новости

Как использовать данные модуля «Компания»

06.07.2024 18:22, рейтинг: 51

Появились вопросы "Как использовать данные модуля «Компания»?".

Проще всего это сделать через хэштеги (аналогично Wordpress) и хук alc_hook_content.

Создаём записи в модуле «Компания» с идентификаторами, например name, adress, phone и т.д.

В любом месте страницы (статический текст, текст из базы данных и т.п.) вставляем хэштег в произвольном формате, например, "Моя компания", где 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('!\]+)\]!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. Доступ к данным модуля может быть ограничен в настройках для групп пользователей.

Новый комментарий
Пользователь:
Protected codeОбновить
RSS  RSS