Вернуться   Форум SAPE.RU > Система SAPE.ru > Установка кода на различные движки

-->
Ответ
 
Опции темы
Старый 18.08.2012, 20:28   #1
Новичок
 
Регистрация: 11.07.2012
Сообщений: 3
Вес репутации: 0
pragmatik на пути к лучшему
По умолчанию Нюансы установки на 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.
pragmatik вне форума   Ответить с цитированием
Старый 18.08.2012, 22:12   #2
Добрый модератор
 
Аватар для zhegloff
 
Регистрация: 09.07.2007
Адрес: глобус Украины
Сообщений: 27,600
Вес репутации: 1025
zhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущее
По умолчанию

Цитата:
Сообщение от pragmatik Посмотреть сообщение
но это здоровый аскетизм и работает он от этого не хуже.
Не всегда


Цитата:
Сообщение от pragmatik Посмотреть сообщение
в) Ну и самое универсальное решение, озарившее меня несколько позже, с минимумом напряжения извилин и трат времени:
ставим плагин Modules Anywhere, создаем модуль для вставки произвольного html, втыкаем в него теги исключения для используемого нами плагина экранирования, а между ними при помощи Modules Anywhere вставляем модуль сапы - дешево и сердито.
Проще поставить mod_php и прописать в него код сапы
__________________
Установка кода сапы от $9.95. Пишите в личку.
Правильный хостинг.
В личке бесплатно не отвечаю обычно.
zhegloff вне форума   Ответить с цитированием
Старый 21.01.2013, 08:24   #3
Новичок
 
Регистрация: 21.01.2013
Сообщений: 5
Вес репутации: 0
webcrassula нам пока неизвестен
По умолчанию

Цитата:
Сообщение от zhegloff Посмотреть сообщение

Проще поставить mod_php и прописать в него код сапы
Правда? Хотелось бы знать как это делается. Ну или почитать хотя бы где-нибудь.
webcrassula вне форума   Ответить с цитированием
Старый 21.01.2013, 11:02   #4
Добрый модератор
 
Аватар для zhegloff
 
Регистрация: 09.07.2007
Адрес: глобус Украины
Сообщений: 27,600
Вес репутации: 1025
zhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущееzhegloff - прекрасное будущее
По умолчанию

Цитата:
Сообщение от webcrassula Посмотреть сообщение
Правда? Хотелось бы знать как это делается. Ну или почитать хотя бы где-нибудь.
Что именно почитать? Как устанавливать плагины в жумлу?
__________________
Установка кода сапы от $9.95. Пишите в личку.
Правильный хостинг.
В личке бесплатно не отвечаю обычно.
zhegloff вне форума   Ответить с цитированием
Старый 27.02.2013, 21:12   #5
Новичок
 
Регистрация: 19.02.2013
Сообщений: 2
Вес репутации: 0
imsprice на пути к лучшему
Отправить сообщение для imsprice с помощью ICQ
По умолчанию модуль 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;
?>
Добавлено через 2 часа 37 минут
Цитата:
Сообщение от imsprice Посмотреть сообщение
пожалуйста проверьте правильно ли я изменил файл mod_sape.php для модуля sape на joomla 2.5 или надо изменить что то еще так как плагин disallow все равно закрывает ссылки sape. Ниже измененный код файла mod_sape.php Измененный участок в коде выделен красным
Код:
<?php
............................
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;
?>
Сам нашел решение на joomlaforum.
Надо добить строчку
$out_text = '<allow>'.$out_text.'</allow>';
в вышеприведенном коде перед
echo $out_text;
а все остальное в файле
public_html/modules/mod_sape/mod_sape.php оставить как есть

Последний раз редактировалось imsprice; 27.02.2013 в 21:14. Причина: Добавлено сообщение
imsprice вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема установки кода на 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.