Ворос по DLE

12 3
vstb
На сайте с 02.06.2006
Offline
120
1456

Доброго времени суток.

Вопрос к спецам, подскажите кто может:

как на ДЛЕ сделать вывод ссылки "Отправить сообщение" (той, что показывается в профиле автора) непосредственно в самой новости?

sirota77
На сайте с 08.09.2008
Offline
161
#1

Не совсем понял вопрос,

в новости написанной этим автором или во всех ?

vstb
На сайте с 02.06.2006
Offline
120
#2

В новости, написанной этим автором.

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

sirota77
На сайте с 08.09.2008
Offline
161
#3

отписал в личку

vstb
На сайте с 02.06.2006
Offline
120
#4

Подниму тему, вопрос актуален.

[Удален]
#5

Смотрите подпись.

П
На сайте с 08.06.2007
Offline
63
#6

Блин.. Писал писал, что то глюкануло.. всё по новой..

И так..

файл engine.php

Найти

$sql_news = "SELECT id, autor, date, short_story, full_story, xfields, title, category, descr, keywords, alt_name, comm_num, allow_comm, allow_rate, rating, vote_num, news_read, approve, votes, access, flag, editdate, editor, reason, view_edit, tags FROM " . PREFIX . "_post where  id = '$newsid'";

Заменить на

$sql_news = "SELECT id, autor, date, short_story, full_story, " . PREFIX . "_post.xfields, title, category, descr, keywords, alt_name, " . PREFIX . "_post.comm_num, allow_comm, allow_rate, rating, vote_num, news_read, approve, votes, access, flag, editdate, editor, reason, view_edit, tags, user_id, name FROM " . PREFIX . "_post, " . USERPREFIX . "_users where autor=name and id = '$newsid'";

Если с ЧПУ, то другой запрос надо поправить, он там рядом.

файл show.full.php

Сразу после

	while ( $row = $db->get_row( $sql_result ) ) {


if( $i ) break;

Вставить

//написать ПС

$tpl->set( '{pm}', "<a href=\"$PHP_SELF?do=pm&amp;doaction=newpm&amp;user=" . $row['user_id'] . "\">" . $lang['news_pmnew'] . "</a>" );
//написать на почту
if($row['allow_mail']) $tpl->set('{email}', "<a href=\"$PHP_SELF?do=feedback&amp;user=$autor_id[user_id]\">" . $lang['news_mail'] . "</a>");
else $tpl->set('{email}', $lang['news_nomail']);

Тут я не помню.. Возможны варианты для с ЧПУ?

Это всё для полной новости. Возможны варианты. Да.. В шаблон вставить {pm} или {email}, что именно вам надо я не стал вникать..

При выводе кратких новостей немного по другому.

Если надо и сами не разберётесь, попросите кого нибуть.. что то спать захотел.. с суток только пришёл..

UP. Это всё для версии 7.5. Актульной версии нет, т.к не использую DLE (посматриваю только время от времени, что там нового появилось).

PR
На сайте с 30.12.2007
Offline
93
#7

vstb, в engine/modules/show.full.php перед строкой:

if( strpos( $_SERVER['REQUEST_URI'], "pages.php" ) !== false ) {

Написать вот это:

$tpl->set('{pm}', '<a href="' . $PHP_SELF . '?do=pm&doaction=newpm&username=' . $row['autor'] . '">' . $lang['menu_send'] . '</a>');

В шаблоне полной новости вставляем тег {pm} и тестируем.

[Удален]
#8

PROGRAMMATOR, Патапыч, +1, всё верно.

vstb, На заметку: n1g3r - школьный неадекват

chestyle
На сайте с 28.05.2009
Offline
32
#9
PROGRAMMATOR:
vstb, в engine/modules/show.full.php перед строкой:

if( strpos( $_SERVER['REQUEST_URI'], "pages.php" ) !== false ) {


Написать вот это:

$tpl->set('{pm}', '<a href="' . $PHP_SELF . '?do=pm&doaction=newpm&username=' . $row['autor'] . '">' . $lang['menu_send'] . '</a>');


В шаблоне полной новости вставляем тег {pm} и тестируем.

Спасибо, ваше решение отлично заработало.

П
На сайте с 08.06.2007
Offline
63
#10

Только пропустите через urlcode (да вы и сами наверное догодались).

...?do=pm&doaction=newpm&username=' . urlcode($row['autor']) . '">' . $lang['menu... А так да.. всё верно..

UP. Фак ин.. новую функцию придумал спросонья)))). PROGRAMMATOR ниже правильно отписал)))

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий