Перейти к публикации

Рекомендованные сообщения

Привет всем,

подскажите пожалуйста, как реализовать контекстные ссылки c сапа на DLE,

что то я совсем не въехал как это сделать.

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

1) Для размещения контекстных ссылок на своем сайте, Вам в первую очередь потребуется обновить сервисный скрипт sape.php, скачать который можно в разделе «настройки» Вашей площадки.

Внимание: Вам достаточно стереть старый файл sape.php и записать на его место новую версию. После обновления sape.php обязательно удалите файл links.db (новый создастся автоматически через некоторое время) и удостоверьтесь в том, что на папку с кодом выставлены права доступа 777.

2) Следующим этапом необходимо обновить код вызова ссылок на страницы сайта.Для вашего удобства мы реализовали 2 варианта размещения кода отображения контекстных ссылок:

а) С использованием функции ob_get_contents()

Особенности:

- требует минимум усилий, для своего подключения

- удобен, если на страницах Вашего сайта присутствует множество текстовых блоков, в которых вы планируете размещать ссылки

- может не работать если на сайте используется gzip сжатие

- код вызова ссылок на страницы должен размещаться в самом начале php-файла, до вывода тега body в результирующий html-документ.

Последовательность действий:

Для корректной индексации страниц системой и для правильного отображения ссылок, в исходном коде тех страниц, на которых вы планируете размещать контекстные ссылки, добавьте в самое начало (до вывода тега body в результирующий html-документ) следующий код

<?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'));

?>
Важно: Если ранее у вас уже был установлен код для отображения обычных ссылок, то вам следует заменить в нем строчку кода кода:
define('_SAPE_USER', 'ваш_хеш_код');
на
if (!defined('_SAPE_USER')){

define('_SAPE_USER', 'ваш_хеш_код'); 

}
Далее Вам необходимо заключить в теги <sape_index> ... </sape_index> текстовые фрагменты страницы, внутри которых Вы планируете размещать ссылки. Важно: данные теги будут автоматически вырезаться на этапе обработки и не будут никому видны, кроме нашего робота-индексатора. б) С использованием функции replace_in_text_segment() Особенности: - вариант работает путем непосредственной передачи текстового фрагмента в функцию replace_in_text_segment() , что позволяет отказаться от проставления тегов sape_index - удобен при использовании шаблонных движков Последовательность действий: Для корректной индексации страниц системой и для правильного отображения ссылок, в исходном коде тех страниц, на которых вы планируете размещать контекстные ссылки, добавьте в самое начало (до вывода тега body в результирующий html-документ) следующий код:
<?php 

if (!defined('_SAPE_USER')){

define('_SAPE_USER', 'ваш_хеш_код'); 

}

require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php'); 

$sape_context = new SAPE_context();

?>
Важно: Если ранее у вас уже был установлен код для отображения обычных ссылок, то вам следует заменить фрагмет кода:
define('_SAPE_USER', 'ваш_хеш_код');
на
if (!defined('_SAPE_USER')){

define('_SAPE_USER', 'ваш_хеш_код'); 

}
Далее, перед выводом каждого фрагмента текста страницы, из которого Вы хотите продавать ссылки, необходимо предварительно обработать данный фрагмент функцией replace_in_text_segment. Пример:
			<?

			 $text = 'В данном фрагменте текста страницы моего сайта я хочу продавать контекстные ссылки';

			$text = $sape_context->replace_in_text_segment($text);

			echo $text;

			  ?>

Важно: функцию replace_in_text_segment нужно вызывать необходимое количество раз для каждого из отдельно расположенных на странице фрагментов текста, из которых Вы планируете продавать ссылки.

Важно: инициализирующая php-вставка должна располагаться в php-файле выше первого вызова функции replace_in_text_segment.

Важно: при использовании данного варианта кода вывода контекстных ссылок не требуется проставлять теги sape_index.

Ссылка на сообщение
Поделиться на других сайтах

И обычные и контекстные:

У меня продажа как обычных так и контекстных ссылок. Обычные разбиты на 3 блока. В index.php

Перед сторокй

$tpl->compile('main');
ставим
if (!defined('_SAPE_USER')){

define('_SAPE_USER', 'ваш_страшный_длинный_код_sape'); 

}

require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');

$o['host'] = 'http://www.ваш_домен.ru';

$sape = new SAPE_client($o);

$tpl->set('{links}', $sape->return_links(2));

$tpl->set('{links1}', $sape->return_links(2));

$tpl->set('{links2}', $sape->return_links());
В шаблон в места вывода ссылок ставим: В первое место:
{links}
во второе место
{links1}
в третье место
{links2}
В шаблоне fullstroy.tpl заменяем
{full-story}
на
<sape_index>{full-story}</sape_index>

Вуаля! (не знаю как по французски пишется :) )

Ссылка на сообщение
Поделиться на других сайтах

А у меня вторым способом, который "С использованием функции replace_in_text_segment()".

Стоял код обычных ссылок в index.php, я лишь добавил в modules/show.full.php перед строкой:

