Теперь встает вопрос, как добавить счетчик яндекса, в админную часть?

Вот  так теперь работает спасибо!
Только при добавлении onclick, нужно еще добавить и 'class' => 'button', что бы кнопка отображалась

       $button->setAttr(array(
            'class' => 'button',
            'onclick' => 'yaCounterXXXXXXX.reachGoal(\'ORDER\'); return true;'            
        ));

Только у меня остался один небольшой вопрос,
Верно ли я сделал что добавил перед одинарными кавычками \ или нет?

Вы меня немного не поняли. Вот мои действия.
1. Вставляю

var_dump($crud_collection);
        exit();

Сразу после, да и в разных местах пробовал

public static function controllerExecCatalogOneClickCtrlIndex(\RS\Controller\Admin\Helper\CrudCollection $crud_collection)
    {

2. Сбрасываю кеш, обновляю страницу
3. Нажимаю на заказ в блоке "Покупки в 1 клик"
4. Всплывает окно с данными заказа - var_dump нигде нет
5. Создю заказ - var_dump снова нигде не выводится

Подскажите ,что должен вывестить var_dump, потому что ничего нигде не видно

admin, Как проверить вызывается обработчик или нет?

Кеш почищен, но модуль не срабатывает.

Закусило Александр, Созданные админом отслеживать

Появился следующий косяк, подскажите как решить?
1. Пользователь делает заказ
2. Заказ подтверждается
3. Позицию которая есть в совершенном заказе, выключаем
4. Потом мы хотим например, поменять цену доставки в заказе или изменить размер товарной позиции, но это не срабатывает, и выдается ошибка, потому что одна из товарных позиций выключена.

Здравствуйте. Для того что бы, в метрике показывались заказы созданные в "1 клик", нужно на кнопку в админной части "создать заказ" повесить событие onclick="yaCounterXXXXXX.reachGoal('ORDER'); return true;"

Вот на эту кнопку, скажите как это сделать?
http://s020.radikal.ru/i716/1701/41/48dc5d311239.png

Здравствуйте. Скажите, каким образом можно вносить изменения в файл orderctrl.inc.php. А именно мне нужно внести изменения вот в эту строчку. В ней мне нужно поле totalcost поменять на созданное мною.

new Filter\Type\Text('totalcost', t('Сумма'), array('showtype' => true))

Решение:
modules/config/file.inc.php

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


class File extends \RS\Orm\ConfigObject
{
   
    
}

modules/config/handlers.inc.php

<?php
namespace Modules\Config;

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($controller)
    {

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

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

modules/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>

Владимир 1916,

modules/userscustom/config/file.inc.php

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


class File extends \RS\Orm\ConfigObject
{
   
    
}

modules/userscustom/config/handlers.inc.php

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

class Handlers extends \RS\Event\HandlerAbstract
{
    function init()
    {
        $this->bind('orm.init.users-user');

    }

    
    public static function ormInitUsersUser (\Users\Model\Orm\User $user) 
    {
        $user['__surname']->removeAllCheckers();
    } 
        
}

modules/userscustom/config/module.xml

<?xml version="1.0" encoding="utf-8"?>
<config>
    <defaultValues>    
        <name multilanguage="true">Модернизация модуля users</name>
        <description multilanguage="true">Модуль делает необязательным поле Фамилия при регистрации</description>        
        <version>1.0.0.0</version>
        <author>My mod</author>      
    </defaultValues>
</config>

admin, Да спасибо, пропустил одну букву в namespace

Вынес вот это за пределы цикла

$user_ids = array();
                foreach($itemslist as $order){
                    if (!in_array($order['user_id'], $user_ids)){ //Проверим если, ли уже в массиве такой id
                        $user_ids[] = $order['user_id'];
                     }
                }

                $addreses_by_users = \RS\Orm\Request::make()
                 ->from(new \Shop\Model\Orm\Address())
                ->whereIn('user_id', $user_ids)
                ->objects(null, 'user_id', true); 

                foreach($orders_data as &$order){
                    $order['addresses'] = $addreses_by_users[$order['user_id']];
                }
                

после всего этого вставляю var_dump($user_ids); получаю array(0) { } и var_dump($itemslist); получаю array(0) { }

Закусило Александр пишет:

Вы забыли &

По прежнему выводит один адресс.

Закусило Александр пишет:

И судя по Вашему коду у Вас как частичное получение заказов, так и остальные данные заключены в цикл, который догружает данные. А в цикле должен быть только код получающий заказы, а уже далее должно происходить и подгрузка пользователей и адресов.

если я выношу код, за пределы цикла, то получаю ошибку
Исключение - "SELECT * FROM `readylocal`.`tzte_order_address` WHERE `user_id` IN ()You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1"

$user_ids = array();
                foreach($itemslist as $order){
                    if (!in_array($order['user_id'], $user_ids)){ //Проверим если, ли уже в массиве такой id
                        $user_ids[] = $order['user_id'];
                     }
                }

                $addreses_by_users = \RS\Orm\Request::make()
                 ->from(new \Shop\Model\Orm\Address())
                ->whereIn('user_id', $user_ids)
                ->objects(null, 'user_id', true); 

                foreach($orders_data as &$order){
                    $order['addresses'] = $addreses_by_users[$order['user_id']];
                }
                var_dump($addreses_by_users[$order['user_id']]);

Вы меня не поняли немного. Там два заказа от разных пользователей, получается и адресов должно быть выведено, от каждого заказа свой адрес (т.е. 2 разных), а выводит только 1

Вот  так это все выглядит

foreach($itemslist as $order){
                    /**
                    * @var \Shop\Model\Orm\Order $order
                    */   
                    //Здесь записываем сведения в какой нибудь промежуточный массив Например $order_data и плюсуем его в $orders_data
                    $order_data = array(
                        'order_num' => $order['order_num'],
                        'new_cost' => $order['new_cost'],
                        'userfields' => $order['userfields_arr'],
                        'user_phone' => $order['user_phone'],
                        'user_fio' => $order['user_fio'],
                        'id' => $order['id'],
                        'user_id' => $order['user_id'],
                        'phone' => $order['phone'],
                        'name' => $order['name'],
                        //и т.д.
                    );
                    $orders_data[] = $order_data;

                }               

                $i++;
                $offset += $limit;  

                $user_ids = array();
                foreach($itemslist as $order){
                    if (!in_array($order['user_id'], $user_ids)){ //Проверим если, ли уже в массиве такой id
                        $user_ids[] = $order['user_id'];
                     }
                }

                $addreses_by_users = \RS\Orm\Request::make()
                 ->from(new \Shop\Model\Orm\Address())
                ->whereIn('user_id', $user_ids)
                ->objects(null, 'user_id', true); 

                foreach($orders_data as $order){
                    $order['addresses'] = $addreses_by_users[$order['user_id']];
                }

Но так мы получим только один адрес?

Дак это все сделано же уже, как состыковать то их. Снова дуаеощшт делать?

вот это сделал, я выше не то указал.
Вто адреса получил, дальше то как их состыковать?

string(11) "-2147483648"
string(10) "-698880924"
string(4) "1156"
string(4) "2022"
string(4) "1130"
string(4) "1373"
string(4) "1741"
string(11) "-1327942436"
string(11) "-1007174388"
string(11) "-2097266773"
string(4) "1337"
string(4) "1776"
string(10) "-690740807"
string(11) "-1510144173"
Закусило Александр пишет:

Далее в получившемся массиве адресов пройтись по нему и собрать для заказов.

верно?

а это, как использовать это дальше?
var_dump($user_ids);

array(14) {
  [0]=>
  string(11) "-2147483648"
  [1]=>
  string(10) "-698880924"
  [2]=>
  string(4) "1156"
  [3]=>
  string(4) "2022"
  [4]=>
  string(4) "1130"
  [5]=>
  string(4) "1373"
  [6]=>
  string(4) "1741"
  [7]=>
  string(11) "-1327942436"
  [8]=>
  string(11) "-1007174388"
  [9]=>
  string(11) "-2097266773"
  [10]=>
  string(4) "1337"
  [11]=>
  string(4) "1776"
  [12]=>
  string(10) "-690740807"
  [13]=>
  string(11) "-1510144173"
}

Данный пример не работает

Скажите мне вот из этого массива, нужно получить массив с id нужных пользователей?

foreach($itemslist as $order){
                    /**
                    * @var \Shop\Model\Orm\Order $order
                    */   
                    //Здесь записываем сведения в какой нибудь промежуточный массив Например $order_data и плюсуем его в $orders_data
                    $order_data = array(
                        'order_num' => $order['order_num'],
                        'new_cost' => $order['new_cost'],
                        'userfields' => $order['userfields_arr'],
                        'user_phone' => $order['user_phone'],
                        'user_fio' => $order['user_fio'],
                        'id' => $order['id'],
                        'user_id' => $order['user_id'],
                        'phone' => $order['phone'],
                        'name' => $order['name'],
                        //и т.д.
                    );
                    $orders_data[] = $order_data;

                }

Скажите, почему не подцепляет созданный хук?По прежнему поле фамилия остается обязательным.
Созднный модуль и модуль "Пользователи" переустанавливал, "Исправить структуру БД" тоже делал

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

class Handlers extends \RS\Event\HandlerAbstract
{
    function init()
    {
        $this->bind('orm.init.users-user');

    }

    
    public static function ormInitUsersUser (\Users\Model\Orm\User $user) 
    {
        $user->getPropertyIterator()->append(array(
        t('Основные'),
            'surname' => new Type\Varchar(array(
                'maxLength' => '100',
                'description' => t('Фамилия'),
            )),

        ));           
    }
        
}

Закусило Александр, То что нужно, спасибо!

checked ставиться на адрес с первым id, а хотелось бы переделать, что бы checked ставил на последний id, я могу это поправить в шаблоне?

Использовать следующие данные: 
        <table id="address-list">  
        {if $current_user->inGroup('supervisor')} 
            {$address_list = array_reverse($address_list)}          
            {foreach from=$address_list item=address}
                <tr class="addressItem">
                    <td><input type="radio" name="use_addr" value="{$address.id}" id="adr_{$address.id}" {if $order.use_addr == $address.id}checked{/if}></td>
                    <td><label for="adr_{$address.id}">{$address->getLineView()}</label>
                        <a href="{$router->getUrl('shop-front-checkout', ['Act' =>'deleteAddress', 'id' => $address.id])}" class="deleteAddress"/>&times;</a>
                    </td>
                </tr>
            {/foreach}
            {/if}
            <tr class="addressItem">
                <td><input type="radio" name="use_addr" value="0" id="use_addr_new" {if $order.use_addr == 0}checked{/if}></td>
                <td><label for="use_addr_new">Другие данные</label></td>
            </tr>                
        </table>