За многие годы возни с сайтами, я переодически сталкивался с вопросами которые мне не удавалось решить самостоятельно или при помощи тщательного гугления. Поэтому я шел на форумы движков и задавал эти вопросы там. Интересно, что ответа я никогда не получал. Даже если и решение было (как выяснялось потом) простым. Приходилось дальше самому курить мануалы и включать мозги. Короче, форумы никогда не помогали. Особенно запомнился форум джумлы. Сколько ни задавал - тишина. )))
Удивительно, что этот форум несколько раз выдавал ответы на мои вопросы. Поэтому я до сих пор их здесь задаю.
Поэтому, решил отдать долг и выдать решения некоторых вопросов из заданных мной.
И так, по данной теме.
Решение вопроса.
Короче, виноват здесь не движок, а MySQL.
Как править. Ищите файл my.cnf и если нет добавляйте строчку: ft_min_word_len=3 , где 3 это минимальное количество символов для поиска.
Затем перегружаем MySQL, перестраиваем в IPS поисковый индекс и пользуемся.
Pages очень продвинутый. С первого взгляда кажется что черт ногу сломит. Но если посидеть немного, то возможности открываются безграничные. У меня часть со статьями была на Joomla лет этак 7, в этом году перевел на Pages. Когда-то и блоги были на расширении для джумлы. Несколько лет назад перевел на IPBблоги и часть постов из блогов перекинул на форум. Теперь все на IPS. В целом доволен. Правда после переноса статей на IPS ожидаемо упал поисковый трафик. Но это поправится со временем.
Мой проект больше хобби, чем работа. Поэтому пилю под настроение.
Вот глянь www.realsky.ru
Я сам не программист и не дизайнер. Если что нужно делать, открываю мануалы и гугл. И пошло поехало.
В линейки 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();
}
}