Last Forum Topic On Index

Все моды, созданные нашим сообществом для phpBB 2.0.x, будут анонсированы тут. Вся техническая поддержка по этим модам оказывается в этом форуме.

Сообщение muromez 13.04.2005 1:25

Xpert прикольно! Работает! Полный респект! А листочек кстати остался! Но это не мешает!
Преогромнейшее спасибо! :D
muromez
phpBB 1.2.0
 
Сообщения: 16
Зарегистрирован: 27.02.2005 1:01

Сообщение Dr.Death 17.04.2005 4:57

Ребят а как добавить чтоб в конце названия темы выводилось количество сообщений в теме?
Тема (кол-во)
http://www.doctordeath.org.ru - дохтур живет тут 8)
Аватара пользователя
Dr.Death
phpBB 2.0.0
 
Сообщения: 109
Зарегистрирован: 16.12.2004 21:46

Сообщение Iftin 25.05.2005 21:14

не подскажите как сделать, чтобы и ники тоже были подсвечены и вели на его профиль... вот как на этом форуме сделано... с вашим модом. http://forum.vvvas.ru/
Аватара пользователя
Iftin
phpBB 2.0.12
 
Сообщения: 577
Зарегистрирован: 11.05.2005 19:40
Откуда: Moscow
Предупреждения: 1

Сообщение Romiyo 25.05.2005 21:50

Iftin

Код: Выделить всё
#
#-----[ OPEN ]------------------------------------------------
#
index.php

#
#-----[ FIND ]-----------------------------------------
#
      $last_post .= ( $forum_data[$j]['user_id'] == ANONYMOUS ) ? ( ($forum_data[$j]['post_username'] != '' ) ? $forum_data[$j]['post_username'] : $lang['Guest']) : $forum_data[$j]['username'];

#
#-----[ REPLACE WITH ]---------------------------------
#

      $last_post .= ( $forum_data[$j]['user_id'] == ANONYMOUS ) ? ( ($forum_data[$j]['post_username'] != '' ) ? $forum_data[$j]['post_username'] . ' ' : $lang['Guest'] . ' ' ) : '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . '='  . $forum_data[$j]['user_id']) . '">' . $forum_data[$j]['username'] . '</a> ';
Неадекватен
Аватара пользователя
Romiyo
Неадекватен
 
Сообщения: 632
Зарегистрирован: 16.12.2004 11:36
Откуда: tln.ee

Сообщение Iftin 25.05.2005 22:04

Romiyo
спасибо большое :)
Аватара пользователя
Iftin
phpBB 2.0.12
 
Сообщения: 577
Зарегистрирован: 11.05.2005 19:40
Откуда: Moscow
Предупреждения: 1

Сообщение automan 11.06.2005 13:05

подскажите плиз
как сделать чтоб было:


назваие темы Изображение
дата темы
ник (на котрый кликнуть можно как показали выше)

именно в таком порядке, получается три строчки
спасибо
Аватара пользователя
automan
phpBB 2.0.5
 
Сообщения: 238
Зарегистрирован: 20.04.2005 11:36

Сообщение VVVas 11.06.2005 14:20

automan
Открываете index.php, тот кусок, который правили при установке мода и меняете так как вам надо.

