Форум пользователей Impera CMS
Impera CMS - отличный движок для лёгкого создания интернет магазина.
Обладает невероятным количеством функций, необходимых в онлайн торговле.

Следить
Главная
10:39
06 апр
#
?
kerpi написал:

Разобрался сам, если кому нужно будет, то ничего сложного:

вставляем код:

<?php
    if (!defined('_SAPE_USER')) {
        define('_SAPE_USER', '3be268983ba160f8421c42a87f0e9cf9');
    }
    require_once(realpath($_SERVER['DOCUMENT_ROOT'] . '/' . _SAPE_USER . '/sape.php'));
    $sape = new SAPE_client();
    echo $sape->return_links();
?>


сразу в шаб страниц на которых хотим продавать ссылки и все.

09:29
18 мая
#
?
написал:

Как можно в .tpl вывести php ? помогите пожалуйста с сапой.

13:58
18 мая
#
написал:
  • ...
  • design
    • ...
    • Имя_Вашего_Шаблона
      • css
      • html
        • ...
        • emulator.php
        • sape.php
        • ...
      • images
      • js
    • ...
  • ...
  • ...

Скачайте из своего аккаунта на бирже ссылок Sape.ru их скрипт sape.php и скопируйте в ту папку вашего шаблона, где размещены tpl-файлы, то есть в папку http://ваш.сайт/design/папка_шаблона/html. Смотрите, как показано в листинге файлов справа. Интересующий файл помечен красным цветом. Еще один файл помечен зеленым цветом, об этом файле расскажем следом.

Стоит напомнить, Impera CMS поддерживает в шаблонах так называемый хелпер - это файл emulator.php, в котором мы можем разместить какие-нибудь произвольные функции-обработчики, расширяющие движок некими ранее непредусмотренными возможностями. А сами эти вспомогательные функции можем использовать в нужном месте нашего шаблона. Например, записав в хелпере некую функцию sapeLinks, теперь можем вызвать ее с каким-то набором параметров (какие мы неявно обозначили и обрабатываем в коде функции согласно своим представлениям) в некотором tpl-файле шаблона. Скажем, нам захотелось вызвать функцию внизу файла списка новостей:

{* файл news.tpl - центральная часть страницы списка новостей *}

<h1> Новости </h1>

{if empty($all_news)}
    <p> Нет новостей! </p>
{else}

    <ul id="news-list">
        {foreach $all_news as $item}
            <li>
                <a href="{$site}{$item->url_path}{$item->url}"> {$item->header} </a>
            </li>
        {/foreach}
    </ul>
    {$PagesNavigation}
{/if}

<div id="reklama"> {sapeLinks  hash='наш-хеш-код-в-sape'} </div>


Так вот чтобы использовать подобный механизм, проверьте наличие файла emulator.php в вашем шаблоне и дополните предложенной далее функцией вывода Sape-ссылок. Если же файла-хелпера нет в шаблоне, создайте файл с тем содержимым, как показано ниже:

<?php
/* ================================================================================
  Система: Impera CMS                                                             |
  Сайт системы: http://imperacms.com/                                              |
                                                                                  |
  Назначение файла: хелпер шаблона клиентской стороны сайта                       |
  Расположение: http://сайт/design/папка_шаблона/html/emulator.php                |
                                                                                  |
================================================================================ */

    class TemplateEmulator {

        // объект Sape (биржа ссылок)
        protected $sape = null;

        // ===================================================================
        /**                                                                   
        *  Конструктор класса                                                 
        *                                                                     
        *  -------------------------------------------------------------------
        *                                                                     
        *  @access  public                                                    
        *  @param   object  $cms        объект движка                         
        *  @return  void                                                      
        */                                                                    
        // ===================================================================

        public function __construct ( & $cms ) {

            // подключаем наши функции и модификаторы Smarty
            $this->setSmartyPlugins($cms);
        }

        // ===================================================================
        /**                                                                   
        *  Подключение наших функций и модификаторов в шаблонизатор Smarty    
        *                                                                     
        *  -------------------------------------------------------------------
        *                                                                     
        *  @access  protected                                                 
        *  @param   object  $cms        объект движка                         
        *  @return  void                                                      
        */                                                                    
        // ===================================================================

        protected function setSmartyPlugins ( & $cms ) {

            // регистрируем шаблонизационную функцию sapeLinks
            $cms->smarty->registerPlugin('function', 'sapeLinks', array($this, 'sapeLinks'));
        }

        // ===================================================================
        /**                                                                   
        *  Обработчик шаблонизационной функции sapeLinks                      
        *                                                                     
        *  Действие: выводит html-код ссылок Sape для указанного пользователя 
        *  этой биржы ссылок.                                                 
        *                                                                     
        *  -------------------------------------------------------------------
        *                                                                     
        *  @access  public                                                    
        *  @param   array   $params     массив параметров, указанных в вызове:
        *                                   ['hash'] = хеш-код пользователя Sape (обязателен только при первом вызове)
        *                                   ['method'] = какой метод вызвать (по умолчанию return_links)
        *                                   ['count'] = количество выводимых ссылок (по умолчанию ВСЕ)
        *  @param   object  $smarty     объект шаблонизатора Smarty           
        *  @return  string              html-код ссылок                       
        */                                                                    
        // ===================================================================

        public function sapeLinks ( $params = null, & $smarty = null ) {

            // если это первый вызов, берем хеш-код пользователя
            if (!defined('_SAPE_USER')) {
                $field = 'hash';
                $hash = isset($params[$field]) ? trim($params[$field]) : '';
                if ($hash == '') return '';
                define('_SAPE_USER', $hash);

                // подключаем скрипт Sape
                $file = dirname(__FILE__) . '/sape.php';
                if (file_exists($file) && is_file($file)) require_once($file);
            }

            // создаем объект Sape, если еще нет
            $class = 'SAPE_client';
            if (!class_exists($class)) return '';
            if (empty($this->sape)) $this->sape = new $class();

            // берем количество выводимых ссылок
            $field = 'count';
            $count = isset($params[$field]) ? max(1, intval($params[$field])) : 0;

            // выводим ссылки
            $field = 'method';
            $method = isset($params[$field]) ? trim($params[$field]) : 'return_links';
            if ($method == '' || !method_exists($this->sape, $method)) return '';
            if (!empty($count)) return $this->sape->$method($count);
            return $this->sape->$method();
        }
    }
