Быстрый и надёжный хостинг на SSD-дисках от 165р в месяц   •   Реклама
757 просм
5 комм
Поделиться:

Использование тега [leech] в шаблоне в DLE

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

Поискав информацию в Интернете на этот счет, я обнаружил, что должной и готовой реализации нет, поэтому с радостью предоставляю вам свой вариант решения этого вопроса.

1. Подключитесь к вашему сайту по FTP.

2. Откройте файл main.php в папке /engine/modules/.

3. Найдите строку:

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"]
);

Сохраните изменения и отправьте файл обратно на сайт.

4. Очистите кэш сайта. Установка закончена.

Теперь в шаблоне вашего сайта будет доступен тег [leech_template]. Он (обратите внимание) возвращает вам чистый, закодированный URL для использования его в теге <a>.

Пример использования:

<a href="[leech_template]https://www.pandoge.com[/leech_template]" rel="nofollow" target="_blank">Тестовая ссылка leech</a>

Если вы все сделали правильно, то на вашем сайте, в том месте шаблона, куда вы вставили данный код, появится зашифрованная ссылка, при этом в самом шаблоне останется читаемый (оригинальный) ее вид.

Хак тестировался на DLE версии 13.1, для более ранних версий, вероятнее всего, потребуется его доработка.

Можете использовать его как основу для реализации ваших идей, а если остались вопросы – пишите об этом в комментариях под данной статьей.

5
комментариев
Гостям запрещено участвовать в обсуждениях сайта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.
Проверенный7

Артём Мáлков, Я написал вам в Skype (Extrime919)

6 дек в 14:47
  • 0
Администратор755

Сергей, для помощи, нужно показать проблемный сайт и предоставить к нему доступы (админка+ FTP).

6 дек в 00:31
  • 0
Проверенный7

Артём Мáлков, DLE 13.2

5 дек в 20:46
  • 0
Администратор755

Сергей, какая версия DLE?

5 дек в 00:19
  • 0
Проверенный7

Здравствуйте, сделал все по инструкции, (сайт с музыкой) и решил скрыть прямые ссылки, но теперь при нажатии на скачать, качает html файл

4 дек в 19:56
  • 0
Подняться наверх
«Pandoge» - помощник веб-мастера