Безлимитный хостинг на сверхбыстрых SSD-дисках от 66р в месяц   •   Реклама
1 612 просм
5 комм
Поделиться:

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

6 июн
Хаки

Тег [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.
    • 0
    7
      •  Проверенный
    6 дек в 14:47

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

    • 0
    839
      •  Администратор
    6 дек в 00:31

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

    • 0
    7
      •  Проверенный
    5 дек в 20:46

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

    • 0
    839
      •  Администратор
    5 дек в 00:19

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

    • 0
    7
      •  Проверенный
    4 дек в 19:56

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

Подняться наверх
«Pandoge» - помощник вебмастера