Xpert
Сделай, пожалуйста, чтобы опять название темы было ссылкой на последний пост.
народ жалуется.
Добавлено спустя 52 секунды:
а так ссылка - стрелка и номера прижились вроде
Добавлено спустя 1 час 29 минут 17 секунд:
хотя не надо... я уже сам переделал
Добавлено спустя 1 час 22 минуты 54 секунды:
Я тут уже, наверное, надоел всем своими постами

но всё же расскажу. Закончил я с глансом2.
Как показала практика юзанья гланса1 (около месяца) у него бывают проблемы с отображением тем, на которые даны новые ответы. Порой, вместо последнего сообщения темы, выскакивала табличка "в теме нет новых сообщений" Что на самом деле не являлось правдой. Владельцев модемов, и меня в том числе, это очень бесило. Почему? Да потому, что в Нет выходишь на чуть-чуть, нажимаешь на кучу ссылок, ждёшь пока закачаются и быстро убегаешь в оффлайн. А потом, в оффлайне уже видишь, что оказывается "в теме нет новых сообщений"

Какая разница! Нет? ... ну и ладно, покажи последнее, зачем смотреть на эту табличку???
Вобщем это до сих пор меня бесит на овере.
Версия 2.0.0 обладала тем же "глюком".
В 2.0.1, уважаемый
Xpert, по просьбам трудящихся устранил эту неприятность. Но теперь название темы - ссылка на первый пост в теме. Рядом значок с ссылкой на последний пост, при этом он ещё является индикатором, отображающим появление новых постов в теме.
Вроде бы то что надо.. но...
Но практика показала (2 дней хватило

), что народ уже привык, что название темы - ссылка на новый пост, а не на начало темы. Поступили жалобы на этот счёт, что, дескать, не удобно. И правда.
Хочется спроисть, зачем перемещать пользователя на начало темы? Даже в гланесе 1 версии? Это же неудобно! В панели находяться последние обсуждаемые темы, логично, что народ следит именно за последними топиками, зачем им начало темы?
Я немного изменил мод версии 2.0.1, сделав так, чтобы название темы было ссылкой по принципу первого гланса. Т.е. если есть новые сообщения - название - ссылка на новое сообщение; если не новых сообщений, то названание - ссылка на начало темы. Вроде работает как старый, при этом есть новые функции (правда и старые проблемы есть

)
Объяснение принципов работы мода для юзеров у меня получилось такое
Обновлённая панель "Последние обсуждаемые темы"
Число - кол-во сообщений в теме, номер последнего. Стрелочка с листочком - ссылка на последнее сообщение в теме. Если листочек оранжевый - есть непрочитанные сообщения в теме, название темы в таком случае - ссылка на последнее сообщение темы. Если листочек белый - в теме нет непрочитанных сообщений, а название темы - ссылка на начало темы.
Это тестовая версия.
Убедительная просьба сообщать любых глюках
Мне показалось слишком заутанным, просто жуть

