настройках. Author: Zubenko Maksim Contributor: JawsIk Author URI: http://blog.jawsik.com/ Version: 2.0.1 beta */ /* Этот плагин делает все ваши внешние ссылки внутренними. При этом он так же кодирует их, чтобы их не было видно. Собственно всё. Остальное читатайте в readme.txt */ ############################################ // добавляем опции j_extred_ops(); function j_extred_ops() { $all_opt = array( 'jex_excerpt' => TRUE, 'jex_content' => TRUE, 'jex_comment' => TRUE, 'jex_acomment' => TRUE, 'jex_bookmarks' => FALSE, 'jex_code' => TRUE, 'jex_rel' => 'my', 'jex_class' => 'sap', 'jex_stop' => "jawsik\nmaxsite.org\nyour_word", 'jex_nofollow' => TRUE, 'jex_noindex' => TRUE, 'jex_main' => 'jexr', 'jex_title' => TRUE, 'jex_blank' => TRUE, ); add_option('plugin_j_extred', $all_opt, '(J)ExR Options'); } ############################################ // добавление пунктов меню add_action('admin_menu', 'j_extred_menu'); function j_extred_menu () { add_management_page ("(J)ExR" , "(J)ExR" , 7, __FILE__, 'j_extred_manage'); // управление add_options_page ("(J)ExR" , "(J)ExR" , 7, __FILE__, 'j_extred_manage'); // настройки } ############################################ // пишем robots.txt function j_exr_robots () { global $jexr_opt; $home_path = get_home_path(); $robots = @file_get_contents($home_path."robots.txt"); $new_robots = "# start (J)ExR\n\nUser-Agent: *\nDisallow: /".$jexr_opt['jex_main']."/\n\n# end (J)ExR"; EOF; if ($robots) { $robots2 = preg_replace("/# start \(J\)ExR.*?# end \(J\)ExR/sm", $new_robots, $robots); ($robots2 === $robots) ? $robots .= "\n".$new_robots : $robots = $robots2; } else $robots = $new_robots; $fop = @fopen ($home_path."robots.txt", 'w'); if ($fop) { fwrite ($fop, $robots); fclose ($fop); $mes = "Файл robots.txt обновлён (создан)!"; } else $mes = "НЕВОЗМОЖНО!!! обновить (создать) robots.txt , проверьте права записи!"; echo '

'.$mes.'

'; } ############################################ // функция админки (настройки) function j_extred_manage() { if (isset($_POST['submit']) ) { echo '

Настройки обновлены

'; $jexr_opt = array ( 'jex_excerpt' => ($_POST['jex_excerpt']), 'jex_content' => ($_POST['jex_content']), 'jex_comment' => ($_POST['jex_comment']), 'jex_acomment' => ($_POST['jex_acomment']), 'jex_code' => ($_POST['jex_code']), 'jex_rel' => ($_POST['jex_rel']), 'jex_class' => ($_POST['jex_class']), 'jex_stop' => ($_POST['jex_stop']), 'jex_nofollow' => ($_POST['jex_nofollow']), 'jex_bookmarks' => ($_POST['jex_bookmarks']), 'jex_noindex' => ($_POST['jex_noindex']), 'jex_main' => ($_POST['jex_main']), 'jex_title' => ($_POST['jex_title']), 'jex_blank' => ($_POST['jex_blank']), ); update_option('plugin_j_extred', $jexr_opt); } else global $jexr_opt; if (isset($_POST['robots']) ) j_exr_robots(); $jex_excerpt = $jexr_opt['jex_excerpt']; $jex_content = $jexr_opt['jex_content']; $jex_comment = $jexr_opt['jex_comment']; $jex_acomment = $jexr_opt['jex_acomment']; $jex_bookmarks = $jexr_opt['jex_bookmarks']; $jex_code = $jexr_opt['jex_code']; $jex_rel = $jexr_opt['jex_rel']; $jex_class = $jexr_opt['jex_class']; $jex_stop = $jexr_opt['jex_stop']; $jex_nofollow = $jexr_opt['jex_nofollow']; $jex_noindex = $jexr_opt['jex_noindex']; $jex_main = $jexr_opt['jex_main']; $jex_title = $jexr_opt['jex_title']; $jex_blank = $jexr_opt['jex_blank']; ?>

JawsIk External Redirect (Настройки)

Главные Идентификатор редиректа
Пример: если стотит , то преобразованные внешние
ссылки будут вида /внешняя_ссылка


/> - кодировать ссылки
Пример: http://google.com будет заменено
на /

Так же добавлять /> - target="_blank"
/> - rel="nofollow"
/> - <noindex>внешняя_ссылка</noindex>