?>


Данная функция sapeLinks удобная тем, что:

  • безопасна при вызове, когда скрипт sape.php отсутствует в шаблоне;
  • с помощью опционального параметра method позволяет обратиться к другому методу Sape;
  • безопасна при обращении к несуществующему методу Sape.


Напоследок несколько примеров вызова функции:

<div id="reklama1"> {sapeLinks  hash='наш-хеш-код-в-sape'} </div>

<div id="reklama2"> {sapeLinks  hash='наш-хеш-код-в-sape'  count=5} </div>

<div id="reklama3"> {sapeLinks  hash='наш-хеш-код-в-sape'  method='return_articles'} </div>

<div id="reklama4"> {sapeLinks  hash='наш-хеш-код-в-sape'  method='return_articles'  count=10} </div>


То есть параметры method и count опциональные. Параметр hash обязателен только в первом вызове на странице, в последующих вызовах он может быть опущен, так как к тому моменту уже известно, с каким пользователем биржы Sape связаны данные вызовы функции.

18:16
18 мая
#
?
написал:

Короче можно было. В шаблоне пишем

{php}
    здесь
    код
    на php
{/php}

И еще в Импере строка 1255 Basic.php

$policy->php_handling = Smarty::PHP_REMOVE;

заменить на

$policy->php_handling = Smarty::PHP_ALLOW;

Иначе блок {php} Смарти вырежет.

16:56
21 мая
#
?
bomo87 написал:

Виктор .. помогите пожалуйста с сапой.

Не понимаю логику вот таких фрилансов. Поставить человеку магазин, а под капот сунуть сапу. Ппц! Один думает как повысить магаз, деньги вкалывает. Другой ставит на его сайте "филиал" биржы ссылок. Чтоб постричь тыщу деревяных на чужом трафе. Стоит ли мелкий "пизнес" риска загнать со 100% шансом магазин в бан? Наверно хозяин сайта не в курсах что там творите. Нет слов. И не надо трындеть, что на других сайтах так работают и без бана. Еще как банятся. Может месяц два все ок. А потом нежданно хоп! и приплыли. Потому что из сайта сделали говоносайт, т.к. сапа сорит на нем говносылками на другие гс, рано или поздно поисковик это заметит. Вы хоть смотрели на сайтах ссылки сапы, что там рекламируют? Всякий мусор. Еще раз ппц! Магазин на то магазин. Или основной бизнес магаза это Сапа?

Почитайте как Rusonyx.ru попал под раздачу из-за таких вот нанятых однажды умников. Они насапили им ссылки очередями по всему нету. И сколько сил русоникс положил потом выплыть из бана. Очень просветляет мозги. Борьба за трафик. Как вывести сайт из-под спам-фильтра Google.

Никаких сап в магазине! Торгуйте, не страдайте хайней.

Написание ответа

Перед публикацией рекомендуется использовать Предпросмотр, чтобы увидеть конечный вид сообщения.


Обратите внимание! Для противодействия спаму новые посты форума проявляются с задержкой от нескольких минут, пока не пройдут модерацию.