Конечно, я коряво написал, но всё же.
Вобщем меня всё это достало основательно
И я сделал так:
За основу бала взята версия 2.0.0.
Название темы сделално ссылкой на последний пост в теме, независимо от того, есть ли там новые сообщения или нет. При этом используется конкретный номер поста, а не "приписка" к адресу темы - "&view=newest", именно такая запись адреса последнего поста в теме и приводила, иногда, к появлению "в теме нет новых сообщений". Тем самым избавились от этого редгого неприятного "глюка" +, как я уже говорил выше, при отсутствии новых сообщений, не кидает в ненужное начало темы. Код ссылки был взят из версии 2.0.1
Из версии 2.0.1 было взято, на мой взгляд нужное, отображение, напротив темы, кол-ва постов. Код этой фичи из версии 2.0.1.
Для этого пришлось немного переделать темплейт. Не буду конкретно указывать что именно сделал, но замечу, что код, как самоого темплейта, так и генерируемого HTML, уменьшился, по сравнению с версией 2.0.1 прилично.
В конце привожу код теплейта и самого гланса.
glance_body.tpl Код: Выделить всё
<table width="100%" cellpadding="4" cellspacing="1" class="forumline">
<tr>
<th height="25" class="thTop">{ANNO_TITLE}</th>
<th width="47%" class="thTop">{RECENT_TITLE}</th>
</tr>
<tr>
<td class="row1"><span class="genmed">{ANNO_TEXT}</span></td>
<td class="row1">
<table width="100%" cellspacing="0" valign="top" class="genmed" cellpadding="0">
<!-- BEGIN recent -->
<tr>
<td>{recent.BULLET} <a href="{recent.TOPIC_LINK}">{recent.TOPIC_TITLE}</a></td>
<td align="right">{recent.TOPIC_REPLIES}</td>
</tr>
<!-- END recent -->
</table></td>
</tr>
</table>
glance.phpКод: Выделить всё
<?php
/***************************************************************************
* glance.php
* -------------------
* begin : Monday, Jun 14, 2004
* copyright : Xpert
* contact : www.phpbbguru.net, xpert@phpbbguru.net
* version : 2.0.0
*
* $Id: glance.php,v 1.0.0 2004/11/13 23:54 xpert Exp $
*
***************************************************************************/
/***************************************************************************
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
***************************************************************************/
/* Settings */
// Max number symbols in topic title
$max_topic_length = 45;
// No new posts bullet; can also be an image
$recent_bullet_old = '<span style="font-weight: bold;">››</span>';
// New posts bullet; can also be an image
$recent_bullet_new = '<span style="font-weight: bold; color:#FFA34F;">››</span>';
/* End of settings section */
if ( !defined('IN_PHPBB') )
{
die("Hacking attempt");
}
// Getting basic data
$recent_nm = intval($board_config['glance_recent']);
$user_lastvisit = $userdata['user_lastvisit'];
// Define censored word matches
$orig_word = array();
$replacement_word = array();
obtain_word_list($orig_word, $replacement_word);
// Auth check
$is_auth = array();
$is_auth = auth(AUTH_VIEW, AUTH_LIST_ALL, $userdata);
$unauthed = '0';
while ( list($forum_id, $auth_mode) = each($is_auth) )
{
if ( !$auth_mode['auth_view'] )
{
$unauthed .= ',' . $forum_id;
}
}
// Getting recent topics
$sql = "SELECT t.topic_id, t.topic_title, p.post_time, t.topic_last_post_id, t.topic_replies
FROM " . TOPICS_TABLE . " AS t, " . POSTS_TABLE . " AS p
WHERE t.forum_id NOT IN (" . $unauthed . ")
AND p.topic_id = t.topic_id
AND p.post_id = t.topic_last_post_id
AND t.topic_moved_id = 0
ORDER BY p.post_time DESC
LIMIT " . $recent_nm;
$result = $db->sql_query($sql) or message_die(GENERAL_ERROR, "Could not query recent topics information", "", __LINE__, __FILE__, $sql);
$latest_topics = array();
while ( $topic_row = $db->sql_fetchrow($result) )
{
$topic_row['topic_title'] = ( count($orig_word) ) ? preg_replace($orig_word, $replacement_word, $topic_row['topic_title']) : $topic_row['topic_title'];
$latest_topics[] = $topic_row;
}
$db->sql_freeresult($result);
// Template routines
$template->set_filenames(array(
'glance_output' => 'glance_body.tpl')
);
for ( $i = 0; $i < count($latest_topics); $i++ )
{
$unread_topic = false;
$topic_id = $latest_topics[$i]['topic_id'];
if ( $userdata['session_logged_in'] )
{
if ( $latest_topics[$i]['post_time'] > $user_lastvisit)
{
if( empty($tracking_topics[$topic_id]) || ($tracking_topics[$topic_id] < $latest_topics[$i]['post_time']) )
{
$unread_topic = true;
}
}
}
$latest_topics[$i]['topic_title'] = (strlen($latest_topics[$i]['topic_title']) > $max_topic_length) ? substr($latest_topics[$i]['topic_title'], 0, $max_topic_length) . '…' : $latest_topics[$i]['topic_title'];
$bullet = ( $unread_topic ) ? $recent_bullet_new : $recent_bullet_old;
$topic_link = append_sid("viewtopic.$phpEx?" . POST_POST_URL . '=' . $latest_topics[$i]['topic_last_post_id']) . '#' . $latest_topics[$i]['topic_last_post_id'];
$template->assign_block_vars('recent', array(
'BULLET' => $bullet,
'TOPIC_LINK' => $topic_link,
'TOPIC_TITLE' => $latest_topics[$i]['topic_title'],
'TOPIC_REPLIES' => $latest_topics[$i]['topic_replies'])
);
}
$template->assign_vars(array(
'ANNO_TITLE' => $lang['Glance_anno'],
'ANNO_TEXT' => $board_config['glance_anno'],
'RECENT_TITLE' => $lang['Glance_recent'])
);
$template->assign_var_from_handle('GLANCE_OUTPUT', 'glance_output');
?>
Уж извиняйте за такой громоздкий пост, но прикрепять zip файл, который потом станет битой ссылкой я не считаю разумным.
Как всё это работает вы можите посмотреть на
http://dhost.info/omskteam/forum/
На мой взгляд самая практичная, простая и лёгая версия.
Правда отсутствие ограничения кол-ва символов названия отображаемой темы немного расстаривает, но думаю
Xpert скоро добавит эту фичу
За сим откланиваюсь, надеюсь это вам пригодиться. 4upuk.
Добавлено спустя 21 минуту 45 секунд:
Vladson Да, кстати.
Пемплейт весит АЖ 559 байт
