• Как получить список товаров из сделки в бизнес-процессе Битрикс24?

    Привет. Нужно сделать итератор по товарным позициям. Получить информацию по каждой позиции и записать ее через merge в множественное поле с целым числом в в параметрах бизнес процесса. После итерации удалить все товарные позиции и потом снова запустить итерацию но уже по параметру куда записывали ID. И на каждой итерации создавать товарную позицию. Может есть более правильный способ. Но пока очень не хватает в бизнес процессах работать с JSON данными в параметрах….
    Ответ написан
    Комментировать
  • Яндекс.Метрика (tag.js) тормозит отрисовку страницы. Почему и как ускориться?

    Аналогичная проблема. Причем на той же странице с той же вёрсткой ее не было раньше. Примерно летом появился такой баг и только на одной странице. Причем страница оформления заказа…. Может что-то другое заставляет так тупить Яндекс метрику хз.

    Возможно, кривая верстка у меня на этой странице. хз. Сейчас все переверстаю и посмотрю. Но вообще все эти метрики хочется выкинуть с сайтов. Они собирают статистику 90% для себя и 10% для нас. Владельцев сайтов. Копаться в том, что они делают не охота. Но они могут делать все что угодно с вашим сайтом, как и любой сторонний js. А Яндекс метрика в отличия от google analytic не стала стандартом для маркетинговых исследовании.

    Для нормальных проектов нужна своя аналитика как ни крути. Либо аналитика с тонкой настройка того, что она делает. Пусть от гугла или яндекса. Пусть за деньги. Я не думаю что вам нужна аналитика которая отслеживает любой события по любому элементу на вашем сайте.

    p/s У меня проблему вызывали пункты выдачи заказов которые отрисовывались на яндекс карте... раньше это не было проблемой для яндекс метрики. Я их стал ставить через ObjectManager и проблема ушла.

    p/s На самом деле проблема как всегда в дополнительных расширениях для браузера. Они играются с DOM и метрика следит за этим ....
    Ответ написан
    Комментировать
  • С какой книги начать изучение javascript?

    Секреты JavaScript ниндзя - Джон Резиг, Беэр Бибо, Иосип Марас
    Ответ написан
    Комментировать
  • Для чего нужны некоторые строчки в обработчике для писем?

    $value != ""&& $key != "project_name" && $key != "admin_email" && $key != "form_subject"

    && - это значит И (А ТАКЖЕ). Равнозначно AND, просто короче и более читаемо
    Далее идет проверки на поля project_name, admin_email, form_subject. То есть информация оп этим полям не должна попасть в таблицу

    $message .= "
          " . ( ($c = !$c) ? '<tr>':'<tr style="background-color: #f8f8f8;">' ) . "
          <td style='padding: 10px; border: #e9e9e9 1px solid;'><b>$key</b></td>
          <td style='padding: 10px; border: #e9e9e9 1px solid;'>$value</td>
        </tr>
        ";


    То есть подразумевается, что мы не фига не знаем что там за форма. Просто знаем что там есть три поля
    project_name - название проекта
    admin_email - почта администратора. То есть ваша наверно.
    form_subject - Тема формы.

    То есть это информацию выведена в другом месте (в теме письма и заголовках и собственно куда посылаем и от кого) и тут идет пропуск ее а все остальное в табличку пишется что бы потом отослать.

    Ни знаю что популярного в этом скрипте. Я бы рекомендовал почитать про почту. Тема на самом деле обширная довольно.

    Для php есть отличная библиотека (популярный скрипт гулящий по сети) для почты https://swiftmailer.symfony.com/
    Ответ написан
  • Что означает оператор?

    Возврат 0, если значения с обеих сторон равны.
    Возврат 1, если значение слева больше.
    Возврат -1, если значение справа больше

    echo 1 <=> 1; //ouputs 0
        echo 3 <=> 4; //outputs -1
        echo 4 <=> 3; //outputs 1


    echo "x" <=> "x"; // ouputs  0
        echo "x" <=> "y"; //ouputs  -1
        echo "y" <=> "x"; //ouputs  1
    Ответ написан
    Комментировать
  • Как подставить скрипт на сайте?

    https://learn.javascript.ru/debugging-chrome - отладка JS делать нужно там где вы делаете.
    "которая хотя бы не в одну строку " - нужно нажать на вот эти скобочки в левом нижнем углу {}
    "непонятные переменные типа e" - изначально они были вес понятные там. Потом сборщик им названия сам придумал короткие.

    Можно так же если очень хочется. Запариться и сделать расширения для браузера и творить с сайтом что хочешь в смоем браузере. https://developer.chrome.com/extensions/devguide - например на своем любимом сайте убрать не нужные тебе блоки и сделать в том цвете конторы тебе нравится. Вставить JS свой и убрать чужой. И тому подобное творить.

    Можно еще тупо скачать страницу. Отредактировать ее как угодно и открыть в браузере.
    Ответ написан
    Комментировать
  • В чём смысл одностраничных приложений в данном случае?

    Основной смысл в том, чтобы не рендерить всю страницу. Получить нужный кусок информации и отрисовать его в нужно месте. Так получается более «отзывчивый» дизайн – быстрый. Но у SPA есть два минуса. Он плохо подходит в плане SEO – если оно ещё кому-то нужно. И первая отрисовка долгая… дольше обычного классического варианта. Наверно всем уже надоел значок Gmail в почте при первой отрисовки. Так же SPA отлично подойдет и для приложения на смартфонах. И для этого даже не нужно будет делать приложения. Можно почитать про Progressive Web Apps. Есть еще гибридные варианты.
    Ответ написан
    4 комментария
  • Как корректно настроить поле From при отправке письма с сайта?

    Если это не одноразовое что то. Лучше сразу поставить https://swiftmailer.symfony.com/ и сделать всего через нее.
    Ответ написан
    Комментировать
  • Как заставить работать \r\n в php?

    если опустить все остальное и оставить только вот это
    Как заставить работать \r\n в php?
    то нужны двойные кавычки, тогда это будет работать в php как задумывалось.
    У вас проблема в другом, у вас просто строка. Она закодирована в Unicode

    например вот тут можно подставлять нужный код и увидеть символ
    \n\r\ и \u041f\u0430\u043f\u043a\u0430
    www.fileformat.info/info/unicode/char0430/index.htm

    Это просто способ кодирования символов.
    Обычно все обмениваются не "строками" а JSON "строками"

    Примерно вот так выглядит.

    {"word":"test","state":"n","def":"\u1005\u102c\u1031\u1019\u1038\u1015\u1032\u103c\u104b \u1005\u1005\u1039\u1031\u1006\u1038\u103b\u1001\u1004\u1039\u1038\u104b \u1005\u1005\u1039\u1031\u1006\u1038\u1019\u1088\u104b \u1031\u1006\u1038\u1005\u1005\u1039\u103b\u1001\u1004\u1039\u1038\u104b \u1005\u1019\u1039\u1038\u101e\u1015\u1039\u103b\u1001\u1004\u1039\u1038\u104b"}

    обычно так делают когда символы есть которые нужно так кодировать. Русские буквы, китайские буквы и так далее.

    Можно это прочитать вот так
    php.net/manual/ru/function.json-decode.php
    $res = json_decode($str, true);
    $str - ваша строка валидного JSON - https://ru.wikipedia.org/wiki/JSON
    $res - это то что вы хотите увидеть

    вы так же увидите результат если просто перейдете в браузере https://www.site.ru/api.php?query=getconsole&token...

    p/s Это знак ?> лишний. Мы используем его только когда у нас "говнокод". То есть когда мы мешаем все в кучу в одном файле. HTML, php да и наверно CSS еще в придачу. ?> - этот символ PHP поставит сам в конце файла и его мы не ставим.
    Ответ написан
    1 комментарий
  • Как сделать проверку в pdo mysql?

    например, попробовать достать такое имя из таблицы.
    SELECT name FROM users WHERE name = name

    так же тут нужно почитать php.net/manual/ru/pdo.prepare.php
    и тут тоже можно phpfaq.ru/pdo

    вот это не нравиться
    $sth = $this->link->prepare($sql);
    return $sth->execute();
    Ответ написан
    Комментировать
  • Как лечить экранирующий слеш в json php?

    Двойные кавычки я использую только когда мне нужны знаки табуляции и переноса строки. Обычно когда я что то записываю в файлики текстовые. В остальных случая я соглашусь с Кириллом Несмеяновым, по причине того что там могут быть переменные, которых в 99% там тупо нет. Следовательно, как то там их нужно php искать. Но мы то с вами знаем что там их нет.

    А вообще вот это стоит почитать php.net/manual/ru/language.types.string.php

    JSON я обычно вот так себе делаю и этого хватало мне.
    $json = json_encode($str, JSON_UNESCAPED_UNICODE);
    $array = json_decode($json, true);
    php.net/manual/ru/function.json-encode.php
    Ответ написан
    Комментировать
  • Правильно ли так работать с git и phpStorm?

    Там можно работать как угодно в phpStorm. Это просто редактор.
    C Git можно и нужно работать из командной строки. Там так же есть встроенная утилита для работы с ним. Так же там есть и «своя» система контроля версии – урезанная.
    phpStorm может работать и на удаленном хосте - с базой данных и файлами. Так и скачать все себе поправить и залить назад. Так и автоматически любое изменение отлавливать и заливать.
    Обычно в таком режиме работают не с продакшенном. А на продакшен все обновляют, когда есть новая версия, которая прошла тесты. Не обязательно файлы заливать в продакшен по SFTP, если у вас там git, то git и обновитесь.
    Ответ написан
    Комментировать
  • Какие практические курсы по программированию вы знаете (не базового уровня)?

    Может просто сделать схему всего проекта на UML или хотя бы его кусков? Я всегда считал что в нормальных проектах есть архитектор который придумывает все связи от и до и сверху опускает график UML. Хз может конечно я не прав, но я бы делал именно так. А если кто то не делает то что приходит сверху, он либо должен четко обосновать в чем не правы на верху либо идти в другое место работать. Шаблоны проектирования используют все, просто многие не понимают что они используют шаблоны.

    Рефакторинг кода это процесс бесконечный имхо. Обычно внедрения новых фич, заставляет делать рефакторинг кода. Это означает, что изначально не предусмотрели что то. Можно изначально все сделать в такой абстракции с шаблонами, что потом будет меньше работы.

    Рефакторинг кода можно делать потом что бы сделать код быстрее, убирая кучу абстракции. Но это безумие.

    читабельность кода - это просто применения принятых стандартов. И лучше не своих внутренних.

    Все эти вещи приходят с опытом, когда по 10 раз переписываешь проекты уже в самом начале понимаешь где будут проблемы, даже когда кода еще нет.
    Ответ написан
    2 комментария
  • Как вытянуть данные из файла xml?

    Есть еще вот такая штука.
    php.net/manual/ru/book.xmlreader.php
    Примерно так
    $reader = new XMLReader();
    $reader->open($filexml);
    while ($reader->read()) {
        switch ($reader->nodeType) {
            case (XMLREADER::ELEMENT):
                if ($reader->name == "offer" && $reader->nodeType == XMLReader::ELEMENT) {
                    $doc = new DOMDocument('1.0', 'UTF-8');
                    $xml = simplexml_import_dom($doc->importNode($reader->expand(), true));
    				
    				print $xml->picture;
    			}
    	}
    }
    Ответ написан
    Комментировать
  • Чего бы сложного сделать на javascript?

    Позволь себе jQuery.
    При куче постоянно всего нового в JS, jQuery используют почти везде. Куча готовых библиотек, и не кто не будет их переписывать. В этом нет смысла. jQuery будет всегда.
    Ответ написан
    Комментировать
  • Как правильно спроектировать сайт и вывод информации из бд?

    Можно таблицы общие сделать где храним данные пользователей, роли и права.
    Можно разделить таблицы в которых храним данные о товарах если нужно. Но лучше разделить логику каталога. А товара хранить все в месте, опять же так проще поддерживать. Как и все заказы собирать в одной админке.
    При это сами магазины в принципе могут быть на чем угодно, если это один движок, то можно тупо общие таблицы сделать и ничего больше не трогать.
    По мимо пользователей можно еще подумать про общие файлы, если это один движок, то много файлов будет одинаковых. И лучше это поддерживать если будет в единственном экземпляре.
    Можно отлавливать разные сайты по доменам. В принципе мультсайтинг означает наличие общих таблиц и файлов.
    Ответ написан
    Комментировать
  • Как отослать корректное хтмл-письмо через php на gmail?

    Стили в письме вот так сделаны?
    https://www.codecademy.com/articles/html-inline-styles

    Попробуйте вот так
    quoted_printable_encode("тело письма hrml")
    и header
    Content-Transfer-Encoding: quoted-printable
    Content-type: text/html; charset=utf-8
    MIME-Version: 1.0


    DKIM-подпись - обязательно нужно делать если не сделано. Иначе 100% в спам будет всегда падать.

    mail($email, "=?utf-8?b?" . base64_encode("Тема письма") . "?=", quoted_printable_encode("тело письма с html"), $header);
    Ответ написан
    1 комментарий
  • ООП в высоконагруженных проектах считается устаревшим?

    В высоконагруженных проектах фронтед по хорошему должен быть самым простым на сколько можно и выполняться по максимум на стороне клиента обрабатывая массив данных из кеша. А если Кеша нет, то ходить на примитивный бекенд, который за один запрос получает массив данных от куда угодно. Понятно, что это даже не PHP. Ну и кеш нужно прогревать и не ждать что кто-то что-то запросит.
    Все новые данные, или анализ и подготовка дынных обрабатывается очередями. Вот тут уже нужно думать о коде, который можно будет нормально поддерживать. И ООП там будет потому что без него будет попа боль.
    Ответ написан
    Комментировать
  • Как сделать конструктор сайтов?

    Админ панель - как система управления данными которые хранятся в какой-то базе
    Сайты, которые могут быть на чем угодно использует данные из этой базы. Общие таблицы, запросы по API и так далее…
    Мультисайтинг помимо объединения данных так же может объединять и общие файлы.
    Например, можно указать в конфиге nginx что для domain1/domain2/domain3 app.php лежит в одном месте. А в самом app.php в зависимости от домена делать что-то разное.
    Ответ написан
    Комментировать