Вам примерно надо:
Код: Выделить всё
   $max_topic_length = 30;

   if ( $forum_data[$j]['forum_last_post_id'] )
   {
      $forum_data[$j]['topic_title'] = (strlen($forum_data[$j]['topic_title']) > $max_topic_length) ? substr($forum_data[$j]['topic_title'], 0, $max_topic_length) . '&hellip;' : $forum_data[$j]['topic_title'];   

      $last_post_time = create_date($board_config['default_dateformat'], $forum_data[$j]['post_time'], $board_config['board_timezone']);

      $last_post = '<a href="' . append_sid("viewtopic.$phpEx?"  . POST_TOPIC_URL . '=' . $forum_data[$j]['topic_id']) . '">' . $forum_data[$j]['topic_title'] . '</a>';

      $last_post .= '&nbsp;<a href="' . append_sid("viewtopic.$phpEx?"  . POST_POST_URL . '=' . $forum_data[$j]['forum_last_post_id']) . '#' . $forum_data[$j]['forum_last_post_id'] . '"><img src="' . $images['icon_latest_reply'] . '" border="0" alt="' . $lang['View_latest_post'] . '" title="' . $lang['View_latest_post'] . '" /></a><br />';

      $last_post .= $last_post_time . '<br />';

      $last_post .= ( $forum_data[$j]['user_id'] == ANONYMOUS ) ? ( ($forum_data[$j]['post_username'] != '' ) ? $forum_data[$j]['post_username'] : $lang['Guest']) : $forum_data[$j]['username'];
   }


Ну и ссылку на профиль так как написал выше Romiyo.
вы нарушили правила конференции, объяснений не будет - сами читайте правила
я люблю daft punk | Активные темы
Аватара пользователя
VVVas
Люмпен Пролетариат
Люмпен Пролетариат
 
Сообщения: 4737
Зарегистрирован: 12.11.2004 1:20
Откуда: RU-MSK

Сообщение automan 11.06.2005 15:06

VVVas, большое тебе спасибо :)



еще маленький вопросик получается что картинка Изображение не меняется на Изображение
можно ли как то это исправить, или это сложно? :)
Аватара пользователя
automan
phpBB 2.0.5
 
Сообщения: 238
Зарегистрирован: 20.04.2005 11:36

Сообщение VVVas 11.06.2005 16:12

По идее должна меняться, пока не могу сообразить в чем проблема.
вы нарушили правила конференции, объяснений не будет - сами читайте правила
я люблю daft punk | Активные темы
Аватара пользователя
VVVas
Люмпен Пролетариат
Люмпен Пролетариат
 
Сообщения: 4737
Зарегистрирован: 12.11.2004 1:20
Откуда: RU-MSK

Сообщение Nome 11.06.2005 16:44

