Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Recent topics for JS - последние темы на любой странице

Все расширения, созданные нашим сообществом для phpBB, как находящиеся в разработке, так и прошедшие валидацию на официальном сайте phpbb.com, будут анонсированы тут. Вся техническая поддержка по этим расширениям оказывается в этом форуме.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Anvar
Former team member
Сообщения: 1965
Стаж: 14 лет
Благодарил (а): 57 раз
Поблагодарили: 625 раз

Recent topics for JS - последние темы на любой странице

Сообщение Anvar »

С помощью этого расширения вы сможете вывести последние темы форума на любой странице сайта или форума.

Bозможность вывести темы внутри форума в виде бегущей строки, в шапке.
Bозможно вывести темы на странице сайта посредством java script, с текстом и вложениями или просто заголовки тем с ссылками.
3 способа подключения:
Recent Topics for JS.jpg
выбор необходимых форумов осуществляется из админки:

Код: Выделить всё

<script type="text/javascript" src="http://vash-site.com/forum/recent.php"></script>
выбираете форум сами:

Код: Выделить всё

<script type="text/javascript" src="http://vash-site.com/forum/recent.php?forum=id_форума"></script>
Ajax подгрузка:

Код: Выделить всё

<div id="recent_topics"></div>
<script type="text/javascript">
$(document).ready(function() {
   $.ajax({
      url: "http://vash-site.com/forum/recent.php",
      type: "GET",
      cache: true,
      success: function(data) {
         $("#recent_topics").html(data);
      }
   });
});
</script>
Необходим подключённый jquery на сайте.

Версия для 3.3 в сообщении: Recent topics for JS - последние темы на любой странице
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Перенесено из форума Бета-версии расширений для phpBB 3.1.x в форум Анонсы и поддержка расширений для phpBB 3.1.x 11.07.2015 12:53 модератором LavIgor

Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 2 месяца
Откуда: Калининград не Кенигсберг
Благодарил (а): 41 раз
Поблагодарили: 1716 раз

Re: Recent topics for JS - последние темы на любой странице

Сообщение Sheer »

alex_1278, http://ford-windstar.ru/forum/recent.php отдает код ошибки 500. Смотри лог ошибок
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3336
Стаж: 15 лет
Благодарил (а): 25 раз
Поблагодарили: 590 раз

Re: Recent topics for JS - последние темы на любой странице

Сообщение Nekstati »

alex_1278, метод обрезки текста, который используется в расширении, плохо работает с последними версиями phpBB, т.к. изменился парсер ББ-кодов. Можно попробовать увеличить в админке кол-во символов в тексте до максимума (1999). Это не всегда будет работать, ошибка может снова возникать на больших постах. Можно отключить обрезку, увеличив кол-во символов напр. до 100000 напрямую через базу данных (таблица phpbb_config, поле recent_max_topic_length). Можно в файле ext\bb3mobi\recent_topics\controller\recent.php раскомментировать строку //strip_bbcode($message); - тогда сообщения будут обрезаться без ошибок, но в них будет голый текст без ББ-кодов.

(Для разработчиков.) А вообще корректную обрезку текста можно сделать только через DOM, например с помощью этого: https://github.com/judev/php-htmltruncator.
alex_1278
phpBB 1.0.0
Сообщения: 8
Стаж: 11 лет 7 месяцев
Откуда: Московская область
Благодарил (а): 5 раз

Re: Recent topics for JS - последние темы на любой странице

Сообщение alex_1278 »

Sheer писал(а): 18.08.2019 11:28 alex_1278, http://ford-windstar.ru/forum/recent.php отдает код ошибки 500. Смотри лог ошибок
при авторизации выдавало не 500,а "Cannot load XML: Premature end of data in tag t line 1"
Nekstati писал(а): 18.08.2019 12:07 Можно в файле ext\bb3mobi\recent_topics\controller\recent.php раскомментировать строку //strip_bbcode($message); - тогда сообщения будут обрезаться без ошибок, но в них будет голый текст без ББ-кодов.
Спасибо, раскомментил, заработало!
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3336
Стаж: 15 лет
Благодарил (а): 25 раз
Поблагодарили: 590 раз

