Скрипт для вывода последних топиков на главную

Автор Tjom, 28 ноября 2008, 20:52:41

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

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

колбаскин

Ну вот для того чтобы отображались картинки, в index.php нужно добавить
if (!isset($_REQUEST['xml']))
{
require_once($sourcedir . '/BoardAttachments.php');
get_recent_attachments();
}


Я пробую по аналогии подключить
require_once( '/usr/local/www/wvclub.net/forum/SSI.php');
ssi_recentAttachments();


я на правильном пути?

bog74

Для вывода в Joomla 1.0.15 последних сообщений с форума smf 2.0 использую самый обычный mod php
В модуле прописую скрипт с первой страницы
<?php
// * dRecentTopics mod #3
require_once('/home/ualogis1/public_html/***/forum/SSI.php');
$ssi_count_topics_left = 10; // Количество отображаемых последних сообщений в левой колонке
$ssi_count_topics_right = 5; // Количество отображаемых последних сообщений в правой колонке
$ssi_exclude_boards = array (); // Перечислить через запятую id разделов, последние сообщения из которых не отображать. Например, array (10, 20);
$ssi_row_counter = 0;
$ssi_recentTopics = ssi_recentTopics($ssi_count_topics_left + $ssi_count_topics_right, $ssi_exclude_boards, 'array');
echo '<table border="0" width="100%"><tr><td>';
foreach ($ssi_recentTopics as $ssi_recentTopic){
  $ssi_row_counter++;
  echo '<a href="' . $ssi_recentTopic['href'] . '">' . '[+' . $ssi_recentTopic['replies'] . '] ' . $ssi_recentTopic['subject'] . '</a> | ' . $ssi_recentTopic['poster']['name'] . '<br />';
  if ($ssi_row_counter == $ssi_count_topics_left) echo '</td><td>';
}
echo '</td></tr></table>';
// dRecentTopics mod *
?>
сообщения выводятся, но все подряд, без переноса на следующую строку потому что при сохранении модуля вырезается тег <br />

В чем причина этого и как с этим бороться?

Визуальный редактор: простой редактор html

BIOHAZARD

попробуйте затолкать в список или таблицу
Мои моды:
  • RedirectPage
  • Counters
  • CustomSearch
  • SypexDumper
   адаптирую темы    1.1.хx<=>2.0задавая вопросы, старайтесь сразу указывать конечную цель, предполагаемый Вами путь не обязательно окажется самым коротким

Любые моды на заказ

asoft007

Версия форума 2.0
Вставляю код из первого топика в нужное место на сайте.
Отображается число ответов в темах, автор последнего сообщения, но ни в какую не отображаются заголовки тем($ssi_recentTopic['subject'])
Вот ссылка http://www.chagoda-sity.ru/flag-i-gerb
Не подскажете, в чём может быть проблема?

digger®

Цитата: asoft007 от 16 ноября 2011, 21:15:08
Версия форума 2.0
Вставляю код из первого топика в нужное место на сайте.
Отображается число ответов в темах, автор последнего сообщения, но ни в какую не отображаются заголовки тем($ssi_recentTopic['subject'])
Вот ссылка http://www.chagoda-sity.ru/flag-i-gerb
Не подскажете, в чём может быть проблема?

У вас сайт и форум в разных кодировках.
Вы код из первого топика используете как есть или делаете перекодировку данных?

asoft007

Пробовал менять $ssi_recentTopic['subject'] на iconv("CP1251", "UTF-8//IGNORE", $ssi_recentTopic['subject'])
Не помогло, результат тот-же.

AndrSS

Приветствую ВАС!

А можно как то сделать, чтобы ко всему этому еще вернуть "одну колонку", время последнего ответа в сообщении и раздел откуда сообщение?
Потому как все устраивает, но народу уж очень необходима вышеуказанная информация в связи с чем в две колонки уже не получится !

Спасибо!

digger®

Цитата: AndrSS от 11 декабря 2011, 17:53:39
Приветствую ВАС!

А можно как то сделать, чтобы ко всему этому еще вернуть "одну колонку", время последнего ответа в сообщении и раздел откуда сообщение?
Потому как все устраивает, но народу уж очень необходима вышеуказанная информация в связи с чем в две колонки уже не получится !

Спасибо!
Я пример в шапке перепишу.

AndrSS

Существует ли возможность вместо числа ответов в теме, чтобы числом отображалось сколько сообщений не прочитано с момента последнего захода в тему пользователем?