$tpl->set('{title}', $metatags['title']);
код с сайта SAPE:
if (!defined('_SAPE_USER')){

	define('_SAPE_USER', 'МОЙ_КОД'); 

}

require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php'); 

$sape_context = new SAPE_context();


$row['full_story'] = $sape_context->replace_in_text_segment($row['full_story']);

Вот и все :). Это будут ссылки появляться в тексте полной новости.

Изменено пользователем Zdraff
Ссылка на сообщение
Поделиться на других сайтах

А у меня вторым способом, который "С использованием функции replace_in_text_segment()".

Стоял код обычных ссылок в index.php, я лишь добавил в modules/show.full.php перед строкой:

$tpl->set('{title}', $metatags['title']);
код с сайта SAPE:
if (!defined('_SAPE_USER')){

	define('_SAPE_USER', 'МОЙ_КОД'); 

}

require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php'); 

$sape_context = new SAPE_context();


$row['full_story'] = $sape_context->replace_in_text_segment($row['full_story']);
Вот и все :). Это будут ссылки появляться в тексте полной новости.
А это
<sape_index>{full-story}</sape_index>

надо делать для такого способа отображения контекстных ссылок?

Ссылка на сообщение
Поделиться на других сайтах

А у меня вторым способом, который "С использованием функции replace_in_text_segment()".

Стоял код обычных ссылок в index.php, я лишь добавил в modules/show.full.php перед строкой:

$tpl->set('{title}', $metatags['title']);
код с сайта SAPE:
if (!defined('_SAPE_USER')){

	define('_SAPE_USER', 'МОЙ_КОД'); 

}

require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php'); 

$sape_context = new SAPE_context();


$row['full_story'] = $sape_context->replace_in_text_segment($row['full_story']);

Вот и все :). Это будут ссылки появляться в тексте полной новости.

У меня вообще при таком раскладе ошибка вылетает :(

Ссылка на сообщение
Поделиться на других сайтах

надо делать для такого способа отображения контекстных ссылок?

Это второй ихний способ

ты измени "МОЙ_КОД" на свой код

Ну это то уж наверно я не прозивал ;)

Еще в index.php после:

$tpl->load_template('main.tpl');
у меня висит код:
# Показ ссылок SAPE

if (!defined('_SAPE_USER')){

define('_SAPE_USER', 'мой_код'); 

}

require_once ROOT_DIR.'/'._SAPE_USER.'/sape.php';

$sape = new SAPE_client();

$tpl->set('{sape}', $sape->return_links());

# //Показ ссылок  SAPE

Ссылка на сообщение
Поделиться на других сайтах
  • 1 месяц спустя...

добрый день! прошу помощи! может я туплю или просто не понимаю принципа работы САПЕ! версия 7 (с ЧПУ), перечитал все на форуме, попробовал все варианты кода - ссылки не выводятся!

сделал так... залил нужную папку на сервер, поставил права...

в индекс.пхп поставил код перед $tpl->compile('main');

if (!defined('_SAPE_USER')){

define('_SAPE_USER', 'ххххххххххххххххххххх');

}

require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');

$o['host'] = 'sait.com';

$sape = new SAPE_client($o);

$tpl->set('{sape_links}', $sape->return_links(10));

кстати, вопрос! $o['host'] = 'sait.com'; писать с http или без? встречал разные варианты

В main.tpl вставил {sape_links}

В результате ничего не выводится... просмотр хтмл-кода показывает на месте тега {sape_links} пустое место

Еще такой момент... в админке САПЕ, в колонке ссылки стоит 0... может ссылки начнут появляться только тогда когда 0 поменяется на число?

вариант с удалением links.db пробовал - не помогло

Ссылка на сообщение
Поделиться на других сайтах

Еще такой момент... в админке САПЕ, в колонке ссылки стоит 0... может ссылки начнут появляться только тогда когда 0 поменяется на число?

Ссылки появляются только когда их у вас купят. А не сразу после установки.

Ссылка на сообщение
Поделиться на других сайтах

n0lik, т.е. у меня все сделано правильно? теперь мне просто ожидать покупки ссылок?

Да конечно.

Ссылка на сообщение
Поделиться на других сайтах

только я рекомендовал бы в контекст загонять только полные новости, короткие тоже норм, но потом она уедет на друзуя страницу и уйдет в error

Ссылка на сообщение
Поделиться на других сайтах

только я рекомендовал бы в контекст загонять только полные новости, короткие тоже норм, но потом она уедет на друзуя страницу и уйдет в error

Это правильно подмечено.

Ссылка на сообщение
Поделиться на других сайтах

Я понял почему не получалось как у Danila - у него всё нормально написано, главное нужно в index.php найдите строчку:

echo $tpl->result['main'];

и замените ее на

eval (' ?' . '>' . $tpl->result['main'] . '<' . '?php ');

Все, вы можете использовать сторонние скрипты на вашем сайте. Данных хак не рекомендуется к использованию на версиях ниже 3.0

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...