Генератор случайных чисел   •   Online-инструменты
2 887 просм
11 комм
Поделиться:

Использование PHP-вставок в шаблонах DLE

Периодически веб-мастер сталкивается с необходимостью внедрения в код своего сайта стороннего PHP-скрипта. DataLife Engine не предусматривает эту возможность в стандартных установках системы (не считая тега {include}). В связи с этим мы представляем простой, но эффективный хак, благодаря которому любой PHP-код будет работать на любом шаблоне сайта.

Откройте файл index.php в корневой папке сайта (если у вас версия движка ниже 10.0) или файл main.php в папке /engine/modules/ (если DLE 10.0 и выше) найдите строчку:

echo $tpl->result['main'];

и замените ее на:

eval(" ?".">".$tpl->result['main']."<"."?php ");

Если все сделано правильно, сторонние скрипты заработают на вашем сайте. Для проверки можете попробовать в шаблоне вашего сайта между <body></body> вставить код:

<?php

	echo "Hello, world!";

?>

И если на сайте появилось сообщение «Hello, world!» - значит вы все сделали правильно, и в дальнейшем можете использовать PHP-вставки на вашем сайте.

Обратите внимание, что этот хак не рекомендовано практиковать на версиях ниже 3.0.

11
комментариев
Дима
22.12 в 08:18
Костыль какой то жуткий)
  • -2
Артем Малков
22.12 в 10:36
Дима, Вполне рабочий. Есть еще варианты? :)
  • 0
Chessman
23.12 в 01:18
это хоть безопасно?
  • 1
Артем Малков
23.12 в 15:19
Chessman, Вполне
  • 0
Williamquaby
24.12 в 16:40
Спасибо, очень полезный хак. Пригодился на одном из своих сайтов
  • 1
WebTheory
26.12 в 12:05
С этим хаком открываем себе дыру на сайт для шеллов это вполне удобно взломать сайт, не рекомендую редактировать стандартный DLE.
  • 1
shoptnugww
30.12 в 11:44
Great website, thanks for the tips!
  • 0
Андрей
30.06 в 22:43
У меня на движке дле 12.1 в mail.php что и index.php и в остальных официальный файлах движка с форматам php выходит такой код ( и куда мне вставлять? )

?><?php $_F=__FILE__;$_X='P3dBP1........... и т.д.
  • 0
Андрей, у Вас активирована лицензия?
  • 0
Алексей
23.07 в 21:18
Доброго времени суток. Не могу подключить файл php к DLE. По сути это скрипт обратной связи, на html работает идеально, если цеплять через инклуиды идет зацикливание когда и постоянные отправки писем на почту. А через данный способ не получается, сообщения не уходят. Вот сам код

"
<?php
/* Здесь проверяется существование переменных */
if (isset($_POST['phone'])) {$phone = $_POST['phone'];}
if (isset($_POST['name'])) {$name = $_POST['name'];}
if (isset($_POST['adress'])) {$adress = $_POST['adress'];}

/* Сюда впишите свою эл. почту */
$address = "email@mail.ru";

/* А здесь прописывается текст сообщения, \n - перенос строки */
$mes = "ОПОВЕЩЕНИЕ: Заказ обратного звонка!\nТелефон: $phone\nИмя: $name\nПочта: $adress";

/* А эта функция как раз занимается отправкой письма на указанный вами email */
$sub='Заказ с сайта'; //сабж
$email='<gruzoperevozki>'; // от кого
$send = mail ($address,$sub,$mes,"Content-type:text/plain; charset = windows-1251\r\nFrom:$email");

ini_set('short_open_tag', 'On');
header('Refresh: 3; URL=index.html');
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; windows-1251">
<meta http-equiv="refresh" content="3; url=index.html">
<title>С вами свяжутся</title>
<meta name="generator">
<style type="text/css">
body
{

background: #22BFF7 url(img/zakaz.jpg) top -70% center no-repeat;

}

<script type="text/javascript">
setTimeout('location.replace("/index.html")', 3000);
/*Изменить текущий адрес страницы через 3 секунды (3000 миллисекунд)*/
</script>
</head>
</body>
</html>

"
  • 1
Алексей, попробуйте этот вариант - https://www.pandoge.com/moduli_i_skripty/prostaya-forma-obratnoy-svyazi-na-php-ajax

PHP-файл кладите в папку engine или в корень сайта.
  • 0
Гостям запрещено учавствовать в обсуждениях сайта. Авторизуйтесь, чтобы иметь возможность оставить свое мнение о материале или задать вопрос.