Page 1 of 1

Обработка плейсхолдеров(тегов) в своём модуле

Posted: Tue Jul 09, 2013 9:21 am
by Reanimator
Гуру данной цмски. Поможите.

Пишу модуль идентичный встроенному "модулю" "Блоки Контента", только с чуть более продвинутыми возможностями.

Встал вопрос, можно ли автоматом обрабатвать все плейсхолдеры, которые вставляются в контент блока.

Re: Обработка плейсхолдеров(тегов) в своём модуле

Posted: Tue Jul 16, 2013 1:56 pm
by guro
Поясните, что в вашем понимании "плейсхолдеры"? И как вы их хотите обрабатывать?

Re: Обработка плейсхолдеров(тегов) в своём модуле

Posted: Tue Jul 16, 2013 5:30 pm
by Reanimator
плейсхолдеры = теги.

я хочу парсить теги других модулей.

Re: Обработка плейсхолдеров(тегов) в своём модуле

Posted: Wed Jul 17, 2013 11:40 am
by guro
Как в вашем модуле выводится шаблон?

Re: Обработка плейсхолдеров(тегов) в своём модуле

Posted: Wed Jul 24, 2013 7:18 am
by Reanimator
Условно это код функции DoAction.

Code: Select all

function DoAction($action, $id, &$params, $returnid=-1) 
{
    switch ($action) 
    {
      case 'default':
      {
          .....
          $section_data = $this->fetchSectionFrontendData($params["name"]);
          $smarty->assign("sec_content", $section_data);
      }
      case ....
    }
    echo $smarty->fetch($this->GetFileResource($action.".tpl"));
}
Это содержимое файла default.tpl в папке templates:

Code: Select all

{eval var=$sec_content}

Re: Обработка плейсхолдеров(тегов) в своём модуле

Posted: Wed Jul 24, 2013 10:48 am
by guro
Понятно.
Я обычно не так делаю.
Я сохраняю шаблоны в БД

Code: Select all

$this->DeleteTemplate($tpl_name);
$this->SetTemplate($tpl_name, $template);
а на сайт вывожу вот так

Code: Select all

echo $this->ProcessTemplateFromDatabase($tpl_name);
При таком способе, внутри шаблона работают, и вызовы других модулей, и вызовы тегов пользователя, и блоки контента.

Re: Обработка плейсхолдеров(тегов) в своём модуле

Posted: Thu Jul 25, 2013 6:28 am
by Reanimator
Спасибо. Действительно. Таким образом всё работает.
Интересно, с чем это связано?

Re: Обработка плейсхолдеров(тегов) в своём модуле

Posted: Fri Jul 26, 2013 6:50 am
by Reanimator
Да. Точно. Спасибо.

Вот этот модуль) Можете пользоваться. Если есть какие-либо баги..пишите)

http://dev.cmsmadesimple.org/projects/sections

Модуль по своей сути отличается от глобальных блоков только тем, что можно выбрать станицы на которых блок будет виден или/и промежуток дат в которые блок будет показываться. Если честно, то этого очень часто не хватает, не понимаю почему до сих пор этот функционал не запилили в блоках контента... он вроде бы очевиден...))

Планирую также сделать группировку блоков по категориям.