(Сорри! Я видел что вопрос в этой теме задавался, но на него ответа не было)

digger®

Цитата: AndrSS от 11 декабря 2011, 21:14:55
Существует ли возможность вместо числа ответов в теме, чтобы числом отображалось сколько сообщений не прочитано с момента последнего захода в тему пользователем?
Теоретически то она существует, только тормозить это дело будет и тремя строчками такое не реализуешь.

Пример в шапке переписал, добавил поля, все откомментировал. 

AndrSS

Цитата: digger от 12 декабря 2011, 01:33:36Теоретически то она существует, только тормозить это дело будет и тремя строчками такое не реализуешь.

Пример в шапке переписал, добавил поля, все откомментировал. 

Спасибо большое!

Я готов компенсировать расходы на создание такого модуля на Ваших условиях.

digger®

Цитата: AndrSS от 12 декабря 2011, 19:23:24
Спасибо большое!

Я готов компенсировать расходы на создание такого модуля на Ваших условиях.


В личку мне напишите, я подумаю над реальностью реализации такого.

AndrSS

Цитата: digger от 04 октября 2010, 02:53:11Цитата: Constantin Os от 03 Октября 2010, 23:12:37
Есть ли возможность сократить длину темы к определенному числу знаков, при выводе в этом скрипте ?
Допустим тема называется "Скрипт для вывода последних топиков на главную" , сокращается к виду "Скрипт для вывода последних ..." ?

Код: [Выделить]
$smcFunc['substr']($ssi_recentTopic['subject'], 0, 100)

Прошу прощения, а где должна находится эта строка для правильного отображения?

Snu

Добрый день.
подскажите, пожалуйста...
есть сайт на джумле 1,5 и форум swf 2.0
установила мод mod_smf-last-messages  на сайт. работает все хорошо.
но сверху над модулем ругается Notice: Use of undefined constant site - assumed 'site' in /home/u279627/forum.irk____mama.ru/www/Sources/Load.php(2140) : eval()'d code on line 817

там:
// Load this user's permissions.
function loadPermissions()
{
   global $user_info, $board, $board_info, $modSettings, $smcFunc, $sourcedir;

   if ($user_info['is_admin'])
   {
      banPermissions();
      return;
   }

   if (!empty($modSettings['cache_enable']))
   {
      $cache_groups = $user_info['groups'];
      asort($cache_groups);
      $cache_groups = implode(',', $cache_groups);
      // If it's a spider then cache it different.
      if ($user_info['possibly_robot'])
         $cache_groups .= '-spider';

      if ($modSettings['cache_enable'] >= 2 && !empty($board) && ($temp = cache_get_data('permissions:' . $cache_groups . ':' . $board, 240)) != null && time() - 240 > $modSettings['settings_updated'])
      {
         list ($user_info['permissions']) = $temp;
         banPermissions();

         return;
      }
      elseif (($temp = cache_get_data('permissions:' . $cache_groups, 240)) != null && time() - 240 > $modSettings['settings_updated'])
         list ($user_info['permissions'], $removals) = $temp;
   }

   // If it is detected as a robot, and we are restricting permissions as a special group - then implement this.
   $spider_restrict = $user_info['possibly_robot'] && !empty($modSettings['spider_group']) ? ' OR (id_group = {int:spider_group} && add_deny = 0)' : '';

   if (empty($user_info['permissions']))
   {
      // Get the general permissions.
      $request = $smcFunc['db_query']('', '
         SELECT permission, add_deny
         FROM {db_prefix}permissions
         WHERE id_group IN ({array_int:member_groups})
            ' . $spider_restrict,
         array(
            'member_groups' => $user_info['groups'],
            'spider_group' => !empty($modSettings['spider_group']) ? $modSettings['spider_group'] : 0,
         )
      );
      $removals = array();
      while ($row = $smcFunc['db_fetch_assoc']($request))
      {
         if (empty($row['add_deny']))
            $removals[] = $row['permission'];
         else
            $user_info['permissions'][] = $row['permission'];
      }
      $smcFunc['db_free_result']($request);

      if (isset($cache_groups))
         cache_put_data('permissions:' . $cache_groups, array($user_info['permissions'], $removals), 240);
   }

   // Get the board permissions.
   if (!empty($board))
   {
      // Make sure the board (if any) has been loaded by loadBoard().
      if (!isset($board_info['profile']))
         fatal_lang_error('no_board');

      $request = $smcFunc['db_query']('', '
         SELECT permission, add_deny
         FROM {db_prefix}board_permissions
         WHERE (id_group IN ({array_int:member_groups})
            ' . $spider_restrict . ')
            AND id_profile = {int:id_profile}',
         array(
            'member_groups' => $user_info['groups'],
            'id_profile' => $board_info['profile'],
            'spider_group' => !empty($modSettings['spider_group']) ? $modSettings['spider_group'] : 0,
         )
      );
      while ($row = $smcFunc['db_fetch_assoc']($request))
      {
         if (empty($row['add_deny']))
            $removals[] = $row['permission'];
         else
            $user_info['permissions'][] = $row['permission'];
      }
      $smcFunc['db_free_result']($request);
   }

   // Remove all the permissions they shouldn't have ;).
   if (!empty($modSettings['permission_enable_deny']))
      $user_info['permissions'] = array_diff($user_info['permissions'], $removals);

   if (isset($cache_groups) && !empty($board) && $modSettings['cache_enable'] >= 2)
      cache_put_data('permissions:' . $cache_groups . ':' . $board, array($user_info['permissions'], null), 240);

   // Banned?  Watch, don't touch..
   banPermissions();

   // Load the mod cache so we can know what additional boards they should see, but no sense in doing it for guests
   if (!$user_info['is_guest'])
   {
      if (!isset($_SESSION['mc']) || $_SESSION['mc']['time'] <= $modSettings['settings_updated'])
      {
         require_once($sourcedir . '/Subs-Auth.php');
         rebuildModCache();
      }
      else
         $user_info['mod_cache'] = $_SESSION['mc'];
   }
}
что с этим можно сделать? (я совсем блондинка...)  crazy

