Как просил lezginka в соседнем посте, написал поиск для сообщений. Не знаю как с безопасностью, писал "на коленке" 10 мин. Добавил в свой демо сайт — rbdt.v-irshavi.com/ логин/пароль — user
Не особо утруждался делать красивый вывод результатов, каждый может заточить под себя.
Установка:
1. В файле /components/users/router.php в конце перед return $routes; вставим
2. В файле /components/users/frontend.php перед if ($do=='karma'){
Как вы заметили, в этом тексте и есть вывод найденых сообщений, тут правим все под себя. Мне просто лень было все выносить в шаблон.
3. Ну и добавляем форму поиска в шаблон, в файле com_users_messages.tpl в нужном месте, а у меня после <div class="con_heading" style="margin-bottom:25px">{$LANG.MY_MESS}</div>
Вроде работает. Может кто дополнит, если надо. Если кто то может угостить пивом — мой кошелек R209550522002 Спасибо!
Не особо утруждался делать красивый вывод результатов, каждый может заточить под себя.
Установка:
1. В файле /components/users/router.php в конце перед return $routes; вставим
'_uri' => '/^users\/([0-9]+)\/searchmsg.html$/i', 'do' => 'searchmsg', 1 => 'id' );
if ($do=='searchmsg'){ $user_id = $inUser->id; $usr = $model->getUserShort($id); if (!$usr) { cmsCore::error404(); } echo '<div class="con_heading" style="margin-bottom:25px">'.$_LANG['MY_MESS'].'</div> <form action="/users/'.$id.'/searchmsg.html" method="POST" name="poisk"><input type="text" name="word" size="20" value=""> <a href="javascript:document.poisk.submit();">Поиск</a></form><br> <div class="usr_msgmenu_tabs"> <a class="usr_msgmenu_link in_link" href="/users/'.$id.'/messages.html">'.$_LANG['INBOX'].'</a> <a class="usr_msgmenu_link out_link" href="/users/'.$id.'/messages-sent.html">'.$_LANG['SENT'].'</a> <a class="usr_msgmenu_link new_link" href="/users/'.$id.'/messages-new.html">'.$_LANG['WRITE'].'</a> </div> <h3>Результаты поиска:</h3>'; $sql = "SELECT *, b.id, b.nickname FROM cms_user_msg a LEFT JOIN cms_users b ON a.from_id = b.id WHERE a.to_id = $id AND UPPER(a.message) LIKE '%".strtoupper($word)."%'"; $result = $inDB->query($sql); if ($inDB->num_rows($result)>0){ while($m = $inDB->fetch_assoc($result)){ if ($m[nickname] == '') { $m[nickname]='Служба рассылки';} echo '<br><b> Отправлено:'.$m[senddate].' Отправитель:'.$m[nickname].'</b><br>'; echo '<pre>'.$m[message].'</pre>'; echo '<br><hr>'; } } else { echo '<p>По Вашему запросу ничего не найдено!</p>'; } { echo '<p>Для поиска введите минимум 4 символа!</p>'; } }
3. Ну и добавляем форму поиска в шаблон, в файле com_users_messages.tpl в нужном месте, а у меня после <div class="con_heading" style="margin-bottom:25px">{$LANG.MY_MESS}</div>
<form action="/users/{$id}/searchmsg.html" method="POST" name="poisk"><input type="text" name="word" size="20" value=""> <a href="javascript:document.poisk.submit();">Поиск</a></form>
Вроде работает. Может кто дополнит, если надо. Если кто то может угостить пивом — мой кошелек R209550522002 Спасибо!