Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
Trotor

Импорт RSS не в разделы а в темы

Recommended Posts

Самый простой вариант

Спасибо, то что надо.

Всё работает как надо и очень удобно.

 

Но возникла смежная проблема, причём которая на всём ставит крест. Задача "Обновление RSS импорта" в диспетчере задач работает как то странно. В автоматическом режиме - не срабатывает. Запускаешь вручную - всё отлично.

Скриншот прилагаю.

post-31497-0-91107000-1524999639_thumb.jpg

 

Думал эту задачу запускать через крон ISP-manager, но не могу подобрать правильное значение.

Share this post


Link to post

В автоматическом режиме - не срабатывает.

А вообще задача полностью отрабатывает?

Share this post


Link to post

А вообще задача полностью отрабатывает?

В том то и дело что в журнале задач фиксируется выполнения задачи этой.

Share this post


Link to post
В том то и дело что в журнале задач фиксируется выполнения задачи этой.

Запись в любом случае будет. Нужно пройтись по всем этапам.

 

Откройте файл задачи.

Найдите

$rss->rssImportRebuildCache( implode( ",", $feeds_to_update), 0, 1 );

Выше добавьте

IPSDebug::addLogMessage('Rss Log', 'rsslog', $feeds_to_update, true);

 

После нескольких запусков проверьте файл \cache\rsslog.cgi

  • Upvote 1

Share this post


Link to post

После нескольких запусков проверьте файл \cache\rsslog.cgi

Вот результат:

 

 

 

--------------------------------------------------------------------------------

> Time: 1525117561 / Mon, 30 Apr 2018 19:46:01 +0000

> URL: /index.php?app=core&module=task

> Rss Log

array (

0 => '1',

1 => '2',

)

--------------------------------------------------------------------------------

> Time: 1525119361 / Mon, 30 Apr 2018 20:16:01 +0000

> URL: /index.php?app=core&module=task

> Rss Log

array (

0 => '3',

1 => '4',

2 => '1',

3 => '2',

)

--------------------------------------------------------------------------------

> Time: 1525121162 / Mon, 30 Apr 2018 20:46:02 +0000

> URL: /index.php?app=core&module=task

> Rss Log

array (

0 => '1',

1 => '2',

)

--------------------------------------------------------------------------------

> Time: 1525122960 / Mon, 30 Apr 2018 21:16:00 +0000

> URL: /index.php?app=core&module=task

> Rss Log

array (

0 => '8',

)

--------------------------------------------------------------------------------

> Time: 1525124761 / Mon, 30 Apr 2018 21:46:01 +0000

> URL: /index.php?app=core&module=task

> Rss Log

array (

0 => '1',

1 => '2',

)

--------------------------------------------------------------------------------

> Time: 1525126563 / Mon, 30 Apr 2018 22:16:03 +0000

> URL: /index.php?app=core&module=task

> Rss Log

array (

0 => '5',

1 => '6',

2 => '7',

3 => '1',

4 => '2',

)

--------------------------------------------------------------------------------

> Time: 1525130166 / Mon, 30 Apr 2018 23:16:06 +0000

> URL: /index.php?app=core&module=task

> Rss Log

array (

0 => '1',

1 => '2',

)

--------------------------------------------------------------------------------

> Time: 1525131998 / Mon, 30 Apr 2018 23:46:38 +0000

> URL: /index.php?app=core&module=task

> Rss Log

array (

0 => '3',

1 => '4',

2 => '1',

3 => '2',

)

--------------------------------------------------------------------------------

> Time: 1525135563 / Tue, 01 May 2018 00:46:03 +0000

> URL: /index.php?app=core&module=task

> Rss Log

array (

0 => '8',

1 => '1',

2 => '2',

)

--------------------------------------------------------------------------------

> Time: 1525139164 / Tue, 01 May 2018 01:46:04 +0000

> URL: /index.php?app=core&module=task

> Rss Log

array (

0 => '5',

1 => '6',

2 => '7',

3 => '1',

4 => '2',

)

--------------------------------------------------------------------------------

> Time: 1525142778 / Tue, 01 May 2018 02:46:18 +0000

> URL: /index.php?app=core&module=task

> Rss Log

array (

0 => '1',

1 => '2',

)

--------------------------------------------------------------------------------

> Time: 1525144574 / Tue, 01 May 2018 03:16:14 +0000

> URL: /index.php?app=core&module=task

> Rss Log

array (

0 => '3',

1 => '4',

)

--------------------------------------------------------------------------------

> Time: 1525146363 / Tue, 01 May 2018 03:46:03 +0000

> URL: /index.php?app=core&module=task

> Rss Log

array (

0 => '1',

1 => '2',

)

--------------------------------------------------------------------------------

> Time: 1525148163 / Tue, 01 May 2018 04:16:03 +0000

> URL: /index.php?app=core&module=task

> Rss Log

array (

0 => '8',

1 => '1',

2 => '2',

)

--------------------------------------------------------------------------------

> Time: 1525151764 / Tue, 01 May 2018 05:16:04 +0000

> URL: /index.php?app=core&module=task

> Rss Log

