Игорь Табаев

  • Исполнено

    0

    Верните проверку на Ajax запрос при выводе страниц из меню

    Игорь Табаев Обновлен 9 лет назад в категории CMS Общий функционал 2

    Здравствуйте, до обновления на новое ядро можно было обратиться к странице из меню и в случае ajax запроса, получить только основную часть страницы.

    То есть можно было сделать страницу с формой и при обращении к ней посредством javascript, получить ответ в формате json. теперь же возвращается html полностью всей страницы.

    Проблема в том, как в файле modules\menu\controller\front\menupage.inc.php формируется результат обработки в строке 45:
    return $this->view->fetch($menu_item['link_template']);
    До обновления было:
    return $this->result->setTemplate($menu_item['link_template']);

    Если можно, то сделайте как было до обновления или объясните, зачем нужно это изменение.
  • Исполнено

    0

    Новое событие для Orm объектов

    Игорь Табаев Обновлен 9 лет назад в категории CMS Общий функционал 2

    Здравствуйте, столкнулся с тем, что нужно добавить дополнительное поле в Orm объект catalog-product. Для этого у API есть событие orm.init.КОРОТКОЕ_ИМЯ_ORM_ОБЪЕКТА. Однако в базе поле хранится в сериализованом виде, а для работы с объектом product его нужно обратно преобразовать в массив. Отсюда и необходимость в дополнительном событии по типу orm.afterobjectload.КОРОТКОЕ_ИМЯ_ORM_ОБЪЕКТА. Тем более у RS::ORM::AbstractObject есть такой метод. Будет достаточно в этом классе сгенерировать новое событие. Например так:

    public function afterObjectLoad()
    {
    /**
    * Event: orm.afterobjectload
    * paramtype \RS\Orm\AbstractObject
    */
    \RS\Event\Manager::fire('orm.afterobjectload.' . $this->getShortAlias(), $this);
    }


    И во всех потомках этого класса в методе afterObjectLoad (если он там переопределен) вызывать:
    parent::afterObjectLoad()

    Возможно я упускаю какие-то трудности в реализации, но отсутствие такого событие показалось как минимум странным. Если можно изменить данные объекта перед самой записью в базу, то почему нельзя изменить его и сразу после получения из базы?