Установка кода Sape на движок LiveStreet

Установка кода Sape на движок LiveStreetНемного погуглив понял, что нужно написать нормальную заметку об установке кода Sape на движок LiveStreet. Сейчас как раз передо мною стала такая задача.

Кто ставил код сапе на любой другой движок прекрасно знает, что нужно делать сначала.
Но я все-равно напомню

# Скачайте к себе на компьютер архив в zip.
# Распакуйте архив. Внутри архива будет лежать папка ваш код сапе.
# Скопируйте эту папку к себе на сайт. Положите ее в корень вашего сайта.
# Выставите права доступа 777 на эту папку (но не на файл sape.php), чтобы наш php-клиент мог управлять файлом с базой ссылок.

А теперь дальше делаем так. Sape рекомендует не ставить в одном блоке более двух ссылок. Так и сделаем.
Открываем templates/new/sidebar.tpl и устанавливаем там следующий код:
{php}
 global $sape;
    if (!defined('_SAPE_USER')){
        define('_SAPE_USER', 'ваш_код'); 
    }
    require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php'); 
    $sape = new SAPE_client();
    echo $sape->return_links(2);
{/php}

Открываем templates/new/footer.tpl туда вставляем код:

{php}
global $sape; 
 echo $sape->return_links(); 
{/php}

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

Теперь на счет контекстных ссылок.

Открываем templates/new/header.tpl и туда пишем код в теге head:

{php}
     if (!defined('_SAPE_USER')){define('_SAPE_USER', 'ваш_код');}
    require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php'); 
    $sape_context = new SAPE_context(); 
    ob_start(array(&$sape_context,'replace_in_page'));
{/php}

Открываем файл templates/new/topic.tpl ищем:

{$oTopic->getText()}


меняем на:

<sape_index>                
    {$oTopic->getText()}
</sape_index>

Может вскоре появится плагин Sape для движка LiveStreet. Все-таки эта CMS очень перспективная и кстати Яндекс ее очень любит

Аналогично делаем с кодом Setlinks:

{php}
require_once ($_SERVER['DOCUMENT_ROOT'].'/ваш_код/slclient.php');
$sl = new SLClient();
print($sl->GetLinks());
{/php}

или другими биржами.
Удачных Вам заработков!

Источник

5 комментариев

avatar
Также можно почитать на форуме
avatar
Понравилось следующее:

Гораздо удобнее, если вы планируете изменять шаблоны в дальнейшем, апдейтить файлы и не морочиться, вспоминая где у вас валяется код сапы сделать всё немного по-другому.

Мы просто добавим в Smarty функцию {sape} и код в шаблоне уменьшится до этого слова. Идеологически, это будет вернее с точки зрения шаблонизатора.

Итак, как это сделано у меня:

1. файл ~/engine/lib/external/Smarty-2.6.19/libs/plugins

В этой директории заводим файлик с именем function.sape.php. В нём пишем непосредственно код. Выглядит он примерно так:

Код:
<?php
  function smarty_function_sape($params,&$smarty)
  {
    define('_SAPE_USER', 'ваш_длинный_код');
    require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');
    $o['charset'] = 'UTF-8';
    $sape = new SAPE_client($o);
    unset($o);
    return $sape->return_links();
  }
?>

2. /templates/skin/new/sidebar.tpl
Чтобы Sape появилась в сайдбаре добавим в его конец просто вызов {sape}. С равным успехом это можно добавлять и в любой другой шаблон.
avatar
Мой вариант с параметрами.
В engine/lib/external/Smarty/libs/plugins/function.sape.php
<?php
  function smarty_function_sape($params,$template)
  {
        if (!defined('_SAPE_USER')){
            define('_SAPE_USER', 'ваш_длинный_код'); 
        }
        if (isset($params['sapeuser'])) {
            define('_SAPE_USER', $params['sapeuser']); ;
        }
        
    require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');
    $o['charset'] = 'UTF-8';
    $sape = new SAPE_client($o);
    unset($o);
    if (isset($params['count'])) {
        return $sape->return_links($params['count']));
    else
        return $sape->return_links();
    }
  }
?>


Пример использования:
<div id="sidebar">
        {if isset($aBlocks.right)}
                {foreach from=$aBlocks.right item=aBlock}
                        {if $aBlock.type=='block'}
                                {insert name="block" block=$aBlock.name params=$aBlock.params}
                        {/if}
                        {if $aBlock.type=='template'}
                                {include file=$aBlock.name params=$aBlock.params}
                        {/if}
                {/foreach}
        {/if}

        {sape sapeuser=ваш_длинный_код count=100}
</div>
avatar
а как сделать такое же чудо с Setlinks?
avatar
Не знаю, что такое Setlinks. Нужно смотреть код. Возможно можно сделать по аналогии.

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