1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - новый и перспективный форумный движок от бывших создателей vBulletin.

Вывод последних тем форума на главную сайта

Тема в разделе "Плагины для XenForo", создана пользователем SeM13, 14 мар 2011.

Загрузка
  1. Domltd

    Domltd Пользователь

    Регистрация:
    11.08.12
    Сообщения:
    27
    Симпатии:
    3
    Версия XF:
    1.1.3
    Произошла ошибка:

    Данный шаблон содержит ошибки и не может быть сохранён: forum_importer.php: 1) Строка 35: ошибка синтаксиса в шаблоне.
     
  2. Тарас

    Тарас Пользователь

    Регистрация:
    15.05.12
    Сообщения:
    7
    Симпатии:
    0
    в запросе нужно добавить проверку discussion_state (должно быть 'visible')

    Код:
    if ($forum_ids != 'ALL') $where = 'WHERE `node_id` IN (' . $forum_ids . ') && `discussion_state` = \'visible\'';
    else $where = 'WHERE `node_id` NOT IN (' . $forum_forbidden_ids . ') && `discussion_state` = \'visible\'';
     
  3. geokonsul

    geokonsul Местный

    Регистрация:
    05.05.12
    Сообщения:
    44
    Симпатии:
    1
    Версия XF:
    1.4.5
    тоже ищу такую реализацию.
     
  4. geokonsul

    geokonsul Местный

    Регистрация:
    05.05.12
    Сообщения:
    44
    Симпатии:
    1
    Версия XF:
    1.4.5
    Оффтоп: Готов оплатить реализацию вывода тем с форума на главную сайта (инклюдом в диз.сайта) в которых помимо автора и информации о теме было бы возможно ещё выводить текст сообщения (200-250 символов).
    Что почём? :)
     
  5. ldanmer

    ldanmer Новичок

    Регистрация:
    11.10.12
    Сообщения:
    1
    Симпатии:
    0
    Версия XF:
    1.1.3
    Здравствуйте! Как вывести список последних тем на главной странице?
     
  6. Alazar

    Alazar Новичок

    Регистрация:
    10.12.12
    Сообщения:
    13
    Симпатии:
    4
    Версия XF:
    1.1.3
    Запросов прописано больше, чем использовано на вывод...
    ...И кстати, твой вариант выдавал ошибку...

    Немного его доработал...

    PHP:
    <?php
    // отредактируйте путь к форуму.
    $forum_url 'community/';
     
    // длина названия темы.
    $num 50;
     
    // укажите путь до конфигурационного файла.
    include($forum_url 'library/config.php');
     
    // Укажите сколько последних сообщений выводить в "блоке".
    $limit 7;
     
    // введите id категорий из каких следует брать последние сообщения. Или выберете "ALL" что бы бралось со всего форума.
    $forum_ids 'ALL';
     
    mysql_connect($config['db']['host'], $config['db']['username'], $config['db']['password']);
    mysql_select_db($config['db']['dbname']);
     
    $where '';
    if (
    $forum_ids != 'ALL')
    {
        
    $where 'WHERE `node_id` IN ($forum_ids)';
    }
    $sql_forum "SELECT
                    `title`, `thread_id`, `reply_count`, `username`, `last_post_date`, `view_count`, `reply_count` FROM `xf_thread` 
    {$where} ORDER BY `last_post_date` DESC LIMIT {$limit}";
     
    $query_forum mysql_query($sql_forum);
        while (
    $topics mysql_fetch_assoc($query_forum))
        {
            
    $url_title str_replace(' ''-'$topics['title']);
            
    $url_title str_replace('.'''$url_title);
            
    $url_title str_replace('?'''$url_title);
            
    $url_title str_replace('/''-'$url_title);
            
    $url_title str_replace('\\''-'$url_title);
            
    $url_title str_replace('"'''$url_title);
    $cnum mb_strlen($topics['title']);
    if(
    $cnum>$num)
    {
    $topics['title'] = mb_substr($topics['title'], 0$num);
    $topics['title'] = $topics['title'] . '...';
    }
            echo 
    "<li style=\"padding:5px;font-size:12px;\">» <a href=\"{$forum_url}threads/{$url_title}.{$topics['thread_id']}/\" title=\"{$topics['title']} &raquo; Автор - {$topics['username']} \" target=\"_blank\">{$topics['title']}</a> <em>(Просмотров: {$topics['view_count']}, Ответов: {$topics['reply_count']})</em></li>";
        }
    ?>
    Вид вывода:

    xf-echo.png
     
    Logan22 и lifeact нравится это.
  7. deniska312

    deniska312 Новичок

    Регистрация:
    13.01.13
    Сообщения:
    3
    Симпатии:
    0
    Версия XF:
    1.1.3
    Ребят, подскажите с кодировкой, на самом сайте стоит кодировка ANSI скрипт в тойже кодировке, но отображение на сайте не верное.
    Вот скрин отображения
    [​IMG]

    Вот сам скрипт который использую
    Код:
    <?php
    $forumUrl = '/forum/'; //URL форума, должен оканчиваться слэшем.
    $limit = 10; // Количество последних постов для отображения
    $forumDirectory = realpath(__DIR__.'/../forum/'); // Полный путь к папке форума
    if(!$forumDirectory) {
        die('$forumDirectory is incorrect!');
    }
     
    $startTime = microtime(true);
     
    require($forumDirectory. '/library/XenForo/Autoloader.php');
    XenForo_Autoloader::getInstance()->setupAutoloader($forumDirectory . '/library');
     
    // Инициализация приложения
    XenForo_Application::initialize($forumDirectory . '/library', $forumDirectory);
    XenForo_Application::set('page_start_time', $startTime);
     
    // Предварительная загрузка зависимостей
    $xfDependencies = new XenForo_Dependencies_Public();
    $xfDependencies->preLoadData();
     
    // Инициализация сессии
    XenForo_Session::startPublicSession();
     
    //Получение списка видимых узлов
    $nodeModel = XenForo_Model::create('XenForo_Model_Node');
    $viewableNodes = $nodeModel->getViewableNodeList();
    $nodeIds = array_keys($viewableNodes);
    $nodeIdsList = implode($nodeIds, ',');
     
    //Запрос последних N видимых узлов.
    $sql_forum = "SELECT `title`, `thread_id`, `view_count`, `reply_count` FROM `xf_thread` WHERE `node_id` IN ($nodeIdsList) AND discussion_state='visible' ORDER BY `last_post_date` DESC LIMIT $limit";
    $lastThreads = XenForo_Application::get('db')->fetchAll($sql_forum);
     
    //Здесь может быть любой код, если нужно
     
    // Отображение контента.
    foreach ($lastThreads as $thread) {
        // Конструирование полного пути к темам
        $threadUrl = $threadUrl = $forumUrl. XenForo_Link::buildPublicLink('threads', $thread);
     
        // Обрезаем до 50 символов и превращаем в корректный HTML
        $threadTitle = XenForo_Template_Helper_Core::helperWordTrim($thread['title'], 50);
     
        //Выводим
        echo "<a href=\"$threadUrl\">$threadTitle</a> Просмотров: {$thread['view_count']}, Ответов: {$thread['reply_count']}<br /><br />";
    }
     
  8. infis

    infis Местный Команда форума

    Регистрация:
    27.06.11
    Сообщения:
    5.525
    Симпатии:
    3.321
    Версия XF:
    1.5.9
    Функция iconv в помощь.
     
  9. MaZaFaKa

    MaZaFaKa Новичок

    Регистрация:
    02.12.12
    Сообщения:
    1
    Симпатии:
    0
    Версия XF:
    1.1.3
    Спасибо, помогло.Но у меня теперь такая беда. Кликая по теме сообщения, меня кидает на форум в этой же вкладке, но браузер не переводит кодировку и на форуме кракозябры.А если открыть эту же ссылку в новом окне то все нормально с кодировкой.Подскажите как мне сделать открытие форума в новой вкладке.
    Код:
    target="_blank"
    не помогает, если я его вписываю то у меня пропадает вообще вывод с форума. Ведь этот код для html а весь код на php
     
  10. 1nt

    1nt Новичок

    Регистрация:
    31.01.13
    Сообщения:
    1
    Симпатии:
    0
    Версия XF:
    1.1.3
    Ку его пихать? разобратся не могу.
     
  11. boom

    boom Местный

    Регистрация:
    09.03.13
    Сообщения:
    15
    Симпатии:
    3
    Версия XF:
    1.1.3
    Здравствуйте. Как установить этот код т.е куда прописать?
     
  12. Zacker2

    Zacker2 Новичок

    Регистрация:
    10.03.13
    Сообщения:
    1
    Симпатии:
    0
    Версия XF:
    1.1.3
    Как сделать вывод в document.write?
     
  13. NSky

    NSky Новичок

    Регистрация:
    27.03.13
    Сообщения:
    10
    Симпатии:
    2
    Версия XF:
    1.1.3
    Класс как раз то что искал
    Ручками сохраняешь php файлики и всё в корневой сайта.
     
    lifeact нравится это.
  14. boom

    boom Местный

    Регистрация:
    09.03.13
    Сообщения:
    15
    Симпатии:
    3
    Версия XF:
    1.1.3
    в какую папку корневого сайта и где прописать чтобы он его нашел?
     
  15. NSky

    NSky Новичок

    Регистрация:
    27.03.13
    Сообщения:
    10
    Симпатии:
    2
    Версия XF:
    1.1.3
    пробовал все варианты в данной ветке везде отображается вопросительными знаками все. Подскажите что сделать. Кодировкук файла менял не помогло.
     
  16. lifeact

    lifeact Активный пользователь

    Регистрация:
    27.05.13
    Сообщения:
    61
    Симпатии:
    1
    Версия XF:
    1.1.3
    ребят а можно для новичка - я так понимаю первый фрагмент кода нужно сохранить в файл и в корень форума.... а как назвать? А второй фрагмент кода куда?
     
  17. prototype22

    prototype22 Местный

    Регистрация:
    08.05.13
    Сообщения:
    13
    Симпатии:
    1
    Версия XF:
    1.4.2
    Очень понравился вот этот вариант: http://s59.radikal.ru/i163/1103/af/a64b153fbd10.png
    Но кто бы помог "запилить" его на страницу, длешный вариант кода не очень подходит :)
     
  18. Betelgelze

    Betelgelze Местный

    Регистрация:
    30.12.11
    Сообщения:
    355
    Симпатии:
    101
    Версия XF:
    1.1.5
    вы название темы читаете. Обсуждение вывода последних тем, а не сообщений.
    В вашем желаемом варианте убраны аватарки слева и добавлено отображение количества ответов в теме. Аватарки удалить как 2 пальца об асфальт )) А вот добавить вывод количества ответов, может кто и подскажет. Но нужны ли их отображение уж так сильно?!
     
  19. lifeact

    lifeact Активный пользователь

    Регистрация:
    27.05.13
    Сообщения:
    61
    Симпатии:
    1
    Версия XF:
    1.1.3
    в самом начале два отдельных фрагмента кода.... оба в разные файлы и в корень? А куда их мотом подключить? Просо залить файлы не достаточно же...
     
  20. prototype22

    prototype22 Местный

    Регистрация:
    08.05.13
    Сообщения:
    13
    Симпатии:
    1
    Версия XF:
    1.4.2
    Я понял, что речь идет о "выводе последних тем", но хотелось бы увидеть вывод в таком виде, примерно: "ТЕМА (Последнее сообщение от: НИК 03.06.2013 20:20)" или хотя бы так: "ТЕМА (последнее обновление: ВРЕМЯ)"
    Без отображения времени последнего комментария очень трудно понять, идет ли беседа в последней теме форума или нет :)
     

Поделиться этой страницей