там довольно приличный кусок кода из viewforum.php
Код: Выделить всё
/////////////
      if( $topic_rowset[$i]['topic_status'] == TOPIC_MOVED )
      {
         $topic_type = $lang['Topic_Moved'] . ' ';
         $topic_id = $topic_rowset[$i]['topic_moved_id'];

         $folder_image =  $images['folder'];
         $folder_alt = $lang['Topics_Moved'];
         $newest_post_img = '';
      }
      else
      {
         if( $topic_rowset[$i]['topic_type'] == POST_ANNOUNCE )
         {
            $folder = $images['folder_announce'];
            $folder_new = $images['folder_announce_new'];
         }
         else if( $topic_rowset[$i]['topic_type'] == POST_STICKY )
         {
            $folder = $images['folder_sticky'];
            $folder_new = $images['folder_sticky_new'];
         }
         else if( $topic_rowset[$i]['topic_status'] == TOPIC_LOCKED )
         {
            $folder = $images['folder_locked'];
            $folder_new = $images['folder_locked_new'];
         }
         else
         {
            if($replies >= $board_config['hot_threshold'])
            {
               $folder = $images['folder_hot'];
               $folder_new = $images['folder_hot_new'];
            }
            else
            {
               $folder = $images['folder'];
               $folder_new = $images['folder_new'];
            }
         }

         $newest_post_img = '';
         if( $userdata['session_logged_in'] )
         {
            if( $topic_rowset[$i]['post_time'] > $userdata['user_lastvisit'] )
            {
               if( !empty($tracking_topics) || !empty($tracking_forums) || isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f_all']) )
               {
                  $unread_topics = true;

                  if( !empty($tracking_topics[$topic_id]) )
                  {
                     if( $tracking_topics[$topic_id] >= $topic_rowset[$i]['post_time'] )
                     {
                        $unread_topics = false;
                     }
                  }

                  if( !empty($tracking_forums[$forum_id]) )
                  {
                     if( $tracking_forums[$forum_id] >= $topic_rowset[$i]['post_time'] )
                     {
                        $unread_topics = false;
                     }
                  }

                  if( isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f_all']) )
                  {
                     if( $HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f_all'] >= $topic_rowset[$i]['post_time'] )
                     {
                        $unread_topics = false;
                     }
                  }

                  if( $unread_topics )
                  {
                     $folder_image = $folder_new;
                     $folder_alt = $lang['New_posts'];

                     $newest_post_img = '<a href="' . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&amp;view=newest") . '"><img src="' . $images['icon_newest_reply'] . '" alt="' . $lang['View_newest_post'] . '" title="' . $lang['View_newest_post'] . '" border="0" /></a> ';
                  }
                  else
                  {
                     $folder_image = $folder;
                     $folder_alt = ( $topic_rowset[$i]['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['No_new_posts'];

                     $newest_post_img = '';
                  }
               }
               else
               {
                  $folder_image = $folder_new;
                  $folder_alt = ( $topic_rowset[$i]['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['New_posts'];

                  $newest_post_img = '<a href="' . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&amp;view=newest") . '"><img src="' . $images['icon_newest_reply'] . '" alt="' . $lang['View_newest_post'] . '" title="' . $lang['View_newest_post'] . '" border="0" /></a> ';
               }
            }
            else
            {
               $folder_image = $folder;
               $folder_alt = ( $topic_rowset[$i]['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['No_new_posts'];

               $newest_post_img = '';
            }
         }
         else
         {
            $folder_image = $folder;
            $folder_alt = ( $topic_rowset[$i]['topic_status'] == TOPIC_LOCKED ) ? $lang['Topic_locked'] : $lang['No_new_posts'];

            $newest_post_img = '';
         }
      }
////////////

если его разобрать по логике, то все должно работать, однако надо еще составить правильный sql запрос, см. тот же файл.
то что я делал, оптимизировано под конкретно мой проект и не претендует на универсальность, поэтому - не выкладываю
Nome
phpBB 1.4.3
 
Сообщения: 65
Зарегистрирован: 01.02.2005 22:28

Сообщение [R: R@m$e$ :U] 28.07.2005 11:21

в общем по теме раскиданы посты про бд не [ms/my]sql... =) но конкретно нашел только oracle... воть код, как будет работать на всех бд... =) тк сейчас мучаю пхпбб+postgres поэтому наткнулся на данную граблю... =)) и тут решил это подправить =)
Код: Выделить всё
#
#-----[ OPEN ]------------------------------------------------
#

index.php

#
#-----[ FIND ]-----------------------------------------
#

      case 'postgresql':
         $sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id
            FROM " . FORUMS_TABLE . " f, " . POSTS_TABLE . " p, " . USERS_TABLE . " u
            WHERE p.post_id = f.forum_last_post_id
               AND u.user_id = p.poster_id 
               UNION (
                  SELECT f.*, NULL, NULL, NULL, NULL
                  FROM " . FORUMS_TABLE . " f
                  WHERE NOT EXISTS (
                     SELECT p.post_time
                     FROM " . POSTS_TABLE . " p
                     WHERE p.post_id = f.forum_last_post_id 
                  )
               )
               ORDER BY cat_id, forum_order";
         break;

      case 'oracle':
         $sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id
            FROM " . FORUMS_TABLE . " f, " . POSTS_TABLE . " p, " . USERS_TABLE . " u
            WHERE p.post_id = f.forum_last_post_id(+)
               AND u.user_id = p.poster_id(+)
            ORDER BY f.cat_id, f.forum_order";
         break;

      default:
         $sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id
            FROM (( " . FORUMS_TABLE . " f
            LEFT JOIN " . POSTS_TABLE . " p ON p.post_id = f.forum_last_post_id )
            LEFT JOIN " . USERS_TABLE . " u ON u.user_id = p.poster_id )
            ORDER BY f.cat_id, f.forum_order";
         break;

#
#-----[ REPLACE WITH ]----------------------------------------
#
      case 'postgresql':
         // [start] Last Forum Topic On Index
         // [FIND] , u.user_id ### [AFTER] , t.topic_title, t.topic_id
         // [FIND] , " . USERS_TABLE . " u ### [AFTER] , " . TOPIC_TABLE . " t
         // [FIND] AND u.user_id = p.poster_id ### [AFTER] AND t.topic_id = p.topic_id
         // [FIND] NULL, NULL ### [AFTER] , NULL, NULL
         $sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id, t.topic_title, t.topic_id
            FROM " . FORUMS_TABLE . " f, " . POSTS_TABLE . " p, " . USERS_TABLE . " u, " . TOPIC_TABLE . " t
            WHERE p.post_id = f.forum_last_post_id
               AND u.user_id = p.poster_id 
               AND t.topic_id = p.topic_id
               UNION (
                  SELECT f.*, NULL, NULL, NULL, NULL, NULL, NULL
                  FROM " . FORUMS_TABLE . " f
                  WHERE NOT EXISTS (
                     SELECT p.post_time
                     FROM " . POSTS_TABLE . " p
                     WHERE p.post_id = f.forum_last_post_id 
                  )
               )
               ORDER BY cat_id, forum_order";
         // [end] Last Forum Topic On Index
         break;

      case 'oracle':
         // [start] Last Forum Topic On Index
         // [FIND] , u.user_id ### [AFTER] , t.topic_title, t.topic_id
         // [FIND] , " . USERS_TABLE . " u ### [AFTER] , " . TOPIC_TABLE . " t
         // [FIND] AND u.user_id = p.poster_id(+) ### [AFTER] AND t.topic_id = p.topic_id(+)
         $sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id, t.topic_title, t.topic_id
            FROM " . FORUMS_TABLE . " f, " . POSTS_TABLE . " p, " . USERS_TABLE . " u, " . TOPIC_TABLE . " t
            WHERE p.post_id = f.forum_last_post_id(+)
               AND u.user_id = p.poster_id(+)
               AND t.topic_id = p.topic_id(+)
            ORDER BY f.cat_id, f.forum_order";
         break;
         // [end] Last Forum Topic On Index

      default:
         // [start] Last Forum Topic On Index
         // [FIND] , u.user_id ### [AFTER] , t.topic_title, t.topic_id
         // [FIND] (( ### [AFTER] (
         // [FIND] LEFT JOIN " . USERS_TABLE . " u ON u.user_id = p.poster_id ) ### [AFTER] LEFT JOIN " . TOPICS_TABLE . " t ON t.topic_id = p.topic_id )
         $sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id, t.topic_title, t.topic_id
            FROM ((( " . FORUMS_TABLE . " f
            LEFT JOIN " . POSTS_TABLE . " p ON p.post_id = f.forum_last_post_id )
            LEFT JOIN " . USERS_TABLE . " u ON u.user_id = p.poster_id )
            LEFT JOIN " . TOPICS_TABLE . " t ON t.topic_id = p.topic_id )
            ORDER BY f.cat_id, f.forum_order";
         // [end] Last Forum Topic On Index
         break;
Руководство пользователя | FAQ | Правила | Как устанавливать MOD'ы
ВОСПОЛЬЗУЙСЯ ПОИСКОМ, ТАМ ЕСТЬ БОЛЬШИНСТВО ОТВЕТОВ
ЕСЛИ НЕ ПОМОГЛО, ИСПОЛЬЗУЙ ШАБЛОН ЗАПРОСА, ПОМОГИ В РЕШЕНИИ ЗАДАЧИ
БЕСПЛАТНО ПОМОГУ ТОЛЬКО НА ФОРУМЕ!!! (ЛС НЕ В СЧЕТ)

Оставь благодарность, подтверди работоспособность совета.

ВСЕ ПРАВА НА МОДЫ ОТДАНЫ m157y
Аватара пользователя
[R: R@m$e$ :U]
phpBB Maniac
 
Сообщения: 1516
Зарегистрирован: 16.01.2005 14:04
Откуда: Novosibirsk,RU

Сообщение SAS 10.08.2005 17:25

хмм...а в виде полноценного МОДа оформить слабО? :)
Аватара пользователя
SAS
phpBB 1.0.0
 
Сообщения: 6
Зарегистрирован: 30.01.2005 4:32

Сообщение fergard 29.08.2005 14:42

Блин, установил мод, но все равно вылезает ошибка связанная с названием темы - добавляется &quot, да и в тех форумах, где пользователю нет права на просмотр название темы видно.
Логично было бы просто убрать название темы в таких форумах.
Юмор:
- There are 10 kinds of people: those, who know binary and those, who don't.
- Лазерный прицел для дробовика - красная лампа с надетым на нее дуршлагом

Генератор ДБ-запросов
Тест скорости соединения с Интернетом (c) YarNET
Аватара пользователя
fergard
phpBB 1.2.0
 
Сообщения: 14
Зарегистрирован: 28.07.2005 23:35
Откуда: nutras.ru/forum

Сообщение VVVas 29.08.2005 15:12

fergard писал(а):Блин, установил мод, но все равно вылезает ошибка связанная с названием темы - добавляется &quot

Потому что обрезается ; , а так бы замекнилось на кавычку.
вы нарушили правила конференции, объяснений не будет - сами читайте правила
я люблю daft punk | Активные темы
Аватара пользователя
VVVas
Люмпен Пролетариат
Люмпен Пролетариат
 
Сообщения: 4737
Зарегистрирован: 12.11.2004 1:20
Откуда: RU-MSK

Сообщение automan 07.01.2006 11:44

как в этом коде сделать чтоб при клике на название темы
осуществился переход не в саму тему, а на последние сообщение в теме
тоесть так же как и щелчек по Изображение

Код: Выделить всё
$max_topic_length = 30;

   if ( $forum_data[$j]['forum_last_post_id'] )
   {
      $forum_data[$j]['topic_title'] = (strlen($forum_data[$j]['topic_title']) > $max_topic_length) ? substr($forum_data[$j]['topic_title'], 0, $max_topic_length) . '&hellip;' : $forum_data[$j]['topic_title'];   

      $last_post_time = create_date($board_config['default_dateformat'], $forum_data[$j]['post_time'], $board_config['board_timezone']);

      $last_post = '<a href="' . append_sid("viewtopic.$phpEx?"  . POST_TOPIC_URL . '=' . $forum_data[$j]['topic_id']) . '">' . $forum_data[$j]['topic_title'] . '</a>';

      $last_post .= '&nbsp;<a href="' . append_sid("viewtopic.$phpEx?"  . POST_POST_URL . '=' . $forum_data[$j]['forum_last_post_id']) . '#' . $forum_data[$j]['forum_last_post_id'] . '"><img src="' . $images['icon_latest_reply'] . '" border="0" alt="' . $lang['View_latest_post'] . '" title="' . $lang['View_latest_post'] . '" /></a><br />';

      $last_post .= $last_post_time . '<br />';

      $last_post .= ( $forum_data[$j]['user_id'] == ANONYMOUS ) ? ( ($forum_data[$j]['post_username'] != '' ) ? $forum_data[$j]['post_username'] : $lang['Guest']) : $forum_data[$j]['username'];
   }
Аватара пользователя
automan
phpBB 2.0.5
 
Сообщения: 238
Зарегистрирован: 20.04.2005 11:36

Пред.След.

Вернуться в Анонсы и поддержка модов для phpBB 2.0.x

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

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