Перейти к публикации
View in the app

A better way to browse. Learn more.

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

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Опубликовано:

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

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

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

Опубликовано:

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

Опубликовано:
  • Автор

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

Опубликовано:

В стандартных функциях 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)", то шаблон автоматом откроется.да. стандартный запрос в бд

Уже понял!

 

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

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

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.