Smapp_View_Helper_Sape::setOptions(array(
'sape_user' => '4821421b68_ваш_sape_user6',
'charset' => 'UTF-8',
'force_show_code' => true,
));
Далее, в тех местах view, где вы хотели бы выводить ссылки, необходимо вставить следующий код:
<?php echo $this->sape()?>
это равносильно вызову:
<?php echo $sape->return_links();?>
Все параметры и их значения идентичны параметрам SAPE_client. Соответственно, и все рекомендации по использованию - тоже :)
Почитать о них можно здесь в разделе "Для хостинга с поддержкой PHP";
тоесть в инструкции на sape.ru
<? echo $sape->return_links(1); ?>
через хелпер выглядит как
<? echo $this->sape(1); ?>
и так далее.
Разберетесь, в общем :) программисты же :)
<?php
/**
* SM's code library
*
* @copyright Copyright (c) 2010 Pavel V Egorov
* @author Pavel V Egorov <epavel@gmail.com>
* @link http://epavel.ru/sape-view-helper/
*/
class Smapp_View_Helper_Sape extends Zend_View_Helper_Abstract
{
protected static $_options = array(
/**
* 48d640_ваш номер_74a70e6
*/
'sape_user' => null,
/**
* версия клиента для которой написан хелпер
*/
'version' => '1.0.8',
'verbose' => false,
/**
* http://www.php.net/manual/en/function.iconv.php
*/
'charset' => '',
/**
* Пожалейте наш сервер :о)
*/
'cache_lifetime' => 3600,
/**
* Если скачать базу ссылок не удалось, то следующая попытка будет через столько секунд
*/
'cache_reloadtime' => 600,
/**
* Если вдруг ваш сайт доступен и по IP - указывать обязательно
*/
'host' => '',
/**
* Если несколько сайтов в одной папке - указывать
*/
'multi_site' => false,
/**
* Способ подключения к удалённому серверу [file_get_contents|curl|socket]
*/
'fetch_remote_type' => '',
/**
* Сколько ждать ответа
*/
'socket_timeout' => 6,
/**
* Для отладочых целей показывает <-- check code -->
*/
'force_show_code' => false,
'debug' => false,
/**
* Регистронезависимый режим работы, использовать только на свой страх и риск
*/
'ignore_case' => false,
/**
* Путь к файлу с данными
*/
'db_file' => '',
/**
* Откуда будем брать uri страницы: $_SERVER['REQUEST_URI'] или getenv('REQUEST_URI')
*/
'use_server_array' => false,
'force_update_db' => false,
);
/**
* @var SAPE_client
*/
protected static $_client;
/**
*
*/
public function __construct()
{
if (null === ($sapeUser = $this->getOptions('sape_user'))) {
throw new InvalidArgumentException('Не указан SAPE_USER [48d640_ваш номер_74a70e6]');
}
if (!defined('_SAPE_USER')){
define('_SAPE_USER', $sapeUser);
}
require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');
}
/**
* @return SAPE_client
*/
public function getClient()
{
if (null === self::$_client) {
self::$_client = new SAPE_client($this->getOptions());
}
return self::$_client;
}
/**
* @return string
* @param integer $n
* @param integer $offset
*/
public function sape($n = null, $offset = 0)
{
$html = $this->getClient()->return_links($n, $offset);
/**
* Сбросим флаг, чтобы при каждом вызове
* (например, когда выводится линки в разных местах)
* база заново не высасывалась. Разочка хватит :)
*/
if ($this->getOptions('force_update_db')) {
$this->setOptions(array(
'force_update_db' => false
));
}
return $html;
}
public static function setOptions(array $options = array())
{
self::$_options = array_merge(self::$_options, $options);
}
public static function getOptions($optionKey = null)
{
if ($optionKey === null) {
return self::$_options;
}
if (isset(self::$_options[$optionKey]) === true) {
return self::$_options[$optionKey];
}
return null;
}
public function direct()
{
return $this->sape();
}
}