<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум ReadyScript &mdash; В модуле Каталог заменить колонку[Решено]]]></title>
	<link rel="self" href="https://forum.readyscript.ru/feed/atom/topic/1112/" />
	<updated>2017-06-01T07:57:42Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.readyscript.ru/topic/1112/v-module-katalog-zamenit-kolonkuresheno/</id>
		<entry>
			<title type="html"><![CDATA[Re: В модуле Каталог заменить колонку[Решено]]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/7269/#p7269" />
			<content type="html"><![CDATA[<p>$dir туда передавался текущий идентификатор каталога. Для уже созданных товаров он не обязателен. Но можно и добавить из $_GET</p>]]></content>
			<author>
				<name><![CDATA[Закусило Александр]]></name>
				<uri>https://forum.readyscript.ru/user/20/</uri>
			</author>
			<updated>2017-06-01T07:57:42Z</updated>
			<id>https://forum.readyscript.ru/post/7269/#p7269</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: В модуле Каталог заменить колонку[Решено]]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/7259/#p7259" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Закусило Александр пишет:</cite><blockquote><p>Попробуйте<br /></p><div class="codebox"><pre><code>$new_column = new \RS\Html\Table\Type\Usertpl(&#039;title&#039;, t(&#039;Название&#039;), &#039;%catalog%/title.tpl&#039;, array(&#039;href&#039; =&gt; \RS\Router\Manager::obj()-&gt;getAdminPattern(&#039;edit&#039;, array(&#039;:id&#039; =&gt; &#039;@id&#039;));</code></pre></div></blockquote></div><p>Немного поправил, там была ошибка, вот правильный код<br /></p><div class="codebox"><pre><code>        $new_column = new \RS\Html\Table\Type\Usertpl(&#039;title&#039;, t(&#039;Название&#039;), &#039;%catalog%/title.tpl&#039;, array(
                &#039;LinkAttr&#039; =&gt; array(
                     &#039;class&#039; =&gt; &#039;crud-edit&#039;
                ),
                &#039;href&#039; =&gt; \RS\Router\Manager::obj()-&gt;getAdminPattern(&#039;edit&#039;, array(&#039;:id&#039; =&gt; &#039;@id&#039;)), &#039;Sortable&#039; =&gt; SORTABLE_BOTH, &#039;CurrentSort&#039; =&gt; SORTABLE_ASC));</code></pre></div><p>Только появился один вопрос, в стандарте там еще есть часть кода <strong>&#039;dir&#039; =&gt; $dir</strong>, для чего она? и чем черевато ее отсутствие?</p>]]></content>
			<author>
				<name><![CDATA[Илья]]></name>
				<uri>https://forum.readyscript.ru/user/286/</uri>
			</author>
			<updated>2017-05-31T05:10:40Z</updated>
			<id>https://forum.readyscript.ru/post/7259/#p7259</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: В модуле Каталог заменить колонку[Решено]]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/7257/#p7257" />
			<content type="html"><![CDATA[<p>Попробуйте<br /></p><div class="codebox"><pre><code>$new_column = new \RS\Html\Table\Type\Usertpl(&#039;title&#039;, t(&#039;Название&#039;), &#039;%catalog%/title.tpl&#039;, array(&#039;href&#039; =&gt; \RS\Router\Manager::obj()-&gt;getAdminPattern(&#039;edit&#039;, array(&#039;:id&#039; =&gt; &#039;@id&#039;));</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Закусило Александр]]></name>
				<uri>https://forum.readyscript.ru/user/20/</uri>
			</author>
			<updated>2017-05-30T14:04:37Z</updated>
			<id>https://forum.readyscript.ru/post/7257/#p7257</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: В модуле Каталог заменить колонку[Решено]]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/7256/#p7256" />
			<content type="html"><![CDATA[<p>А как сюда добавить ссылку, что бы открыть редактирование товарной карточки?А то в каталоге товаров выводится просто название, а работать с ним нельзя<br /></p><div class="codebox"><pre><code>//Далее добавляете колонку
$new_column = new \RS\Html\Table\Type\Usertpl(&#039;title&#039;, t(&#039;Название&#039;), &#039;%catalog%/title.tpl&#039;);</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Илья]]></name>
				<uri>https://forum.readyscript.ru/user/286/</uri>
			</author>
			<updated>2017-05-30T12:38:10Z</updated>
			<id>https://forum.readyscript.ru/post/7256/#p7256</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: В модуле Каталог заменить колонку[Решено]]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/6294/#p6294" />
			<content type="html"><![CDATA[<p>Вот спасибо большое</p>]]></content>
			<author>
				<name><![CDATA[Илья]]></name>
				<uri>https://forum.readyscript.ru/user/286/</uri>
			</author>
			<updated>2017-03-02T12:52:12Z</updated>
			<id>https://forum.readyscript.ru/post/6294/#p6294</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: В модуле Каталог заменить колонку[Решено]]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/6288/#p6288" />
			<content type="html"><![CDATA[<p>Прошу прощения, в моей локальной версии такой метод уже есть - это сбило меня с толку. (он выйдет в будущих версиях). <br />А вот в 2.0.x его пока оказывается действительно нет. </p><p>Добавьте его в файл /core/rs/html/table/element.inc.php или подождите обновления, выпустим в следующем.</p><div class="codebox"><pre><code>    /**
     * Удаляет колонку из списка
     * @param integer $n номер колонки
     * @return Element
     */
    function removeColumn($n)
    {
        array_splice($this-&gt;columns, $n, 1);
        return $this;
    }</code></pre></div>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>https://forum.readyscript.ru/user/2/</uri>
			</author>
			<updated>2017-03-02T12:20:51Z</updated>
			<id>https://forum.readyscript.ru/post/6288/#p6288</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: В модуле Каталог заменить колонку[Решено]]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/6278/#p6278" />
			<content type="html"><![CDATA[<p>Но <strong>removeColumn </strong> этого метода нету в <strong>element.inc.php</strong></p>]]></content>
			<author>
				<name><![CDATA[Илья]]></name>
				<uri>https://forum.readyscript.ru/user/286/</uri>
			</author>
			<updated>2017-03-02T10:46:44Z</updated>
			<id>https://forum.readyscript.ru/post/6278/#p6278</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: В модуле Каталог заменить колонку[Решено]]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/6263/#p6263" />
			<content type="html"><![CDATA[<p>Я предположил по тексту вашей ошибки, что в $columns[1] у вас RS\Html\Table\Type\Usertpl:</p><p>Из вашего поста:<br />Вы вызываете $columns[1]-&gt;addItem(...), получаете ошибку:<br /></p><div class="quotebox"><blockquote><p>Fatal error: Call to undefined method RS\Html\Table\Type\Usertpl::addItem()</p></blockquote></div><p>Ок, значит вам нужно заменить колонку на свою:<br />Постараюсь вам описать детально, чтобы вы поняли принцип, как работать с кодом:<br />Сразу говорю, код будет примерный, возможно сразу рабочий, но проверять времени нет. </p><div class="codebox"><pre><code>$table_control = $helper[&#039;table&#039;]; //Вардампите, понимаете, что здесь объект RS\Html\Table\Control
//Это управляющая обертка над визуальным элементом. У неё можно попросить сам визуальный элемент.

$table = $table_control-&gt;getTable(); //Здесь RS\Html\Table\Element
//Смотрите какие методы есть в этом классе. Они все подписаны.
//Если вы желаете заменить колонку, то нужно удалить старую и добавить новую.

$table-&gt;removeColumn(1); //1 - это номер колонки, укажите здесь свою. Нумерация начинается с 0.

//Далее добавляете колонку
$new_column = new \RS\Html\Table\Type\Usertpl(&#039;title&#039;, t(&#039;Название&#039;), &#039;%catalog%/title.tpl&#039;);

$table-&gt;addColumn($new_column, 1); //Добавляете колонку $new_column в позицию 1</code></pre></div>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>https://forum.readyscript.ru/user/2/</uri>
			</author>
			<updated>2017-03-02T08:22:12Z</updated>
			<id>https://forum.readyscript.ru/post/6263/#p6263</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: В модуле Каталог заменить колонку[Решено]]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/6248/#p6248" />
			<content type="html"><![CDATA[<p>Но мне нужно не название поменять, а добавить tpl шаблон <strong>&#039;%catalog%/title.tpl&#039;</strong><strong> - вот это мне нужно добавить</strong></p><p>Было <br /></p><div class="codebox"><pre><code>new TableType\Text(&#039;title&#039;, t(&#039;Название&#039;), array(</code></pre></div><p>Что бы Стало<br /></p><div class="codebox"><pre><code>(new \RS\Html\Table\Type\Usertpl(&#039;title&#039;, t(&#039;Название&#039;), &#039;%catalog%/title.tpl&#039;));</code></pre></div><p>И Вы написали что <strong>$column_user_tpl = $columns[1];&nbsp; // Тут объект&nbsp; RS\Html\Table\Type\Usertpl</strong></p><p>Но я делаю<strong> var_dump($columns);</strong> вот что получаю и объекта&nbsp; RS\Html\Table\Type\<strong>Usertpl </strong> там нет, там есть только<strong> Text</strong> и <strong>Checkbox</strong>, что не так?</p>]]></content>
			<author>
				<name><![CDATA[Илья]]></name>
				<uri>https://forum.readyscript.ru/user/286/</uri>
			</author>
			<updated>2017-03-02T05:53:54Z</updated>
			<id>https://forum.readyscript.ru/post/6248/#p6248</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: В модуле Каталог заменить колонку[Решено]]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/6243/#p6243" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>$table_control = $helper[&#039;table&#039;];
$columns = $table_control-&gt;getTable()-&gt;getColumns(); //Получаем колонки таблицы
$column_user_tpl = $columns[1];  // Тут объект  RS\Html\Table\Type\Usertpl

// Соответственно в переменной $column_user_tpl, вам доступны только те методы, что есть в классе  RS\Html\Table\Type\Usertpl
// Все возможные методы данного класса можно посмотреть в файле /core/rs/html/table/type/usertpl.inc.php
// Видим, что класс  Usertpl является потомком AbstractType, соответственно методы также нужно смотреть в
// RS\Html\Table\Type\AbstractType

//Читаем описания к методам, находим, что чтобы установить заголовок нужно вызвать setTitle
$column_user_tpl-&gt;setTitle(&#039;Новый заголовок колонки&#039;);</code></pre></div>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>https://forum.readyscript.ru/user/2/</uri>
			</author>
			<updated>2017-03-01T12:41:39Z</updated>
			<id>https://forum.readyscript.ru/post/6243/#p6243</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: В модуле Каталог заменить колонку[Решено]]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/6175/#p6175" />
			<content type="html"><![CDATA[<p>Я хотел сделать следующее,&nbsp; в каталоге товаров, где выводится название товара, я хотел изменить это своим вариантом<br /></p><div class="codebox"><pre><code>(new \RS\Html\Table\Type\Usertpl(&#039;title&#039;, t(&#039;Название&#039;), &#039;%catalog%/title.tpl&#039;));</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Илья]]></name>
				<uri>https://forum.readyscript.ru/user/286/</uri>
			</author>
			<updated>2017-02-27T05:42:55Z</updated>
			<id>https://forum.readyscript.ru/post/6175/#p6175</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: В модуле Каталог заменить колонку[Решено]]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/6158/#p6158" />
			<content type="html"><![CDATA[<p>Чтобы сказать как поправить ошибку, нужно понять, что вы хотите сделать.</p><p>Вы привели просто кусок нерабочего кода.<br />Вы вызываете некий метод addItem() у колонки типа RS\Html\Table\Type\Usertpl (который в $columns[1]), а такого метода там соответственно нет, о чем вам и говорит PHP.</p>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>https://forum.readyscript.ru/user/2/</uri>
			</author>
			<updated>2017-02-22T13:10:30Z</updated>
			<id>https://forum.readyscript.ru/post/6158/#p6158</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[В модуле Каталог заменить колонку[Решено]]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/6157/#p6157" />
			<content type="html"><![CDATA[<p><strong>В модуле каталог, перегрузить колонку Название</strong></p><p><span class="bbu">modules/catalogcustom/config/file.inc.php</span><br /></p><div class="codebox"><pre><code>&lt;?php
namespace Catalogcustom\Config;
use \RS\Orm\Type;


class File extends \RS\Orm\ConfigObject
{
   
    
}</code></pre></div><p><span class="bbu">modules/catalogcustom/config/module.xml</span><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;My mod&lt;/author&gt;      
    &lt;/defaultValues&gt;
&lt;/config&gt;</code></pre></div><p><span class="bbu">modules/catalogcustom/config/handlers.inc.php</span><br /></p><div class="codebox"><pre><code>&lt;?php
namespace Catalogcustom\Config;

class Handlers extends \RS\Event\HandlerAbstract
{
    function init()
    {
        $this-&gt;bind(&#039;controller.exec.catalog-admin-ctrl.index&#039;);
    }

    /**
    * Обработчик события 
    * 
    * @param \RS\Controller\Admin\Helper\CrudCollection $helper - Хелпер визульной части админ. панели
    * @return void
    */
    public static function controllerExecCatalogAdminCtrlIndex(\RS\Controller\Admin\Helper\CrudCollection $helper)
    {
        /**
        * @var \RS\Html\Table\Control - объект: Менеджер таблицы
        */
        $table_control = $helper[&#039;table&#039;];

        $table = $table_control-&gt;getTable(); //Здесь RS\Html\Table\Element    

        $table-&gt;removeColumn(1); //1 - это номер колонки, укажите здесь свою. Нумерация начинается с 0.

        //Далее добавляете колонку
        $new_column = new \RS\Html\Table\Type\Usertpl(&#039;title&#039;, t(&#039;Название&#039;), &#039;%catalogcustom%/title.tpl&#039;);

        $table-&gt;addColumn($new_column, 1); //Добавляете колонку $new_column в позицию 1
    }
    
}</code></pre></div><p><strong>Изменить название колонки</strong><br /><span class="bbu">modules/catalogcustom/config/handlers.inc.php</span><br /></p><div class="codebox"><pre><code>&lt;?php
namespace Catalogcustom\Config;

class Handlers extends \RS\Event\HandlerAbstract
{
    function init()
    {
        $this-&gt;bind(&#039;controller.exec.catalog-admin-ctrl.index&#039;);
    }

    /**
    * Обработчик события 
    * 
    * @param \RS\Controller\Admin\Helper\CrudCollection $helper - Хелпер визульной части админ. панели
    * @return void
    */
    public static function controllerExecCatalogAdminCtrlIndex(\RS\Controller\Admin\Helper\CrudCollection $helper)
    {
        /**
        * @var \RS\Html\Table\Control - объект: Менеджер таблицы
        */
         $table_control = $helper[&#039;table&#039;];
         $columns = $table_control-&gt;getTable()-&gt;getColumns(); //Получаем колонки таблицы
         $column_user_tpl = $columns[1];  // Тут объект  RS\Html\Table\Type\Usertpl

          // Соответственно в переменной $column_user_tpl, вам доступны только те методы, что есть в классе                         RS\Html\Table\Type\Usertpl
         // Все возможные методы данного класса можно посмотреть в файле /core/rs/html/table/type/usertpl.inc.php
         // Видим, что класс  Usertpl является потомком AbstractType, соответственно методы также нужно смотреть в
         // RS\Html\Table\Type\AbstractType

         //Читаем описания к методам, находим, что чтобы установить заголовок нужно вызвать setTitle
         $column_user_tpl-&gt;setTitle(&#039;Новый заголовок колонки&#039;);
    }
    
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Илья]]></name>
				<uri>https://forum.readyscript.ru/user/286/</uri>
			</author>
			<updated>2017-02-22T12:59:30Z</updated>
			<id>https://forum.readyscript.ru/post/6157/#p6157</id>
		</entry>
</feed>
