Beautiful PM. Часть 1: Ответ » Techno-Co — Всё для вебмастера, для создание сайтов с нуля. {title}

Ужасно раздражает допотопная система обмена сообщениями на сайте, стартует цикл статей по улучшению этого модуля.

Часть 1: Ответ

Каждый пользователь DLE хоть раз да отвечал на сообщение пользователя в PM и знает сколько нужно сделать действий. И это ужасное цитирование, чувствуешь себя стариком, он тебе каждый раз вставляет цитирование только что отправленного сообщения, ужс.Обойдем действие кнопки ответ и выведем окно ответа и возможные ограничения сразу при чтении сообщения.

Установка

1. Открываем engine/modules/pm.php

Находим:

land, icq, xfields

Заменяем на:

land, icq, xfields, pm_all

Найти:

 $tpl->set( '{text}', stripslashes( $row['text'] ) );

Заменить на:  Показать / Скрыть текст

 $tpl->set( '{pm-text}', stripslashes( $row['text'] ) );


                $ar = true;


                /* Начинаем вывод поля для ответа*/

                // Проверка, что не гасится

                $srow = $db->super_query( "SELECT  id FROM " . USERPREFIX . "_ignore_list WHERE user=(SELECT user_id FROM " . USERPREFIX . "_users WHERE name='{$row['user_from']}' ) AND user_from='{$member_id['name']}'" );
                if(!empty($srow)) {$ar = false; $err .= "
".$lang['pm_ignored']."

";} $db->free(); // Проверка на максимум сообщений у него if( $user_group[$row['user_group']]['max_pm'] AND $row['pm_all'] >= $user_group[$row['user_group']]['max_pm'] AND $member_id['user_group'] != 1 ) { $ar = false; $err .= "
".$lang['pm_err_8']."

"; } if ($ar AND $row['folder'] == "inbox") { $ajax_form = set( '[recaptcha]', "" ); $tpl->set( '[/recaptcha]', "" ); $tpl->set( '{recaptcha}', ' ' ); $tpl->set_block( "'[sec_code](.*?)[/sec_code]'si", "" ); $tpl->set( '{sec_code}', "" ); } else { $tpl->set( '[sec_code]', "" ); $tpl->set( '[/sec_code]', "" ); $path = parse_url( $config['http_home_url'] ); $tpl->set( '{sec_code}', "${lang['sec_image']}
{$lang['reload_code']}" ); $tpl->set_block( "'[recaptcha](.*?)[/recaptcha]'si", "" ); $tpl->set( '{recaptcha}', "" ); } } else { $tpl->set( '{sec_code}', "" ); $tpl->set( '{recaptcha}', "" ); $tpl->set_block( "'[recaptcha](.*?)[/recaptcha]'si", "" ); $tpl->set_block( "'[sec_code](.*?)[/sec_code]'si", "" ); } if( $user_group[$member_id['user_group']]['pm_question'] ) { $tpl->set( '[question]', "" ); $tpl->set( '[/question]', "" ); $question = $db->super_query("SELECT id, question FROM " . PREFIX . "_question ORDER BY RAND() LIMIT 1"); $tpl->set( '{question}', "".htmlspecialchars( stripslashes( $question['question'] ), ENT_QUOTES, $config['charset'] )."" ); $_SESSION['question'] = $question['id']; } else { $tpl->set_block( "'[question](.*?)[/question]'si", "" ); $tpl->set( '{question}', "" ); } $text = ""; $tpl->set( '{reply-author}', $row['user_from'] ); if (strpos ( $row['subj'], "RE:" ) === false) $tpl->set( '{reply-subj}', "RE: " . stripslashes( $row['subj'] ) ); else $tpl->set( '{reply-subj}', stripslashes( $row['subj'] ) ); if( $config['allow_comments_wysiwyg'] ) { include_once ENGINE_DIR . '/editor/comments.php'; $bb_code = ""; $allow_comments_ajax = true; } else include_once ENGINE_DIR . '/modules/bbcode.php'; if( $config['allow_comments_wysiwyg'] ) { $tpl->set( '{editor}', $wysiwyg ); } else { $tpl->set( '{editor}', $bb_code ); } $tpl->set( '{text}', $text ); if( $config['sec_addnews'] ) { $salt = str_shuffle("abchefghjkmnpqrstuvwxyz"); $random_key = ""; for($i = 0; $i < 8; $i ++) { $random_key .= $salt{rand( 0, 23 )}; } $_SESSION['id_key'] = $random_key; $random_key = ""; } else $random_key = ""; if( $config['allow_comments_wysiwyg'] == "2") $tpl->copy_template = "n" . $tpl->copy_template . "{$random_key}"; else $tpl->copy_template = "n" . $tpl->copy_template . "{$random_key}"; } else $tpl->set_block( "'[quick-reply].*?[/quick-reply]'si", $err );

2. Открыть templates/YOURTEMPLATE/pm.tpl

Между тегами [readpm] … [/readpm] в нужное вам место вставить:

[quick-reply]


        

[sec_code] [/sec_code] [recaptcha] [/recaptcha] [question] [/question]

{editor}
Код:* {sec_code}
Введите два слова, показанных на изображении:* {recaptcha}
Вопрос: {question}
Ответ:*

Отправить [/quick-reply] Я лично удалил кнопку просмотра сообщения, но в инструкции оставил (кто нибудь ей вообще пользовался !?) )

Найти между тегами [newpm] … [/newpm]:

{text}

Заменить на

{pm-text}

3. Открыть engine/ajax/pm.php

Найти:

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

Заменить на:

$tpl->set( '{pm-text}', stripslashes($text) );

$tpl->set_block( "'[quick-reply].*?[/quick-reply]'si", "" );
$tpl->set_block( "'[reply].*?[/reply]'si", "" );
$tpl->set_block( "'[del].*?[/del]'si", "" );
$tpl->set_block( "'[complaint].*?[/complaint]'si", "" );
$tpl->set_block( "'[ignore].*?[/ignore]'si", "" );

Тем самым еще удалили при просмотре кнопки Пожаловаться / Удалить / Игнорить / Ответить

Готово.

Сайт автора: dark5ider.ru