X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> Php код в Dle
Deadraven
Deadraven
Topic Starter сообщение 24.10.2009, 14:31; Ответить: Deadraven
Сообщение #1


Участник
***

Группа: User
Сообщений: 181
Регистрация: 13.6.2008
Поблагодарили: 17 раз
Репутация:   7  


Всем доброго времени суток, у меня такой вопрос, как можно вставить php код в новость на движке dle?
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Ветер
Ветер
сообщение 24.10.2009, 18:08; Ответить: Ветер
Сообщение #2


Новичок
*


Группа: User
Сообщений: 42
Регистрация: 19.10.2009
Поблагодарили: 30 раз
Репутация:   7  


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

Для добавления этой возможности для полной новости, в файлe engine/modules/show.full.php заменить
$tpl->set( '{short-story}', stripslashes( $row['short_story'] ) );
$tpl->set( '{full-story}', stripslashes( "<div id='news-id-" . $row['id'] . "'>" . $row['full_story'] . "</div>" ) );

на
ob_start();
print eval('?>'. $row['short_story']);
$eval_story = ob_get_contents();
ob_end_clean();
$tpl->set( '{short-story}', stripslashes( $eval_story ) );
ob_start();
print eval('?>'. $row['full_story']);
$eval_story = ob_get_contents();
ob_end_clean();
$tpl->set( '{full-story}', stripslashes( "<div id='news-id-" . $row['id'] . "'>" . $eval_story . "</div>" ) );


Для добавления этой возможности для анонса новости, в файле engine/modules/show.short.php
$tpl->set( '{short-story}', stripslashes( "<div id='news-id-" . $row['id'] . "'>" . $row['short_story'] . "</div>" ) );


на
$tpl->set( '{title}', stripslashes( $row['title'] ) );
ob_start();
print eval('?>'. $row['short_story']);
$eval_story = ob_get_contents();
ob_end_clean();
$tpl->set( '{short-story}', stripslashes( "<div id='news-id-" . $row['id'] . "'>" . $eval_story . "</div>" ) );


Для того, чтобы вставить php код в новость, нужно изменить предварительно созданную новость непосредственно в таблице (имя таблицы - post). Для этого можно воспользоваться phpmyadmin, открыть таблицу префикс_post и отредактировать запись с новостью. В полях short_story и full_story содержатся краткая и полня новость соответственно. Вставляемый php код должен быть оформлен так: <?php сам_php_код ?>

Изменения, которые нужны, чтобы php код можно было вставлять сразу при создании новости на сайте, приводить не буду, так как они крайне нежедтельны с точки зрения безопастности. Как в прочем, и приведенные изменения.

Лучше всего обойтись без php кода в новостях.

Изменения в коде описаны на основе DLE 8.2
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Ska-TGD
Ska-TGD
сообщение 24.10.2009, 20:19; Ответить: Ska-TGD
Сообщение #3


artemeff.com
******

Группа: Active User
Сообщений: 1139
Регистрация: 18.3.2009
Поблагодарили: 249 раз
Репутация:   15  


Ветер, Зачем так сложно?
Это реализовывается заменой одной строки.

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

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


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


--------------------
Ruby on Rails dev | artemeff | @artemeff
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Tollun
Tollun
сообщение 24.10.2009, 20:23; Ответить: Tollun
Сообщение #4


Старожил
******

Группа: Active User
Сообщений: 1595
Регистрация: 1.10.2009
Из: Хабаровск
Поблагодарили: 394 раза
Репутация:   66  


2Ska-TGD Это позволит использовать php в файлах шаблона, а он имел ввиду именно в новости, что и выдал Ветер, но затея тс действительно не лучшая.

Сообщение отредактировал Tollun - 24.10.2009, 20:23


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Ветер
Ветер
сообщение 24.10.2009, 20:28; Ответить: Ветер
Сообщение #5


Новичок
*


Группа: User
Сообщений: 42
Регистрация: 19.10.2009
Поблагодарили: 30 раз
Репутация:   7  


(Ska-TGD @ 24.10.2009, 19:19) *
Ветер, Зачем так сложно?


Из соображений безопасности. Если доступ к редактированию новостей можно запретить на уровне прав, то, в случае, когда выполнения php кода разрешено для любой части шаблона, малейшая дыра в каком-нибудь доп. модуле - и сайт взломан.

Но Ваше решение однозначно более простое =)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Регистрация Вашего сайта (профиля,DLE сайты,подписи на форумах,постинг Тиц 10> , ПР 1>)
278 kaartes 102681 Вчера, 10:55
автор: kukla
Открытая тема (нет новых ответов) Адаптивная вёрстка и натяжка на Wordpress, DLE, Joomla и др. Создание мобильных версий.
Хороший код с оптимизацией по скорости. Сайты и лендинги "под ключ
15 Nell 1139 13.12.2017, 23:36
автор: Nell
Открытая тема (нет новых ответов) Недорогие услуги - php/js/mysql/jquery/bootstrap
2 vlads 650 13.12.2017, 21:01
автор: vlads
Открытая тема (нет новых ответов) Веб-разработка (HTML5, CSS3, JavaScript, jQuery, Ajax, PHP)
18 qpPeW 3411 12.12.2017, 13:32
автор: qpPeW
Открытая тема (нет новых ответов) php скрипты любой сложности / диз+верстка (адаптивно)
любые задачи на php - автоматизация, парсинг, работа с БД
1 affrodita 499 8.12.2017, 17:40
автор: affrodita


 



RSS Текстовая версия Сейчас: 15.12.2017, 1:08
Дизайн