Использование тега leech

Использование тега leech

Тег [leech] позволяет скрыть URL той или иной ссылки на сайте, а также препятствует ее индексации. Но вся загвоздка в том, что этот тег работает только в краткой и полной новостях. Для использования его в других файлах шаблонов поможет хак.


Установка:
1. Открыть engine/modules/main.php и найти:
echo $tpl->result['main'];

Добавить выше:
/*
	Использование тега [leech] ([leech_template]) в шаблоне сайта
	Автор: Артем Малков
	URL: https://www.pandoge.com/haki/ispolzovanie-tega-leech-v-shablone-v-dle
*/

function check_home_leech_template($url) {

	global $config;

	$url = strtolower(@parse_url($url, PHP_URL_HOST));
	$value = strtolower(@parse_url($config["http_home_url"], PHP_URL_HOST));

	if(!$value) {
		$value = $_SERVER["HTTP_HOST"];
	}

	if(!$url) {
		return true;		
	}

	if($url != $value) {
		return false;
	} else {
		return true;
	}

}

function leech_template($url) {

	global $config;

	$url = strip_tags(trim(stripslashes(html_entity_decode($url, ENT_QUOTES, $config["charset"]))));
	$url = str_replace('\"', '"', $url);
	$url = str_replace("'", "", $url);
	$url = str_replace('"', "", $url);
	$url = str_replace("o", "o", $url);
	$url = preg_replace("/jаvascript(.*?):/i", "javascript:", $url);
	$url = preg_replace("/dаta(.*?):/i", "data:", $url);
	$url = htmlspecialchars($url, ENT_QUOTES, $config['charset']);
	$url_array = parse_url($url);

	if($url_array["scheme"] && !in_array($url_array["scheme"], array("http", "https", "mailto", "ftp", "nntp", "news", "tel"))) {
		return "";
	}
		
	if(stripos($url, "engine/go.php") !== false || (check_home_leech_template($url) && stripos($url, "do=go") !== false)) {		
		return "";	
	}
		
	$url = str_replace("&", "&", $url);
	$url = str_ireplace("document.cookie", "document.cookie", $url);
	$url = str_replace(" ", "%20", $url);
	$url = str_replace("<", "&#60;", $url);
	$url = str_replace(">", "&#62;", $url);
	$url = str_replace(array("{", "}", "[", "]"), array("%7B", "%7D", "%5B", "%5D"), $url);
	$url = preg_replace("/javascript:/i", "j&#1072;vascript:", $url);
	$url = preg_replace("/data:/i", "d&#1072;ta:", $url);

	if(stripos($url, $config["admin_path"] ) !== false) {
		return $url;
	}
		
	if(stripos($url, "engine/go.php") !== false || (check_home_leech_template($url) && stripos($url, "do=go") !== false)) {		
		return $url;	
	}

	if(!preg_match("#^(http|https|ftp|nntp|news)://#", $url) && !preg_match("#^(tel):#", $url) && $url[0] != "/" && $url[0] != "#") {		
		$url = "http://".$url;	
	}

	if($url == "http://") {		
		return $url;	
	}

	return $config["http_home_url"]."index.php?do=go&url=".rawurlencode(base64_encode($url));
}

$tpl->result["main"] = preg_replace_callback(
	"#\[(leech_template)\](\S.+?)\[/leech_template\]#i", function($match) {
		return leech_template($match[2]);
	},
	$tpl->result["main"]
);

2. В нужное место любого шаблона добавить [leech_template], например:
<a href="[leech_template]http://site.ru[/leech_template]" rel="nofollow" target="_blank">Ссылка leech</a>

Готово!
 
Версия DLE: 13.1
Автор: Артём Мáлков
Источник
Информация
Посетители, находящиеся в группе Гость, не могут оставлять комментарии к данной публикации.