среда, 29 октября 2014 г.

Шпаргалка по MODx API

Каждый раз, когда пишу сниппет и ищу какую-нибудь информацию, натыкаюсь на эту статью на community.modx-cms.ru и она всегда помогает. Чтобы не тратить каждый раз время на ее поиски, публикую здесь:
<? 
   // Получить и установить значение плейсхолдера
   $var=$modx->getPlaceholder('placeholder_name');
   $modx->setPlaceholder('placeholder_name', $var);

   // Вывод плейсхолдера в HTML
   ?>
      [+placeholder_name+]
   <?

   // Запуск сниппета
   $params['test']=1;
   $params['dummy']=2;
   $snippet=$modx->runSnippet('snippet_name', $params);

   // Вызов сниппета в HTML
   ?>
      [[snippet_name? &test=`1` &dummy=`2`]]
   <?

   // Получить содержимое чанка
   $chunk=$modx->getChunk('chunk_name');

   // Вывод содержимого чанка в HTML
   ?>
      {{chunk_name}}
   <?

   // Парсим чанк - заменяем в нем плейсхолдеры test и dummy на значения
   $params['test']=1;
   $params['dummy']=2;
   $chunk=$modx->parseChunk('chunk_name', $params, '[+', '+]');

   // Получаем документы MODx
   $id=$modx->documentIdentifier;
   $document=$modx->getParent($id);
   $document=$modx->getDocument($id);
   $document=$modx->getDocumentChildren($id);
   $document=$modx->getActiveChildren($id, 'menuindex', 'ASC');

   // Массив $document
   $id=$document['id'];
   $pagetitle=$document['pagetitle'];
   $longtitle=$document['longtitle'];
   $description=$document['description'];
   $alias=$document['alias'];
   

   // Получаем значение параметра TV
   $document_tvs=$modx->getTemplateVarOutput(true, $id);
   $templatevar_output=$document_tvs['template_variable_name'];

   // Вывод TV параметра в  HTML
   ?>
      [*template_variable_name*]
   <?

   // Создаем URL
   $url=$modx->makeUrl(intval($id));

   // Выводим URL в HTML
   ?>
      [~id~]
   <?

   // Устроить пользователю Redirect )
   $count_attempts=1;
   $modx->sendRedirect('http://www.newdomain.com', $count_attempts, 'REDIRECT_HEADER', 'HTTP/1.1 301 Moved Permanently');

   // Переход к новым документам MODx без перезагрузки страницы
   $modx->sendForward($id);

   // Получаем параметры конфигурации 
   $site_name=$modx->config['site_name'];
   $site_url=$modx->config['site_url'];
   $site_start=$modx->config['site_start'];
   $error_page=$modx->config['error_page'];
   $base_path=$modx->config['base_path'];
   $base_url=$modx->config['base_url'];
   $rb_base_dir=$modx->config['rb_base_dir'];
   $rb_base_url=$modx->config['rb_base_url'];   
   $modx_charset=$modx->config['modx_charset'];
   

   // Выводи параметры MODx в HTML
   ?>
      [(site_name)]
      [(site_url)]
      …
   <?

   // События MODx
   $event=$modx->Event; 
   switch($event->name)
   { 
      case "OnBeforeDocFormSave":
         
      break;
   }

   // собако-команда @SELECT для TV параметра
   @SELECT pagetitle FROM modx_site_content WHERE parent = 329 ORDER BY pagetitle ?>
Копипаст community.modx-cms.ru

Комментариев нет:

Отправить комментарий