• Как создать цель клик по номеру телефона в google analytics?

    @vlad11660
    Вам необходимо подключить к сайту google tag manager а после с его помощью настроить перехват действий, а именно клик на кнопку, что позволит сгенерировать вам виртуальную ссылку, которая будет автоматически попадать в гугл аналитику, и дальше на эту виртуальную ссылку вы настраиваете цели, воронки и т.д.
    Ответ написан
    Комментировать
  • Как подключить Google Analytics к телеграм боту?

    @haveacess
    Да обычный запрос, который дергает апиху с твоими данными.
    Все аналогично тому что и происходит на вебе - сделали действие - отправили ивент.

    Вроде что то даже есть
    google analytics api add events
    Ответ написан
    2 комментария
  • Как выделить несколько ячеек таблицы?

    Deonisius
    @Deonisius
    Родился в 11110110111 году, 11000 января.
    Делал я когда-то подобное, но задача была сделать выделение ячеек, как при одиночном нажатии, так и при зажатом Shift или Ctrl. Если такой вариант устроит, то вот пример в песочнице.
    Показать код jQuery
    var td = $('#timeGrid td'),
        selection = {
            single: function(el) {
                td.not(el).removeClass(this.cl);
                this.ctrl(el);
            },
            shift: function(el) {
                if (typeof this.last !== 'number') {
                    return this.single(el);
                }
                var till = $(el).index(this.slcr),
                    from = this.last;
                if (from > till) till = [from, from = till][0];
                td.not(td.eq(this.last)).removeClass(this.cl);
                td.slice(from, till).add(el).addClass(this.cl);
            },
            ctrl: function(el) {
                $(el).addClass(this.cl);
                this.last = $(el).index(this.slcr);
                console.log(this.last);
            },
            slcr: '#timeGrid td',
            cl: 'pressedTime',
            last: null
        };
    td.on('click', function(e) {
        method = !e.shiftKey && !e.ctrlKey ? 'single' : (e.shiftKey ? 'shift' : 'ctrl');
        selection[method](this);
    });



    P.S. Хотя, сейчас немного доделал и вроде бы получилось, как вы хотели. Смотрим пример

    Показать код jQuery
    var table = $('#timeGrid'),
        td = $('td', table),
        selection = {
            single: function(el) {
                td.not(el).removeClass(this.cl);
                this.ctrl(el);
            },
            shift: function(el) {
                if (typeof this.last !== 'number') {
                    return this.single(el);
                }
                var till = $(el).index(this.slcr),
                    from = this.last;
                if (from > till) till = [from, from = till][0];
                td.not(td.eq(this.last)).removeClass(this.cl);
                td.slice(from, till).add(el).addClass(this.cl);
            },
            ctrl: function(el) {
                $(el).addClass(this.cl);
                this.last = $(el).index(this.slcr);
            },
            slcr: '#timeGrid td',
            cl: 'pressedTime',
            last: null
        };
    var pressed = false;
    td.on({
        mousedown: function(e) {
            method = !e.shiftKey && !e.ctrlKey ? 'single' : (e.shiftKey ? 'shift' : 'ctrl');
            selection[method](this);
            pressed = true;
        },
        mouseenter: function() {
            if (pressed) {
                selection.shift(this);
            }
        }
    });
    $(document).on('mouseup', '*', function(e) {
        pressed = false;
    });

    Ответ написан
    5 комментариев
  • Как правильно выстроить разработку и деплой сайта?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Разработка и контроль версий

    Читаем про git flow, восхищаемся и интегрируем.
    Читаем PSR-ы, восхищаемся и интегрируем. Не помешает: Попросили проверить код, на что смотреть нужно?
    Читаем про vagrant. На базе вот этого вот строим dev окружение. Можете поиграть с https://puphpet.com/. До docker все же стоит дорасти.
    Постигаем Phpstorm, и радуемся жизни.
    Можете посмотреть так же: https://github.com/index0h/php-conventions

    Тестирование

    Читаем про phpunit, восхищаемся и интегрируем.

    Документирование

    Рекомендую взять за правило: документирование алгоритмов нужно только в крайнем случае, когда используются некие хаки. Говнокод лучше переписать на что-то очевидное, чем объяснять, какая муха вас укусила и где.
    Что касается docblock-ов для помощи ide - это отличная идея.

    Деплой

    Самый простой и надежный способ: root у вашего nginx/apache указывать как ссылку на каталог текущей прод версии. При релизе - заливать код с помощью rsync в новый каталог, а далее менять ссылку на новый релиз.
    Например у вас каталог с версиями кода:
    production -> v1.0.2 - текущая версия
    v1.0.1 - старый релиз
    v1.0.2 - текущая версия
    v1.0.3 - новый релиз
    Когда подготовка завершена - вы только меняете симлинк production на v1.0.3. Если что не так - можно быстро откатиться на предыдущую версию.
    Ответ написан
    11 комментариев
  • Yii2 PHP Как исправить формирование url из-за фильтров в searchController?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Где-то лидирующего слеша не хватает, вероятно в экшене формы.
    action="some-controller/some-action" - ведет на текущийUrl/some-controller/some-action
    action="/some-controller/some-action" - ведет на домен/some-controller/some-action
    yii тут не при чем, как и php
    Ответ написан
    2 комментария
  • Checkbox как gridview фильтр?

    t-alexashka
    @t-alexashka Автор вопроса
    Сразу пишу legacy код
    вопрос решен таким костылем как мокирование чекбокса скрытым полем:

    php
    [
        'content' => '
            <div class="checkbox">
                <label>
                    <input type="checkbox" id="isownonly" class="" ' . ($searchModel->is_own == '1' ? 'checked' : '') . '>
                    Только наши
                </label>
            </div>
            <input type="hidden" class="grid-filter" name="SetsSearch[is_own]" value="' . ($searchModel->is_own == '1' ? '1' : '0') . '">
            ',
    ],


    js
    $(document).on('change', '#isownonly', function (e) {
    	$('[name*=is_own]').val(
    		$(this).is(':checked') ? 1 : 0
    	).trigger('change');
    });


    Если кто знает более элегантное решение заставить чекбокс-фильтр работать с pjax - дайте знать, всем пригодится.
    Ответ написан
    Комментировать
  • Ограничения Яндекс почты для домена

    @syler222
    Ограничения в Почте для домена

    На количество получателей установлены следующие ограничения:

    В течение суток можно отправить с одного ящика 3000 * писем. Если вы указали нескольких получателей, то каждому из них отправляется отдельное письмо.

    На количество получателей установлены следующие ограничения:

    Количество получателей Ограничение
    Суммарно во всех письмах за сутки (с одного ящика) - 3000 *
    Суммарно во всех письмах за сутки (со всех ящиков одного домена) - 5000 *
    В письме, отправленном через сайт - 50
    В письме, отправленном через почтовую программу - 35

    https://yandex.ru/support/mail/troubleshooting/sup...
    Ответ написан
    Комментировать
  • Почему о время выполнения Vagrant up возникает ошибка "The following SSH command responded with a non-zero exit status."?

    вы наверное проапгрейдили папет где то по дороге и фактер несовместим с прошлыми версиями - за ними было уже замечено такое
    Ответ написан
    Комментировать
  • Yii2 как с базы вывести категории когда у них есть подкатегориии с подкатегориями?

    Steein
    @Steein
    Программист
    $menu = Array( // Предполагалось, что он SQL SELECT
      Array('id'=>1,'title'=>'Menu 1',          'parent_id'=>null),
      Array('id'=>2,'title'=>'Sub 1.1',         'parent_id'=>1),
      Array('id'=>3,'title'=>'Sub 1.2',         'parent_id'=>1),
      Array('id'=>4,'title'=>'Sub 1.3',         'parent_id'=>1),
      Array('id'=>5,'title'=>'Menu 2',          'parent_id'=>null),
      Array('id'=>6,'title'=>'Sub 2.1',         'parent_id'=>5),
      Array('id'=>7,'title'=>'Sub Sub 2.1.1',   'parent_id'=>6),
      Array('id'=>8,'title'=>'Sub 2.2',         'parent_id'=>5),
      Array('id'=>9,'title'=>'Menu 3',          'parent_id'=>null),
    );


    function has_children($rows,$id) {
      foreach ($rows as $row) {
        if ($row['parent_id'] == $id)
          return true;
      }
      return false;
    }
    function build_menu($rows,$parent=0)
    {  
      $result = "<ul>";
      foreach ($rows as $row)
      {
        if ($row['parent_id'] == $parent){
          $result.= "<li>{$row[title]}";
          if (has_children($rows,$row['id']))
            $result.= build_menu($rows,$row['id']);
          $result.= "</li>";
        }
      }
      $result.= "</ul>";
    
      return $result;
    }
    echo build_menu($menu);


    <ul>
      <li>Menu 1<ul>
        <li>Sub 1.1</li>
        <li>Sub 1.2</li>
        <li>Sub 1.3</li>
      </ul></li>
      <li>Menu 2<ul>
        <li>Sub 2.1<ul>
          <li>Sub Sub 2.1.1</li>
        </ul></li>
        <li>Sub 2.2</li>
      </ul></li>
      <li>Menu 3</li>
    </ul>
    Ответ написан
    1 комментарий