Re: Настройка целей в Яндекс.Метрике
Вы хотите и созданные админом кнопки отслеживать? Или купить в один клик созданное пользователем?
Re: Настройка целей в Яндекс.Метрике
Закусило Александр, Созданные админом отслеживать
Re: Настройка целей в Яндекс.Метрике
Для модификации кнопки из стороннего модуля следует выполнить следующее:
Алгоритм:
1. Перехватить событие controller.exec.catalog-oneclickctrl
2. Получить объект кнопки
3. Добавить атрибут.
Примерный код обработчика handlers.inc.php:
Не забудьте очистить кэш, чтобы система подхватила ваш обработчик
<?php
namespace ВАШМОДУЛЬ\Config;
class Handlers extends \RS\Event\HandlerAbstract
{
function init()
{
$this->bind('controller.exec.catalog-oneclickctrl')
}
public static function controllerExecCatalogOneClickCtrl(\RS\Controller\Admin\Helper\CrudCollection $crud_collection)
{
/**
* @var $bottomToolbar \RS\Html\Toolbar\Element
*/
$bottomToolbar = $crud_collection['bottomToolbar'];
/**
* @var $button \RS\Html\Toolbar\Button\AbstractButton
*/
$button = $bottomToolbar->getItem('create'); //Получаем объект кнопки
$button->setAttr(array(
'onclick' => 'ваш код'
));
}
}
Re: Настройка целей в Яндекс.Метрике
Код, который я привел - примерный, из него видно, какой класс у вас на входе обработчика событий, дальше вы уже можете поковырять сами его.
проверяйте:
1. вызывается ли у вас обработчик для начала.
2. посмотрите какие кнопки в $bottomToolbar - в примере я подписал какой класс в данной переменной. (\RS\Html\Toolbar\Element) вы можете заглянуть в исходник класса, чтобы все понять, там все методы подписанные. Есть функция var_dump - очень рекомендуем ей пользоваться, чтобы понять что в переменных.
Re: Настройка целей в Яндекс.Метрике
admin, Как проверить вызывается обработчик или нет?
Re: Настройка целей в Яндекс.Метрике
Волшебный var_dump при срабатывании функции или die('123').
Re: Настройка целей в Яндекс.Метрике
Немного ошибся, маска имени события звучит как:
controller.exec.КОРОТКОЕ_ИМЯ_КОНТРОЛЛЕРА.ИМЯ_ДЕЙСТВИЯ
( https://readyscript.ru/dev-manual/dev_hooks.html )
Я в предыдущем примере кода забыл в конце указать ИМЯ_ДЕЙСТВИЯ.
соответственно названия будут чуть другие:
class Handlers extends \RS\Event\HandlerAbstract
{
function init()
{
$this->bind('controller.exec.catalog-oneclickctrl.index')
}
public static function controllerExecCatalogOneClickCtrlIndex(\RS\Controller\Admin\Helper\CrudCollection $crud_collection)
{
//......
}
Re: Настройка целей в Яндекс.Метрике
Подскажите ,что должен вывестить var_dump, потому что ничего нигде не видно
Re: Настройка целей в Яндекс.Метрике
var_dump('Любая фраза для проверки отработал ли хук');
exit();
Re: Настройка целей в Яндекс.Метрике
Вы меня немного не поняли. Вот мои действия.
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 снова нигде не выводится
Re: Настройка целей в Яндекс.Метрике
Воспроизвел код на тестовом движке:
Обновите движок, пожалуйста, мы внесли небольшие исправления в контроллер oneclickctrl
вот точная корректировка:
1. Событие конкретно на данной странице редактирования называется: controller.exec.catalog-admin-oneclickctrl.edit
2. Метод обработчика controllerExecCatalogAdminOneClickCtrlEdit , соответственно.
Пробуйте.
14 13.01.2017 11:13:44 Отредактировано Илья (13.01.2017 11:29:46)
Re: Настройка целей в Яндекс.Метрике
Вот так теперь работает спасибо!
Только при добавлении onclick, нужно еще добавить и 'class' => 'button', что бы кнопка отображалась
$button->setAttr(array(
'class' => 'button',
'onclick' => 'yaCounterXXXXXXX.reachGoal(\'ORDER\'); return true;'
));
Только у меня остался один небольшой вопрос,
Верно ли я сделал что добавил перед одинарными кавычками \ или нет?
15 13.01.2017 12:36:34 Отредактировано Закусило Александр (13.01.2017 12:36:44)
Re: Настройка целей в Яндекс.Метрике
Правильно в данном случае, т.к. Вы указываете начало строки с ' (Одинарной ковычки)
16 13.01.2017 12:56:43 Отредактировано Илья (13.01.2017 14:18:58)
Re: Настройка целей в Яндекс.Метрике
Теперь встает вопрос, как добавить счетчик яндекса, в админную часть?
17 13.01.2017 15:04:38 Отредактировано Илья (13.01.2017 15:05:38)
Re: Настройка целей в Яндекс.Метрике
Вставил в body.tpl {addjs file="yandex.js"} и закинул код метрики в js файл. Но метрика почему то не считает, яндекс предлагает удалить \ перед одинарной ковычкой, будем пробывать
Re: Настройка целей в Яндекс.Метрике
Вы можете подключать скрипты из PHP, например в вашем обработчике событий:
https://readyscript.ru/dev-manual/class … f9e0a365ad
\RS\Application\Application::getInstance()->addJs(.....)
Re: Настройка целей в Яндекс.Метрике
Пробовали убрать \ перед одинарной кавычкой, выдает ошибку. Ждем что скажет яндекс
Re: Настройка целей в Яндекс.Метрике
admin а вариант которым воспользовался я, можно оставить?Шаблон я перегрузил
Re: Настройка целей в Яндекс.Метрике
'onclick' => "yaCounterXXXXXXX.reachGoal('ORDER'); return true;"
Попробуйте
Re: Настройка целей в Яндекс.Метрике
Вы хотите и созданные админом кнопки отслеживать? Или купить в один клик созданное пользователем?
А для заказа, созданного пользователем, как сделать?
Re: Настройка целей в Яндекс.Метрике
А для заказа, созданного пользователем, как сделать?
Всё точно также только вешаться надо на кнопку купить в один клик внутри окна. А Яндекс метрика будет отслеживать.
Re: Настройка целей в Яндекс.Метрике
Прочитал тему, но как повесить отслеживание цели заказа в 1 клик на сайте через метрику не понял.
Можете подсказать для уже не новичков, но еще и не профессионалов?