array (

0 => '5',

1 => '6',

2 => '7',

3 => '1',

4 => '2',

)

--------------------------------------------------------------------------------

> Time: 1525153565 / Tue, 01 May 2018 05:46:05 +0000

> URL: /index.php?app=core&module=task

> Rss Log

array (

0 => '1',

1 => '2',

)

--------------------------------------------------------------------------------

> Time: 1525157164 / Tue, 01 May 2018 06:46:04 +0000

> URL: /index.php?app=core&module=task

> Rss Log

array (

0 => '3',

1 => '4',

2 => '1',

3 => '2',

)

--------------------------------------------------------------------------------

> Time: 1525160764 / Tue, 01 May 2018 07:46:04 +0000

> URL: /index.php?app=core&module=task

> Rss Log

array (

0 => '8',

1 => '1',

2 => '2',

)

--------------------------------------------------------------------------------

> Time: 1525164362 / Tue, 01 May 2018 08:46:02 +0000

> URL: /index.php?app=core&module=task

> Rss Log

array (

0 => '5',

1 => '6',

2 => '7',

3 => '1',

4 => '2',

)

--------------------------------------------------------------------------------

> Time: 1525166162 / Tue, 01 May 2018 09:16:02 +0000

> URL: /index.php?app=core&module=task

> Rss Log

array (

0 => '1',

1 => '2',

)

--------------------------------------------------------------------------------

> Time: 1525167962 / Tue, 01 May 2018 09:46:02 +0000

> URL: /index.php?app=core&module=task

> Rss Log

array (

0 => '1',

1 => '2',

)

--------------------------------------------------------------------------------

> Time: 1525169765 / Tue, 01 May 2018 10:16:05 +0000

> URL: /index.php?app=core&module=task

> Rss Log

array (

0 => '3',

1 => '4',

2 => '1',

3 => '2',

)

--------------------------------------------------------------------------------

> Time: 1525173363 / Tue, 01 May 2018 11:16:03 +0000

> URL: /index.php?app=core&module=task

> Rss Log

array (

0 => '8',

1 => '1',

2 => '2',

)

--------------------------------------------------------------------------------

> Time: 1525175166 / Tue, 01 May 2018 11:46:06 +0000

> URL: /index.php?app=core&module=task

> Rss Log

array (

0 => '1',

1 => '2',

)

 

 

Share this post


Link to post

Вот результат:

 

Так тут Вам нужно посмотреть. Если есть ID'шник "проблемного" RSS в логах, то импорт происходит, и нужно дальше искать причину.

Добавить в файл импорта в разные места по порядку.

if ($row['rss_import_id'] == X)
{
   IPSDebug::addLogMessage("Point 1", 'rsslog', false, true);
}

if ($row['rss_import_id'] == X)
{
   IPSDebug::addLogMessage("Point 2", 'rsslog', false, true);
}

и т.д.

X - ID Rss

  • Upvote 1

Share this post


Link to post

rss.zip (13,9К)

Можно вас попросить сделать такое же самое но для Экспорта? То есть что бы была возможность в настройках выставлять для экспорта не только разделов (то есть всех тем) а также и тем (сообщений)?

Share this post


Link to post

Можно вас попросить сделать такое же самое но для Экспорта? То есть что бы была возможность в настройках выставлять для экспорта не только разделов (то есть всех тем) а также и тем (сообщений)?

Так в RSS идут темы, а не посты.

Share this post


Link to post

Так в RSS идут темы, а не посты.

Ну да. А мне бы хотелось что бы был такой же фикс как и в Импорте - что бы можно для экспорта указывать не только разделы, но и тему.

Share this post


Link to post

Ну да. А мне бы хотелось что бы был такой же фикс как и в Импорте - что бы можно для экспорта указывать не только разделы, но и тему.

