Настройка RSS в IPB 2.3.6 - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

Правила раздела

Здесь обсуждаются вопросы настройки и администрирования форумов IPB 2.x.
Пожалуйста, не оффтопьте, если зашли сюда случайно, и обратите внимание на соседние разделы.
Установка, настройка и обслуживание форумов IPB 3.x.
Оформление форумов, включая верстку скинов.
Размещение рекламы на форумах.
SEO оптимизация форума.
Техническая поддержка наших скинов и модов.

СвернутьПрикрепленные теги

rss

  • 2 Страниц +
  • 1
  • 2
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в этой теме

Настройка RSS в IPB 2.3.6

#1 Пользователь не на сайте   25dekker25 ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 19
  • Регистрация: 08-Март 13
  • Репутация: 0
  • IPB version:2.3.x
 

Отправлено 09 Март 2013 - 18:29

Добрый день!

Подскажите, как настроить экспорт rss-потока в IPB 2.3.6, как это реализовано здесь, т.е. когда любое новое сообщение в отмеченных форумах отображается в ленте. В АЦ есть опция: "включать первое сообщение темы?", если ставить "Да", то будет отображаться только 1-е сообщение топика.

Спасибо!
0

#2 Пользователь не на сайте   Bot ответил: »

 
 
  • Почетный робот
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
 

Отправлено 09 Март 2013 - 18:29

Обратите внимание

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


0

#3 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 749
  • Регистрация: 20-Март 09
  • Репутация: 2 282
  • IPB version:3.1.x
 

Отправлено 11 Март 2013 - 11:42

Настроить это никак, сделать можно только правкой исходного кода.

/sources/action_admin/rssexport.php

Найти:

				//--------------------------------------------
				// Build DB query
				//--------------------------------------------
				
				if ( $row['rss_export_include_post'] )
				{
					$this->ipsclass->DB->build_query( array( 'select' => 't.*',
															 'from'   => array( 'topics' => 't' ),
															 'where'  => "t.forum_id IN( ".$row['rss_export_forums']." ) AND t.state != 'link' AND t.approved=1",
															 'order'  => 't.'.$row['rss_export_order'].' '. $row['rss_export_sort'],
															 'limit'  => array( 0, $row['rss_export_count'] ),
															 'add_join' => array( 0 => array( 'select' => 'p.post',
																							  'from'   => array( 'posts' => 'p' ),
																							  'where'  => 't.topic_firstpost=p.pid',
																							  'type'   => 'left'
																				)           )
													)      );
				}
				else
				{
					$this->ipsclass->DB->build_query( array( 'select' => '*',
															 'from'   => 'topics',
															 'where'  => "forum_id IN( ".$row['rss_export_forums']." ) AND state != 'link' AND approved=1",
															 'order'  => $row['rss_export_order'].' '. $row['rss_export_sort'],
															 'limit'  => array( 0, $row['rss_export_count'] )
													)      );
				}
				
				//--------------------------------------------
				// Exec Query
				//--------------------------------------------
				
				$inner = $this->ipsclass->DB->exec_query();


И заменить на:

				//--------------------------------------------
				// Build DB query
				//--------------------------------------------

				if( $row['rss_export_include_post'] )
				{
					$pfx = $this->ipsclass->vars['sql_tbl_prefix'];
					$this->ipsclass->DB->allow_sub_select = 1;
					
					$inner = $this->ipsclass->DB->query( "SELECT t.*, p.* FROM (SELECT * FROM {$pfx}topics WHERE forum_id IN ({$row['rss_export_forums']}) AND state!='link' AND approved=1 ORDER BY {$row['rss_export_order']} {$row['rss_export_sort']} LIMIT 0,{$row['rss_export_count']}) t LEFT JOIN (SELECT MAX(pid) as pid, topic_id FROM {$pfx}posts GROUP BY topic_id) z ON z.topic_id=t.tid LEFT JOIN {$pfx}posts p ON p.pid=z.pid" );
					
					$this->ipsclass->DB->allow_sub_select = 0;
				}
				else
				{
					$this->ipsclass->DB->build_query( array( 'select' => '*',
															 'from'   => 'topics',
															 'where'  => "forum_id IN( ".$row['rss_export_forums']." ) AND state != 'link' AND approved=1",
															 'order'  => $row['rss_export_order'].' '. $row['rss_export_sort'],
															 'limit'  => array( 0, $row['rss_export_count'] )
													)      );
					
					//--------------------------------------------
					// Exec Query
					//--------------------------------------------
					
					$inner = $this->ipsclass->DB->exec_query();
				}

