18.08.2012, 20:28 | #1 |
Новичок
Регистрация: 11.07.2012
Сообщений: 3
Вес репутации: 0
|
Нюансы установки на Joomla
Эта тема - дополнение темы, рассказывающей как установить код Sape на движок Joomla.
Здесь рассматриваются два таких интересных вопроса, как: 1. установка Sape, при работающих плагинах для экранирования ссылок 2. установка Sape на страницы с кириллическими фрагментами в URL по мере всплывания новых нюансов тему планируется дополнять Добавлено через 32 секунды Установка модуля Sape параллельно с плагинами для экранирования внешних ссылок О плагинах для экранирования: Предположим у нас есть ресурс с кучей ссылок на внешние сайты, и мы по всем нам понятным причинам не хотим, чтобы эти ссылки индексировались, тогда мы ставим один из нескольких плагинов. Наиболее популярны в ruсскоязычном сегменте: Disallow - с ним я не работал, судя по описаниям экранирует все внешние ссылки (которые не обрамлены парным тегом <allow></allow>) extlinks - пользуюсь долгое время (плагин от Леонида Тушова, экранирует все внешние ссылки, которые не обрамлены парным тегом <noextlinks></noextlinks>), есть возможность редиректа типа http://site?go=, глюков замечено не было, единственный минус на мой взгляд - отсутствие возможности прописать сайт исключение (а это очень актуально для сайтов на кириллице, поскольку url в punikode и без воспринимаются как два разных сайта, т.е. экранирует ссылки на самого себя) jseoplugin - тот же extlinks, от того же Тушова, с рядом добавленных функций (возможность прописать несколько доменов, которые не нужно экранировать, прописать тайтл, задать параметры индексирования) - на одном из сайтов он у меня глючил, менял местами соседние ссылки, в то время как extlinks на том же сайте работал корректно О вариантах установки модуля Sape при работающих экранирующих плагинах: Из описания экранирующих плагинов очевидно, что нужно нам сделать так, чтобы код модуля Sape выводился между парных тегов исключения установленного плагина для экранирования. Какие могут быть решения: а) Поначалу, я и другие энтузиасты пытались редактировать код модулей Sape (вот мой вариант решения для плагина extlinks и модуля сапы от lucik, а вот пост мучавшегося с плагином Disallow, которому указали на мое решение, но он утверждал, что не помогло). В любом случае понятия "создатель сайта на joomla" и "человек способный разобраться в коде" не всегда тождественны, поэтому способ с редактированием кода чужого модуля не лучшее решение. б) Если Вы используете плагины jseoplugin или extlinks, то имеет смысл использовать специальный модуль для Sape от их создателя, в котором теги исключения уже прописаны. Настроек, конечно, меньше, чем в модуле от lucik, но это здоровый аскетизм и работает он от этого не хуже. в) Ну и самое универсальное решение, озарившее меня несколько позже, с минимумом напряжения извилин и трат времени: ставим плагин Modules Anywhere, создаем модуль для вставки произвольного html, втыкаем в него теги исключения для используемого нами плагина экранирования, а между ними при помощи Modules Anywhere вставляем модуль сапы - дешево и сердито. И еще один маааленький нюанс использования экранирующих плагинов: Вы счастливы, что ссылки рекламодателей добавляются на сайт и не экранируются, вы их видите на нужных страницах, однако, система сапы выдает errorы. В чём причина? Не знаю как обстоит дело с остальными плагинами, но при использовании extlinks причиной может стать функция добавления target="_blank". Если она включена и ссылка уже имеет target="_blank", то тупо дописывается второй и это воспринимается системой как "изменение ссылки". Казалось бы, достаточно выключить в настройках плагина экранирование при помощи target="_blank" и тогда останется один который шел в комплекте с ссылкой.. Как бы не так! У нас же код модуля заключен в </noextlinks>. А у плагина всего один алгорим исключения, т.е. он встречает тег <noextlinks> и начинает вырезать все noindex и target="_blank" пока не дойдет до </noextlinks>. Т.е. ссылка остается без единого target="_blank", а сапа это тоже воспринимает как изменение ссылки. Выхода 2: писать дополнительный алгоритм исключения или лезть в код плагина и убирать из алгоритма для обработки исключения функцию вырезания target="_blank". Дабы не говорили, что я сочиняю насчет target="_blank": Добавлено через 1 минуту Нюанс установки модулей Sape на страницы с кириллическими фрагментами в URL Есть замечательный плагин тегов для джумлы, который образует страницы вида /tag/имя-тега При использовании модуля сапы от lucik я столкнулся с тем, что он на страницах типа /tag/кириллическое-имя-тега отображал проверочный код сапы, однако не отображал заказанную рекламу.. Почему это происходит и от чего зависит я не знаю и разбираться лень, поскольку модуль для Sape от Тушова подобной проблемы не создает я пользуюсь им. Если кто опишет решение для модуля от lucik - добавлю его в этот пост. Последний раз редактировалось zhegloff; 04.09.2012 в 13:45. |
18.08.2012, 22:12 | #2 | |
Добрый модератор
Регистрация: 09.07.2007
Адрес: глобус Украины
Сообщений: 27,600
Вес репутации: 1025
|
Не всегда
Цитата:
__________________
Правильный хостинг. В личке бесплатно не отвечаю обычно. |
|
21.01.2013, 08:24 | #3 |
Новичок
Регистрация: 21.01.2013
Сообщений: 5
Вес репутации: 0
|
|
21.01.2013, 11:02 | #4 |
Добрый модератор
Регистрация: 09.07.2007
Адрес: глобус Украины
Сообщений: 27,600
Вес репутации: 1025
|
Что именно почитать? Как устанавливать плагины в жумлу?
__________________
Правильный хостинг. В личке бесплатно не отвечаю обычно. |
27.02.2013, 21:12 | #5 | |
Новичок
|
модуль sape и disallow
пожалуйста проверьте правильно ли я изменил файл mod_sape.php для модуля sape на joomla 2.5 или надо изменить что то еще так как плагин disallow все равно закрывает ссылки sape. Ниже измененный код файла mod_sape.php Измененный участок в коде выделен красным
Код:
<?php // ensure this file is being included by a parent file defined( '_JEXEC' ) or die( 'Direct Access to this location is not allowed.' ); //defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' ); $sp_sape_user = trim($params->get( 'sp_sape_user' )); $sp_fetch_remote_type = trim($params->get( 'sp_fetch_remote_type' )); $sp_charset = trim($params->get( 'sp_charset' )); $sp_redirect_url = trim($params->get( 'sp_redirect_url' )); $sp_show_header = trim($params->get( 'sp_show_header' )); $sp_debug_mode = trim($params->get( 'sp_debug_mode' )); $sp_link_count = trim($params->get( 'sp_link_count' )); $sp_force_show_code = trim($params->get( 'sp_force_show_code' )); $sp_verbose = trim($params->get( 'sp_verbose' )); $sp_debug = trim($params->get( 'sp_debug' )); $sp_show_nolinks = trim($params->get( 'sp_show_nolinks' )); $sp_nolinks = trim($params->get( 'sp_nolinks' )); $moduleclass_sfx = $params->get( 'moduleclass_sfx' ); $sp_hide_empty = trim($params->get( 'sp_hide_empty' )); $sp_show_host = trim($params->get( 'sp_show_host' )); $sp_show_host_text = trim($params->get( 'sp_show_host_text' )); $sp_show_document_root= trim($params->get( 'sp_show_document_root' )); if (!empty($sp_show_document_root)){ $_SERVER['DOCUMENT_ROOT']=$sp_show_document_root; } //$sp_server= $params->get( 'sp_server' ); $out_text=''; if (!defined('MOD_SAPE_USER')){ unset($sape_option); switch ($sp_fetch_remote_type) { case "1" : $sape_option['fetch_remote_type']= 'file_get_contents'; break; case "2" : $sape_option['fetch_remote_type']= 'curl'; break; case "3" : $sape_option['fetch_remote_type']= 'socket'; break; } switch ($sp_charset) { case "1" : $sape_option['charset']= 'CP1251'; break; case "2" : $sape_option['charset']= 'UTF-8'; break; } if ($sp_force_show_code==='2'){ $sape_option['force_show_code'] = true; } if ($sp_verbose==='2'){ $sape_option['verbose'] = true; } if ($sp_debug==='2'){ $sape_option['debug'] = true; } if ($sp_show_host==='1' and isset($sp_show_host_text)){ $sape_option['host'] = $sp_show_host_text; } if ($sp_redirect_url==='1' and isset($_SERVER['REDIRECT_URL'])){ $sape_option['request_uri'] = $_SERVER['REDIRECT_URL']; } if ($sp_redirect_url==='2' and isset($_SERVER['SCRIPT_URL'])){ $sape_option['request_uri'] = $_SERVER['SCRIPT_URL']; } //getenv('REQUEST_URI') if ($sp_redirect_url==='3' and !is_null(getenv('REQUEST_URI'))){ $sape_option['request_uri'] = getenv('REQUEST_URI'); } if ($sp_redirect_url==='4' and isset($_SERVER['HTTP_X_REWRITE_URL'])){ $sape_option['request_uri'] = $_SERVER['HTTP_X_REWRITE_URL']; } global $mod_sape_return_links; global $mod_sape_debug_count; $mod_sape_debug_count=1; if (!file_exists($_SERVER['DOCUMENT_ROOT'].'/'.$sp_sape_user.'/sape.php')){ $out_text.="<h1>Внимание!!! Файл sape.php не обнаружен. Проверьте правильность установки кода Sape.</h1>"; } else { define('MOD_SAPE_USER', $sp_sape_user); if (!defined('_SAPE_USER')){ define('_SAPE_USER', $sp_sape_user); } require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php'); if (isset($sape_option)) { $mod_sape_return_links = new SAPE_client($sape_option); } else{ $mod_sape_return_links = new SAPE_client(); } } }else{ global $mod_sape_return_links; global $mod_sape_debug_count; $mod_sape_debug_count++; } if ($sp_debug_mode==='1' or $sp_debug_mode==='2' or $sp_debug_mode==='3'){ if ($sp_link_count==='0'){ $sp_link_count_st='Все'; } else{ $sp_link_count_st=$sp_link_count; } $out_text.="<h1>Отладка Модуль №$mod_sape_debug_count Ссылок: $sp_link_count_st</h1>"; $out_text.='<p align="left">Проверка серверных путей: </p>'; $out_text.='<hr />'; if (isset($sape_option['request_uri'])) { $out_text.='<p align="left">Request_uri сформирован и передается в модуль sape: <b>'.$sape_option['request_uri'].'</b></p><hr />'; } if (isset($_SERVER['REQUEST_URI'])) { $out_text.='<p align="left">$_SERVER[\'REQUEST_URI\'] сформирован: <b>'.$_SERVER['REQUEST_URI'].'</b></p><hr />'; } if (isset($_SERVER['REDIRECT_URL'])) { $out_text.='<p align="left">$_SERVER[\'REDIRECT_URL\'] сформирован: <b>'.$_SERVER['REDIRECT_URL'].'</b></p><hr />'; } if (isset($_SERVER['SCRIPT_URL'])) { $out_text.='<p align="left">$_SERVER[\'SCRIPT_URL\'] сформирован: <b>'.$_SERVER['SCRIPT_URL'].'</b></p><hr />'; } if (!is_null(getenv('REQUEST_URI'))) { $out_text.='<p align="left">getenv(\'REQUEST_URI\') сформирован: <b>'.getenv('REQUEST_URI').'</b></p><hr />'; } if (isset($_SERVER['HTTP_X_REWRITE_URL'])) { $out_text.='<p align="left">$_SERVER[\'HTTP_X_REWRITE_URL\'] сформирован: <b>'.$_SERVER['HTTP_X_REWRITE_URL'].'</b></p><hr />'; } if ($sp_debug_mode==='2' or $sp_debug_mode==='3'){ $sape_host='dispenser-01.sape.ru'; $path='/code.php?user='._SAPE_USER.'&host=' . $_SERVER['HTTP_HOST']; $user_agent='mod_sape Testing (http://soft.vomske.ru)'; $out_text.='<p align="left">Функция file_get_contents: <b>'.(function_exists('file_get_contents')==1?'Да':'Нет').'</b></p>'; $out_text.='<p align="left">Функция file_get_contents allow_url_fopen: <b>'.(ini_get('allow_url_fopen')==1?'Да':'Нет').'</b></p>'; if (function_exists('file_get_contents')==1){ $data = @file_get_contents('http://'.$sape_host.$path); $out_text.='<p align="left">Проверка загрузки через file_get_contents: <b>'.($data?'Да':'Нет').' - '.strlen($data).'</b></p>'; } $out_text.='<hr />'; $out_text.='<p align="left">Функция curl_init: <b>'.(function_exists('curl_init')==1?'Да':'Нет').'</b></p>'; if (function_exists('curl_init')==1){ $data=''; if ($ch = @curl_init()) { @curl_setopt($ch, CURLOPT_URL, 'http://' . $sape_host . $path); @curl_setopt($ch, CURLOPT_HEADER, false); @curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); @curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); @curl_setopt($ch, CURLOPT_USERAGENT, $user_agent); $data = @curl_exec($ch); @curl_close($ch); } $out_text.='<p align="left">Проверка загрузки через curl_init: <b>'.($data?'Да':'Нет').' - '.strlen($data).'</b></p>'; } $out_text.='<hr />'; $out_text.='<p align="left">Функция fsockopen: <b>'.(function_exists('fsockopen')==1?'Да':'Нет').'</b></p>'; if (function_exists('fsockopen')==1){ $data=''; $buff = ''; $fp = @fsockopen($sape_host, 80, $errno, $errstr, 30); if ($fp) { @fputs($fp, "GET {$path} HTTP/1.0\r\nHost: {$sape_host}\r\n"); @fputs($fp, "User-Agent: {$user_agent}\r\n\r\n"); while (!@feof($fp)) { $buff .= @fgets($fp, 128); } @fclose($fp); $page = explode("\r\n\r\n", $buff); $data=$page[1]; } $out_text.='<p align="left">Проверка загрузки через fsockopen: <b>'.($data?'Да':'Нет').' - '.strlen($data).'</b></p>'; } $out_text.='<hr />'; } if ($sp_debug_mode==='3'){ $out_text.='<pre>'; $out_text.='_ENV '.print_r($_ENV,true); $out_text.='_SERVER '.print_r($_SERVER,true); $out_text.='</pre>'; } } unset($sape_option); if (defined('MOD_SAPE_USER')){ if ($sp_link_count==='0'){ $echo_link=$mod_sape_return_links->return_links(); } else{ $echo_link=$mod_sape_return_links->return_links($sp_link_count); } } if (($sp_hide_empty==='1') and preg_match("/^<!--.+-->$/",$echo_link)){ $echo_link=''; } if ($sp_show_nolinks==='1' and ($echo_link=='' or preg_match("/^<!--.+-->$/",$echo_link))){ $echo_link.=$sp_nolinks; } if ($sp_charset===1){ $out_text=iconv('utf-8', 'cp1251', $out_text); } if ($sp_show_header==='1'){ if (preg_match("/^<!--.+-->$/",$echo_link) or trim($echo_link)===''){ $out_text.=$echo_link; } else{ $out_text.='<allow><table cellpadding="0" cellspacing="0" class="moduletable'.$moduleclass_sfx.'"><tr><th valign="top">'.$module->title.'</th></tr>'; $out_text.='<tr><td>'.$echo_link.'</tr></td></table></allow>'; } } else { $out_text.=$echo_link; } echo $out_text; ?> Цитата:
Надо добить строчку $out_text = '<allow>'.$out_text.'</allow>'; в вышеприведенном коде перед echo $out_text; а все остальное в файле public_html/modules/mod_sape/mod_sape.php оставить как есть Последний раз редактировалось imsprice; 27.02.2013 в 21:14. Причина: Добавлено сообщение |
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблема установки кода на Joomla | vyve | Установка кода на различные движки | 3 | 01.03.2012 12:50 |
Индексация сайта свои нюансы | onixsonic | Google, MSN, Yahoo | 49 | 16.12.2011 19:15 |
Нюансы определения УВ роботом сапы | Squidward | Вопросы по работе системы | 6 | 08.07.2011 22:11 |
Раскрутка статьями. Нюансы | ramnek | Вопросы от новичков | 9 | 23.12.2008 19:28 |
Продвижение в разных поисковых системах - в чем нюансы? | Genek | Общие вопросы оптимизации | 6 | 08.10.2008 05:53 |
Часовой пояс GMT +3, время: 22:11.