Я так понял что такое реализовать на IPB невозможно? :(

Share this post


Link to post

Я так понял что такое реализовать на IPB невозможно?

 

 

 

Выполнить запрос

ALTER TABLE rss_export ADD rss_export_tids TEXT NULL DEFAULT NULL;

######################################################################################################################################################

 

\admin\applications\forums\skin_cp\cp_skin_rss.php

Найти

			<li>
			<label>{$this->lang->words['rss_ex_cache']}<span class='desctext'>{$this->lang->words['rss_ex_cache_info']}</span></label>
			{$form['rss_export_cache_time']}
		</li>

Выше добавить

			<li>
			<label>Темы<span class='desctext'>Укажите темы (через запятую) для экспорта.</span></label>
			{$form['rss_export_tids']}
		</li>

######################################################################################################################################################

 

\admin\applications\forums\modules_admin\rss\export.php

Найти

		$form['rss_export_forums']       = $this->registry->output->formMultiDropdown(  'rss_export_forums[]', $dropdown, explode( ",", $rss_export_forums ), 7 );

Ниже добавить

		$form['rss_export_tids']         = $this->registry->output->formInput('rss_export_tids', (isset($this->request['rss_export_tids']) and $this->request['rss_export_tids']) ? $this->request['rss_export_tids'] : $rssstream['rss_export_tids']);

Найти

		$rss_export_order        = trim( $this->request['rss_export_order'] );

Ниже добавить

		$rss_export_tids         = implode(',', array_map('trim', array_filter(explode(',', $this->request['rss_export_tids']), 'is_numeric')));

Найти

						'rss_export_order'        => $rss_export_order,

Ниже добавить

						'rss_export_tids'         => $rss_export_tids,

Найти

		if ( ! $rss_export_title OR ! $rss_export_count OR ! $rss_export_forums )

Заменить на

		$fidsOrTids = false;

	if ($rss_export_forums)
	{
		$fidsOrTids = true;
	}
	elseif ($rss_export_tids)
	{
		$fidsOrTids = true;

		if (!$rss_export_forums)
		{
			$rss_export_forums = 0;
		}
	}

	if ( ! $rss_export_title OR ! $rss_export_count OR ! $fidsOrTids )

 

Найти

					if ( $row['rss_export_include_post'] )
				{
					$this->DB->build( 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( array( 
																				'select' => 'p.pid, p.post, p.use_emo, p.post_htmlstate',
																				'from'   => array( 'posts' => 'p' ),
																				'where'  => 't.topic_firstpost=p.pid',
																				'type'   => 'left'
																	)		)
										)	);
				}
				else
				{
					$this->DB->build( 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'] )
										)		);
				}

Заменить на

				if ($row['rss_export_tids'])
			{
					$this->DB->build( array( 
													'select' => 't.*',
													'from'   => array( 'topics' => 't' ),
													'where'  => "t.tid IN( " . $row['rss_export_tids'] . " ) AND t.state != 'link' AND t.approved=1 AND p.queued=0",
													'order'  => 'p.post_date' . ' ' . $row['rss_export_sort'],
													'limit'  => array( 0, $row['rss_export_count'] ),
													'add_join' => array( array( 
																				'select' => 'p.post_date, p.pid, p.post, p.use_emo, p.post_htmlstate',
																				'from'   => array( 'posts' => 'p' ),
																				'where'  => 't.tid=p.topic_id',
																				'type'   => 'left'
																	)		)
										)	);					
			}				
			else
			{
				if ( $row['rss_export_include_post'] )
				{
					$this->DB->build( 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( array( 
																				'select' => 'p.pid, p.post, p.use_emo, p.post_htmlstate',
																				'from'   => array( 'posts' => 'p' ),
																				'where'  => 't.topic_firstpost=p.pid',
																				'type'   => 'left'
																	)		)
										)	);
				}
				else
				{
					$this->DB->build( 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'] )
										)		);
				}
			}

 

Найти

																	  'link'        => $this->registry->output->buildSEOUrl( 'showtopic=' . $topic['tid'], 'publicNoSession', $topic['title_seo'], 'showtopic' ),

Заменить на

																	  'link'        => $row['rss_export_tids'] ? $this->registry->output->buildSEOUrl( "showtopic={$topic['tid']}&view=findpost&p={$topic['pid']}", "publicNoSession", $topic['title_seo'], 'showtopic' ) : $this->registry->output->buildSEOUrl( 'showtopic=' . $topic['tid'], 'publicNoSession', $topic['title_seo'], 'showtopic' ),

 

Найти

																	  'pubDate'	    => $class_rss->formatDate( $row['rss_export_order'] == 'last_post' ? $topic['last_post'] : $topic['start_date'] ),

Заменить на

																	  'pubDate'	    => $row['rss_export_tids'] ? $class_rss->formatDate($topic['post_date']) : ($class_rss->formatDate($row['rss_export_order'] == 'last_post' ? $topic['last_post'] : $topic['start_date'])),

 

Найти

																	  'guid'        => $this->registry->output->buildSEOUrl( 'showtopic=' . $topic['tid'], 'publicNoSession', $topic['title_seo'], 'showtopic' )

Заменить на

																	  'guid'        => $row['rss_export_tids'] ? $this->registry->output->buildSEOUrl( "showtopic={$topic['tid']}&view=findpost&p={$topic['pid']}", "publicNoSession", $topic['title_seo'], 'showtopic' ) : $this->registry->output->buildSEOUrl( 'showtopic=' . $topic['tid'], 'publicNoSession', $topic['title_seo'], 'showtopic' ),

 

 

  • Upvote 1

Share this post


Link to post

@newbie,

Большое спасибо за помощь!

 

Чуть позднее потестю и отпишусь.

Share this post


Link to post

Поместил список тем в "Темы Укажите темы (через запятую) для экспорта."

Однако в самом канале выдаёт сообщения не с списка указанных тем, а сообщение с темы, ид которой имеет ид канала RSS

Share this post


Link to post

а сообщение с темы, ид которой имеет ид канала RSS

Ссылку на рсс

Share this post


Link to post

Я сам ошибся. В поле я указывал не ссылки на темы, а их иды. Хотя если ставлю полную ссылку на тему, пишет такое - "Вы должны заполнить все поля. Попробуйте еще раз."

 

Ссылка на RSS-канал - http://test.imtw.ru/rss/forums/30-testovaya/

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...