Задать вопрос
  • Как сделать визуальный эффект на сайте в виде колонок?

    @alexalexes
    Делать правые и левые отступы, ширину элементов кратно размеру колонки.
    Приведенный пример эту идею и воспроизводит, нужно только покопаться в Elements в панели разработчика браузера, чтобы увидеть эту закономерность.
    Ответ написан
    Комментировать
  • Как изменить формат даты публикации в дополнении Articles?

    @alexalexes Автор вопроса
    Решение оказалось в файле конфига:
    \htdocs\core\cache\system_settings\config.cache.php
    Находим ключ:
    'articles.mgr_date_format' => '%b %d',
    Исправляем:
    'articles.mgr_date_format' => '%d.%m.%Y',
    Результат:
    5c62959b09edc273747037.png
    PS:
    Точнее, этот ключик находится в системных настройках админки, там и нужно исправлять:
    5c6296e96d2e8706063709.png
    Ответ написан
  • Как изменить состояние checbox?

    @alexalexes
    Поставьте эту функцию в обработчик клика для вашей гипотетической кнопки:
    <input type="button" onclick="func2()"/>
    Ответ написан
    Комментировать
  • Как заменить специальные символы & quot;?

    @alexalexes
    Если не хотите заморачиваться с регулярными выражениями, то достаточно функции замены строк.
    $result = str_replace(array('amp;', '&', 'quot;'), '',  'Ремень HENDERSON &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;quot; "2 в 1&am');

    PS: Только определитесь в том, что у вас могут быть сущности в строковом представлении или в кодах символах, от этого зависит нужно ли конвертировать коды символов в html-сущности и обратно в первом аргументе функции.
    Ответ написан
    Комментировать
  • Как использовать подход git flow для осуществления мелких правок?

    @alexalexes
    Есть вариант вести ветку pred, которая вбирает в себя самые последние изменения.
    Саму ветку pred сливать с master-веткой либо в определенные промежутки времени, либо когда набирается критическая масса изменений.
    PS: Если очень развита виртуализация и обратная связь с пользователями (или анализ поведения), то желательно на 20% процентах пользователей апробировать последние изменения pred с целью оперативного выявления небольших багов и востребовательности принятых изменений.
    Ответ написан
    Комментировать
  • Как массово поставить символы \r\n в конце строк?

    @alexalexes
    1. На панели инструментов активировать опцию "Отображать все символы".
    2. Убедиться, что в конце строки стоит пара символов CR LF (\r\n - значит искать замену по такому признаку).
    3. Выполнить замену.
    Замена Ctrl+H
    Найти: \r\n
    Заменить: \\r\\n\r\n
    Режим поиска:
    Расширенный
    Ответ написан
    Комментировать
  • Как вызвать функцию, если значение оператора if == false?

    @alexalexes
    def = document.getElementById('put_in');
    А вы уверены, что def содержит значение элемента инпута, вместо самого инпута?
    В def, по хорошему, нужно анализировать не сам инпут, а значение его свойства value:
    if (def.value == 488)
    Ответ написан
    2 комментария
  • Достаточно ли для web выучить ЯП СУБД бекенда?

    @alexalexes
    Углубленное изучение одного элемента стека технологии не отгораживает вас от ответственности пощупать весь стек.
    Ответ написан
    Комментировать
  • Не идёт отсчет после ввода числа( ошибок нету)?

    @alexalexes
    else(parseInt(input.value)==0)
    В else зачем написали условие? Оно там не нужно, на то и else.
    https://jsfiddle.net/2u9raep5/3/
    Ответ написан
  • Как сделать корректный вывод json?

    @alexalexes
    Вы вот это:
    array(
                        'id' => $banner->id,
                        'url' => $banner->url,
                        'name' => $banner->name,
                        'image' => $banner->image
                    );

    Вкладываете в $this->data по ключу $key, отсюда следует, что $this->data - это массив, поэтому он декодится в скобочках [].
    Ответ написан
    Комментировать
  • Какая лучшая практика наименования полей таблицы в MySQL?

    @alexalexes
    Тут дело выбора стандартов внутри группы разработчиков, как договоритесь использовать имена.
    Например, второй способ избыточен при таком подходе написания запросов.
    select country.country_id
    from country

    а вот здесь чуть полегче разобраться к чему относиться псевдоним таблицы:
    select c.country_id
    from country c

    Если умело сокращать имена псевдонимов, то жить можно и при кратком подходе именования:
    select ctry.id
    from country ctry

    Если загвоздка иного рода - именовать поле country_id или id_country.
    Первый вариант правильный с точки зрения англ. языка, а второй - визуально легче отслеживать виды полей, если их записать вертикально.
    Ответ написан
    Комментировать
  • CSS почему сверху отступ??

    @alexalexes
    Начало всех CSS-файлов всегда начинается одинаково как раз из за этого случая:
    html, body
    {
      margin: 0;
      padding: 0;
    }
    Ответ написан
  • Распечатать большой файл, частями?

    @alexalexes
    Нетривиальная задача, нужны определенные программистские навыки, чтобы ее реализовать.
    Скорее всего, укрупненная постановка задачи будет выглядеть так:
    В любой среде программирования пишем приложение, отправляющее команды в командную строку Windows по такому алгоритму:
    1. cmd-команда открыть Документ 1;
    2. cmd-команда открыть Документ 2;
    3. cmd-команда открыть Документ 3;
    4. Цикл по страницам документа 1;
    4.1. По окончании работы предыдущего макроса запустить макрос для печати i-страницы документа 1;
    4.2. По окончании работы предыдущего макроса запустить макрос для печати i-страницы документа 2;
    4.3. По окончании работы предыдущего макроса запустить макрос для печати i-страницы документа 3;
    5. cmd-команда закрыть Документ 1;
    6. cmd-команда закрыть Документ 2;
    7. cmd-команда закрыть Документ 3;
    Вроде, алгоритм простой, но на каждом шаге нужно ловить исключения и возможно контролировать процесс запуска остановки из приложения.
    Ответ написан
  • Почему в таком коде не работает вызов метода конструктора?

    @alexalexes
    При вызове вы не передаете параметр,...
    console.log(Journal1.formatDate(/*где ваш параметр?????*/));

    ... хотя в определении метода указано, что он должен передаваться
    this.formatDate = function(date /*- а параметр то есть*/)
    Ответ написан
    2 комментария
  • Зачем дублировать функции php в Bitrix?

    @alexalexes
    1) Чтобы выдержать стандарт именования методов и всегда быть в русле ООП-архитектуры, даже если функция пустяковая;
    2) Повысить переносимость кода от одной версии PHP до другой (кто знает, какую разрядность переменной будет возвращать microtime() завтра и будет ли это привычный float).
    3) Функция microtime() в методе вызвана с параметром, а это уже специфичное применение функции - запилим под нее отдельный метод.
    Ответ написан
    Комментировать
  • Как оптимально получить симметричные данные в таблице?

    @alexalexes
    Элементарно, заджойнте ту же самую таблицу саму на себя.
    select *
    from t as t1
    join t as t2 on t1.user_id1 = t2.user_id2
                     AND t2.user_id1 = t1.user_id2
    Ответ написан
    2 комментария
  • Как получить id элемента с определенным классом по которому кликнули?

    @alexalexes
    Если изначально правильно повесить обработчик на элемент, то при выполнении обработчика искать этот элемент не нужно, его дескриптор будет находится в свойстве e.target дескриптора события.
    Ответ написан
    Комментировать
  • Как передать координаты произвольному элементу на странице?

    @alexalexes
    Если чисто "механически" сообщить значение top от одного элемента превью к соответствующему элементу со схожим id = data-mini, то это можно сделать так:
    var e_prevs = $('div.side div.preview'); //выбираем все превью-элементы
    e_prevs.each(function(index) //пробегаемся по превью элементам
    {
       var id = this.id; //this - это текущий элемент превью, получаем его id.
       var link = $('div.main div.element[data-mini=' + id + ']')[0]; //находим элемент-ссылку, у которого есть схожий атрибут data-mini.
       var top_e_prev = this.offsetTop; // получаем знач. свойства от начала страницы
       link.offsetTop = top_e_prev; // присваиваем это значение ссылке
    });

    Чтобы элементы фактически встали по одной высоте, нужно указать правильные CSS-свойства position опорного контейнера div.container {position: relative;}, а превью-контейнерам давать абсолют, но тут нужно смотреть, как на такие изменения отреагирует весь остальной контент, находящийся в том же контейнере.

    PS: Или наоборот передавать свойства...
    var main_els = $('div.main div.element');
    main_els.each(function (index)
    {
       var data_mini = this.dataset.mini;
       var link = $('div.side div.preview#' + data_mini)[0];
       var top_el = this.offsetTop;
       link.offsetTop = top_el;
    });
    Ответ написан
  • Как скачать изображение с поле input?

    @alexalexes
    Самый простой вариант - отправить запросом на сервер и ответить тем же содержимым, что отправили серверу с таким же mime-тайпом (предусмотреть все необходимые заголовки отдачи файла).
    Ответ написан
    Комментировать
  • Как делаются нестандартные элементы форм доступными, кроссбраузерными?

    @alexalexes
    В идеале, в шапке страницы сайта должен быть переключатель версии дизайна для слабовидящих (по значимости такой же как RUS/ENG).
    Тут есть рекомендации, как сделать версию сайта для слабовидящих. В том числе, обозначен совет, как сделать так, чтобы скринридеры читали заголовки полей формы, но сами заголовки визуально не отображать.
    Если лейбл нужно скрыть, расположите его перед полем, используйте привязку атрибута for и специальный класс для вспомогательных технологий:

    .visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    border: 0;
    padding: 0;
    clip: rect(0 0 0 0);
    overflow: hidden;
    }
    Этот класс скрывает лейбл визуально, но его прочтут скринридеры. Обратите внимание, что скринридеры и другие вспомогательные технологии, как и браузеры, скрывают элементы с использованием display: none и visibility: hidden.
    Ответ написан
    4 комментария