Топики в алфавитном порядке

Автор DeL Esprit, 26 марта 2010, 20:22:11

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

DeL Esprit

Темы выводятся в алфавитном порядке. Шаблон не дефоултный.
Какой файл  ковырять?

Mavn

сейчас кости раскидаю чтобы погадать!
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Mr. Anviss


DeL Esprit

MessageIndex.php:
function template_main()
{
global $context, $settings, $options, $scripturl, $modSettings, $txt;

// header text
echo '<div class="header">', $context['name'], '</div>';

// moderation
echo '
<div style="text-align: right;">' , theme_show_buttons() , '</div>';

if (isset($context['boards']) && (!empty($options['show_children']) || $context['start'] == 0))
{
foreach ($context['boards'] as $board)
{
echo ' <p><img src="'.$settings['images_url'].'/post/xx.gif" alt="" align="middle" style="margin-right: 1ex;" border="0" />
<a href="', $board['href'], ';sort=subject" name="b', $board['id'], '">', $board['name'], '</a></p>';
}
}

foreach ($context['topics'] as $topic)
{
if (is_numeric(trim(substr($topic['subject'], 0, $settings['lose_chars']))))
$topic['subject'] = substr($topic['subject'], $settings['lose_chars']);

// Can't use the link variable because we need to be able to kludge this link.
echo '<p><img src="'.$settings['images_url'].'/post/xx.gif" style="margin-right: 1ex;" alt="" align="middle" border="0" />
<a href="', $scripturl, '?topic=', $topic['id'], '">', $topic['subject'], '</a></p>';
}

// if no topics, add some space
if(empty($context['topics']))
echo '<br /><br />';

if (!empty($options['show_board_desc']) && $context['description'] != '')
echo '
<div class="description2">', $context['description'], '</div>';

}

function theme_show_buttons()
{
global $context, $settings, $options, $txt, $scripturl;

// If the user has permission to show the notification button... ask them if they're sure, though.
if ($context['can_mark_notify'])
echo '<div class="tab2"><a href="' . $scripturl . '?action=notifyboard;sa=' . ($context['is_marked_notify'] ? 'off' : 'on') . ';board=' . $context['current_board'] . '.' . $context['start'] . ';sesc=' . $context['session_id'] . '" onclick="return confirm(\'' . ($context['is_marked_notify'] ? $txt['notification_disable_board'] : $txt['notification_enable_board']) . '\');">' . $txt[131] . '</a></div>';

// Are they allowed to post new topics? Use the default SMF theme. You can't use the post template.
if ($context['can_post_new'])
echo '<div class="tab2"><a href="' . $scripturl . '?action=post;board=' . $context['current_board'] . ';theme=4">' .  $txt[33] . '</a></div>';
}


где "оно"?

Mr. Anviss

Во-первых Вы привели код файла MessageIndex.template.php, а я говорил про MessageIndex.php, а он находится в папке Sources. 
Теперь по существу.
Находим в файле который я указал место ( строки с 436 по 457) и заменяем его на 