2

#4 Пользователь не на сайте   25dekker25 ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 19
  • Регистрация: 08-Март 13
  • Репутация: 0
  • IPB version:2.3.x
 

Отправлено 11 Март 2013 - 19:16

siv1987, спасибо!

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

#5 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 749
  • Регистрация: 20-Март 09
  • Репутация: 2 282
  • IPB version:3.1.x
 

Отправлено 11 Март 2013 - 19:36

Просмотреть сообщение25dekker25 сказал(а):

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

Нет.
0

#6 Пользователь не на сайте   25dekker25 ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 19
  • Регистрация: 08-Март 13
  • Репутация: 0
  • IPB version:2.3.x
 

Отправлено 14 Март 2013 - 09:46

Просмотреть сообщениеsiv1987 11 Март 2013 - 19:36 сказал(а):

Нет.


Но на том форуме IPB 2.3.6 это каким-то образом реализовано. У него сразу сообщение в ленту экспортируется, и ссылка прямая на него, а не на топик

Сообщение изменено: 25dekker25 (14 Март 2013 - 09:47)

0

#7 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 749
  • Регистрация: 20-Март 09
  • Репутация: 2 282
  • IPB version:3.1.x
 

Отправлено 14 Март 2013 - 12:36

Просмотреть сообщение25dekker25 сказал(а):

У него сразу сообщение в ленту экспортируется, и ссылка прямая на него, а не на топик

Ну так и скажите, что хотите ссылку на последнее сообщение, а не непонято что.

Открыть тот же файл.
Найти
$this->ipsclass->vars['board_url'].'/index.php?showtopic='.$topic['tid'],

Заменить на
$this->ipsclass->vars['board_url'].'/index.php?showtopic='.$topic['tid'].'&view=findpost&p='.$topic['pid'],


Также найти
$this->ipsclass->vars['board_url'] . '/index.php?showtopic=' . $topic['tid']

и заменить на
$this->ipsclass->vars['board_url'] . '/index.php?showtopic=' . $topic['tid'].'&view=findpost&p='.$topic['pid']


После, обновить кеш фида в админцентре.
1

#8 Пользователь не на сайте   25dekker25 ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 19
  • Регистрация: 08-Март 13
  • Репутация: 0
  • IPB version:2.3.x
 

Отправлено 14 Март 2013 - 18:12

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

Похоже за вывод информации в файле отвечает этот раздел:

//--------------------------------------------
// Build DB query
//--------------------------------------------

0

#9 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 749
  • Регистрация: 20-Март 09
  • Репутация: 2 282
  • IPB version:3.1.x
 

Отправлено 14 Март 2013 - 18:32

Что значит "очередь" и что значит "сохранялось"? Как оно может "сохраниться", если к теме выводиться одно последнее сообщение?
0

#10 Пользователь не на сайте   25dekker25 ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 19
  • Регистрация: 08-Март 13
  • Репутация: 0
  • IPB version:2.3.x
 

Отправлено 14 Март 2013 - 22:26

Просмотреть сообщениеsiv1987 14 Март 2013 - 18:32 сказал(а):

Что значит "очередь" и что значит "сохранялось"? Как оно может "сохраниться", если к теме выводиться одно последнее сообщение?


Посмотри, пожалуйста, в 1-м посте, как у него лента работает. В нее попадают все сообщения, при этом, если в топике появляется новое сообщение, то после обновления кэша, предыдущие сообщения того же топика из ленты не удаляется. Похоже, выдача "очереди" (списка новостей в ленте rss) у него в rssexport.php привязана не к топику, а к сообщению, т.е. IPB под новой новостью понимает не создание нового топика, а нового сообщения.

Вроде объяснил :)
0

#11 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 749
  • Регистрация: 20-Март 09
  • Репутация: 2 282
  • IPB version:3.1.x
 

Отправлено 14 Март 2013 - 22:59

Просмотреть сообщение25dekker25 сказал(а):

В нее попадают все сообщения

Там только одно сообщение темы, где вы увидели все?

