??нструкция по установке

Для установки сниппета SimpleCatalog необходимо выполнить следующие действия.

  • Cкопировать папку modx_SimpleCatalog в папку assets/snippets/
  • Cоздать новый сниипет и вставить туда код сниппета (см. ниже).
  • Создать новый плагин. Вставить туда код плагина (см. ниже) и отметить срабатывание кода плагина на событие OnWebPagePrerender.

Код сниппета

<?php
////////////////////////////////////////////////////////////////////////////////////////////////// 
// PASTE THE CONTENTS OF THIS FILE INTO MODx WHEN INSTALLING THIS SNIPPET  
// Snippet Name: SimpleCatalog
// Short Description: Snippet for rendering data from your custom tables
// Author : Semko Vitaliy 
// Snippet documentation: See the documentation at ruis.ru:
// http://www.ruis.ru/programmer/snippet/modx_simplecatalog.html
///////////////////////////////////////////////////////////////////////////////////////////////////

$options = array(
'table' => isset($table) ? $table : FALSE,
'tableId' => isset($tableId)? $tableId : FALSE,
'scConfig' => isset($scConfig)? $scConfig : FALSE,
'renderer' => isset($renderer) ? $renderer : FALSE,
'tableSelect' => isset($tableSelect)? $tableSelect : FALSE,
'tableWhere' => isset($tableWhere)? $tableWhere : FALSE,
'tableOrderBy' => isset($tableOrderBy)? $tableOrderBy : FALSE,
'seoTitle' => isset($seoTitle) ? $seoTitle : FALSE,
'seoDesc' => isset($seoDesc) ? $seoDesc : FALSE,
'pager' => isset($pager) ? TRUE : FALSE,
'count' => isset($count) ? $count : FALSE,
'pPath' => isset($pPath) ? $pPath : FALSE,
'pFileName' => isset($pFileName) ? $pFileName : FALSE,
'pNextImg' => isset($pNextImg) ? $pNextImg : FALSE,
'pPrevImg' => isset($pPrevImg) ? $pPrevImg : FALSE,
'desc' => isset($desc) ? TRUE : FALSE,
'itemLink' => isset($itemLink) ? $itemLink : FALSE,
'addSlash' => isset($addSlash) ? $addSlash : FALSE,
'truncText' => isset($truncText) ? $truncText : FALSE,
'dateField' => isset($dateField) ? $dateField : FALSE,
'dateFormat' => isset($dateFormat) ? $dateFormat: FALSE,
'getParamId' => isset($getParamId) ? $getParamId : FALSE,
'getParamPage' => isset($getParamPage) ? $getParamPage : FALSE,
'tplContainer' => isset($tplContainer) ? $tplContainer : FALSE,
'tplRow' => isset($tplRow) ? $tplRow : FALSE,
'tplItem' => isset($tplItem) ? $tplItem : FALSE
);

$postFix = isset($class) ? '_'.$class : '';
require_once($_SERVER['DOCUMENT_ROOT'].'/assets/snippets/modx_SimpleCatalog/MODx_SimpleCatalog'.$postFix.'.class.inc.php');
$tmpClassName = 'MODx_SimpleCatalog'.$postFix;
if (class_exists($tmpClassName)) {
$simpleCatalog = new $tmpClassName($options);
$simpleCatalog->Operate();
} else {
echo "Class is missing - {$tmpClassName}";
}
?>

Код плагина

//<?php
/**
* @desc Плагин для значений тегов title и мета тега description, значениями хранящимися в глобальных переменных
* $GLOBALS['simpleCatalogSeoTitle'] и  $GLOBALS['simpleCatalogSeoDesc']
*   отметьте OnWebPagePrerender событие
* @author   Semko Vitaliy 
* @version  1.0     date 2009/05/27
*/ 

$e = &$modx->Event;
switch($e->name) {
    case 'OnWebPagePrerender':         
        if (isset($GLOBALS['simpleCatalogSeoTitle']))    {                       
            $this->documentOutput = preg_replace("/(.*)<\/title>/i", "<title>".$GLOBALS['simpleCatalogSeoTitle']."", $this->documentOutput); 
        }
        if (isset($GLOBALS['simpleCatalogSeoDesc']))    {                       
            if (preg_match("@documentOutput)) {                
                $this->documentOutput = preg_replace("@@i", "", $this->documentOutput);                                  
            } 
            $metaDesc = '';
            $this->documentOutput = preg_replace("/(.*)<\/title>/i", "\\1\n".$metaDesc, $this->documentOutput);     
                                
        }
        break;                                                                          
}
return
//?>