Ворос по DLE

123
PR
На сайте с 30.12.2007
Offline
93
#11

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

$tpl->set('{pm}', '<a href="' . $PHP_SELF . '?do=pm&doaction=newpm&username=' . urlencode($row['autor']) . '">' . $lang['menu_send'] . '</a>');
vstb
На сайте с 02.06.2006
Offline
120
#12

Патапыч, PROGRAMMATOR, спасибо, работает.

К сожалению, я не точно сформулировал задачу.

Нужно отправить автору не персональное сообщение на сайте, а сообщение по e-mail.

Как из краткой новости, так и из полной.

Подскажите, плиз.

xanter
На сайте с 26.05.2009
Offline
10
#13

спасибо большое

EroProfit - Замечательный конверт! Регистрация без инвайтов! (http://eroprofit.com/invite/1361)
PR
На сайте с 30.12.2007
Offline
93
#14

vstb, Вам Патапыч привел пример реализации отправки на Email. Хотя, если версия 8.0 то можно без правки всяких запросов, например использовать их "API". Вот так код будет выглядеть:


include_once ('engine/api/api.class.php');
$data = $dle_api->take_user_by_name($row['autor']);
$tpl->set('{email}', '<a href="' . $PHP_SELF . '?do=feedback&user=' . $data['user_id'] . '">' . $lang['news_mail'] . '</a>');

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

П
На сайте с 08.06.2007
Offline
63
#15
PROGRAMMATOR:
vstb, Вам Патапыч привел пример реализац...

Надо будет качнуть, посмотреть что там нового..

ЗЫ. В более ранних версиях можно подправить feedback.php.

Мне кажется это лучше, чем править запросы. Тем более, что их много, плюс, при просмотре кратких новостей, возрастёт время выполнения запроса, хотя и незначительно.

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

При таком варианте


//написать на почту
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']);

выдает "Скрыт от просмотра".

Версия 7.5

П
На сайте с 08.06.2007
Offline
63
#17
vstb:
При таком варианте

//написать на почту
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']);

выдает "Скрыт от просмотра".
Версия 7.5

Значит у автора отмечено "Не получать письма от других".

ЗЫ. Я бы не советовал применять этот вариант.

Он более или менее приемлим при просмотре полной новости.

Если делать по аналогии в кратких новостях, слишком много править (запросов).

Проще один раз поправить в feedback.php.

Если возникнет желание (у меня), посмотрю, что нужно сделать.

UP.********

В новостях (кратких и полных, внутри цыклов добавить

//написать на почту 

$tpl->set('{email}', "<a href=\"$PHP_SELF?do=feedback&amp;username=".urlencode($row['autor'])."\">" . $lang['news_mail'] . "</a>");

В шаблоны добавить {email}

В feedback.php

Вместо

/* 		$user = intval( $_GET['user'] );

if( ! $user ) $db->query( "SELECT name, user_group, user_id FROM " . USERPREFIX . "_users where user_group < '4' AND allow_mail = '1' ORDER BY user_group" );
else $db->query( "SELECT name, user_group, user_id FROM " . USERPREFIX . "_users where user_id = '$user' AND allow_mail = '1' ORDER BY user_group" ); */

Вставить

        $user = intval( $_GET['user'] );

if( isset( $_REQUEST['username'] ) ) $username = $db->safesql( strip_tags( urldecode( $_GET['username'] ) ) );
else $username = '';

if($user) $db->query( "SELECT name, user_group, user_id FROM " . USERPREFIX . "_users where user_id = '$user' AND allow_mail = '1' ORDER BY user_group" );
elseif($username) $db->query( "SELECT name, user_group, user_id FROM " . USERPREFIX . "_users where name='$username' AND allow_mail = '1' ORDER BY user_group" );
else $db->query( "SELECT name, user_group, user_id FROM " . USERPREFIX . "_users where user_group < '4' AND allow_mail = '1' ORDER BY user_group" );

ЗЫ. Не проверял.

Если что не так, переделаем.

UP.UP

поправлено

//написать на почту  

$tpl->set('{email}', "<a href=\"$PHP_SELF?do=feedback&amp;username=".urlencode($row['autor'])."\">" . $lang['news_mail'] . "</a>");
vstb
На сайте с 02.06.2006
Offline
120
#18

У автора не отмечено "Не получать письма от других".

На всякий случай проверил и так, и так.

Все равно выдает скрыт от просмотра.

Если сделать напрямую


$tpl->set('{email}', "<a href=\"$PHP_SELF?do=feedback&amp;user=$autor_id[user_id]\">" . $lang['news_mail'] . "</a>");

номер user-а отсутствует.

Нужна даже в большей степени возможность отправки e-mail из короткой новости, чем их полной.

Править feedback.php, нужно, как я понимаю, так чтобы передавать не user_id, а autor?

П
На сайте с 08.06.2007
Offline
63
#19
vstb:
У автора не отмечено "Не получать письма от других".
На всякий случай

Есть такое, уже потом заметил, не успел отписать

Вместо

//написать на почту 

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']);

Надо было просто

//написать на почту 

$tpl->set('{email}', "<a href=\"$PHP_SELF?do=feedback&amp;user=$autor_id[user_id]\">" . $lang['news_mail'] . "</a>");
Вроде так.

UP.

номер user-а отсутствует.

Такое могло быть если вы запрос не редактировали. Не парьтесь, я выше отписал как надо. Но не проверял. Скажете если что не так.

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

После правки feedback.php, заработало.

Патапыч, огромное спасибо.

Единственно, что в посте где вы писали замену запроса - в первом коде (что формирует {email}), непорядочек с кавычками.

123

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