Наверх

Плагин для добавления параметров в TV

В разделе «Репосты» расположены чужие статьи, которые мне понравились или показались полезными.

Для добавления в TV MODX параметров по умолчанию, можно написать простейший плагин, который будет срабатывать на событие OnDocFormSave. Для чего это нужно, в моём случае — есть интернет-магазин по продаже контрактных автозапчастей, где одна и та же запчасть подходит к разным моделям одной и той же марки авто. Т.е. TV использует множественный выбор, а так как модели могут добавляться, необходимо исключить редактирование менеджером данного TV — всё-равно напортачит.

Было принято решение, реализовать добавление параметров по умолчанию в TV через создание ресурсов с pegetitle этой модели. Ну и собственно сам плагин.

<?php
// Работаем при сохранении документа - событие OnDocFormSave
if ($modx->event->name == 'OnDocFormSave') {
    // Если сохраняемый ресурс имеет родителя с ID = 52
    if($resource->get('parent') == 52) {
	// Получаем объекты дочерних ресурсов
        $res = $modx->getCollection('modResource',array('parent' => 52));
	// Получаем объект TV
        $arr = $modx->getObject('modTemplateVar', array('id' => 13));
        
	// Проходим циклом получаем pagetitle и записываем
        foreach ($res as $resources) {
            $out .= $resources->get('pagetitle'). '==' . $resources->get('pagetitle') . '||';
        }
        
	// Удаляем в конце два прямых слеша и сохраняем в таблицу
        $str = substr($out, 0, strlen($out)-2);
        $arr->set('elements', $str);
        $arr->save();
        
        return;
    }
}

Ресурс с ID = 52 содержит в себе название моделей авто. Сами ресурсы называются по названию моделей, например: Almera, Primera и т.д. В БД, в таблицу modx_site_tmplvars, в колонку elements попадают значения вида: Almera==Almera||Primera==Primera

Источник: marabar.ru/blog-snippetyi-modx/122/


0 комментариев

    Авторизация

    через сервис Loginza:


    Шаблоны MODX

    1 2 Дальше »

    Объектная
    модель
    MODX