Перейти к содержимому
Открыть в приложении

Удобный способ просмотра. Узнать больше.

Дизайн и модификация Invision Community

Полноэкранное приложение на главном экране с push-уведомлениями, медалями и многим другим.

Чтобы установить это приложение на iOS и iPadOS
  1. Нажмите иконку «Поделиться» в Safari
  2. Прокрутите меню и нажмите На экран «Домой».
  3. Нажмите Добавить в правом верхнем углу.
Чтобы установить это приложение на Android
  1. Нажмите меню из трёх точек (⋮) в правом верхнем углу браузера.
  2. Нажмите Добавить на главный экран или Установить приложение.
  3. Подтвердите, нажав Установить.
Русский язык для Invision Community 5

Новости форума

В стандартной версии ИПБ на главную страницу выводится название последней темы, созданной в подфоруме, заданном в Админке. Это не совсем удобно, ибо для каждой новости нужно создавать новую тему.

Как сделать так, чтобы выводился текст последнего сообщения (постинга) в заданной теме? Тему можно определить константно, раз и навсегда, нет необходимости вводить переменную и вычислять наиболее актуальную тему в подфоруме.

Рекомендованные сообщения

Ага,тоже оч интересно!

  • Автор

Интересно, это настолько глупый или настолько неразрешимый вопрос? В первом случае просьба кинуть ссылку на ранее предложенные решения.

В стандартных функциях IPB такого не предусмотрено.

Знаю, что некоторые клиенты заказывали подобное ребятам, и это было реализовано.

Обсуждались ли в темах подобные решения, не знаю, не следила.

У ребят сейчас сессия, упрекать их в том, что не всегда отвечают, нехорошо.

 

Могли бы сами найти в тегах по ключу "новост"

вывод новостей

А Вы даже не попытались.

Читаем Правила форума, пункт 6.

Я такого вроде не делал. :blink:

Там надо переписывать вывод новостей в портале, а меня, честно говоря, от портала воротит...

Может кто другой поможет

  • 2 месяца спустя...
  • Автор
У ребят сейчас сессия, упрекать их в том, что не всегда отвечают, нехорошо.

Могли бы сами найти в тегах по ключу "новост"

А Вы даже не попытались.

 

Уважаемая Fisana, вы абсолютно правы, я даже не пытался воспользоваться поиском, но только по одной причине - перед тем, как зарегистрироваться на форуме, я его долго читал. Соответственно, потому и задал вопрос, ибо не отложилось в памяти что-либо по данному вопросу.

Результаты вашего поиска подтвердили то, что моя память меня не подвела. К сожалению, ничего из найденного вами не помогает найти ответ на мой вопрос.

Приношу извинения, если моя попытка напомнить о своем вопросе прозвучала как упрек. И в мыслях не было упрекать кого-либо.

 

Я такого вроде не делал. :)

Там надо переписывать вывод новостей в портале, а меня, честно говоря, от портала воротит...

Может кто другой поможет

Увы, никто не помог. Но речь не идет о портале. Возможно, что я криво сформулировал вопрос.

 

Речь идет о том, что на главной странице самого форума, там, где дается ссылка на последний открытый топик и приводится его название, давать ссылку на последний пост заданного топика.

Попробовал самостоятельно решить проблему, но собственных знаний хватило лишь на то, что я раскопал шаблон, где формируется новостная строка.

Board Index/newslink:

<br /><b>{$this->ipsclass->vars['board_name']} {$this->ipsclass->lang['newslink']}</b> <i><a href="{$this->ipsclass->base_url}showtopic=$tid">$title</a></i>

После замены на:

<br /><b>{$this->ipsclass->vars['board_name']} {$this->ipsclass->lang['newslink']}</b> <i><a href="{$this->ipsclass->base_url}showtopic=3&view=getlastpost">$title</a></i>

появилась ссылка на требуемый пост, но вот текст этого поста вытащить так и не удалось. Что то явно должно стоять другое вместо переменной $title, но что именно? Есть ли какая переменная, которая содержит текст последнего поста заданного топика и доступна ли она в этом месте, или нужно лезть за текстом в БД?

заменяйте найденный код на

<br /><b>{$this->ipsclass->vars['board_name']} {$this->ipsclass->lang['newslink']}</b> <i><a href="{$this->ipsclass->base_url}showtopic=$tid&view=getlastpost">$title</a></i>

так корректнее

 

появилась ссылка на требуемый пост, но вот текст этого поста вытащить так и не удалось. Что то явно должно стоять другое вместо переменной $title, но что именно? Есть ли какая переменная, которая содержит текст последнего поста заданного топика и доступна ли она в этом месте, или нужно лезть за текстом в БД?
надо лезть в БД. Т.е. вам надо к этой ссылке добавить все содержимое поста. Я вас правильно понял? Если да, то вечером напишу, как реализовать.
  • Автор
