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

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

Тема в разделе "Плагины для XenForo [1.x]", создана пользователем SeM13, 14.03.2011.

Загрузка
  1. Solonik

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

    Регистрация:
    06.01.12
    Сообщения:
    9
    Симпатии:
    0
    Версия XF:
    1.0.0
    Сделал опять также отображает, но кодировка не та.
    Фишка в том что я так понимаю кодировка форума utf-8, а сайт где хочу вывести cp1251
    Думаю с этим связано.
    Есть какие то решения?
     
  2. Romchik®

    Romchik® The Power of Dreams Команда форума

    Регистрация:
    26.09.10
    Сообщения:
    5 746
    Симпатии:
    5 311
    Версия XF:
    1.5.18
    Перевести сайт на UTF :)
    Хотя есть способ проще, но тут нужно просить помощи у программистов, чтобы изменить запрос в БД и его вывод.
     
  3. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Не запрос нужно менять, а вывод echo. Просто сам вывод нужно прогнать через iconv. Т.е., если там кода не много, то можно самостоятельно изменить вместо:
    Код:
    echo '<...>';
    на
    Код:
    echo iconv('cp1251', 'utf-8', '<...>');
    Если в запрос передаются какие-то текстовые данные, то можно по аналогии преобразовать текст, передаваемый в запрос, поменяв в iconv местами кодировки.
     
    TAIFUN нравится это.
  4. Solonik

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

    Регистрация:
    06.01.12
    Сообщения:
    9
    Симпатии:
    0
    Версия XF:
    1.0.0
    PHP:
    echo iconv('cp1251'utf-8', '<a href=\"{$forum_url}index.php?threads/{$url_title}.{$topics['thread_id']}/\">{$topics['title']}</a></li>";
    т.е. грубо говоря тут менять?
    Типа того?
     
  5. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Да. Либо сами переменные нужно прогонять через iconv, либо общий вывод echo.
     
  6. Solonik

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

    Регистрация:
    06.01.12
    Сообщения:
    9
    Симпатии:
    0
    Версия XF:
    1.0.0
    Попробуй такую строчку сделать, спасибо большое
     
  7. volanddt

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

    Регистрация:
    28.07.11
    Сообщения:
    3
    Симпатии:
    2
    Много ошибок в строке, вот так будет верно
    PHP:
    echo iconv("cp1251""UTF-8""<li><a href=\"{$forum_url}index.php?threads/{$url_title}.{$topics['thread_id']}/\">{$topics['title']}</a></li>");
     
    Articles нравится это.
  8. Solonik

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

    Регистрация:
    06.01.12
    Сообщения:
    9
    Симпатии:
    0
    Версия XF:
    1.0.0
    Странно почему то всё ровно не работает.
     
  9. Kelt

    Kelt Read only

    Регистрация:
    13.06.11
    Сообщения:
    146
    Симпатии:
    46
    То, что надо. Единственное, темы надо как-то разделить, например сделать список со звездочками, чтобы лучше читалось.
    • Вот так, не подскажите как сие реализовать?
     
  10. Mr. Brightside

    Mr. Brightside Read only

    Регистрация:
    17.02.11
    Сообщения:
    156
    Симпатии:
    58
    Пример моей реализации на 4PLAY.by на главной.
     
    nirgeorge нравится это.
  11. swap

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

    Регистрация:
    14.10.11
    Сообщения:
    28
    Симпатии:
    21
    Версия XF:
    1.3.2
    У меня почему он брал со всех форумов,а при попытки установить разделы с которых не стоит брать,он выкидывает ошибку,не много изменил и добавил вывод количества просмотров и ответов,честно не веб программист и далёк от этого,вполне возможно мог ошибиться где нибудь,но главное работает!)
    PHP:
    <?php
    // отредактируйте путь к форуму.
    $forum_url 'forum/';
    $forum_ur 'http://адрес форума/';
    // длина названия темы.
    $num 20;
    // укажите путь до конфигурационного файла.
    include($forum_url 'library/config.php');
    // Укажите сколько последних сообщений выводить в "блоке".
    $limit 15;
    // введите id категорий из каких следует брать последние сообщения. Или выберете "ALL" что бы бралось со всего форума.
    $forum_ids 'ALL';
    // id форумов с которых не стоит выводить.
    $forum_forbidden_ids '4,22,37,41,69,25';
    mysql_connect($config['db']['host'], $config['db']['username'], $config['db']['password']);
    mysql_select_db($config['db']['dbname']);
    mysql_query ("set character_set_results='utf8'");
     
    $where '';
    if (
    $forum_ids != 'ALL')
        
    $where 'WHERE `node_id` NOT IN (' $forum_forbidden_ids ') IN (' $forum_ids ')';
    else
        
    $where 'WHERE `node_id` NOT IN (' $forum_forbidden_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 
    "<a style=\"padding:0px 0px 3px 0px;font-size:12px;\" href=\"{$forum_ur}index.php?threads/{$url_title}.{$topics['thread_id']}/\"><li>{$topics['title']}(Просмотров: {$topics['view_count']},Ответов: {$topics['reply_count']})</li></a></br>";
        }
    ?>
     
    demon124, Logan22 и Nicolayka нравится это.
  12. Nicolayka

    Nicolayka Местный

    Регистрация:
    25.02.12
    Сообщения:
    70
    Симпатии:
    13
    Версия XF:
    1.4.4
    Помоги вывести здесь же краткое содержание темы к примеру 200символов,а потом "..."
     
    geokonsul нравится это.
  13. swap

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

    Регистрация:
    14.10.11
    Сообщения:
    28
    Симпатии:
    21
    Версия XF:
    1.3.2
    Здесь увеличиваешь количество символов

    Здесь количество выводимых тем.
     
  14. Nicolayka

    Nicolayka Местный

    Регистрация:
    25.02.12
    Сообщения:
    70
    Симпатии:
    13
    Версия XF:
    1.4.4
    Не. Это вывод названия темы и ограничение символов в ней.
     
  15. Игорь Войтович

    Игорь Войтович Read only

    Регистрация:
    08.07.11
    Сообщения:
    9
    Симпатии:
    0
    Версия XF:
    1.1.3
    Подскажи как сюда еще вставить кто последний и когда ответил??
     
  16. Mike

    Mike Местный

    Регистрация:
    30.11.11
    Сообщения:
    149
    Симпатии:
    3
    Версия XF:
    1.1.0 Final
    А вот так как реализовать вывод последних тем форума, как здесь : http://www.i30.com.ua/forum/
     
  17. N@rwen

    N@rwen Местный

    Регистрация:
    11.05.12
    Сообщения:
    30
    Симпатии:
    9
    Версия XF:
    1.2.1
    С помощью плагина.
     
    Mike нравится это.
  18. bolach

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

    Регистрация:
    04.07.12
    Сообщения:
    16
    Симпатии:
    0
    Версия XF:
    1.1.3
    Прочел тут что FROM_UNIXTIME тормозит сервер, я там почти ничего не понял, но вы если поняли то не могли бы переделать свой код для оптимизации SQL запросов?
     
  19. Desperado

    Desperado Местный

    Регистрация:
    23.10.10
    Сообщения:
    270
    Симпатии:
    98
    Версия XF:
    1.1.3
    В чём проблема? уберите FROM_UNIXTIME, а время конвертируйте через php функцию date
     
  20. bolach

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

    Регистрация:
    04.07.12
    Сообщения:
    16
    Симпатии:
    0
    Версия XF:
    1.1.3
    Desperado, вот не получается:confused: помоги пожалуйста
     

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