Re: Recent topics for JS - последние темы на любой странице

Сообщение Nekstati »

alex_1278, 500 в HTTP-заголовках, "Cannot load XML..." в видимом ответе.
dotez
phpBB 2.0.1
Сообщения: 289
Стаж: 13 лет 4 месяца
Благодарил (а): 4 раза

Re: Recent topics for JS - последние темы на любой странице

Сообщение dotez »

для 3.2 то есть такое?
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3336
Стаж: 15 лет
Благодарил (а): 25 раз
Поблагодарили: 590 раз

Re: Recent topics for JS - последние темы на любой странице

Сообщение Nekstati »

dotez, это расширение работает на 3.2 с поправкой, описанной в моём посте чуть выше.
Old Human
phpBB 1.4.0
Сообщения: 37
Стаж: 16 лет 11 месяцев
Благодарил (а): 2 раза

Re: Recent topics for JS - последние темы на любой странице

Сообщение Old Human »

На 3.3 даже работает (после правок services.yml и routing.yml)
Ritor1
phpBB 1.0.0
Сообщения: 7
Стаж: 3 года 9 месяцев
Благодарил (а): 2 раза

Re: Recent topics for JS - последние темы на любой странице

Сообщение Ritor1 »

Old Human писал(а): 20.03.2020 15:04 На 3.3 даже работает (после правок services.yml и routing.yml)
Добрый день! А можно поподробнее? Столкнулся с такой же проблеммой для версии 3.3
Ritor1
phpBB 1.0.0
Сообщения: 7
Стаж: 3 года 9 месяцев
Благодарил (а): 2 раза

Re: Recent topics for JS - последние темы на любой странице

Сообщение Ritor1 »

Сам нашел ответы. Оказывается, надо:
1) в ext/bb3mobi/recent_topics/config/routing.yml заменить pattern на path;
2) в ext/bb3mobi/recent_topics/config/services.yml обернуть некоторые поля в '...', вот так:

Код: Выделить всё

services:
    bb3mobi.recent_topics.listener:
        class: bb3mobi\recent_topics\event\listener
        arguments:
            - '@config'
            - '@template'
            - '@controller.helper'
        tags:
            - { name: event.listener }
    bb3mobi.recent_topics.controller:
        class: bb3mobi\recent_topics\controller\recent
        arguments:
            - '@auth'
            - '@config'
            - '@request'
            - '@template'
            - '@dbal.conn'
            - '%core.root_path%'
            - '%core.php_ext%'
Последний раз редактировалось Sheer 15.07.2020 16:34, всего редактировалось 1 раз.
Причина: bb-код. Когда же вы наконец научитесь пользоваться bb-кодами!!!
Ritor1
phpBB 1.0.0
Сообщения: 7
Стаж: 3 года 9 месяцев
Благодарил (а): 2 раза

Re: Recent topics for JS - последние темы на любой странице

Сообщение Ritor1 »

Добрый день!
Столкнулся с новой проблемой. При вставке скрипта на странице сайта, выдает следующую ошибку:

Код: Выделить всё

"Cross-Origin Read Blocking (CORB) blocked cross-origin response https://demo.ru/app.php/recent.php with MIME type text/html. See https://www.chromestatus.com/feature/5629709824032768 for more details.
"
Подскажите как это лечится. Спасибо
Последний раз редактировалось Sheer 14.07.2020 12:26, всего редактировалось 1 раз.
Причина: bb-код
Ritor1
phpBB 1.0.0
Сообщения: 7
Стаж: 3 года 9 месяцев
Благодарил (а): 2 раза

Re: Recent topics for JS - последние темы на любой странице

Сообщение Ritor1 »