maestrosite.ru

#164
Смотрите в шаблоне этого модуля слово site  без кавычек.
Сам вывод у вас нормальный: http://forum.irk____mama.ru/ssi_examples.php, а вот с шаблоном, который на сайте список отображает проблема ещё и с вёрсткой:
от <a href="http://forum.irk______mama.ru/index.php?action=profile;u=1975">Александра Авдиенко<br /><a href="http://forum.irk______mama.ru/index.php?topic=7950.msg140808;topicseen#new">
то есть нет закрывающих тегов у ссылок на профили авторов

PS с чем связано, что основной сайт в папке живёт? Имя у папки интересное, да и переадресация чудная такая. Это следствие переезда на новый хостинг?
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

Snu

да. насчет папки все верно. пришлось быстро переезжать. никак руки не дойдут по человечьи сделать...

хм... в модуле - последних сообщений сайта я че то вообще не увидела слово сайт... site т.е.
<?php

/**
* @package mod_smf_last_messages
* @author Nikita Timoshenko (Nekteyn@gmail.com)
* @version 1.0
* @copyright (C) 2011 by Nikita Timoshenko (http://nekteyn.name)
* @license: http://nekteyn.name/licenzija.html
*
*/

defined('_JEXEC') or die('Restricted access');

$full_put    = $params->get('full_put');
$otobr_mes       = $params->get('otobr_mes');

$mainframe = JFactory::getApplication();
$mainframe->addCustomHeadTag('');

require($full_put);

$ssi_count_topics_left = $otobr_mes;
$ssi_exclude_boards = array (); // Перечислить через запятую id разделов, последние сообщения из которых не отображать. Например, array (10, 20);
$ssi_row_counter = 0;
$ssi_recentTopics = ssi_recentTopics($ssi_count_topics_left, $ssi_exclude_boards, 'array1');
echo '<table border="0" width="100%"><tr><td>';
foreach ($ssi_recentTopics as $ssi_recentTopic){
  $ssi_row_counter++;
  echo '<a href="' . $ssi_recentTopic['href'] . '">'  . $ssi_recentTopic['subject'] . '</a> | от <a href="' . $ssi_recentTopic['poster']['href'] . '">'  . $ssi_recentTopic['poster']['name'] . '<br />';
  if ($ssi_row_counter == $ssi_count_topics_left) echo '</td><td>';
}
echo '</td></tr></table>';
?>

maestrosite.ru

Цитата: irk____mama от 14 мая 2012, 03:52:56
по человечьи ...
суровый сибирский админ... =)