$result = db_query("
SELECT
t.ID_TOPIC, t.numReplies, t.locked, t.numViews, t.isSticky, t.ID_POLL,
" . ($user_info['is_guest'] ? '0' : 'IFNULL(lt.ID_MSG, IFNULL(lmr.ID_MSG, -1)) + 1') . " AS new_from,
t.ID_LAST_MSG, ml.posterTime AS lastPosterTime, ml.ID_MSG_MODIFIED,
ml.subject AS lastSubject, ml.icon AS lastIcon, ml.posterName AS lastMemberName,
ml.ID_MEMBER AS lastID_MEMBER, IFNULL(meml.realName, ml.posterName) AS lastDisplayName,
t.ID_FIRST_MSG, mf.posterTime AS firstPosterTime,
mf.subject AS firstSubject, mf.icon AS firstIcon, mf.posterName AS firstMemberName,
mf.ID_MEMBER AS firstID_MEMBER, IFNULL(memf.realName, mf.posterName) AS firstDisplayName,
LEFT(ml.body, 384) AS lastBody, LEFT(mf.body, 384) AS firstBody, ml.smileysEnabled AS lastSmileys,
mf.smileysEnabled AS firstSmileys
FROM ({$db_prefix}topics AS t, {$db_prefix}messages AS ml, {$db_prefix}messages AS mf)
LEFT JOIN {$db_prefix}members AS meml ON (meml.ID_MEMBER = ml.ID_MEMBER)
LEFT JOIN {$db_prefix}members AS memf ON (memf.ID_MEMBER = mf.ID_MEMBER)" . ($user_info['is_guest'] ? '' : "
LEFT JOIN {$db_prefix}log_topics AS lt ON (lt.ID_TOPIC = t.ID_TOPIC AND lt.ID_MEMBER = $ID_MEMBER)
LEFT JOIN {$db_prefix}log_mark_read AS lmr ON (lmr.ID_BOARD = $board AND lmr.ID_MEMBER = $ID_MEMBER)"). "
WHERE " . ($pre_query ? 't.ID_TOPIC IN (' . implode(', ', $topic_ids) . ')' : "t.ID_BOARD = $board") . "
AND ml.ID_MSG = t.ID_LAST_MSG
AND mf.ID_MSG = t.ID_FIRST_MSG
ORDER BY " . ($pre_query ? "FIND_IN_SET(t.ID_TOPIC, '" . implode(',', $topic_ids) . "')" : (!empty($modSettings['enableStickyTopics']) ? 'isSticky' . ($fake_ascending ? '' : ' DESC') . '' : '') . '' . ($ascending ? '' : '')) . "
,firstSubject LIMIT " . ($pre_query ? '' : "$start, ") . "$maxindex", __FILE__, __LINE__);


Теперь должно получится так, как Вы и просили. У меня покрайней мере вышло. Не забудьте перед внесением изменений сохранить файл чтобы в случае неудачи иметь возможность востановить.

DeL Esprit

нет изменений
"прикол" где-то в теме, ибо другие темы нормально же отображаются

Mr. Anviss

Ну так прикрепите прикол здесь. Посмотрю.

DeL Esprit


Mr. Anviss

#8
Я что-то не совсем понял - это у Вас что тема такая? Если да, то выкиньте ее на ... Если Вы последовали моим рекомендациям 2-мя постами выше то в дефолтной теме все должно работать.

DeL Esprit

в дефоултной работало и так. а тут тема вики-стайл - всё отлично, кроме вот этого алфавитного порядка :(

Mr. Anviss

Ссылочку на тему выложи плиз.

DeL Esprit


Mr. Anviss

Что касается сортировки топиков то решение верно. Во вложении скрин. Про подробное обсуждение написано у меня в подписи.

Mavn

Mr. Anviss 

Там(если тема вики) в BoardIndex.template.php ссылки на разделы генерятся с ссылкой сортировки по названию.
на ссылку в адресной строке посмотри
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

DeL Esprit

 Mr. Anviss, я в первом посте не совсем верно высказался, темы стоят в алфавитном порядке, а мне нужно по времени последнего поста(как обычно)
у Вас на скрине, так как оно выглядит при установке.

Mr. Anviss

Шановни колеги то, что Вы видите на скрине есть не что иное как вывод файлов MessageIndex.php и MessageIndex.template.php но ни как ни BoardIndex.template.php. Я так думаю.

Mavn

просто не вижу смысла гланды через одно место выдирать :)

как говорил выше дело в файлике Boardindex.template.php
<a href="', $board['href'], ';sort=subject" name="b', $board['id'], '">', $board['name'], '</a>

обратить внимание на параметр
;sort=subject
в данном случае указывается сортировка при входе непосредственно в раздел при помощи передачи параметра сортировки через адресную строку.
достаточно просто убрать данный параметр и все будет как задано в настройках форума.
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

DeL Esprit

Поставил в настройках - "новые сообщения сверху"
Ввожу в строку адрес без параметра sort=subject - результата нету.
может какое-то еще значение задать этому параметру?

SeRiToYoH

Искал поиском - не нашел, зато нашел тему, в которой можно спросить:

1. Можно ли на отдельно взятый раздел поставить алфавитную сортировку тем, при этом во всех остальных разделах сортировка тем и сообщений была по дате, последние снизу.

2. Существует ли мод, который для отдельного раздела создает алфавитный рубрикатор с выводом в шапке алфавита как в списке пользователей?
С уважением, Евгений. Форум на SMF http://vinforum.ru

valek0972


SeRiToYoH

#20
Цитата: valek0972 от 20 февраля 2014, 16:14:59
Посмотрите здесь, может подойдет:  http://dragomano.ru/page/default-sort-for-boards
Спасибо, начал пробовать устанавливать на 2.0.7 Вроде все в порядке, правки руками понятны, но после установки выдало:

ЦитироватьYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.num_posts, b.num_topics, c.id_cat, c.name AS cat_name, c.cat_order, c.can_colla' at line 4
Файл: Z:\home\localhost\www\vin2\Sources\Subs-Boards.php
Строка: 1073

Вот кусок кода, начиная со строки 1073:
Цитировать);
$cat_tree = array();
   $boards = array();
   $last_board_order = 0;
   while ($row = $smcFunc['db_fetch_assoc']($request))
   {
      if (!isset($cat_tree[$row['id_cat']]))
      {
         $cat_tree[$row['id_cat']] = array(
            'node' => array(
               'id' => $row['id_cat'],
               'name' => $row['cat_name'],
               'order' => $row['cat_order'],
               'can_collapse' => $row['can_collapse']
            ),
            'is_first' => empty($cat_tree),
            'last_board_order' => $last_board_order,
            'children' => array()
         );
         $prevBoard = 0;
         $curLevel = 0;
      }

Подскажите, чего тут не так? Куда копать?

Удалил мод, ошибка осталась  :(
С уважением, Евгений. Форум на SMF http://vinforum.ru