Мод: topics popup (посоветуйте)

Форум для авторов модов для phpBB 2.0.x. Здесь можно попросить помощи в разработке у коллег.
Правила форума
Если на ваш вопрос есть ответы по ниже следующим ссылкам, ваш пост удаляется без объяснения причин!!!
А вы рискуете получить предупреждение или бан (в зависимости от настроения модератора).


Местная Конституция | Шаблон запроса | Документация (phpBB3) | FAQ-2 (phpbb2) | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Мод: topics popup (посоветуйте)

Сообщение Joss 29.06.2005 21:06

Думаю оформить в виде мода: в viewforum.php и search.php при наведении мыши на тему топика, всплывает окошко с парой первых строчек первого сообщения. Можно посмотреть в http://forum.rojdenie.ru .

Т.к. MySql я не знаю и с php не знаком, хотелось бы спросить, верно ли я формирую запросы и обрабатываю строки. Может можно как-то оптимизировать?

Код используется такой:

Код: Выделить всё
$sql = "SELECT u.username, pt.post_text
   FROM " . POSTS_TABLE . " p, " . USERS_TABLE . " u, " . POSTS_TEXT_TABLE . " pt
   WHERE p.topic_id = $topic_id
      $limit_posts_time
      AND pt.post_id = p.post_id
      AND u.user_id = p.poster_id
   ORDER BY p.post_time $post_time_order
   LIMIT $start, 1";

if ( !($result = $db->sql_query($sql)) )
{
   message_die(GENERAL_ERROR, "Could not obtain post/user information.", '', __LINE__, __FILE__, $sql);
}

$postrow = $db->sql_fetchrow($result);

$im_popup_post = $postrow['post_text'];
$im_popup_user = $postrow['username'];


Здесь достаем первое сообщение топика и его автора.

А здесь удаляем из строки лишние пробелы, пробелы в начале и конце строки, удаляем символы новой строки (кстати, нужно r и n обрабатывать или только r?), удаляем bbcode, удаляем смайлики (это уже от форума зависит, на этом форуме коды типа :sm00:) и удаляем кавычки. Потом добавляем многоточие для длинной строки (строки предварительно обрезаем до 200 (до первого последнего пробела) или, если влезает в 240 символов, то оставляем целиком).

Код: Выделить всё
if (strlen($im_popup_post) < 240)
{
    $im_popup_post = str_replace("\n", " ", $im_popup_post);
    $im_popup_post = str_replace("\r", " ", $im_popup_post);

else
{
    $im_popup_post = substr($im_popup_post, 0, 200);
    $im_popup_post = str_replace("\n", " ", $im_popup_post);
    $im_popup_post = str_replace("\r", " ", $im_popup_post);
    $im_popup_post = substr($im_popup_post, 0, strrpos($im_popup_post, ' ') + 1) .' ...';
}
   
$im_popup_post = ereg_replace(":sm([0-9]{1,2}):", " ", $im_popup_post);   
$im_popup_post = ereg_replace("\[([[:print:]]+)\]", " ", $im_popup_post);
$im_popup_post = str_replace("\"", " ", $im_popup_post);
$im_popup_post = trim ( $im_popup_post );
while ( strpos($im_popup_post,'  ')!==false )
{
  $im_popup_post = str_replace('  ',' ',$im_popup_post);
};


Можно ли как то упростить запрос или же строки замены? Я тут ни бум-бум, что нашел в доках, как понял, так и записал. :) Заранее благодарен за ответы....
Joss
phpBB 1.4.3
 
Сообщения: 62
Зарегистрирован: 12.05.2005 13:17
Откуда: Питер


Сообщение Siava 29.06.2005 23:31

Joss
Аналог вот ЭТОГО мода. Ваш кстати очень даже неплохо сделан, мне нравится, обязательно оформляйте в виде мода :D
Генератор db_update-файлов для phpBB 2.0
Еще одно нарушение правил и будете забанены.
© Mr. Anderson
Аватара пользователя
Siava
phpBB 3.0.2
 
Сообщения: 2665
Зарегистрирован: 11.01.2005 14:29
Откуда: Питер



Вернуться в Для авторов (phpBB 2.0.x)

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0