<?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>http://forum.readyscript.ru/topic/402/kak-dobavit-proizvolnoe-pole-v-kartochku-tovara/</link>
		<atom:link href="http://forum.readyscript.ru/feed/rss/topic/402/" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Как добавить произвольное поле в карточку товара».]]></description>
		<lastBuildDate>Tue, 23 Jun 2015 07:13:40 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Как добавить произвольное поле в карточку товара]]></title>
			<link>http://forum.readyscript.ru/post/1523/#p1523</link>
			<description><![CDATA[<div class="quotebox"><cite>Sergey T. пишет:</cite><blockquote><p>Теперь все работает как надо! Благодарю за помощь!</p></blockquote></div><p>Не за что! <img src="http://forum.readyscript.ru/img/smilies/smile.png" width="15" height="15" alt="smile" /></p>]]></description>
			<author><![CDATA[null@example.com (Александр)]]></author>
			<pubDate>Tue, 23 Jun 2015 07:13:40 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/1523/#p1523</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как добавить произвольное поле в карточку товара]]></title>
			<link>http://forum.readyscript.ru/post/1522/#p1522</link>
			<description><![CDATA[<p>Теперь все работает как надо! Благодарю за помощь!</p>]]></description>
			<author><![CDATA[null@example.com (Sergey T.)]]></author>
			<pubDate>Tue, 23 Jun 2015 06:57:09 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/1522/#p1522</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как добавить произвольное поле в карточку товара]]></title>
			<link>http://forum.readyscript.ru/post/1521/#p1521</link>
			<description><![CDATA[<p>Все текстовые данные перед сохранием проходят через <strong>htmlspecialchars</strong>(экранируются). А это значит, что Вам надо вызвать <strong>htmlspecialchars_decode</strong>, чтобы разэкранировать для того, чтобы текст превратился в HTML.<br />Т.е.:<br /></p><div class="codebox"><pre><code>{$product.is_root|htmlspecialchars_decode}</code></pre></div><p>или<br /></p><div class="codebox"><pre><code>{htmlspecialchars_decode($product.is_root)}</code></pre></div><p>Как Вам приятнее.</p>]]></description>
			<author><![CDATA[null@example.com (Александр)]]></author>
			<pubDate>Mon, 22 Jun 2015 15:12:26 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/1521/#p1521</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как добавить произвольное поле в карточку товара]]></title>
			<link>http://forum.readyscript.ru/post/1520/#p1520</link>
			<description><![CDATA[<p>И, надеюсь, последний вопрос в этой теме. Если я выбрал тип &quot;текст&quot; и вставил туда ссылку, то в карточке товара выводится просто текстом &lt;a href=&quot;#&quot;&gt;ссылка&lt;/a&gt;. Как сделать, чтобы была именно ссылка, а не просто текст?</p><p>Посмотрел в инспекторе, почему-то содержимое ставится в кавычки.</p><p><strong>КАРТОЧКА ТОВАРА:</strong><br /><span class="postimg"><img src="http://i69.fastpic.ru/big/2015/0622/57/569cf65d5fa61e69fb43a4dc2726d657.jpg" alt="http://i69.fastpic.ru/big/2015/0622/57/569cf65d5fa61e69fb43a4dc2726d657.jpg" /></span></p><p><strong>БРАУЗЕР:</strong><br /><span class="postimg"><img src="http://i69.fastpic.ru/big/2015/0622/d4/e1a4dd814031af9142b28bc2368417d4.jpg" alt="http://i69.fastpic.ru/big/2015/0622/d4/e1a4dd814031af9142b28bc2368417d4.jpg" /></span></p><p><strong>handlers.inc.php</strong><br /></p><div class="codebox"><pre><code>//Расширяем поля
        $orm_product-&gt;getPropertyIterator()-&gt;append(array(
            t(&#039;Основные&#039;), //Вкладка на которую будет добавлено поле, поля в массиве ниже будут приписаны к этой вкладке в конец
            &#039;is_root&#039; =&gt; new OrmType\Text(array( //Название поля в таблице БД и его тип
                &#039;description&#039; =&gt; &#039;Текст&#039;, //Подпись к полю
                 &#039;maxLength&#039; =&gt; 1000 //Длинна поля</code></pre></div><p>Если меняю на тип String (строка) - такая же беда. Если делаю поле с редактором, то ссылка вставляется нормально, но дополнительно все обрамляется в теги &lt;p&gt;, а они лишние</p>]]></description>
			<author><![CDATA[null@example.com (Sergey T.)]]></author>
			<pubDate>Mon, 22 Jun 2015 11:56:06 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/1520/#p1520</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как добавить произвольное поле в карточку товара]]></title>
			<link>http://forum.readyscript.ru/post/1519/#p1519</link>
			<description><![CDATA[<div class="quotebox"><cite>Sergey T. пишет:</cite><blockquote><p>Так и сделал! Обновил таблицы БД, сбросил КЭШ и все ЗАРАБОТАЛО! СПАСИБО! Тема раскрыта и закрыта! <img src="http://forum.readyscript.ru/img/smilies/smile.png" width="15" height="15" alt="smile" /></p></blockquote></div><p>Отлично! <img src="http://forum.readyscript.ru/img/smilies/smile.png" width="15" height="15" alt="smile" /> Если возникнут вопросы не стесняемся задавать.</p>]]></description>
			<author><![CDATA[null@example.com (Александр)]]></author>
			<pubDate>Mon, 22 Jun 2015 11:26:05 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/1519/#p1519</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как добавить произвольное поле в карточку товара]]></title>
			<link>http://forum.readyscript.ru/post/1518/#p1518</link>
			<description><![CDATA[<p>Кстати <strong>is_root</strong> это просто английское наименование поля в таблице БД из примера. Замените лучше на более приемлемое, для Вашей задачи.<br />И обновите БД и в товар запишите значение для этого поля.</p>]]></description>
			<author><![CDATA[null@example.com (Александр)]]></author>
			<pubDate>Mon, 22 Jun 2015 11:24:43 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/1518/#p1518</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как добавить произвольное поле в карточку товара]]></title>
			<link>http://forum.readyscript.ru/post/1517/#p1517</link>
			<description><![CDATA[<p>Так и сделал! Обновил таблицы БД, сбросил КЭШ и все ЗАРАБОТАЛО! СПАСИБО! Тема раскрыта и закрыта! <img src="http://forum.readyscript.ru/img/smilies/smile.png" width="15" height="15" alt="smile" /></p>]]></description>
			<author><![CDATA[null@example.com (Sergey T.)]]></author>
			<pubDate>Mon, 22 Jun 2015 11:23:54 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/1517/#p1517</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как добавить произвольное поле в карточку товара]]></title>
			<link>http://forum.readyscript.ru/post/1516/#p1516</link>
			<description><![CDATA[<p>Надо скорее всего обновить таблицы БД, чтобы длинна 100 символов применилась.</p>]]></description>
			<author><![CDATA[null@example.com (Александр)]]></author>
			<pubDate>Mon, 22 Jun 2015 11:22:09 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/1516/#p1516</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как добавить произвольное поле в карточку товара]]></title>
			<link>http://forum.readyscript.ru/post/1514/#p1514</link>
			<description><![CDATA[<p>Вы<br /></p><div class="codebox"><pre><code> &#039;maxLength&#039; =&gt; 100</code></pre></div><p>давно поставили?<br />Может просто, не обновили поле и там осталась длинна 1 символ?<br />Если да просто обновите таблицы базы данных, кнопкой, как раньше делали.<br />И в админке у Вас &quot;п&quot; в поле остаётся?</p>]]></description>
			<author><![CDATA[null@example.com (Александр)]]></author>
			<pubDate>Mon, 22 Jun 2015 11:20:08 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/1514/#p1514</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как добавить произвольное поле в карточку товара]]></title>
			<link>http://forum.readyscript.ru/post/1513/#p1513</link>
			<description><![CDATA[<p>Вроде все получилось. Поле к карточке товара в админке добавилось, в шаблон товара на сайте тоже добавилось. Я выбрал тип &quot;строка&quot; и указал максимальную длину 100 символов, но при добавление в эту строку например слова &quot;привет&quot;, при сохранении остается только буква &quot;п&quot;, остальное вырезается.</p><p>Вот что указал в handlers.inc.php</p><div class="codebox"><pre><code> //Расширяем поля
        $orm_product-&gt;getPropertyIterator()-&gt;append(array(
            t(&#039;Основные&#039;), //Вкладка на которую будет добавлено поле, поля в массиве ниже будут приписаны к этой вкладке в конец
            &#039;is_root&#039; =&gt; new OrmType\String(array( //Название поля в таблице БД и его тип
                &#039;description&#039; =&gt; &#039;Строка&#039;, //Подпись к полю
                 &#039;maxLength&#039; =&gt; 100 //Длинна поля
                
            ))</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Sergey T.)]]></author>
			<pubDate>Mon, 22 Jun 2015 10:38:13 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/1513/#p1513</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как добавить произвольное поле в карточку товара]]></title>
			<link>http://forum.readyscript.ru/post/1507/#p1507</link>
			<description><![CDATA[<p>Исправил статью на форуме в соответствии с последними вехами и добавил строку о namespace, чтобы люди не путались, можете с ней ознакомится <a href="http://forum.readyscript.ru/topic/287/kak-dobavit-pole-tovaru-ili-lyubomu-drugomu-obektu-v-readyscript/">здесь</a>.</p>]]></description>
			<author><![CDATA[null@example.com (Александр)]]></author>
			<pubDate>Mon, 22 Jun 2015 07:40:12 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/1507/#p1507</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как добавить произвольное поле в карточку товара]]></title>
			<link>http://forum.readyscript.ru/post/1506/#p1506</link>
			<description><![CDATA[<p>Всё понятно. Вы не обратили внимание на <strong>namespace</strong>. А именно:<br /></p><div class="codebox"><pre><code>&lt;?php
namespace Custom\Config;</code></pre></div><p>А <strong>namespace</strong> должен соответствовать Вашей папке sizes:<br /></p><div class="codebox"><pre><code>&lt;?php
namespace Sizes\Config;</code></pre></div><p>т.к. <strong>custom</strong> это имя папки модуля который у Вас уже присутствует и там как раз такой namespace в той папке. Система проверяет папки и namespace, если не совпадает, то модуль не может быть установлен. Т.к. система обращается в классу как \<strong>Sizes</strong>\Config\File.</p><p>Что касается файла file.inc.php Мы изменили положение в создании модулей. Сейчас все сведения о модулях хранятся не в функции&nbsp; <strong>getDefaultValues()</strong>, а в файле <strong>module.xml</strong>. Поэтому функцию <strong>getDefaultValues</strong> можете из класса удалить.</p><p>После того как везде поменяете namespace, надо установить модуль и проделать приведённые манипуляции.</p>]]></description>
			<author><![CDATA[null@example.com (Александр)]]></author>
			<pubDate>Mon, 22 Jun 2015 07:37:18 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/1506/#p1506</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как добавить произвольное поле в карточку товара]]></title>
			<link>http://forum.readyscript.ru/post/1504/#p1504</link>
			<description><![CDATA[<p>Опишу более подробно:</p><p>1. Создал папку под модуль - &quot;sizes&quot;, в ней папку &quot;config&quot;, в нее поместил 3 файла.</p><p><span class="postimg"><img src="http://i70.fastpic.ru/big/2015/0620/34/0222f20105494bc41c681279c64c5434.png" alt="http://i70.fastpic.ru/big/2015/0620/34/0222f20105494bc41c681279c64c5434.png" /></span></p><p>вот содержимое файлов:<br /><strong>file.inc.php</strong><br /></p><div class="codebox"><pre><code>&lt;?php
namespace Custom\Config;
use \RS\Orm\Type;

/**
* Конфигурационный файл модуля
*/
class File extends \RS\Orm\ConfigObject
{
    
    /**
    * Возвращает значения свойств по-умолчанию
    * 
    * @return array
    */
    public static function getDefaultValues()
    {
        return array(
            &#039;name&#039; =&gt; t(&#039;Ваш дополнительный модуль&#039;),
            &#039;description&#039; =&gt; t(&#039;Модуль с дополнительным функционалом&#039;),
            &#039;version&#039; =&gt; &#039;1.0.0.0&#039;,
            &#039;author&#039; =&gt; &#039;ВАШЕ авторские имя&#039;,
        );
    }       
}</code></pre></div><p><strong>handlers.inc.php</strong><br /></p><div class="codebox"><pre><code>&lt;?php
namespace Custom\Config;
use \RS\Orm\Type as OrmType;

class Handlers extends \RS\Event\HandlerAbstract
{
    /**
    * Функция инициализирует регистрацию действий
    */
    function init()
    {
        $this-&gt;bind(&#039;orm.init.catalog-product&#039;); //Сообщаем что у нас появился хук расширяющий товар
    }
    
    /**
    * Расширяем объект товара
    * Обратите внимание на название хука и этой функции . и - не используются 
    *
    * @param array $list
    */
    public static function ormInitCatalogProduct(\Catalog\Model\Orm\Product $orm_product)
    {
         //Расширяем поля
        $orm_product-&gt;getPropertyIterator()-&gt;append(array(
            t(&#039;Основные&#039;), //Вкладка на которую будет добавлено поле, поля в массиве ниже будут приписаны к этой вкладке в конец
            &#039;is_root&#039; =&gt; new OrmType\Integer(array( //Название поля в таблице БД и его тип
                &#039;description&#039; =&gt; &#039;Корневой элемент?&#039;, //Подпись к полю
                 &#039;maxLength&#039; =&gt; 1, //Длинна поля
                &#039;default&#039; =&gt; 0, //Значение по умолчанию
                &#039;CheckBoxView&#039; =&gt; array(1,0) //Отвечает за отображение в качестве флага(галочки)
            ))
        ));
    }
}</code></pre></div><p>и даже создал <strong>module.xml</strong> на всякий случай:<br /></p><div class="codebox"><pre><code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;config&gt;
    &lt;defaultValues&gt;    
        &lt;name multilanguage=&quot;true&quot;&gt;ТЕСТ&lt;/name&gt;
        &lt;description multilanguage=&quot;true&quot;&gt;ПЕРВЫЙ ТЕСТОВЫЙ МОДУЛЬ&lt;/description&gt;        
        &lt;version&gt;1.0.0.0&lt;/version&gt;
        &lt;author&gt;Somebody&lt;/author&gt;        
    &lt;/defaultValues&gt;
&lt;/config&gt;</code></pre></div><p>2. После сих действий зашел в админку в настройки системы и исправил структуру БД<br />3. Затем зашел Веб-сайт-&gt;Настройка модулей и модуля там не увидел (кэш очищен, страница обновлена)<br />4. Пробовал упаковывать все это в zip и пару раз устанавливать. После выбора архива выводится следующее:</p><p><span class="postimg"><img src="http://i71.fastpic.ru/big/2015/0620/12/f6c0435fbb16b38662331d3761d69212.png" alt="http://i71.fastpic.ru/big/2015/0620/12/f6c0435fbb16b38662331d3761d69212.png" /></span></p><p>а после нажатия кнопки *установить* появляется *ошибка передачи данных. Повторите попытку еще раз*.</p><p>Что делать? Куда копать?</p>]]></description>
			<author><![CDATA[null@example.com (Sergey T.)]]></author>
			<pubDate>Sat, 20 Jun 2015 17:04:56 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/1504/#p1504</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как добавить произвольное поле в карточку товара]]></title>
			<link>http://forum.readyscript.ru/post/1503/#p1503</link>
			<description><![CDATA[<div class="quotebox"><cite>Sergey T. пишет:</cite><blockquote><p>Что-то не выходит. Не добавляется поле в админке в карточке товара. Что сделал:<br />1. Создал папку sizes в папке modules<br />2. Создал папку config в папке sizes, в ней два файла file.inc.php и handlers.inc.php<br />3. Добавил в них содержимое из того поста, который вы указали<br />4. Зашел в настройки системы и &quot;исправил структуру БД&quot;</p><p>После этих действий в карточке товара на вкладке &quot;основные&quot; ничего не изменилось. Видимо что-то сделал не так.</p></blockquote></div><p>А вы сам модуль то Ваш установили(Веб-сайт-&gt;Настройка модулей)? Без этого не попрёт, т.е. хуки у не установленых модулей не работают. И киньте листинг файлов пожалуйста.<br />P.S. Если в Веб-сайт-&gt;Настройка модулей модуль не присутствует, то сбросьте кэш и обновите страницу.</p>]]></description>
			<author><![CDATA[null@example.com (Александр)]]></author>
			<pubDate>Fri, 19 Jun 2015 14:27:26 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/1503/#p1503</guid>
		</item>
		<item>
			<title><![CDATA[Re: Как добавить произвольное поле в карточку товара]]></title>
			<link>http://forum.readyscript.ru/post/1502/#p1502</link>
			<description><![CDATA[<p>Что-то не выходит. Не добавляется поле в админке в карточке товара. Что сделал:<br />1. Создал папку sizes в папке modules<br />2. Создал папку config в папке sizes, в ней два файла file.inc.php и handlers.inc.php<br />3. Добавил в них содержимое из того поста, который вы указали<br />4. Зашел в настройки системы и &quot;исправил структуру БД&quot;</p><p>После этих действий в карточке товара на вкладке &quot;основные&quot; ничего не изменилось. Видимо что-то сделал не так.</p>]]></description>
			<author><![CDATA[null@example.com (Sergey T.)]]></author>
			<pubDate>Fri, 19 Jun 2015 13:28:51 +0000</pubDate>
			<guid>http://forum.readyscript.ru/post/1502/#p1502</guid>
		</item>
	</channel>
</rss>