Цитата: irk____mama от 14 мая 2012, 03:52:56
хм... в модуле - последних сообщений сайта я че то вообще не увидела слово сайт... site т.е.
1. Где-то в шаблонах on line 817 у вас должна быть конструкция [site]. И возможно в файлах локализации такая: ["site"] или ['site']

2. Измените эту строчку:

  echo '<a href="' . $ssi_recentTopic['href'] . '">'  . $ssi_recentTopic['subject'] . '</a> | от <a href="' . $ssi_recentTopic['poster']['href'] . '">'  . $ssi_recentTopic['poster']['name'] . '<br />';
добавьте закрывающий тег:
  echo '<a href="' . $ssi_recentTopic['href'] . '">'  . $ssi_recentTopic['subject'] . '</a> | от <a href="' . $ssi_recentTopic['poster']['href'] . '">'  . $ssi_recentTopic['poster']['name'] . '</a><br />';


3. Также рекомендую не использовать кунг-фу с параметрами:
$ssi_recentTopics = ssi_recentTopics($ssi_count_topics_left, $ssi_exclude_boards, 'array1');
а формировать нормальный вызов
$ssi_recentTopics = ssi_recentTopics($ssi_count_topics_left, $ssi_exclude_boards, null, 'array1');

4. У вас картинки на каждой странице заново - настройте заголовки кеширования для картинок.
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

Snu

Цитата: maestrosite.ru от 14 мая 2012, 14:50:22Цитата: irk______mama от 14 Мая 2012, 03:52:56
    по человечьи ...
суровый сибирский админ... =)
что вы... просто совсем блондинка... и мама...
Цитата: maestrosite.ru от 14 мая 2012, 14:50:221. Где-то в шаблонах on line 817 у вас должна быть конструкция [site]. И возможно в файлах локализации такая: ["site"] или ['site']
в шаблонах чего? форума или сайта?

а по пункту 4. это вы сейчас с кем разговаривали. Где это нужно делать?

maestrosite.ru

Шаблоны - проверьте сначала на форуме.
п.4 - добавьте в .htaccess что-то такое
ExpiresActive on
ExpiresByType image/jpeg "access plus 1 day"
ExpiresByType image/gif "modification plus 3 months"
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

Xeon

А можно как то выводить только последние созданные темы? А не сообщения в темах.

Reddie

А есть возможность вывести последние темы на главную страницу блога на Блогспот?

asiaclub

#171
расскажите как прикрутить такой вывод к 2.0.2. есть готовый мод может? если нет то как сделать. Спасибо. в шапке написано (только для SMF1.x)
http://asiaclub.com.ua/ все о китайских автомобилях
http://asiaparts.com.ua/ запчасти на китайские автомобили

karavan

В 2.0.2 это стандартная функция. Центр администрирования » Темы оформления (или текущая тема оформления) »  Управление и установка - Количество отображаемых последних сообщений на главной странице форума.


asiaclub

я хочу чтобы они сверху отображались в столбцах как в примере. как так сделать?
http://asiaclub.com.ua/ все о китайских автомобилях
http://asiaparts.com.ua/ запчасти на китайские автомобили

digger®

Цитата: asiaclub от 21 августа 2012, 13:34:48
расскажите как прикрутить такой вывод к 2.0.2. есть готовый мод может? если нет то как сделать. Спасибо. в шапке написано (только для SMF1.x)
Читать шапку до просветления.

asiaclub

дело в том что вставляю код BoardIndex.template.php// * dRecentTopics mod
    require_once('SSI.php');
    $ssi_count_topics_left = 5; // Количество отображаемых последних сообщений в левой колонке
    $ssi_count_topics_right = 5; // Количество отображаемых последних сообщений в правой колонке
    $ssi_exclude_boards = array(); // Перечислить через запятую id разделов, последние сообщения из которых не отображать. Например, array (1, 2);
    $ssi_include_boards = array(); // Перечислить через запятую id разделов, последние сообщения из которых отображать. Например, array (1, 2);
    $ssi_row_counter = 0;
    $ssi_recentTopics = ssi_recentTopics($ssi_count_topics_left + $ssi_count_topics_right, $ssi_exclude_boards, $ssi_include_boards, 'array');
    echo '<table border="0" width="100%"><tr><td>';
    foreach ($ssi_recentTopics as $ssi_recentTopic) {
        $ssi_row_counter++;
        echo '
        [+', $ssi_recentTopic['replies'], '] ', // Количество ответов в теме
        $ssi_recentTopic['link'], // Ссылка на последнее сообщение
        ' | ', // Разделитель                       
        $ssi_recentTopic['time'], // Дата последнего сообщения               
        ' | ', // Разделитель
        $ssi_recentTopic['poster']['link'], // Ссылка на автора последнего сообщения
        ' | ', // Разделитель       
        $ssi_recentTopic['board']['link'], // Ссылка на раздел               
        '<br />';
        if ($ssi_row_counter == $ssi_count_topics_left)
            echo '</td><td>';
    }
    echo '</td></tr></table>';
