Перейти к содержанию

Статьи и автоматическая публикация на форуме


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

В линейки 3.Х  была возможность использовать форум для комментариев статей. В 4.Х это то же есть, но в отличии от 3-шки, здесь нет возможности настроить публикацию темы на форуме. 

Создается тема с полным дублем статьи. Нафига? Можно же Некое интро только публиковать, или первые скажем 250 знаков. 

Например, я создал поле Intro туда я пишу анонс статьи. Использую для отображение на сайте. Можно было-бы только это поле публиковать, а не весь контент. 

Может кто разбирается во внутренней кухне движка и подскажет как подправить код? 

Есть файл Records.php, он находится по адресу /applications/cms/sources/Records/Records.php

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

Може, кто подкажет че поменять? Я не знаком с переменными и прочей кухней движка. 

ЗЫ. Вот кусок кода. 

/**
	 * Post this record as a forum topic
	 * 
	 * @return void
	 */
	public function syncTopic()
	{
		if ( ! \IPS\Application::appIsEnabled( 'forums' ) )
		{
			throw new \UnexpectedValueException('content_record_no_forum_app_for_topic');
		}

		/* Fetch the forum */
		try
		{
			$forum = \IPS\forums\Forum::load( $this->_forum_forum );
		}
		catch( \OutOfRangeException $ex )
		{
			throw new \UnexpectedValueException('content_record_bad_forum_for_topic');
		}

		/* Existing topic */
		if ( $this->record_topicid )
		{
			/* Get */
			try
			{
				$topic = \IPS\forums\Topic::load( $this->record_topicid );
				if ( !$topic )
				{
					return;
				}
				/* Reset cache */
				$this->displayTitle = NULL;
				$topic->title = $this->_forum_prefix . $this->_title . $this->_forum_suffix;
				if ( \IPS\Settings::i()->tags_enabled )
				{
					$topic->setTags( $this->prefix() ? array_merge( $this->tags(), array( 'prefix' => $this->prefix() ) ) : $this->tags() );
				}
				
				if ( $this->hidden() )
				{
					$topic->hide( FALSE );
				}
				else if ( $topic->hidden() )
				{
					$topic->unhide( FALSE );
				}

				$topic->save();
				$firstPost = $topic->comments( 1 );

				$content = \IPS\Theme::i()->getTemplate( 'submit', 'cms', 'front' )->topic( $this );
				\IPS\Member::loggedIn()->language()->parseOutputForDisplay( $content );

				$firstPost->post = $content;
				$firstPost->save();
			}
			catch ( \OutOfRangeException $e )
			{
				return;
			}
		}
		/* New topic */
		else
		{
			/* Create topic */
			$topic = \IPS\forums\Topic::createItem( $this->author(), \IPS\Request::i()->ipAddress(), \IPS\DateTime::ts( $this->record_publish_date ? $this->record_publish_date : $this->record_saved ), \IPS\forums\Forum::load( $this->_forum_forum ), $this->hidden() );
			$topic->title = $this->_forum_prefix . $this->_title . $this->_forum_suffix;
			$topic->topic_archive_status = \IPS\forums\Topic::ARCHIVE_EXCLUDE;
			$topic->save();

			if ( \IPS\Settings::i()->tags_enabled )
			{
				$topic->setTags( $this->prefix() ? array_merge( $this->tags(), array( 'prefix' => $this->prefix() ) ) : $this->tags() );
			}

			/* Create post */
			$content = \IPS\Theme::i()->getTemplate( 'submit', 'cms', 'front' )->topic( $this );
			\IPS\Member::loggedIn()->language()->parseOutputForDisplay( $content );

			$post = \IPS\forums\Topic\Post::create( $topic, $content, TRUE, NULL, NULL, $this->author(), \IPS\DateTime::ts( $this->record_publish_date ? $this->record_publish_date : $this->record_saved ) );
			$post->save();

			$topic->topic_firstpost = $post->pid;
			$topic->save();

			$topic->markRead();

			/* Update file */
			$this->record_topicid = $topic->tid;
			$this->save();
		}
	}

 

Ссылка на комментарий
Поделиться на другие сайты

да, вопрос интересный. Хотелось бы что-то подобное. Искал на оф. форуме, что-то костыли одни пока

Ссылка на комментарий
Поделиться на другие сайты

14 минут назад, rustav сказал:

да, вопрос интересный. Хотелось бы что-то подобное. Искал на оф. форуме, что-то костыли одни пока

А какого рода костыли?

Ссылка на комментарий
Поделиться на другие сайты

4 часа назад, Роман Бакай сказал:

Например, я создал поле Intro туда я пишу анонс статьи. Использую для отображение на сайте. Можно было-бы только это поле публиковать, а не весь контент. 

Ну так создавай intro (anonce, teaser или как там назовете) и публикуй только его, в чем проблема? Есть же в настройках полей Topic Format

56d0306125b08_01.thumb.jpg.f91e3a2c73411

Ссылка на комментарий
Поделиться на другие сайты

@kgb У меня при создании или редактировании поля в приложении Pages нет никакого Topic Format. 

И что дает это Топик Формат? Хотя, если бы он был, может быть я и понял. 

Разобрался, оказывается надо в настройках базы данных указать категорию форума, которую надо использовать. Я же это не указывал, только в категориях статей(для каждой отдельно) указывал свою категорию на форуме. При таком раскладе нет Топик Формат. 

 

Ссылка на комментарий
Поделиться на другие сайты

44 минут назад, Роман Бакай сказал:

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

Ну сделали разработчики так, зачем, не знаю.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...