Артём Мáлков

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

20 дек12 комм

Периодически вебмастер сталкивается с необходимостью внедрения в код своего сайта стороннего 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.

Рекомендуем к просмотру
Использование тега [leech] в шаблоне в DLE
Посты
Как правильно подключить JS- и PHP-скрипты к вашему сайту?
Статьи и советы
Минификация (сжатие) исходного кода (HTML) в DLE на PHP
Хаки
12
комментариев
Форма комментирования этого поста скрыта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.
    • 1
    1
      •  Пользователь
    20 авг в 14:22

    Добрый день, подскажите, пожалуйста, как сделать обработку php на статических страницах (static.tpl). Данный хак не помогает и сторонний код обертывается комментарием: http://joxi.ru/krDw114U4g8WlA

    • 1
    1067
      •  Команда Pandoge
    23 июл в 21:46

    Алексей, попробуйте этот вариант - https://www.pandoge.com/post/323

    PHP-файл кладите в папку engine или в корень сайта.

    • 2
    766
      •  Гости
    23 июл в 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
    1067
      •  Команда Pandoge
    30 июн в 23:36

    Андрей, у Вас активирована лицензия?

    • 1
    766
      •  Гости
    30 июн в 22:43

    У меня на движке дле 12.1 в mail.php что и index.php и в остальных официальный файлах движка с форматам php выходит такой код ( и куда мне вставлять? )

    ?><?php $_F=__FILE__;$_X='P3dBP1........... и т.д.

    • 1
    766
      •  Гости
    30 дек в 11:44

    Great website, thanks for the tips!

    • 2
    766
      •  Гости
    26 дек в 12:05

    С этим хаком открываем себе дыру на сайт для шеллов это вполне удобно взломать сайт, не рекомендую редактировать стандартный DLE.

    • 2
    766
      •  Гости
    24 дек в 16:40

    Спасибо, очень полезный хак. Пригодился на одном из своих сайтов

    • 1
    766
      •  Гости
    23 дек в 15:19

    Chessman, Вполне

    • 2
    766
      •  Гости
    23 дек в 01:18

    это хоть безопасно?

    • 1
    766
      •  Гости
    22 дек в 10:36

    Дима, Вполне рабочий. Есть еще варианты? :)

    • -1
    766
      •  Гости
    22 дек в 08:18

    Костыль какой то жуткий)

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