<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Форум ReadyScript &mdash; Расширение текста для индексации в каталоге]]></title>
		<link>https://forum.readyscript.ru/topic/1339/rasshirenie-teksta-dlya-indeksatsii-v-kataloge/</link>
		<atom:link href="https://forum.readyscript.ru/feed/rss/topic/1339/" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Расширение текста для индексации в каталоге».]]></description>
		<lastBuildDate>Thu, 31 Aug 2017 14:02:45 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Расширение текста для индексации в каталоге]]></title>
			<link>https://forum.readyscript.ru/post/7674/#p7674</link>
			<description><![CDATA[<p>Подцепился, все прекрасно, благодарю!</p>]]></description>
			<author><![CDATA[null@example.com (Алексей)]]></author>
			<pubDate>Thu, 31 Aug 2017 14:02:45 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/7674/#p7674</guid>
		</item>
		<item>
			<title><![CDATA[Re: Расширение текста для индексации в каталоге]]></title>
			<link>https://forum.readyscript.ru/post/7673/#p7673</link>
			<description><![CDATA[<p>Вот так будет:</p><div class="codebox"><pre><code>        $event_result = \RS\Event\Manager::fire(&#039;product.getsearchtext&#039;, array(
            &#039;text_parts&#039; =&gt; $text,
            &#039;product&#039; =&gt; $this
        ));
        list($text) = $event_result-&gt;extract();</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Thu, 31 Aug 2017 08:53:12 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/7673/#p7673</guid>
		</item>
		<item>
			<title><![CDATA[Re: Расширение текста для индексации в каталоге]]></title>
			<link>https://forum.readyscript.ru/post/7672/#p7672</link>
			<description><![CDATA[<p>Созрел еще вопрос, хук я прописал, текст получил, а как бы мне получить еще при этом модель товара или хотя бы ID, чтоб вытащить поле, которое у каждого товара уникально?</p>]]></description>
			<author><![CDATA[null@example.com (Алексей)]]></author>
			<pubDate>Wed, 30 Aug 2017 10:44:25 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/7672/#p7672</guid>
		</item>
		<item>
			<title><![CDATA[Re: Расширение текста для индексации в каталоге]]></title>
			<link>https://forum.readyscript.ru/post/7671/#p7671</link>
			<description><![CDATA[<p>Спасибо большое за оперативность!</p>]]></description>
			<author><![CDATA[null@example.com (Алексей)]]></author>
			<pubDate>Wed, 30 Aug 2017 03:25:06 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/7671/#p7671</guid>
		</item>
		<item>
			<title><![CDATA[Re: Расширение текста для индексации в каталоге]]></title>
			<link>https://forum.readyscript.ru/post/7670/#p7670</link>
			<description><![CDATA[<p>Добрый день! <br />Добавили хук product.getsearchtext, войдет в следующее обновление.<br />Чтобы не ждать можете добавить 4 строки сами в файл product.inc.php</p><div class="codebox"><pre><code>    /**
    * Возвращает текст для индексации. Должен содержать все слова, по которым товар должен находиться
    */
    function getSearchText()
    {
        $config = \RS\Config\Loader::byModule($this);
        //Для поиска: Штрих-код, Краткое опиание, Характеристики, мета ключевые слова
        $properties = &#039;&#039;;
        if (in_array(&#039;properties&#039;, $config[&#039;search_fields&#039;])) {
            if ($this-&gt;use_property_in_search_index) {
                foreach ($this-&gt;fillProperty() as $groups) {
                    foreach ($groups[&#039;properties&#039;] as $prop) {
                        $properties .= $prop[&#039;title&#039;] . &#039; : &#039; . $prop-&gt;textView() . &#039; , &#039;;
                    }
                }
            }
        }

        $text = array();
        
        if (in_array(&#039;barcode&#039;, $config[&#039;search_fields&#039;])) $text[] = $this[&#039;barcode&#039;];
        if (in_array(&#039;short_description&#039;, $config[&#039;search_fields&#039;])) $text[] = $this[&#039;short_description&#039;];
        if (in_array(&#039;properties&#039;, $config[&#039;search_fields&#039;])) $text[] = $properties;
        if (in_array(&#039;meta_keywords&#039;, $config[&#039;search_fields&#039;])) $text[] = $this[&#039;meta_keywords&#039;];

        //Начало хука
        $event_result = \RS\Event\Manager::fire(&#039;product.getsearchtext&#039;, array(
            &#039;text_parts&#039; =&gt; $text
        ));
        list($text) = $event_result-&gt;extract();
        //Конец хука

        return trim(strip_tags(implode(&#039; , &#039;, $text)));
    }</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Tue, 29 Aug 2017 21:28:00 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/7670/#p7670</guid>
		</item>
		<item>
			<title><![CDATA[Расширение текста для индексации в каталоге]]></title>
			<link>https://forum.readyscript.ru/post/7669/#p7669</link>
			<description><![CDATA[<p>Я пишу сторонний модуль, он добавляет свое поле в карточку товара, примерно как артикул, но отдельный (тк основной артикул занят или заполняется вручную). Нужно организовать поиск по этому полю на сайте.</p><p>После просмотра исходного кода, обнаружил, что хуков для добавления этого поля в текст для индексации нет. Не хотелось бы менять исходный код модуля, но как-то вклинится я туда не против.</p><p><span class="postimg"><img src="http://dl4.joxi.net/drive/2017/08/29/0002/3050/162794/94/2f7db3a662.jpg" alt="http://dl4.joxi.net/drive/2017/08/29/0002/3050/162794/94/2f7db3a662.jpg" /></span></p><p><strong>Есть ли возможность доработать этот вопрос?</strong> Именно возможность расширять функцию \Catalog\Model\Orm\getSearchText().</p>]]></description>
			<author><![CDATA[null@example.com (Алексей)]]></author>
			<pubDate>Tue, 29 Aug 2017 15:16:35 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/7669/#p7669</guid>
		</item>
	</channel>
</rss>