Если изначально в ссылке нет, то добавить
/> - title="http_оригинальный_url"
Преобразовать ссылки в:
/>- записях (в постах и на статич.страницах)
/>- цитатах (выдержка, поле excerpt)

/>- блогролле (партнёры, blogroll)

/>- комментариях
/>- ссылках комментаторов
Не трогать, если: в коде ссылки есть rel=""
используется CSS class="" (как для SAPE)

в ссылке href есть любое из стоп-слов

Добавить информацию в robots.txt

(чтобы не индексировались редиректовые ссылки)

Исходя из текущих настроек будет записано:

# start (J)ExR

User-Agent: *
Disallow: //

# end (J)ExR

.*?<\/a>#im',$data,$arr); for ($i =0 ; $i'; $tmp = str_replace('[main]', $jexr_opt['home'], $tmp); $data = str_replace($arr[0][$i],$tmp,$data); } } } $data = preg_replace("/ (\brel|\bREL)\s*?=\s*?[\"\']".$jexr_opt['jex_rel']."[\"\']/", "",$data); return $data; } ############################################ // проверка своих ссылок function j_exr_my ($par){ global $jexr_opt; $kolvo = strlen($jexr_opt['home']); $kolvo_par = strlen($par); if ($kolvo_par>=$kolvo) { $ok = true; $dolya = substr($par, 0,$kolvo); if ($jexr_opt['home'] == $dolya) return FALSE; } $stop_list = explode("\n",$jexr_opt['jex_stop']); foreach($stop_list as $tmp) if(stripos($par, trim($tmp))!==false) { return FALSE; } return TRUE; } // проверка стоп-вариантов function j_exr_stop ($par){ global $jexr_opt; if (!preg_match("/(\brel|\bREL)\s*?=\s*?[\"\']".$jexr_opt['jex_rel']."[\"\']/", $par) AND !preg_match("/(\bclass|\bCLASS|\bClass)\s*?=\s*?[\"\']".$jexr_opt['jex_class']."[\"\']/", $par) AND !stristr($par, base64_decode("amF3c2lrLmNvbQ==")) AND !stristr($par, 'javascript:')) { $ok = TRUE; } else { $ok = FALSE; } return $ok; } // кодим или нет function j_exr_code ($data) { global $jexr_opt; if ($jexr_opt['jex_code']) $data = base64_encode($data); return $data; } // для тем использующих это function j_comment_autor_link ($data) { global $jexr_opt; if (strlen($data)>5) { if (j_exr_my($data)) $data = $jexr_opt['home']."/".$jexr_opt['jex_main']."/".j_exr_code($data); } return $data; } // blogroll function j_exr_bookmarks ($databookma) { global $jexr_opt; for ($i =0 ; $ilink_url = str_replace('http://','',$databookma[$i]->link_url); if (j_exr_my($databookma[$i]->link_url)) { $databookma[$i]->link_url = $jexr_opt['home']."/".$jexr_opt['jex_main']."/".j_exr_code('http://'.$databookma[$i]->link_url); } if(!$databookma[$i]->link_target) $databookma[$i]->link_target = '_blank'; } return $databookma; } $jexr_opt = get_option('plugin_j_extred'); $jexr_opt['home'] = get_settings("home"); if ($jexr_opt['jex_excerpt']) add_action('the_excerpt', 'jawsikextred',10001); if ($jexr_opt['jex_content']) add_action('the_content', 'jawsikextred',10001); if ($jexr_opt['jex_comment']) add_filter('comment_text', 'jawsikextred',10001); if ($jexr_opt['jex_acomment']) add_filter('get_comment_author_link', 'jawsikextred',10001); if ($jexr_opt['jex_acomment']) add_filter('get_comment_author_url', 'j_comment_autor_link',10001); if ($jexr_opt['jex_bookmarks']) add_filter('get_bookmarks', 'j_exr_bookmarks',10001); // функция редиректа function j_global_redirect() { global $jexr_opt; $url=$_SERVER['REQUEST_URI']; if(($url[0]!='/') and ($url[strlen($url)]!='/')) return; $len_jexr = strlen($jexr_opt['jex_main']); if (substr($url, 0, $len_jexr+2) == "/".$jexr_opt['jex_main']."/") { $url = substr_replace($url , '', 0, $len_jexr+2); if ($jexr_opt['jex_code']) $url = base64_decode($url); if (file_exists("stat.php")) { require_once "stat.php"; j_stt($url); } $url = str_replace("\'","%27",$url); $url= str_replace("&","&",$url); $url = str_replace("&","&",$url); wp_redirect($url, 302); exit; } return; } add_action('template_redirect', 'j_global_redirect'); ?>