Нашел решение:
в .htaccess дополнил

Код: Выделить всё

<FilesMatch "\.(php)$">
	<IfModule mod_headers.c>
		Header add Access-Control-Allow-Origin "*" 
		Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type" 
		Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS" 
	</IfModule>
</FilesMatch>
Это заработало. Но оказалось что ajax дергает всю страницу, а мне надо только фрейм с топиками. Через js не пойдет, т.к. там списком(ul.li), и нет полей Темы, Сообщения, Последнее сообщение. Кто знает как это делается?
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16358
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1741 раз

Re: Recent topics for JS - последние темы на любой странице

Сообщение rxu »

Ritor1 писал(а): 14.07.2020 13:54 а мне надо только фрейм с топиками. Через js не пойдет, т.к. там списком
А разве не в шаблоне стиля в расширении прописано, что и как выводится?
Изображение
Ritor1
phpBB 1.0.0
Сообщения: 7
Стаж: 3 года 9 месяцев
Благодарил (а): 2 раза

Re: Recent topics for JS - последние темы на любой странице

Сообщение Ritor1 »

rxu писал(а): 14.07.2020 14:22 А разве не в шаблоне стиля в расширении прописано, что и как выводится?
Действительно вывод можно настроить в файле ext/bb3mobi/recent_topics/styles/all/template/recent_body.html. Вот бы теперь знать какие переменные хранят количество ответом, просмотров и данные последнего сообщения. Помогите кто знает. Спасибо
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16358
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1741 раз

Re: Recent topics for JS - последние темы на любой странице

Сообщение rxu »

Ritor1, все стандартно. Открываете файл controller/recent.php и ищете там присвоение переменных шаблона.

Код: Выделить всё

			$this->template->assign_block_vars('topicrow', array(
				'U_TOPIC'		=> $viewtopic_url . '?t=' . $row['topic_id'],
				'U_LAST_POST'	=> $viewtopic_url . '?p=' . $row['topic_last_post_id'] . '#' . $row['topic_last_post_id'],
				'TOPIC_TITLE' 	=> $topic_title,
				'TOPIC_REPLIES'	=> (isset($replies)) ? $replies : '',
			));
Соответственно, эти переменные в шаблоне и будут содержать вывод, например, {topicrow.TOPIC_REPLIES} и другие. Имена переменных говорят сами за себя.
Изображение
Ritor1
phpBB 1.0.0
Сообщения: 7
Стаж: 3 года 9 месяцев
Благодарил (а): 2 раза

Re: Recent topics for JS - последние темы на любой странице

Сообщение Ritor1 »

rxu, большое спасибо. Разобрался как получить количество ответов, а вот количество просмотров и данные последнего сообщения не нашел.

Отправлено спустя 2 часа 12 минут 51 секунду:
Нашел:

Код: Выделить всё

'U_LAST_POST_AUTHOR'	        => get_username_string('profile', $row['topic_last_poster_id'], $row['topic_last_poster_name'], $row['topic_last_poster_colour']),
'LAST_POST_SUBJECT'		=> $last_post_subject,
'LAST_POST_TIME_RFC3339'	=> gmdate(DATE_RFC3339, $row['topic_last_post_time']),
'TOPIC_TITLE' 	                        => $topic_title,
'LAST_POST_AUTHOR'	        => $row['topic_last_poster_name'],
'VIEWS'				        => $row['topic_views'],
Теперь бы понять как формат даты поменять в удобочитаемый. LAST_POST_TIME_RFC3339 выдает 2020-07-15T06:42:17+00:00.
А 'LAST_POST_TIME' => $user->format_date($row['topic_last_post_time']), не получается, т.к. не знаю как с user'ом работать. Помогите кто знает.
Последний раз редактировалось Гость 15.07.2020 15:17, всего редактировалось 1 раз.
Причина: Code BBCode.

Вернуться в «Анонсы и поддержка расширений для phpBB»