Drupal 6 и Sape
из рубрики Drupal от 31.Дек, 2008
Всех с наступающим, хорошего настроения вам. Сегодня был ап PR что добавляет еще больше позитива :]
Каждый друпальщик, продающий ссылки сталкивался с проблемой установки кода сапы или линкфида на свой сайт, работающий на в 6й версии drupal. Речь идет именно о ней, и возможно, о 7й, поскольку в 5й все работало нормально: можно было вставить код и в блоки и в шаблон. И даже был модуль специальный под сапу.
Кстати говоря, на drupal.ru один товарищ заявлял, что у него есть модуль для 6й версии, но что-то он мне его не дал, и вобще не отвечает на пм.
Я не знаю, точно, каким образом в друпале формируется код выводимой страницы, но думаю, что код каждого блока, сначала выводится в некий буфер, и после этого все собирается воедино. Потомучто созданый, в начале страницы, объект класса SAPE_client не доходит до следующего блока.
У такого способа формирования кода есть один несомненный плюс: например, вы сделали безпалевный блок «спонсоры» для размещения в нем ссылок. И если не одна ссылка для этой страницы не продана, то блок просто не будет отображаться. А в 5й версии он отображался и был пустым (исправлялось добавлением проверки на наличие ссылок).
Самый простой, нерациональный, но действенный способ подключения сапы или линкфида заключается в создании объектов класса SAPE_client или LinkfeedClient в каждом блоке, в котором вы собираетесь выводить проданные ссылки. Я продаю по 5 ссылок в 2х блоках. В одном — сапа, в другом — линкфид.
<?php
define ('_SAPE_USER', 'ccccccccccccccccccccccccccccccccccc');
require_once ($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');
$o['charset'] = 'UTF-8';
$sape = new SAPE_client ($o);
echo $sape->return_links (5);
?>
Кодировку, можно не казывать в блоке, а поменять в файле sape.php. В случае, если вы размещаете несколько блоков от одной биржи ссылок, то предыдущие ссылки надо пропустить.
<?php
define ('_SAPE_USER', 'ccccccccccccccccccccccccccccccccccc');
require_once ($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');
$o['charset'] = 'UTF-8';
$sape = new SAPE_client ($o);
$sape->return_links (5);
echo $sape->return_links ();
?>
Этот код довыведет оставшиеся ссылки, пропустив уже опубликованные.
Оставьте комментарий