заменяйте найденный код на
<br /><b>{$this->ipsclass->vars['board_name']} {$this->ipsclass->lang['newslink']}</b> <i><a href="{$this->ipsclass->base_url}showtopic=$tid&view=getlastpost">$title</a></i>

так корректнее

А разве в этом случае не будет показываться ссылка на последний пост последнего открытого, то есть самого свежего топика? Мне нужна ссылка именно на последний пост топика номер три. Всегда, независимо от того, какие топики были заведены после него.

 

надо лезть в БД. Т.е. вам надо к этой ссылке добавить все содержимое поста. Я вас правильно понял? Если да, то вечером напишу, как реализовать.

 

Да, именно содержимое поста. Буду очень благодарен.

А разве в этом случае не будет показываться ссылка на последний пост последнего открытого, то есть самого свежего топика? Мне нужна ссылка именно на последний пост топика номер три. Всегда, независимо от того, какие топики были заведены после него.
хм. Тогда да.
Да, именно содержимое поста. Буду очень благодарен.
Содержимое поста из определенного топика?
  • Автор
Содержимое поста из определенного топика?

Да, содержимое последнего поста из топика номер три.

у меня вылетело из головы. :)

 

/sources/action_public/boards.php

найти

			$t_html = $this->ipsclass->compiled_templates['skin_boards']->newslink( $this->news_forum_id, stripslashes($this->ipsclass->forums->forum_by_id[ $this->ipsclass->vars['news_forum_id'] ]['newest_title']) ,
										 										$this->ipsclass->forums->forum_by_id[ $this->ipsclass->vars['news_forum_id'] ]['newest_id']);

заменить на

			$this->ipsclass->DB->simple_construct( array( 'select' => '*',
													  'from'   => 'posts',
													  'where'  => "topic_id='3' AND queued='0'",
													  'order'  => "pid DESC",
													  'limit'  => array(0, 1),
											)	  );

		$temp_id = $this->ipsclass->DB->simple_exec();			
		$post = $this->ipsclass->DB->fetch_row($temp_id);			
		$t_html = $this->ipsclass->compiled_templates['skin_boards']->newslink( $this->news_forum_id, stripslashes($this->ipsclass->forums->forum_by_id[ $this->ipsclass->vars['news_forum_id'] ]['newest_title']) ,
										 										$this->ipsclass->forums->forum_by_id[ $this->ipsclass->vars['news_forum_id'] ]['newest_id'], $post);

открыть newslink (skin_boards)

во входящих переменных через запятую дописать "$post" без кавычек

 

и в итоге в шаблон можно вставить

{$post['post']}

что будет являться последним постом в топике с ID 3

 

если что не так - отпишите

  • Автор
у меня вылетело из головы. :D

Ничего страшного. Точнее, спасибо за ответ! :)

 

			$this->ipsclass->DB->simple_construct( array( 'select' => '*',
													  'from'   => 'posts',
													  'where'  => "topic_id='3' AND queued='0'",
													  'order'  => "pid DESC",
													  'limit'  => array(0, 1),
											)	  );

		$temp_id = $this->ipsclass->DB->simple_exec();			
		$post = $this->ipsclass->DB->fetch_row($temp_id);

Это стандартная конструкция для доступа в БД?

*Это я чисто из любопытства, чтоб в следующий раз, может быть, избежать глупых вопросов...

открыть newslink (skin_boards)

Правильно ли я понял, что нужно редактировать файл, который лежит в кэше? Вопрос обусловлен тем, что я полагал, что эти файлы генерируются полностью автоматически и их редактировать вручную бесполезно. Или автоматически туда вставляются только определенные строки?

Изменено пользователем Yu-val

В кэше нельзя редактировать.

Имеется ввиду шаблон из группы Board Index

 

В русской админке названия групп шаблонов такие же, как названия в кэше

  • Автор
В кэше нельзя редактировать.

Ну вот мне тоже так казалось... Хорошо, что переспросил.

Имеется ввиду шаблон из группы Board Index

Такой шаблон там есть, но я сходу не понял, что означает "во входящих переменных", привычно стал искать имя функции. Теперь нашел, прошу прощения за свою... несообразительность.

 

В русской админке названия групп шаблонов такие же, как названия в кэше

У меня английская. :D

Я всегда пишу путь к шаблонам в формате поиска шаблонов. Там есть строка поиска, если туда вбить "newslink (skin_boards)", то шаблон автоматом откроется.

Это стандартная конструкция для доступа в БД?
да. стандартный запрос в бд
  • Автор
Я всегда пишу путь к шаблонам в формате поиска шаблонов. Там есть строка поиска, если туда вбить "newslink (skin_boards)", то шаблон автоматом откроется.да. стандартный запрос в бд

Уже понял!

 

Сделал, все работает как надо. Спасибо огромное! Не столько даже за то, что помогли решить эту конкретную проблему, а за то, что кое-чему научили. Это еще более ценно.

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.