// dRecentTopics mod *
и отображает или ошибку шаблона или вставляет столбцы куда попало. вместо тем вместо иконок и т.д.
http://asiaclub.com.ua/ все о китайских автомобилях
http://asiaparts.com.ua/ запчасти на китайские автомобили

digger®

Цитата: asiaclub от 21 августа 2012, 17:48:57
дело в том что вставляю код BoardIndex.template.php
и отображает или ошибку шаблона или вставляет столбцы куда попало. вместо тем вместо иконок и т.д.
Вставляйте перед
echo '
<div id="boardindex_table">
<table class="table_list">';


asiaclub

спасибо получилось, но в примере все как-то ровно красиво в табличке, а у меня в строку. вот так http://____asiaclub.com.ua/forum/ я так думаю онон выровняется когда будет больше тем, но как добавить эту табличку? Возможно ли сделать столбец Популярные темы и столбец Последние темы?
http://asiaclub.com.ua/ все о китайских автомобилях
http://asiaparts.com.ua/ запчасти на китайские автомобили

digger®

Цитата: asiaclub от 21 августа 2012, 18:20:02
Возможно ли сделать столбец Популярные темы и столбец Последние темы?
Поставьте портал любой, там будет куча готовых блоков с возможностью вставить в любое место форума.

asiaclub

извините, но я не понимаю. что значит"Поставьте портал любой"? это мод? или что это? куда поставить? на форум?
http://asiaclub.com.ua/ все о китайских автомобилях
http://asiaparts.com.ua/ запчасти на китайские автомобили

asiaclub

http://asiaclub.com.ua/ все о китайских автомобилях
http://asiaparts.com.ua/ запчасти на китайские автомобили


asiaclub

возможно ли с помощью портала сделать 3 блока вверху компактных: мини-чат, популярные темы, последние темы. получается только в ряд, или сбоку, но я хочу компактно именно  сверху.
http://asiaclub.com.ua/ все о китайских автомобилях
http://asiaparts.com.ua/ запчасти на китайские автомобили

kak2z

Цитата: asiaclub от 22 августа 2012, 11:04:32
возможно ли с помощью портала сделать 3 блока вверху компактных: мини-чат, популярные темы, последние темы. получается только в ряд, или сбоку, но я хочу компактно именно  сверху.

поподробнее... вообще в ТиниПортале можно ставить блоки в ряд.. типа так http://virtu.pp.ua/
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

asiaclub

точно самое главное не написал. хочу интегрировать в форум. типа такого вида http://clip2net.com/s/2ecOT сверху 3 компактные блока популярные последние и чат. а получается только в ряд все друг под другом некрасиво и очень много места крадет
http://asiaclub.com.ua/ все о китайских автомобилях
http://asiaparts.com.ua/ запчасти на китайские автомобили

asiaclub

я уверен что так сделать можно, подскажите ктознает
http://asiaclub.com.ua/ все о китайских автомобилях
http://asiaparts.com.ua/ запчасти на китайские автомобили

rols

Вставил себе код и есть пару ошибок которые не могу исправить и есть вопросы.
1) Вставил в код smalltext и шрифт изменился только в левой колонке, по чему он в правой не меняется?
2) И как добавить жирный шрифт для имени?
3) Прочитав как вставить картинку new я так и не понял как это сделать? может пример кто покажет куда вставить ? var_dump($ssi_recentTopic);

4) И почему-то не показывает количество новых сообщений в топике, только плюсик?

