Перейти к публикации

Рекомендованные сообщения

Небольшой хак позволяющий использовать любой PHP код в шаблонах

В файле index.php найдите строчку

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

все теперь можно использовать в шаблонах вставки PHP

Внимание данный код не был включен в дистрибутив по причине возможной несовместимости. А также я не на 100% уверен в его безопастности, поэтому используйте на свой страх и риск. Хотя должно быть безопастно.

Данный код будет работать и в версии 2.4 но это небезопастно в этом я уверен на 100% поэтому не рекомендуется к использованию для 2.4

Ссылка на сообщение
Поделиться на других сайтах

А также я не на 100% уверен в его безопастности, поэтому используйте на свой страх и риск. Хотя должно быть безопастно.

2celsoft

Скажи пожалуйста, а если это не совсем безопасно, то какие могут быть последствия? Только не говори "тебе всё сломают и всё", а какнибудь поподробнее, что могут сделать

Изменено пользователем CatFish
Ссылка на сообщение
Поделиться на других сайтах

Могут выполнить произвольный пхп код у тебя на сайте, например шел залить, выкачать много вкусного у тебя(пароли и прочие), и если повезёт, то и хостера тоже чтоньть =))

Ссылка на сообщение
Поделиться на других сайтах

Скажи пожалуйста, а если это не совсем безопасно, то какие могут быть последствия?

Я не сказал что это не совсем безопастно, я просто не уверен в степени защищенности по данному вопросу, думаю что использование данного хака в 2.5 безопастно, но 100% уверенности нет.

Ссылка на сообщение
Поделиться на других сайтах

Sn][per

В php слабак, обьясни как сделал. Моя задача в следующем, хочу подклюсить php гостевую, и вставить ее в дизайн сайта, там где отображаются новости.

Ссылка на сообщение
Поделиться на других сайтах

Sn][per

В php слабак, обьясни как сделал. Моя задача в следующем, хочу подклюсить php гостевую, и вставить ее в дизайн сайта, там где отображаются новости.

<?php include ('http://ПУТЬ К СКРИПТУ КОТОРЫЙ НУЖНО ВЫВЕСТИ'); ?>

Вставляешь в main.tpl в том месте где тебе нужно его выводить.

Ссылка на сообщение
Поделиться на других сайтах

в мануале написано

" также вы можете использовать в шаблонах обычные PHP вставки для того чтобы интегрировать в движок сторонние скрипты. Например для того чтобы выполнить свой код в нужном месте просто вставьте <?php echo "Это мой скрипт"; ?> "

но это не работает :(

пхп тэги игнорируются, но стр. загружается нормально

сделал изменения как описано выше

страница не загружается и меня пишет

Parse error: syntax error, unexpected ')' in z:\home\localhost\www\index.php(57) : eval()'d code on line 399

помогите, плиз, необходимо сделать вызов пхп скрипта из шаблона main.tpl

Ссылка на сообщение
Поделиться на других сайтах

<?php

/*

=====================================================

DataLife Engine - by SoftNews Media Group

-----------------------------------------------------

http://www.pc-soft.ru/

-----------------------------------------------------

Copyright © 2004,2005 SoftNews Media Group

=====================================================

Данный код защищен авторскими правами

=====================================================

Файл: index.php

-----------------------------------------------------

Назначение: Главная страница

=====================================================

*/

@session_start();

error_reporting(7);

ini_set('display_errors', true);

ini_set('html_errors', false);

define('DATALIFEENGINE', true);

extract($_REQUEST, EXTR_SKIP);

$member_id = FALSE;

$is_logged = FALSE;

$root_path = dirname (__FILE__);

require_once $root_path.'/engine/init.php';

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Генерация основных компонентов DLE

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

include $root_path.'/engine/engine.php';

include $root_path.'/engine/modules/title.php';

$tpl->load_template('main.tpl');

$tpl->set('{title}', $title_tag);

$tpl->set('{calendar}',Calendar ());

$tpl->set('{archives}',$echo_archives);

$tpl->set('{vote}', $tpl->result['vote']);

$tpl->set('{topnews}',$topnews);

$tpl->set('{login}',$login_panel);

$tpl->set('{content}', $tpl->result['info'].$tpl->result['content']);

$tpl->set('{THEME}', $config_http_home_url.'templates/'.$config_skin);

if ($config_allow_skin_change == "yes")

$tpl->set('{changeskin}', ChangeSkin ($root_path.'/templates', $config_skin));

$tpl->compile('main');

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

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

$tpl->global_clear();

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Вывод сгенерированного контекта

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

GzipOut();

?>

Ссылка на сообщение
Поделиться на других сайтах

Да не надо было выкладывать этот код с ним все в порядке. Ошибка содержится либо в неверном подключении php вставки в шаблон, либо непосредственно в самом файле подключаемого скрипта. а то что ошибку показывает на index.php, так это особенности функции eval () она же выполняет ваш код.

Ссылка на сообщение
Поделиться на других сайтах

спасибо огромное разобрался :)

только вот какая штука получается ...

попробывал часть новостей выводить скриптом CuteNews,

полезли ошибки, мол одинаковые имена функций,

глянул, дык у них почти одинаковый файлы функций function.inc

вместе они работать не хотят, так как названия почти всех

подключаемых функций одинаковые!!!!

не пойму я кто у кого что слизал?

или это общедоступные библиотеки функций ?

посоветуйте, плиз, какой скрипт новостей юзать в дополнении к DLE,

что бы на главной странице сайте выводить мин 3 категории разных новостей,

в разных колонках.

Ссылка на сообщение
Поделиться на других сайтах

спасибо огромное разобрался :)

только вот какая штука получается ...

попробывал часть новостей выводить скриптом CuteNews,

полезли ошибки, мол одинаковые имена функций,

глянул, дык у них почти одинаковый файлы функций function.inc

вместе они работать не хотят, так как названия почти всех

подключаемых функций одинаковые!!!!

не пойму я кто у кого что слизал?

или это общедоступные библиотеки функций ?

посоветуйте, плиз, какой скрипт новостей юзать в дополнении к DLE,

что бы на главной странице сайте выводить мин 3 категории разных новостей,

в разных колонках.

Ну ты паря даешь... ты остановись на какомнить одном из новостных движков или CuteNews или DLE.

Для DLE за основу брался CuteNews. Так что тебе придется выберать что-то одно и уже плясать от этого.

Ссылка на сообщение
Поделиться на других сайтах

Для DLE за основу брался CuteNews

Ошибочка за основу брался cutephp.com и CuteNews брал там же скрипт за оригинал, так и возникли два паралельных проекта

Ссылка на сообщение
Поделиться на других сайтах

Для DLE за основу брался CuteNews

Ошибочка за основу брался cutephp.com и CuteNews брал там же скрипт за оригинал, так и возникли два паралельных проекта

Сори, попутал :rolleyes:

Ссылка на сообщение
Поделиться на других сайтах

Ребята расталкуйте, пожалуйста, как можно выполнить следующее :

как в 'main' загружая сторонний файл - include ('engine/modules/моймодуль.php');

и в этом файле(моймодуль.php) между текстом вставить типа {topnews} или {calendar} - что бы он генерил рейтинг статей (календарь),

- но в 'main' не происходит вывод (не генерит через инклуд и т.п.)...

что ещё нужно подключить в 'index.php' и 'engine.php'

Celsoft - я поизучал Ваши советы и перепробывал...

намекните, пожалуйста, или пошлите подальше, что б я знал ждать ли ответа.

спасибо

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...