<?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/1112/v-module-katalog-zamenit-kolonkuresheno/</link>
		<atom:link href="https://forum.readyscript.ru/feed/rss/topic/1112/" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «В модуле Каталог заменить колонку[Решено]».]]></description>
		<lastBuildDate>Thu, 01 Jun 2017 07:57:42 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: В модуле Каталог заменить колонку[Решено]]]></title>
			<link>https://forum.readyscript.ru/post/7269/#p7269</link>
			<description><![CDATA[<p>$dir туда передавался текущий идентификатор каталога. Для уже созданных товаров он не обязателен. Но можно и добавить из $_GET</p>]]></description>
			<author><![CDATA[null@example.com (Закусило Александр)]]></author>
			<pubDate>Thu, 01 Jun 2017 07:57:42 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/7269/#p7269</guid>
		</item>
		<item>
			<title><![CDATA[Re: В модуле Каталог заменить колонку[Решено]]]></title>
			<link>https://forum.readyscript.ru/post/7259/#p7259</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Илья)]]></author>
			<pubDate>Wed, 31 May 2017 05:10:40 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/7259/#p7259</guid>
		</item>
		<item>
			<title><![CDATA[Re: В модуле Каталог заменить колонку[Решено]]]></title>
			<link>https://forum.readyscript.ru/post/7257/#p7257</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Закусило Александр)]]></author>
			<pubDate>Tue, 30 May 2017 14:04:37 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/7257/#p7257</guid>
		</item>
		<item>
			<title><![CDATA[Re: В модуле Каталог заменить колонку[Решено]]]></title>
			<link>https://forum.readyscript.ru/post/7256/#p7256</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Илья)]]></author>
			<pubDate>Tue, 30 May 2017 12:38:10 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/7256/#p7256</guid>
		</item>
		<item>
			<title><![CDATA[Re: В модуле Каталог заменить колонку[Решено]]]></title>
			<link>https://forum.readyscript.ru/post/6294/#p6294</link>
			<description><![CDATA[<p>Вот спасибо большое</p>]]></description>
			<author><![CDATA[null@example.com (Илья)]]></author>
			<pubDate>Thu, 02 Mar 2017 12:52:12 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/6294/#p6294</guid>
		</item>
		<item>
			<title><![CDATA[Re: В модуле Каталог заменить колонку[Решено]]]></title>
			<link>https://forum.readyscript.ru/post/6288/#p6288</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Thu, 02 Mar 2017 12:20:51 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/6288/#p6288</guid>
		</item>
		<item>
			<title><![CDATA[Re: В модуле Каталог заменить колонку[Решено]]]></title>
			<link>https://forum.readyscript.ru/post/6278/#p6278</link>
			<description><![CDATA[<p>Но <strong>removeColumn </strong> этого метода нету в <strong>element.inc.php</strong></p>]]></description>
			<author><![CDATA[null@example.com (Илья)]]></author>
			<pubDate>Thu, 02 Mar 2017 10:46:44 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/6278/#p6278</guid>
		</item>
		<item>
			<title><![CDATA[Re: В модуле Каталог заменить колонку[Решено]]]></title>
			<link>https://forum.readyscript.ru/post/6263/#p6263</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Thu, 02 Mar 2017 08:22:12 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/6263/#p6263</guid>
		</item>
		<item>
			<title><![CDATA[Re: В модуле Каталог заменить колонку[Решено]]]></title>
			<link>https://forum.readyscript.ru/post/6248/#p6248</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Илья)]]></author>
			<pubDate>Thu, 02 Mar 2017 05:53:54 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/6248/#p6248</guid>
		</item>
		<item>
			<title><![CDATA[Re: В модуле Каталог заменить колонку[Решено]]]></title>
			<link>https://forum.readyscript.ru/post/6243/#p6243</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Wed, 01 Mar 2017 12:41:39 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/6243/#p6243</guid>
		</item>
		<item>
			<title><![CDATA[Re: В модуле Каталог заменить колонку[Решено]]]></title>
			<link>https://forum.readyscript.ru/post/6175/#p6175</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Илья)]]></author>
			<pubDate>Mon, 27 Feb 2017 05:42:55 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/6175/#p6175</guid>
		</item>
		<item>
			<title><![CDATA[Re: В модуле Каталог заменить колонку[Решено]]]></title>
			<link>https://forum.readyscript.ru/post/6158/#p6158</link>
			<description><![CDATA[<p>Чтобы сказать как поправить ошибку, нужно понять, что вы хотите сделать.</p><p>Вы привели просто кусок нерабочего кода.<br />Вы вызываете некий метод addItem() у колонки типа RS\Html\Table\Type\Usertpl (который в $columns[1]), а такого метода там соответственно нет, о чем вам и говорит PHP.</p>]]></description>
			<author><![CDATA[null@example.com (admin)]]></author>
			<pubDate>Wed, 22 Feb 2017 13:10:30 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/6158/#p6158</guid>
		</item>
		<item>
			<title><![CDATA[В модуле Каталог заменить колонку[Решено]]]></title>
			<link>https://forum.readyscript.ru/post/6157/#p6157</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Илья)]]></author>
			<pubDate>Wed, 22 Feb 2017 12:59:30 +0000</pubDate>
			<guid>https://forum.readyscript.ru/post/6157/#p6157</guid>
		</item>
	</channel>
</rss>