Мой код
// * dRecentTopics mod
    require_once('SSI.php');
    $ssi_count_topics_left = 10; // Количество отображаемых последних сообщений в левой колонке
    $ssi_count_topics_right = 10; // Количество отображаемых последних сообщений в правой колонке
    $ssi_exclude_boards = array(119,120,117); // Перечислить через запятую id разделов, последние сообщения из которых не отображать. Например, array (1, 2);
    $ssi_row_counter = 0;
    $ssi_recentTopics = ssi_recentTopics($ssi_count_topics_left + $ssi_count_topics_right, $ssi_exclude_boards, $ssi_include_boards, 'array');
    echo '<table border="0" width="100%" ><tr><td class="smalltext" >';
    foreach ($ssi_recentTopics as $ssi_recentTopic) {
        $ssi_row_counter++;
        echo '
         [+', $ssi_recentTopic['num_replies'], '] ', // Количество ответов в теме
        $ssi_recentTopic['link'], // Ссылка на последнее сообщение
        '<br />', // Разделитель                       
        ' от ', $ssi_recentTopic['poster']['link'], // Ссылка на автора последнего сообщения             
        ' | ', '<br />', // Разделитель
        $ssi_recentTopic['time'], // Дата последнего сообщения         
        '<br />','<hr />';
        if ($ssi_row_counter == $ssi_count_topics_left)
            echo '</td><td>';
    }
    echo '</td></tr></table>';
// dRecentTopics mod *

digger®

Цитата: rols от 26 февраля 2013, 02:37:271) Вставил в код smalltext и шрифт изменился только в левой колонке, по чему он в правой не меняется?
В коде два <td> нужно вставлять в оба.

Цитата: rols от 26 февраля 2013, 02:37:272) И как добавить жирный шрифт для имени?
<b>, $ssi_recentTopic['poster']['link'], </b>

Цитата: rols от 26 февраля 2013, 02:37:274) И почему-то не показывает количество новых сообщений в топике, только плюсик?
Не сделаны изменения в SSI.php как указано в шапке.

rols

digger Спасибо поправил O0, а в SSI оказывается не под тот код добавил (одинаковых там просто три), исправил заработало.
А с картинкой (непрочитанные сообщения) как быть,  можешь подсказать?
Вот с этим кодом пытаюсь разобраться ну ничего не выходит >:(
Цитата: Drakonsa от 13 марта 2011, 23:48:22В foreach'e
var_dump($ssi_recentTopic);

digger®

Цитата: rols от 26 февраля 2013, 18:23:22
digger Спасибо поправил O0, а в SSI оказывается не под тот код добавил (одинаковых там просто три), исправил заработало.
А с картинкой (непрочитанные сообщения) как быть,  можешь

$ssi_recentTopic['link'], ($ssi_recentTopic['new'] ? '<img src="/Themes/default/images/russian/new.gif" />' : ''), // Ссылка на последнее сообщение

rols

digger
Не получается, то есть всё на оборот показывает, там где сообщение не прочитанное картинки нет, а там где сообщения уже прочитанные картинка есть.
А нужно наоборот :), что-то не то.

Сапожник

Восклицательный знак поставь:
..., (!$ssi_recentTopic['new'] ? '...
Я хостюсь на Хвостинге :) 10 Гб (15 сайтов) ~ 30$/год
Рефка: http://hvosting.ua/

rols

Сапожник
digger

Спасибо! Теперь вроде всё правильно заработало O0.

rols

#193
Что-то не работает эта строчка :( в место одного раздела выводятся все разделы ???

$ssi_include_boards = array(117); // Перечислить через запятую id разделов, последние сообщения из которых отображать. Например, array (1, 2);

Что я делаю не так, остальное всё нормально работает?

kak2z

#194
я вот установил.. и меня немного напугало количество запросов, при 30 отображаемых сообщений добавилось 22 дополнительных запроса на странице...  можно как то кеширование сделать? куда смотреть надо?
И еще вопрос немного не по этому скрипту. Можно как то использовать стандатные последние сообщения которые используются под списком разделов на главной форума? Можно как то их отобразить в другом месте? какая функция их отображает и в каком файле))? Спасибо.
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

GeorG

Цитата: kak2z от 02 марта 2013, 22:47:31какая функция их отображает и в каком файле))? Спасибо.
В файле Subs-Recent.php
Запрос в БД:

$request = $smcFunc['db_query']('substring', '
SELECT
m.poster_time, m.subject, m.id_topic, m.id_member, m.id_msg,
IFNULL(mem.real_name, m.poster_name) AS poster_name, t.id_board, b.name AS board_name,
SUBSTRING(m.body, 1, 385) AS body, m.smileys_enabled
FROM {db_prefix}messages AS m
INNER JOIN {db_prefix}topics AS t ON (t.id_topic = m.id_topic)
INNER JOIN {db_prefix}boards AS b ON (b.id_board = t.id_board)
LEFT JOIN {db_prefix}members AS mem ON (mem.id_member = m.id_member)
WHERE m.id_msg >= {int:likely_max_msg}' .
(!empty($modSettings['recycle_enable']) && $modSettings['recycle_board'] > 0 ? '
AND b.id_board != {int:recycle_board}' : '') . '
AND {query_wanna_see_board}' . ($modSettings['postmod_active'] ? '
AND t.approved = {int:is_approved}
AND m.approved = {int:is_approved}' : '') . '
ORDER BY m.id_msg DESC
LIMIT ' . $latestPostOptions['number_posts'],
array(
'likely_max_msg' => max(0, $modSettings['maxMsgID'] - 50 * $latestPostOptions['number_posts']),
'recycle_board' => $modSettings['recycle_board'],
'is_approved' => 1,
)
);


Там смотрите, можете этот запрос переделать, доделать, поместить в нужную переменную, или функцию...
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

kak2z

Спасибо большое)) разобрался - работает) тогда еще один вопрос - а где формируется сам вывод этих данных которые функция возвращает? в каком шаблоне? хочется взять оттуда кусок кода и приделать на свою ssi страницу что бы более менее однотипно было. Спасибо)
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

GeorG

В BoardIndex.template.php

// This is the "Recent Posts" bar.
if (!empty($settings['number_recent_posts']) && (!empty($context['latest_posts']) || !empty($context['latest_post'])))
{
echo '
<div class="title_barIC">
<h4 class="titlebg">
<span class="ie6_header floatleft">
<a href="', $scripturl, '?action=recent"><img class="icon" src="', $settings['images_url'], '/post/xx.gif" alt="', $txt['recent_posts'], '" /></a>
', $txt['recent_posts'], '
</span>
</h4>
</div>
<div class="hslice" id="recent_posts_content">
<div class="entry-title" style="display: none;">', $context['forum_name_html_safe'], ' - ', $txt['recent_posts'], '</div>
<div class="entry-content" style="display: none;">
<a rel="feedurl" href="', $scripturl, '?action=.xml;type=webslice">', $txt['subscribe_webslice'], '</a>
</div>';

// Only show one post.
if ($settings['number_recent_posts'] == 1)
{
// latest_post has link, href, time, subject, short_subject (shortened with...), and topic. (its id.)
echo '
<strong><a href="', $scripturl, '?action=recent">', $txt['recent_posts'], '</a></strong>
<p id="infocenter_onepost" class="middletext">
', $txt['recent_view'], ' &quot;', $context['latest_post']['link'], '&quot; ', $txt['recent_updated'], ' (', $context['latest_post']['time'], ')<br />
</p>';
}
// Show lots of posts.
elseif (!empty($context['latest_posts']))
{
echo '
<dl id="ic_recentposts" class="middletext">';

/* Each post in latest_posts has:
board (with an id, name, and link.), topic (the topic's id.), poster (with id, name, and link.),
subject, short_subject (shortened with...), time, link, and href. */
foreach ($context['latest_posts'] as $post)
echo '
<dt><strong>', $post['link'], '</strong> ', $txt['by'], ' ', $post['poster']['link'], ' (', $post['board']['link'], ')</dt>
<dd>', $post['time'], '</dd>';
echo '
</dl>';
}
echo '
</div>';
}
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

rols

Цитата: rols от 02 марта 2013, 15:57:15$ssi_include_boards = array(117); // Перечислить через запятую id разделов, последние сообщения из которых отображать. Например, array (1, 2);
А про эту строчку может кто-то ответить, почему она не хочет отображать только один раздел, а отображает весь форум?

GeorG

Там судя по функции, можно указать только исключаемые разделы, а не те из которых выводить. По-умолчанию, выводятся все разделы.

Чтобы правильно в вашем случае было, нужно это
$ssi_recentTopics = ssi_recentTopics($ssi_count_topics_left + $ssi_count_topics_right, $ssi_exclude_boards, $ssi_include_boards, 'array');
На это заменить
$ssi_recentTopics = ssi_recentTopics($ssi_count_topics_left + $ssi_count_topics_right, $ssi_include_boards, 'array');
И указывать исключаемые разделы.
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru