• Как создать мультиградиент с помощью CSS?

    Ответ написан
    Комментировать
  • Как получить одновременно несколько строк с mysql через php?

    @O_Nayre
    WHERE some_id IN (1,2,3,4)
    Ответ написан
    Комментировать
  • Как правильно организовать хранение продуктов для доски объявлений?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Вариантов реализации просто неисчислимое множество, все они имеют свои плюсы и минусы, в зависимости от того что и с чем вы будете комбинировать. Конечно, наихудший вариант - одна таблица со всеми свойствами, вам нужно смотреть в сторону решений с максимальной нормализацией (смотрите материал по нормальным формам бд), и создав схему с нормальной формой, уже в нужных местах произвести денормализацию, необходимую для какого-либо особого функционала.
    Проще говоря - (почти)все свойства объявлений должны храниться отдельно от записей объявления, и связываться через промежуточную таблицу по ключам. то же относится и к свойствам пользователей.
    Ответ написан
    Комментировать
  • Как правильно организовать хранение продуктов для доски объявлений?

    Eridani
    @Eridani
    Мимо проходил
    Есть категории, есть таблица со всеми характеристиками, где у каждой характеристики проставлен родительский ID категории.
    Ответ написан
    6 комментариев
  • Как делаются сайты типа e-katalog?

    dasha_programmist
    @dasha_programmist
    ex Software Engineer at Reddit TS/React/GraphQL/Go
    Посмотри как работают CPA провайдеры, например admitad, actionpay.
    Если вкратце:
    • каждый магазин предоставляет свой фид, обычно в виде xml или yml
    • фиды могут быть огромного размера, формат может быть везде разный, некоторые магазины не выполняют требования и пихают в те или иные поля неверные данные
    • обработка как правило непрерывная: скачал - распарсил - нормализовал - сделал diff затем по новой
    • На сайте цены могут отличаться:
      • из-за рассинхронизации (или на твоей стороне или на стороне магазина,-они могут формировать фид не по запросу, а из кэша)
      • из-за преобразования курсов валют

    Ответ написан
    Комментировать
  • Какой HTML парсер выбрать?

    @DSMechanic
    Достаточно давно пользуюсь phpQuery, но последнее обновление там за 2009-год.
    Пока хватало.
    https://code.google.com/archive/p/phpquery/
    Ответ написан
    Комментировать
  • Как преобразовать ассоциативный массив в обычный?

    Вообще, комментарий был правильный, вы написали эквивалентные массивы, при условии, что в первом случае именно числовые ключи. а не строковые.

    Во всех остальных случаях поможет: array_values()
    Ответ написан
    1 комментарий
  • Как преобразовать ассоциативный массив в обычный?

    NikkyNick1
    @NikkyNick1
    [ 0 => 'a', 1 => 'b', 2 => 'c'] это и есть ['a', 'b', 'c']. Просто в первом случае Вы явно указываете индексы.
    Ответ написан
    Комментировать
  • Неплохо знаю WP но зарабатываю мало, что делаю не так?

    Jump
    @Jump
    Системный администратор со стажем.
    Неплохо знаю WP но зарабатываю мало, что делаю не так?
    Ответ прост - зарабатывать не умеете.

    Многие думают, что фрилансеру для того чтобы зарабатывать достаточно хорошо знать какую-то технологию, но это не так.
    В первую очередь нужно знать как зарабатывать и уметь это делать, а уж после этого неплохо бы хотя бы чуток знать wordpress.

    А просто знание wordpress, даже идеальное денег не приносит, от слова вообще.

    Если у вас нет понимания как зарабатывать - ну как вариант устройтесь в команду, которая этим зарабатывает, поработайте, посмотрите как они это делают. В смысле поиск клиентов, договоренности, взаимоотношения с клиентами.
    Если работаете с низкобюджетными заказами - используйте по максимуму шаблонные решения, минимизируйте время и издержки на один заказ.
    Ответ написан
    4 комментария
  • Обязательно ли сегодня оптимизировать картинки под retina?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    Используйте svg или шрифты для иконок.
    Svg для логотипов по возможности.
    Остальное пусть мылится.
    Ответ написан
    Комментировать
  • Что такое SystemUpadate на windows 10?

    @kalapanga
    Так дальше-то посмотрите - что за файл, где хоть лежит. По-моему, это файл не от Windows, а либо какой-то установленный Вами софт, либо вирус.
    Ответ написан
    3 комментария
  • Я скачал шрифт, а там целый пак шрифтов - Regular, Bold, Light, Italic... И не получается управлять через font-weight, font-style. Как исправить?

    @font-face {
      font-family: "SuperFont";
      src: url("fonts/SuperFont/SuperFontRegular.eot");
      src:
        local("☺"),
        url("fonts/SuperFont/SuperFontRegular.eot?#iefix") format("embedded-opentype"),
        url("fonts/SuperFont/SuperFontRegular.woff2") format("woff2"),
        url("fonts/SuperFont/SuperFontRegular.woff") format("woff"),
        url("fonts/SuperFont/SuperFontRegular.ttf") format("truetype");
      font-weight: normal;
      font-style: normal;
    }
    
    @font-face {
      font-family: "SuperFont";
      src: url("fonts/SuperFont/SuperFontBold.eot");
      src:
        local("☺"),
        url("fonts/SuperFont/SuperFontBold.eot?#iefix") format("embedded-opentype"),
        url("fonts/SuperFont/SuperFontBold.woff2") format("woff2"),
        url("fonts/SuperFont/SuperFontBold.woff") format("woff"),
        url("fonts/SuperFont/SuperFontBold.ttf") format("truetype");
      font-weight: bold;
      font-style: normal;
    }


    body {
      font-family: "SuperFont", sans-serif;
    }
    Ответ написан
    2 комментария
  • Можно ли делать анимированный шаблон email-рассылки?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Можно добавить.
    Если хочется большего попадания в спам-листы.
    Или если доля корпоративных клиентов стремится к нулю.
    Потому что очень часто почтовые сервера режут подобную самодеятельность напрочь - парсер html, который оставит только текст не так уж и сложно найти. Кроме того и клиенты тоже горазды - TB по умолчанию не показывает ничего, Outlook блокирует все, что ему покажется подозрительным.
    Ответ написан
    1 комментарий
  • Можно ли делать анимированный шаблон email-рассылки?

    @codemafia
    Самоотвод
    Можно добавить.
    Не будет корректно отображаться в большинстве почтовых клиентов. Для некоторых устройств нужно делать анимацию, указывая свойства с префиксом. К сожалению, многие почтовые сервисы и клиенты режут такие свойства, ломая письмо.
    Gif анимация в некоторых клиентах не воспроизводится, останавливаясь на первом кадре, а иногда вообще такая графика вырезается. Png и svg некорректно отображается в Outlook, поэтому про них можно забыть. Только jpg, только хардкор.

    Отечественная статистика
    Web version
    Using Chrome 39%
    Other 2%
    Using Firefox < 1%
    Using Explorer < 1%
    Outlook
    Outlook 2000-2003 11%
    Outlook 2010 6%
    Outlook 2016 3%
    Outlook 2013 3%
    Outlook 2007 2%
    Gmail
    Via Gmail's Image Cache 12%
    Other
    Other 8%
    Apple iPhone
    iOS 11 4%
    iOS 10 1%
    iOS 9 < 1%
    iOS 8 < 1%
    iOS 7 < 1%
    iOS 6 < 1%
    Ответ написан
    4 комментария
  • Можно ли отменить отправку формы при попытке замены содержимого контейнера с помощью PJAX в Yii2?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    В данном случае pjax не особо удобно. Он для более простых вещей. Лучше самому написать ajax отправку формы, при этом наверное проще будет убрать клиентскую валидацию вообще и перейти на ajax валидацию.
    Ответ написан
    Комментировать
  • Как в MySQL выбрать записи, у которых последняя дата меньше заданного времени?

    @nozzy
    Symfony, Laravel, SQL
    Не проверял:
    select 
    t1.id,
    t1.phone,
    t1.created_at,
    t2.last_date
    from table t1
    join
    (
     select
     phone,
     max(created_at) as last_date
     from table
     group by phone
    ) t2 on t2.phone = t1.phone
    where t2.last_date <= ....
    Ответ написан
    1 комментарий
  • Как сделать hover при наведение?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Это всё отлично разруливается через css:

    .one:hover + .two,
    .two:hover {
      /* показываем элемент .two */

    UPD. Вынесено из комментариев:

    Вообще класс нужно добавлять.

    Да без проблем - подключайте к .two тот же обработчик ховера, что и к .one:

    $('.one, .two').hover(function() {
      $('.two').toggleClass('show');
    });
    Ответ написан
    1 комментарий
  • Как научиться писать большие javascript приложения?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Большое приложение не является монолитным. Оно состоит из набора маленьких приложений, которые выполняют свои маленькие задачи. Любая большая программа начинается с маленького прототипа, который потом вырастает до галактических размеров. Ну, если получается. Получается не очень часто. Часто получается выбрасывать прототип и писать новый. Со временем учитесь правильной архитектуре с самого начала и тогда разработка большого приложения идёт несколько быстрее.
    Например, я вчера получил ошибку в архитектуре, которую программировал три дня на c#. Пришлось исправлять несколько часов. Знаете какое ощущение? Отличное! Я все-таки решил задачу!
    Ответ написан
    3 комментария
  • Насколько у меня правильный код ООП php?

    @D3lphi
    Здесь плохо всё, к сожалению.

    Начнем с того, что вы неверно наследуете классы. Почему у вас класс, отвечающий за подключение к базе данных является родителем класса, работающим с заказами? Наследование применяется, если можно сказать, что что-то является чем-то. Например, разработчик является работником; компьютер является устройством и тд. Здесь же у вас вообще близко такой логике не получится следовать. Вы должны передавать хотя бы объект для работы с бд через инъекцию, например, в конструктор. В идеале, нужно использовать паттерн репозиторий для работы с базой данных.

    Класс SearchOrder у вас не только выполняет запросы, но еще и работает с данными, хранит состояние этих самых данных, фильтрует данные (strip_tags()). Непорядок. Это все нужно разделять. У вас вообще получаются какие-то богообъекты, которые умеют во все.

    Вы каждый раз повторяете строки с подготовкой запроса, биндингом параметров, отправкой запроса и тд. Не думали, что неплохо бы было написать какую-нибудь обертку и выполнять запросы как-нибудь так:
    $result = $wrapper->select("SELECT * FROM `tablename` WHERE `id` = :id", ['id' => 5]);

    ?

    Вы вызываете connect() в методах. То есть, каждый вызов этого метода будет приводить к установке нового соединения с базой данных, даже если оно уже было установлено. Соединение с базой данных это достаточно дорогостоящая операция.

    Зачем вы используете свойства, если можно обойтись обычными локальными переменными:
    $this->orderID = (int) strip_tags($orderID);
    $this->column = (string) strip_tags($column);
    $this->value = (string) strip_tags($value);

    ?

    Почему вы стриппите тэги у идентификатора? вы настолько не уверены в том, что влетает в функцию:
    strip_tags($orderID);
    ?

    Если вы не используете php 7 и, как следствие, скалярный тайпхинтинг, то должны делать проверки на тип входящего аргумента. Если что-то не так с типом, бросаем исключение (А не приводим его к нужному)! Например:
    if (!is_string($arg)) {
        throw new InvalidArgumentTypeException('string', $arg);
    }

    Это в идеале. Вы не обязаны это делать, конечно же. Но вот такие проверки делают приложение безопаснее. Хотя, опять же, повторюсь, в 2017 нужно начинать новые проекты на php 7.1+.

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

    Кроме всего прочего, почитайте про стандарты оформления кода. Вы им не следуете.

    Вам пока рано писать такие велосипеды. Судя по всему, у вас нет опыта вообще. Посмотрите готовые решения: фреймворки, ORM, изучите их, хотя бы поверхностно разберитесь, как оно работает и уже потом пробуйте что-то сделать, исходя из полученных знаний.

    Желаю успехов!
    Ответ написан
    1 комментарий