Задать вопрос
  • Как сделать корректный вывод 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 комментария
  • Как посчитать количество дней с учетом всех выходных в MySQL?

    @alexalexes
    select count(*) as work_day_count --считаем, что осталось после отсечения выходных и праздников
      from (SELECT distinct t1.*, t1.c1 + INTERVAL iterator.day DAY as dt_day
                 FROM (select STR_TO_DATE("01.10.2018", "%d.%m.%Y") c1,  STR_TO_DATE("22.10.2018", "%d.%m.%Y") c2 union all
                       select STR_TO_DATE("22.10.2018", "%d.%m.%Y") c1,  STR_TO_DATE("10.11.2018", "%d.%m.%Y") c2 ) t1 --таблица с проверяемыми интервалами
     
     join (select @start_day := @start_day + 1 as day
             from news,  -- любая произвольная таблица с числом строк, больше чем ширина максимально возможного интервала дней, который можно рассмотреть этим запросом
                  (select @start_day := -1) init_day --инициализация переменной start_day 
          ) iterator --итератор дней, ведет отсчет с 0 и до куда надо (до максимального интервала, который может быть)
       on (t1.c1 + INTERVAL iterator.day DAY) <= t1.c2 --верхнее ограничение итератора
                    and (t1.c1 + INTERVAL iterator.day DAY) not in -- отсекаем выходные и праздники
    (select STR_TO_DATE("06.10.2018", "%d.%m.%Y") c1 union all
     select STR_TO_DATE("07.10.2018", "%d.%m.%Y") c1 union all
     select STR_TO_DATE("13.10.2018", "%d.%m.%Y") c1 union all
     select STR_TO_DATE("14.10.2018", "%d.%m.%Y") c1 union all
     select STR_TO_DATE("20.10.2018", "%d.%m.%Y") c1 union all
     select STR_TO_DATE("21.10.2018", "%d.%m.%Y") c1 union all
     select STR_TO_DATE("27.10.2018", "%d.%m.%Y") c1 union all
     select STR_TO_DATE("28.10.2018", "%d.%m.%Y") c1 union all
     select STR_TO_DATE("03.10.2018", "%d.%m.%Y") c1 union all
     select STR_TO_DATE("04.11.2018", "%d.%m.%Y") c1 union all
     select STR_TO_DATE("10.11.2018", "%d.%m.%Y") c1 union all
     select STR_TO_DATE("11.11.2018", "%d.%m.%Y") c1) -- тут делаем выборку выходных дней и праздников
    order by dt_day ) a
    Ответ написан
    Комментировать
  • В чем причина странного поведения сайта в разных броузерах?

    @alexalexes
    Издателем сертификата, случайно, является "Kaspersky Anti-Virus Personal Root Certificate"?
    Тогда вырубите свой антивирус и обновите страницу.
    Ответ написан
    Комментировать
  • Как принудительно установить Cookie на своем сайте?

    @alexalexes
    Поставили тег Javascript, а сами пример показываете с подключением CSS, хотя он и рядом не стоял.
    В общем, это предмет целой статьи, изучайте.

    PS: Есть подозрение, что вам нужно настроить на стороне сервера какой-то особый отклик на GET-параметр "wmc-currency=EUR", но вы должны понять, нужно ли вам это, потому что есть другие решения для установки кук и они работают в JS.
    Ответ написан
    3 комментария
  • PascalABC - Простая рисовалка на клавишах, вопросы?

    @alexalexes
    1)
    при нажатии на кнопки происходит задержка, т.е. - нажимаю "вправо", "вправо", "вправо","вниз","вниз", а рисунок идёт "вправо", "вправо","вправо","вправо","вниз". Как исправить?

    Все дело в использовании бесконечного цикла while.
    Такой стиль программирования характерен для микроконтроллеров.
    В высокоуровневых языках пользуются обработчиками событий, в вашем случае нужно добавить обработчик нажатия клавиши и уже в нем расписать действие на событие, а не ждать пока это событие наступит.
    2) То полотно, по которому вы рисуете, должно поддерживать многослойность. Рисунок на одном слое, курсор - на другом. Иначе никак.
    PS: С PascalABC не знаком.
    Решение расписано на общих концепциях любого языка программирования.
    Ответ написан
    Комментировать
  • Можно ли класть на QI беспроводную зарядку телефон без беспроводной зарядки?

    @alexalexes
    Телефоны с QI и без него отличаются только наличием или отсутствием в своем корпусе индукционной катушки и контроллера заряда от этой катушки.
    QI зарядка в свою очередь не микроволновая и не индукционная печь, с ее стороны тоже есть катушка с контроллером, который обладает элементами обратной связи, призванных обнаружить присутствие другой катушки и регулировать мощность подачи тока, чтобы не спалить саму себя и окружающую электронику.
    Не будет по близости другой катушки, тогда зарядка перейдет в режим ожидания с минимальным потреблением тока - на этом все.
    Убедиться в наличии обратной связи, то есть, увидеть разницу токов потребления во время заряда и без, можно, подключив к QI зарядке такой гаджет:
    https://ru.aliexpress.com/item/USB/32887677996.html
    Ответ написан
    1 комментарий
  • Нужен ли слепой 10-ти пальцевый набор?

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

    @alexalexes
    Оборачиваете блок в ссылку.
    <a href="какая-то_ссылка">
    <div class="block__element">
        <img src="<?= SITE_TEMPLATE_PATH; ?>/assets/pictures/image.jpg" alt="" class="block__bg">
        <div class="block__title">
             <span class="block__title-name">Жилищная инициатива</span>
             <p>ул. Попова №150</p>
        </div>
    </div>
    </a>

    или так
    <div class="block__element">
        <a href="какая-то_ссылка">
        <img src="<?= SITE_TEMPLATE_PATH; ?>/assets/pictures/image.jpg" alt="" class="block__bg">
        <div class="block__title">
             <span class="block__title-name">Жилищная инициатива</span>
             <p>ул. Попова №150</p>
        </div>
        </a>
    </div>

    Для тега A обязательным является только атрибут href - его-то роботы и будут анализировать, как точку перехода на другую страницу.
    Еще одно применение тега A - якорь на странице.
    Вы пытались изобразить именно это применение, но делается якорь при помощи атрибута name, а не href.
    <div class="block__element">
        <a name="какой-то_якорь"></a>
        <img src="<?= SITE_TEMPLATE_PATH; ?>/assets/pictures/image.jpg" alt="" class="block__bg">
        <div class="block__title">
             <span class="block__title-name">Жилищная инициатива</span>
             <p>ул. Попова №150</p>
        </div>
    </div>

    Чтобы страница прокрутилась именно до этого якоря при переходе на нее, нужно воспользоваться ссылкой вида "адрес_страницы#какой-то_якорь".
    Ответ написан
  • 4+2 озу или 2+2?

    @alexalexes
    Отсутствие двухканальности не так заметно, как эффект свопа при нехватки памяти.
    Лучше, конечно, добавить памяти по максимуму, чтобы отсрочить то время, когда памяти будет не хватать (если ноутбук доживет до этого времени).
    4 гиг ОЗУ - сейчас может обеспечить только комфортный серфинг сайтов, раскрытых на несколько вкладок.
    PS: Убедитесь что у вас 64-разрядная ОС, или вам не будет в напряг ее поставить, если у вас 32-битная.
    PPS: Попадаются экземпляры материнок (возможно, и в контексте ноутбуков), которые очень странным образом выделяют видеопамять из памяти ОЗУ, так что при определенных конфигурациях планок для ОС остается половина номинального объема ОЗУ, и никакие шаманства с настройками биос не позволяют добиться соотношения Объем установленной памяти = Объем видео памяти + Остальная доступная память.
    Ответ написан
    2 комментария
  • Как правильно сгруппировать массив php?

    @alexalexes
    Если строки в массиве строго форматированы, и путь всегда начинается с "/home/каталог", то, чтобы получить ключ для вновь сформировываемого массива, достаточно функции explode(), если вам нужно более гибко искать название каталога, то придется вычленять его регулярным выражением.
    <?
      $input_arr = [
      "/home/fol1/test.txt",
      "/home/fol1/Browsers/test2.txt",
      "/home/fol2/Browsers/test3.txt",
      "/home/fol2/Browsers/ttre/test2.txt"
      ];
      $out_arr = [];
      foreach($input_arr as $item)
      {
        $folders = explode('/', $item);
        $key = $folders[2];
        if(!isset($out_arr[$key]) || !array_key_exists($item, $out_arr[$key])) // если еще не был такой путь
          $out_arr[$key][] = $item;
      }
      print_r($out_arr);
    ?>
    Ответ написан
    Комментировать