Главная страница / Советы / Использование любых PHP вставок в шаблонах
июнь 15 2006

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

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

Откройте файл index.php найдите строчку:
echo $tpl->result['main'];

и замените ее на
eval (' ?' . '>' . $tpl->result['main'] . '<' . '?php ');


Все, вы можете использовать сторонние скрипты на вашем сайте. Данных хак не рекомендуется к использованию на версиях ниже 3.0

Комментарии

  1. BOOTKiller (Клиенты)

    16 июня 2006 16:10 25 комментариев
    wink всё работает.... спасибо...
  2. Jiihuda (Клиенты)

    16 июня 2006 17:41 10 комментариев
    После установки хака при загрузке на чистой странице только надпись
    Parse error: syntax error, unexpected T_STRING in /home/southru/public_html/blog/index.php(82) : eval()'d code on line 1

    Версия 3.3 ... sad
  3. Exquisitor (Посетители)

    23 октября 2006 21:56 1 комментарий
    Jiihuda,
    аналАгичнА
  4. Репа-Х (Посетители)

    25 октября 2006 21:27 53 комментария
    Всё норм! :)
  5. sheff (Посетители)

    20 ноября 2006 14:22 86 комментариев
    почему то после этого сайт стал медлене грузиться и иногда даже не грузится crying
  6. celsoft (Администраторы)

    23 ноября 2006 11:40 4 031 комментарий
    Цитата: sheff
    почему то после этого сайт стал медлене грузиться и иногда даже не грузится

    это не зависит от внесения изменения, а зависит только от того какой скрипт вы внедрили в шаблон
  7. Репа-Х (Посетители)

    1 декабря 2006 18:43 53 комментария
    Во-во...
  8. acral (Клиенты)

    14 декабря 2006 20:26 7 комментариев
    не работает...
    поменял код, а не пашет
  9. Z-StyLe (Посетители)

    21 января 2007 15:24 4 комментария
    Jiihuda,
    После установки хака при загрузке на чистой странице только надпись

    Parse error: syntax error, unexpected T_STRING in /home/southru/public_html/blog/index.php(82) : eval()'d code on line 1

    Версия 3.3 ...



    Народ, вам не тошно на таких старых версиях висеть? winked
    Отличная вещь ;) Спасибо за хак!
  10. sheff (Посетители)

    18 февраля 2007 17:12 86 комментариев
    а если при использовании php вставки грузится чистый лист и всё, что это значит?
  11. Zymic (Клиенты)

    13 марта 2007 18:52 1 комментарий
    после того как меняю ети строчки сайт перестает работать:

    Parse error: parse error, unexpected '<' in C:\Program Files\Apache Group\Apache2\htdocs\index.php(111) : eval()'d code on line 537

    версия 5.3 бесплатная

    в чем проблема?
  12. celsoft (Администраторы)

    13 марта 2007 22:53 4 031 комментарий
    Zymic,
    проблема в вашей нелегальной копии скрипта. Вы хоть бесплатную версию скачивали? вы не сможете в бесплатной версии вставить данный код по определению, там даже таких строчек нет.
  13. Mr 13 (Посетители)

    29 апреля 2007 19:37 97 комментариев
    Старая вещь, а нужная =).
    Вот сегодня очень пригодилось.
  14. Kaiser (Посетители)

    13 мая 2007 12:06 84 комментария
    Да, нужная весчь! smile
  15. Araks (Посетители)

    13 ноября 2007 20:59 18 комментариев
    Ребята, на версиях 6.2+ этот хак не работает.
    А вот этот работает :)
    В файле index.php, заменяем
    echo $tpl->result['main'];

    на
    function incphp($str)
    {
    $a = explode('<?', $str);
    echo $a[0];
    for ($i=1; $i<sizeof($a); $i++)
    {
    $b = explode('?>', $a[$i]);
    eval($b[0]);
    if (sizeof($b)>1) echo $b[1];
    }
    }
    incphp($tpl->result['main']);

    Теперь Вы можете в любом тексте между тегами <? ... ?> выполнять PHP код.
  16. M.org (Клиенты)

    15 декабря 2007 07:04 12 комментариев
    Вполне работает и в 6.5.
  17. EzS (Клиенты)

    27 мая 2008 21:02 3 комментария
    на 7.0 работает
  18. strekoza5 (Посетители)

    31 августа 2008 07:57 4 комментария
    И первая и вторая конструкции работают на 7,2. спасибо
  19. frikandel (Клиенты)

    5 октября 2008 18:23 11 комментариев
    2 модификация на 7.2 выдает Parse error: syntax error, unexpected T_VARIABLE in /data/home/guildhost/cyberhelp/index.php(182) : eval()'d code on line 2
    1 модификация Parse error: syntax error, unexpected T_VARIABLE in /data/home/guildhost/cyberhelp/index.php(175) : eval()'d code on line 144
  20. rixxar (Посетители)

    23 марта 2009 07:59 1 комментарий
    Здравствуйте!

    Я хотел поинтересоваться, а почему эта строчка "eval (' ?' . '>' . $tpl->result['main'] . '<' . '?php ');" не работает в версии 7.5 выдает аналогичные ошибки, как уже писали до меня сверху, хотя я все делал правильно!?
  21. celsoft (Администраторы)

    23 марта 2009 11:29 4 031 комментарий
    Цитата: rixxar
    Я хотел поинтересоваться, а почему эта строчка "eval (' ?' . '>' . $tpl->result['main'] . '<' . '?php ');" не работает в версии 7.5 выдает аналогичные ошибки, как уже писали до меня сверху, хотя я все делал правильно!?

    Как раз таки эти ошибки говорят что все работает. И эти ошибки уже во вставляемом в шаблон коде при выполнении возникают, а не то что неработает.
  22. Red Drag (Клиенты)

    20 апреля 2009 15:45 63 комментария
    Все прекрасно работает!
  23. sitefalev (Посетители)

    4 февраля 2015 12:55 2 комментария
    Как это реализовать на dl 10.4?
  24. celsoft (Администраторы)

    4 февраля 2015 16:04 4 031 комментарий
    Цитата: sitefalev
    Как это реализовать на dl 10.4?

    Также только в файле engine/modules/main.php
  25. sitefalev (Посетители)

    4 февраля 2015 17:22 2 комментария
    Цитата: celsoft
    Цитата: sitefalev
    Как это реализовать на dl 10.4?

    Также только в файле engine/modules/main.php

    Спасибо) Помогло)
  26. ViZed (Клиенты)

    15 декабря 2015 21:57 2 комментария
    Цитата: celsoft
    Цитата: sitefalev
    Как это реализовать на dl 10.4?

    Также только в файле engine/modules/main.php

    Пишу это, а на дворе 15 декабря 2015 года. Скажите, данное решение еще актуально? Не будет никаких дыр? Версия DLE - на одном сайте 10.5, на другом сайте 10.6.
  27. celsoft (Администраторы)

    16 декабря 2015 06:08 4 031 комментарий
    Цитата: ViZed
    Пишу это, а на дворе 15 декабря 2015 года. Скажите, данное решение еще актуально?

    Актуально.

    Цитата: ViZed
    Не будет никаких дыр? Версия DLE - на одном сайте 10.5, на другом сайте 10.6.

    Это вообще изначально не самый безопасный вариант. Если нужно вставить в шаблон свой модуль PHP то нужно пользоватся написанием модулей как описано в документации https://dle-news.ru/extras/online/index.html?modules_include.html
  28. serji88 (Посетители)

    27 декабря 2015 16:31 2 комментария
    В версии 10,6 отсутствует данный код
  29. celsoft (Администраторы)

    28 декабря 2015 09:13 4 031 комментарий
    Цитата: serji88
    В версии 10,6 отсутствует данный код

    В актуальных версиях этот код находится в файле engine/modules/main.php

Информация

Комментирование публикаций доступно только пользователям имеющим действующую лицензию на скрипт. Если вы уже приобретали скрипт, то вам необходимо зайти на сайт под своим клиентским аккаунтом.

Календарь

«    Март 2024    »
ПнВтСрЧтПтСбВс
 123
45678910
11121314151617
18192021222324
25262728293031

Опрос на сайте

Совершаете ли вы покупки в интернет?