Просмотреть сообщение25dekker25 сказал(а):

т.е. IPB под новой новостью понимает не создание нового топика, а нового сообщения.

В настройках фида есть критерии сортировки - по последнему сообщению.
0

#12 Пользователь не на сайте   25dekker25 ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 19
  • Регистрация: 08-Март 13
  • Репутация: 0
  • IPB version:2.3.x
 

Отправлено 15 Март 2013 - 00:03

Просмотреть сообщениеsiv1987 14 Март 2013 - 22:59 сказал(а):

Там только одно сообщение темы, где вы увидели все?


Ну вот, например, два подряд сообщения в ленте из топика "Бывает и такое мнение у людей =)" в 00:50 и 00:48 (15/03/13)

Или "Швейцария Франция Италия... взгляд на Вербье сквозь призму стериотипов!" 3 подряд сообщения 00:43, 00:42 и 00:38 (15/03/13)
0

#13 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 749
  • Регистрация: 20-Март 09
  • Репутация: 2 282
  • IPB version:3.1.x
 

Отправлено 15 Март 2013 - 00:20

Бгггг, ну раз так, откатите обратно первое изменение, и

                    $this->ipsclass->DB->build_query( array( 'select' => 't.*',
                                                             'from'   => array( 'topics' => 't' ),
                                                             'where'  => "t.forum_id IN( ".$row['rss_export_forums']." ) AND t.state != 'link' AND t.approved=1",
                                                             'order'  => 't.'.$row['rss_export_order'].' '. $row['rss_export_sort'],
                                                             'limit'  => array( 0, $row['rss_export_count'] ),
                                                             'add_join' => array( 0 => array( 'select' => 'p.post',
                                                                                              'from'   => array( 'posts' => 'p' ),
                                                                                              'where'  => 't.topic_firstpost=p.pid',
                                                                                              'type'   => 'left'
                                                                                )           )
                                                    )      );

замените на

					$this->ipsclass->DB->build_query( array( 'select' => 'p.*',
															 'from'   => array( 'posts' => 'p' ),
															 'where'  => "t.forum_id IN( ".$row['rss_export_forums']." ) AND t.state != 'link' AND t.approved=1",
															 'order'  => 'p.post_date '. $row['rss_export_sort'],
															 'limit'  => array( 0, $row['rss_export_count'] ),
															 'add_join' => array( 0 => array( 'select' => 't.*',
																							  'from'   =>  array( 'topics' => 't' ),
																							  'where'  => 't.tid=p.topic_id',
																							  'type'   => 'left'
																				)           )
													)      );

И еще
$class_rss->rss_unix_to_rfc( $topic['start_date'] )

заменить на
$class_rss->rss_unix_to_rfc( $topic['post_date'] )


Сортировка будет происходить по дате постов, в ац это уже нельзя будет настроить, только порядок - A-Z или Z-A.

ПС.
По моему перовое решение гораздо лучше, зачем забивать фид сообщениями, когда для этого есть темы. Не стоит наверное говорить, что если топик будет обсуждаем его сообщения забьет пол канала, а то и весь фид.
1

#14 Пользователь не на сайте   25dekker25 ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 19
  • Регистрация: 08-Март 13
  • Репутация: 0
  • IPB version:2.3.x
 

Отправлено 15 Март 2013 - 01:18

Просмотреть сообщениеsiv1987 15 Март 2013 - 00:20 сказал(а):

Сортировка будет происходить по дате постов, в ац это уже нельзя будет настроить, только порядок - A-Z или Z-A.


Сделал, теперь на эту строчку ругается:

$this->ipsclass->update_cache( array( 'name' => 'rss_export', 'deletefirst' => 1, 'donow' => 1, 'array' => 1 ) );

0

#15 Пользователь не на сайте   25dekker25 ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 19
  • Регистрация: 08-Март 13
  • Репутация: 0
  • IPB version:2.3.x
 

Отправлено 15 Март 2013 - 01:31

siv1987, все в порядке. видать, я что-то неправильно скопировал, сорри.

Цитата

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


Да, мне оба решения нравятся, посмотрю какое для моего форума более подходящее, то и оставлю.

Спасибо!
0

Сообщить об этой теме:


  • 2 Страниц +
  • 1
  • 2
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в этой теме

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2016 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна