Вот смотрите, не подцепляет стили
http://s019.radikal.ru/i638/1703/d7/bed82f190f0d.png

Но removeColumn этого метода нету в element.inc.php

Но мне нужно не название поменять, а добавить tpl шаблон '%catalog%/title.tpl' - вот это мне нужно добавить

Было

new TableType\Text('title', t('Название'), array(

Что бы Стало

(new \RS\Html\Table\Type\Usertpl('title', t('Название'), '%catalog%/title.tpl'));

И Вы написали что $column_user_tpl = $columns[1];  // Тут объект  RS\Html\Table\Type\Usertpl

Но я делаю var_dump($columns); вот что получаю и объекта  RS\Html\Table\Type\Usertpl там нет, там есть только Text и Checkbox, что не так?

Я хотел сделать следующее,  в каталоге товаров, где выводится название товара, я хотел изменить это своим вариантом

(new \RS\Html\Table\Type\Usertpl('title', t('Название'), '%catalog%/title.tpl'));

В модуле каталог, перегрузить колонку Название

modules/catalogcustom/config/file.inc.php

<?php
namespace Catalogcustom\Config;
use \RS\Orm\Type;


class File extends \RS\Orm\ConfigObject
{
   
    
}

modules/catalogcustom/config/module.xml

<?xml version="1.0" encoding="utf-8"?>
<config>
    <defaultValues>    
        <name multilanguage="true">Перегрузка модуля каталог</name>
        <description multilanguage="true">Вносим изменения в модуль каталог</description>        
        <version>1.0.0.0</version>
        <author>My mod</author>      
    </defaultValues>
</config>

modules/catalogcustom/config/handlers.inc.php

<?php
namespace Catalogcustom\Config;

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

    /**
    * Обработчик события 
    * 
    * @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['table'];

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

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

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

        $table->addColumn($new_column, 1); //Добавляете колонку $new_column в позицию 1
    }
    
}

Изменить название колонки
modules/catalogcustom/config/handlers.inc.php

<?php
namespace Catalogcustom\Config;

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

    /**
    * Обработчик события 
    * 
    * @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['table'];
         $columns = $table_control->getTable()->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->setTitle('Новый заголовок колонки');
    }
    
}

Здравствуйте. Заметил, что если удалить баннер, то фотография на сервере остается. Это так задумано или нет?

Блин точно спасибо.

Ответ службы тех.поддержки: Решения, на данный момент нет

Пытаюсь перегрузить поле поиска в фильтре, но получаю ошибку. Понимаю что нет класса Text, но как его добавить не могу понять, подскажите?
Fatal error: Class 'Cssfile\Config\RS\Html\Filter\Type\Text' not found in Z:\home\full.local\www\modules\cssfile\config\handlers.inc.php on line 20

class Handlers extends \RS\Event\HandlerAbstract
{
    function init()
    {
        $this->bind('controller.exec.shop-admin-orderctrl.index');
    }
    

    /**
    * @param \RS\Controller\Admin\Helper\CrudCollection $controller - объект CRUD контроллера
    */
    public static function controllerExecShopAdminOrderctrlIndex(\RS\Controller\Admin\Helper\CrudCollection $controller)
    {

        /**
        * @var $filter RS\Html\Filter\Control
        */
        $filter = $controller['filter'];

        $getcontainer = $filter->getContainer()->getLines();
        $getcontainer[0]->addItem(new RS\Html\Filter\Type\Text('new_cost', t('Сумма'), array('showtype' => true)));

        var_dump($getcontainer);
    }
    
}

Здравствуйте. Скажите, есть ли возможность каким нибудь образом скрыть содержимое вкладок от определенной группы пользователя?
Что будет, если внести изменения в файл catalog_model_orm_product_3457232763.auto.tpl?
P.S. Нашел возможность скрыть определенные вкладки, но не все.
http://s001.radikal.ru/i193/1702/b4/7962da2eccee.png

Здравствуйте. Скажите есть ли возможность внести изменения в функцию priceToString находящуюся по пути, \core\rs\helper\tools.inc.php. Нужно сделать что бы первое слово с заглавной буквы, и как это можно осществить?

Рабочий вариант, спасибо тех.поддержке

<?php
namespace Custom\Config;
use \RS\Orm\Type as OrmType;

class Handlers extends \RS\Event\HandlerAbstract
{
    function init()
    {
        $this
            ->bind('cart.addproduct.after', null, 'applyCartRules')
            ->bind('cart.update.after', null, 'applyCartRules');
    }

    /**
    * Обработчик будет вызываться, при добавлении или изменении товара в корзине
    * 
    * @param \Shop\Model\Cart $cart
    */
    public static function applyCartRules($params) 
    {
        $cart = $params['cart'];
        if (!isset($cart->is_cartrules_action)) { //Защита от рекурсии
            
            $cart->is_cartrules_action = true; //Защита от рекурсии
            
            $cart_product_items = $cart->getProductItems();
            foreach($cart_product_items as $uniq => $data) {
                
                $cart->update(array(
                    $uniq => array(
                        'discount' => '50%'
                    )), null, false);             
            }
        }
    }
}
Закусило Александр пишет:

Укажите код, который использовали для удаления товара.

Вот такой

    public static function ormDeleteCatalogProduct($param, \RS\Event\Event $event) {
        $current_user = \RS\Application\Auth::getCurrentUser();
        
        if (!in_array('supervisor', $current_user->getUserGroups())) {
            //Если пользователь не состоит в группе supervisor
            $event->stopPropagation();
        }
    }
Виталий пишет:

Добрый день

> при оплате определенным способом применялась скидка к товарам
В админке у способа оплаты есть поле "Комиссия за оплату в %" (если указать отрицательное значение - будет скидка)
укажите скидку в этом поле

если вас не устраивает данный способ, пожалуйста уточните почему.

Спасибо, этот вариант идеально подходит

65

(10 ответов, оставленных в Вопросы по работе с системой)

Вот у вас ругается на функцию send
http://s018.radikal.ru/i525/1702/0d/5f6cd2457a78.png

Пордскажите, что я делаю не так?

    public static function ormAfterWriteShopOrder ($data) {
        
        /**
        * @var \Shop\Model\Orm\Order
        */ 
        $order = $data['orm'];//Получаем объект заказа
        $flag = $data['flag'];//флаг

        $cart_product_items = $order->getCart()->getProductItems();
        $cart = $order->getCart();
        foreach($cart_product_items as $uniq => $data) {

            $cart->update(array(
                $uniq => array(
                    'discount' => '50%'
                )), null, false);          
        }
    }

67

(11 ответов, оставленных в Вопросы по работе с системой)

С этим вопросом уже столкнулись больше года назад. Сразу же и написали это в пожелания, но он так и не учелся к сожалению sad
http://helpdesk.readyscript.ru/wish/Dob … o-196.html

Разобрался. Сделал следующим образом в cartpage.tpl

После:

<a class="title" href="{$product->getUrl()}">{$product.title}</a><br>

Вставить:

{if $product.public==0}<span style="color:red;">Товара нет в наличии</span>{/if}<br>

Это заменить:

                    <noscript><input type="submit" class="onemoreEmpty recalc" value="{t}Пересчитать{/t}"></noscript>
                    <a href="{$router->getUrl('shop-front-checkout')}" class="submit{if $cart_data.has_error} disabled{/if}">{t}Оформить заказ{/t}</a>
                    
                    <a href="JavaScript:;" class="continue">Продолжить покупки</a>

На это:

                {$s = 1}
                {foreach $product_items as $publics}
                    {if $publics.product.public  eq 0}
                    {$s = 0}
                    {break}
                    {/if}
                {/foreach}
                <!-- {var_dump($s)} -->
                {if $s eq 0}
                    <a href="{$router->getUrl('shop-front-checkout')}" class="submit disabled">{t}Оформить заказ{/t}</a>
                {else}
                    <a href="{$router->getUrl('shop-front-checkout')}" class="submit{if $cart_data.has_error} disabled{/if}">{t}Оформить заказ{/t}</a>                 
                {/if}           
                    <noscript><input type="submit" class="onemoreEmpty recalc" value="{t}Пересчитать{/t}"></noscript>
                    <!-- <a href="{$router->getUrl('shop-front-checkout')}" class="submit{if $cart_data.has_error} disabled{/if}">{t}Оформить заказ{/t}</a> -->
                    <a href="JavaScript:;" class="continue">Продолжить покупки</a>

http://s020.radikal.ru/i716/1702/10/13c4ee5b2f75.png

А как это работает?Модуль создал, изменяю количество товара в корзине, но изменений ноль.

<?php
namespace Custom\Config;
use \RS\Orm\Type as OrmType;

class Handlers extends \RS\Event\HandlerAbstract
{
    function init()
    {
        $this
            ->bind('cart.addproduct.after', null, 'applyCartRules')
            ->bind('cart.update.after', null, 'applyCartRules');
    }

    /**
    * Обработчик будет вызываться, при добавлении или изменении товара в корзине
    * 
    * @param \Shop\Model\Cart $cart
    */
    public static function applyCartRules($params) 
    {
        $cart = $params['cart'];
        if (!isset($cart->is_cartrules_action)) { //Защита от рекурсии
            
            $cart->is_cartrules_action = true; //Защита от рекурсии
            
            $cart_product_items = $cart->getProductItems();
            foreach($cart_product_items as $uniq => $data) {
                
                //Добавляем товару Uniq скидку
                $cart->update(array(
                    $uniq => array(
                        'discount' => '50%' //Можно также в рублях, если процент в конце не ставить.
                    )
                ));
            }
        }
    }
}
Закусило Александр пишет:

Вы хотите свою ошибку вывести? Или значение переменной? Или какие ошибки?

Ну например вывести текст "Нельзя оформить заказ, такого то товара нет в наличии"

Скажите а можно ли во всплывающем окне корзины, вывести текст с ошибкой
вместо вот этого?

$cart->removeItem($key);    

Здравствуйте. Скажите, есть ли какой нибудь штатный функционал что бы при оплате определенным способом применялась скидка к товарам?Если нет, как это можно реализовать?

Решение
Магазин -> Способы оплаты ->Нужный способ оплаты ->Комиссия за оплату в % :с отрицательным значением

admin а вариант которым воспользовался я, можно оставить?Шаблон я перегрузил

Пробовали убрать \ перед одинарной кавычкой, выдает ошибку. Ждем что скажет яндекс

Вставил в body.tpl {addjs file="yandex.js"} и закинул код метрики в js файл. Но метрика почему то не считает, яндекс предлагает удалить \ перед одинарной ковычкой, будем пробывать