Улучшаем размещение SAPE на форумах PHPBB
21 сентября 2007Прошёл тестовый переод работы нового метода размещения ссылочных блоков SAPE на многострадальном форуме.
Сейчас объясню в чём вообще заключается этот метод. Пообщавшись с тов. Forall с phpbbguru выяснил, что администрация SAPE высказала некое пожелание, о разнесении ссылочных блоков на форумах в разные места, чтобы поисковикам было сложнее определять сайты, с которых производится продажа, а следовательно и уменьшить вероятность попадания в непот (а вы уже слышали, что авто-непот постраничен?). После этого я и решил провести небольшую модернизацию способа размещения ссылок.
Теперь в футере ссылки можно расставлять так - как душе угодно, выбирая место и количество.
И, чтобы не нервировать честных зарегистрированных пользователей, ввел проверку на залогиненность - вошёл на форум под своим паролем - чистый блок ссылок, зашёл гостем (или если ты поисковик/краулер) - извольте наблюдать ссылки. Да, думаю это немного не честно и господа из Сапы за это по головке не погладят, но ведь мы же им не скажем? Так что тсссс…
Как и что нужно поменять, чтобы разместить ссылки в разных местах хедера/футера?
1. Открыть файл overall_header.tpl или overall_footer.tpl (хэдер и футер соответственно, думаю это понятно)
2. В нужных местах разместить блоки сапы. Читайте внимательно какие и как размещать.
Блок выглядет так {SAPEx}, где х - число ссылок, которое должно выводиться в этом месте. Т.е. если хочется, чтобы стояло 2 ссылки, то пишем {SAPE2}.
Учтите, что если на странице куплена всего 1 ссылка , то она выведется в первом блоке, а если ссылок больше, чем вы указали в числовых значениях, они всё равно будут выведены в последнем блоке {SAPEx}, какой бы вы x не указали.
3. Теперь открываем page_header.php или page_tail.php из директории include и, как и раньше, после строки global $do_gzip_compress; добавляем код
define('_SAPE_USER', 'ваш_длинный_но_важный_код');
require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');
$sape = new SAPE_client();
4. Прокручиваем страницу вниз и перед строчкой
$template->pparse('overall_footer');
добавляем
if(($userdata['session_logged_in'] == 0) or (!isset($userdata['session_logged_in']))){
$footercode = file_get_contents($template->files['overall_footer']);
preg_match_all('#\{(SAPE([0-9]+))\}#is', $footercode, $varrefs);
for ($i=1; $ireturn_links(intval($varrefs[2][$i-1]));
$template->assign_var($varrefs[1][$i-1], $sapelinks);
}
$template->assign_var($varrefs[1][$i-1], $sape->return_links());
}
надеюсь вам хватит воображения заменить footer на header, если вы решили размещать ссылки вверху
5. Проверяем.
Если хочется быть очень честными и показывать ссылки всем-всем-всем, то просто убираем первую строку
if(($userdata['session_logged_in'] == 0) or (!isset($userdata['session_logged_in']))){
и последнюю закрывающую скобку.
Да-да, знаю, что толку от этого не так много, как хотелось бы, потому что всё равно размещение ссылок ограничено верхом и низом форума, но как говорится “мы работаем над этим”. К тому же (идёя всё того же Forall), надо бы проверять длинну ссылок, чтобы не разъезжался дизайн и так далее.
В общем планов хватает. Подписывайтесь на RSS и следите за дальнейшими новостями.


