Уважаемые пользователи!
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 лет
Благодарил (а): 67 раз
Поблагодарили: 799 раз
Контактная информация:

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 - последние темы на любой странице
Вложения
Recent topics for JS.zip
(30.03 КБ) 798 скачиваний
Перенесено из форума Бета-версии расширений для phpBB 3.1.x в форум Анонсы и поддержка расширений для phpBB 3.1.x 11.07.2015 12:53 модератором LavIgor

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

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

Сообщение Sheer »

evgen-154 писал(а): 13.03.2018 13:41 активные темы отображаются только на главной странице
Потому что используемое событие index_body_stat_blocks_before работает только на главной странице, для которой применяется шаблон index_body.html
Чтобы активные темы были на всех страницах, нужно использовать события, которые есть в overall_header.html и overall_footer.html
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
evgen-154
phpBB 1.2.0
Сообщения: 13
Стаж: 6 лет
Откуда: Новосибирск
Благодарил (а): 8 раз

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

Сообщение evgen-154 »

Sheer писал(а): 13.03.2018 14:02 Потому что используемое событие index_body_stat_blocks_before работает только на главной странице, для которой применяется шаблон index_body.html
Чтобы активные темы были на всех страницах, нужно использовать события, которые есть в overall_header.html и overall_footer.html
Вот оно чё))) Спасибо въехал
В принципе так и понял что какое-то событие отображается только на главной
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 1 месяц
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2752 раза
Контактная информация:

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

Сообщение Sheer »

Не отображается, а доступно.
События, доступные в index_body.htm
index_body_birthday_block_before - Add new statistic blocks before the Birthday block
index_body_block_birthday_append - Append content to the birthday list on the Board index
index_body_block_birthday_prepend - Prepend content to the birthday list on the Board index
index_body_block_online_append - Append content to the online list on the Board index
index_body_block_online_prepend - Prepend content to the online list on the Board index
index_body_block_stats_append - Append content to the statistics list on the Board index
index_body_block_stats_prepend - Prepend content to the statistics list on the Board index
index_body_forumlist_body_after - Add content after the forum list body on the index page
index_body_markforums_after - Add content after the mark-read link above the forum list on Board index
index_body_markforums_before - Add content before the mark-read link above the forum list on Board index
index_body_stat_blocks_after - Add new statistic blocks below the Who Is Online and Board Statistics blocks
index_body_stat_blocks_before - Add new statistic blocks above the Who Is Online and Board Statistics blocks

Плюс события, доступные в forumlist_body.html
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
evgen-154
phpBB 1.2.0
Сообщения: 13
Стаж: 6 лет
Откуда: Новосибирск
Благодарил (а): 8 раз

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

Сообщение evgen-154 »

Вы мне очень помогли
Спасибо вам!!
Последний раз редактировалось Sheer 13.03.2018 17:45, всего редактировалось 1 раз.
Причина: Удален оверквотинг
Old Human
phpBB 1.4.0
Сообщения: 37
Стаж: 16 лет 10 месяцев
Благодарил (а): 2 раза

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

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

Очень сильно грузит данный модуль дисковую подсистему на сервере. Хочу немного его кешировать, писать последние темы в html, а вызывать скрипт по крону каждые 10 минут.
Вот такой код наваял в recent.php

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

		$fd = fopen("recent.html", 'w') or die("не удалось создать файл");
		$str = print_r($this->template->display('body'),TRUE);
		fputs($fd, $str);
		fclose($fd);
но не работает, конечно... файл пустой создается.
Может подскажет кто, как реализовать мою идею? :oops:
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12372
Стаж: 12 лет 7 месяцев
Благодарил (а): 223 раза
Поблагодарили: 3517 раз
Контактная информация:

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

Сообщение Татьяна5 »

Old Human писал(а): 08.10.2018 21:14 кешировать
$this->cache->get, $this->cache->put
Old Human
phpBB 1.4.0
Сообщения: 37
Стаж: 16 лет 10 месяцев
Благодарил (а): 2 раза

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

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

Татьяна5 писал(а): 09.10.2018 7:14 $this->cache->get, $this->cache->put
К сожалению, моих знаний php недостаточно, чтобы освоить ваш дружественный пинок :oops:
$this я так понимаю указатель на объект, который существует только в пределах вызова функции. При следующем вызове функции это будет уже другой объект. :oops:
Аватара пользователя
evgen-154
phpBB 1.2.0
Сообщения: 13
Стаж: 6 лет
Откуда: Новосибирск
Благодарил (а): 8 раз

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

Сообщение evgen-154 »

Old Human писал(а): 09.10.2018 20:43 К сожалению, моих знаний php недостаточно, чтобы освоить ваш дружественный пинок
$this я так понимаю указатель на объект, который существует только в пределах вызова функции. При следующем вызове функции это будет уже другой объект.
$this->cache->get($key_cache);
$this->cache->set($key_cache, $query, false, 7200); // Хранить результат 2 часа
Аватара пользователя
evgen-154
phpBB 1.2.0
Сообщения: 13
Стаж: 6 лет
Откуда: Новосибирск
Благодарил (а): 8 раз

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

Сообщение evgen-154 »

Татьяна5 писал(а): 09.10.2018 20:51 Нет в классе set, там put
Дико извиняюсь
Делал подобное недавно на другом движке (opencart)
Old Human
phpBB 1.4.0
Сообщения: 37
Стаж: 16 лет 10 месяцев
Благодарил (а): 2 раза

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

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

Не могу понять, что класть в кеш, что доставать и как показывать эту переменную:

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

		if ($forum_recent_topics != $this->cache->get('_forum_recent_topics'))
		{
		//тут нагрузка на базу
		$this->db->sql_freeresult($result);
		
		}
		else $this->cache->put(_forum_recent_topics, $query, false, 7200);
		
		$this->template->set_filenames(array(
		'body' => ($http_ajax) ? '@bb3mobi_recent_topics/recent_ajax_body.html' : '@bb3mobi_recent_topics/recent_body.html'));

		$this->template->display('body');
 
Old Human
phpBB 1.4.0
Сообщения: 37
Стаж: 16 лет 10 месяцев
Благодарил (а): 2 раза

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

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

Вот так вроде правильно алгоритически, но не работает, так как не знаю что академически вложить и вынуть из кеша:

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

		
		if ($forum_recent_topics != $this->cache->get('_forum_recent_topics'))
		{
		//тут нагрузка на базу
				$this->cache->put(_forum_recent_topics, $this->template, false, 7200);
		$this->template->display('body');


		garbage_collection();
		exit_handler();
		}
		else $forum_recent_topics->display('body');
		{
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5270
Стаж: 19 лет 2 месяца
Откуда: Питер
Благодарил (а): 188 раз
Поблагодарили: 800 раз
Контактная информация:

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

Сообщение Siava »

Old Human, и всё же, может быть стоит проверить индексы или наличие кэша для sql-запросов? Это расширение не вызывает таких проблем, как вы описываете даже на большом форуме.
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)
Old Human
phpBB 1.4.0
Сообщения: 37
Стаж: 16 лет 10 месяцев
Благодарил (а): 2 раза

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

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

Siava писал(а): 19.10.2018 9:30 и всё же, может быть стоит проверить индексы или наличие кэша для sql-запросов? Это расширение не вызывает таких проблем, как вы описываете даже на большом форуме.
факт снижения нагрузки при удалении recent.php я не могу объяснить иначе:
Изображение
Ответить

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