Как подружить modx и sape?

anadikt

Гуру форума
Регистрация
28 Янв 2010
Сообщения
433
Реакции
86
Подскажите пожалуйста, как можно подружить modx и sape?

Вопрос вот в чем, есть сайт на modx в сапе, уже победил то чтобы выводился код сапы:

но есть маленькое НО, при добавлении из сапы новых ссылок в сниппете в конце кода постоянно удаляется
Код:
?>
и новые ссылки соответственно не выводятся, приходится каждый вечер заходить в админку и дописывать, чтобы ссылки начали отображаться ...

как победить эту беду?
 
но есть маленькое НО, при добавлении из сапы новых ссылок в сниппете в конце кода постоянно удаляется
Дело не в удалении в конце кода, а в кэшировании сниппета. Проверить можете Очисткой кэша (вместо редактирования сниппета)
Вызывайте сниппет некэшируемым (в зависимости от используемой версии evo|revo вызовы различаются)
 
Дело не в удалении в конце кода, а в кэшировании сниппета. Проверить можете Очисткой кэша (вместо редактирования сниппета)
Вызывайте сниппет некэшируемым (в зависимости от используемой версии evo|revo вызовы различаются)

а как это сделать??? использую MODX Revolution 2.2.2
 
в принципе ?> не нужен в снипетах

не кешеруемый вызов снипета: [[!sape]]
 
Вероятно автор вставил код прямо в шаблон. Необходимо создать сниппет, в него перенести код sape. Если сниппет назвать sape_snippet, то вызов без кеширования будет такой: [[!sape_snippet]]
 
Может кому пригодится сниппет modx для sape (ссылки и контекст).
Выводит плейсхолдерами, вида:
HTML:
<div class="span6">[+SapeLeft+]</div>
<div class="span6">[+SapeBottom+]</div>
Код сниппета
PHP:
<?php
if (!defined('_SAPE_USER')){
        define('_SAPE_USER', '545191613184894511198113');
}
require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');
$o['charset'] = 'UTF-8';
$o['request_uri'] = getenv('REQUEST_URI');
$o['request_uri'] = $_GET['uri'];
$sape = new SAPE_client($o);
$sape_context = new SAPE_context();
unset($o);

    $SapeLeft =  $sape->return_block_links(1);
    if ($SapeLeft<>'')
        $SapeLeft = '<div id="sl">'.$SapeLeft.'</div>';
      
    $SapeRight =  $sape->return_block_links(1);
    if ($SapeRight<>'')
        $SapeRight = '<div id="sr">'.$SapeRight.'</div>';
    $SapeBottom = $sape->return_block_links();
    if ($SapeBottom<>'')
        $SapeBottom = '<div id="sb">'.$SapeBottom.'</div>';
       
        $modx->setPlaceholder('SapeLeft', $SapeLeft);
        $modx->setPlaceholder('SapeRight', $SapeRight);
        $modx->setPlaceholder('SapeBottom', $SapeBottom);

$e = &$modx->Event;

switch($e->name) {
  case 'OnLoadWebDocument':
    $content = $modx->documentObject['content'];
    $content = $sape_context->replace_in_text_segment($content);
    $modx->documentObject['content'] = $content;
    break;

  default:
    return;
    break;
}
?>
 
По мне так лучше через сапу переставать барыжить ссылками, яша сайты в АГС угоняет теперь лихо ... дороже будет стоить вывести из АГС чем заработаешь денег
 
Назад
Сверху