• Есть много картинок и хочется при ховере показывать цифру, но не хочется писать цифры всем картинкам Возможно сделать проще?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    если все цифры по порядку -
    1) задайте класс или дата аттрибут для всех картинок на которые надо задать цифры
    2) по загрузке документа выбираете все картинки с этим свойством, в чистом жс получите сет, в жквери сразу итерэйбл объект. Для сета используете Array.from(ваш_сет), получите массив, и уже на массиве можете использовать цикл, чтобы задать каждой картинке номер.
    3) В цикле вешаете событие onMouseOver на ваши картинки, к событию назначаете функцию которая будет показывать текущий номер картинки.
    Ответ написан
  • Как достать переменную из класса в var_dump (код внутри)?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Артур,
    Но вопрос в том, насколько это правильно, с точки зрения паттерна фабричного метода.
    Чет вы сильно путаете теплое с мягким... Внутренняя реализация классов созданных фабрикой НИКАК не влияет на "фабричность". Паттерн относится только к методу создания готовых объектов по определенным условиям. Какие это объекты вообще не суть важно. По сути они могут быть абсолютно разные, просто по логике чаще всего это однотипные объекты, отличающиеся в настройках или внутренней реализации (например все они реализуют один интерфейс, но внутри работают по разному).

    Что касается вашего кода - как я уже сказал, для вашего случая(проверки доступа для текущей роли) достаточно задать метод проверки доступа. Как то так:
    //$role = $_SESSION['role'];
    $role = 'moderator';
      class Role{
         public function checkPermission($action)
         {
             if(isset ($this->$action))
             {
               return $this->$action;
               }
              return false;
       }
    }
    
      class admin extends Role{
        protected $addItem = true;
        protected $editItem = true;
        protected $deleteItem = true;
      }
      class moderator  extends Role{
        protected $addItem = true;
        protected $editItem = true;
        protected $deleteItem = false;
      }
      class publicator  extends Role{
        protected $addItem = true;
        protected $editItem = false;
        protected $deleteItem = false;
      }
    
      class Factory{
        public static function createUsers($role) : Role{
          if(class_exists($role))
            return new $role;
          else
            echo ("Роль".$role."отсутствует");
        }
      }
    
      $login = Factory::createUsers($role);
      var_dump($login);
       
    // try to use in code:
      if ($login->checkPermission('editItem')){
         echo 'lets edit!';
      };
    Ответ написан
  • Uncaught SyntaxError: Unexpected end of JSON input?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) sendAjaxForm укажите сразу тип возвращаемого значения json, зачем эти танцы с хтмл который парсится в жсон...
    2) Загадка на сообразительность: Если логин есть и пользователя с таким логином нет - что вернет json_encode($errors);?
    Ответ написан
    1 комментарий
  • Как передать методом GET выбранный параметр из datalist?

    ThunderCat
    @ThunderCat Куратор тега HTML
    {PHP, MySql, HTML, JS, CSS} developer
    Ответ написан
    Комментировать
  • Как в MySQL создать атоматическое заполнение полей?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    2 комментария
  • Почему Open Server пишет, что $_POST не существует?

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

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Как вариант я думал написать говнокод, который на PHP преобразует первоначальную дату диапазона из 26.05.2020 в "2020-05-26 00:00:00" а конечную дату в "2020-05-27 23:59:59" а потом сравнивать, но помоему это какая-то дичь.
    То есть по вашему преобразовывать ВСЕ строки таблицы для сравнения в формат НЕ ПОДДЕРЖИВАЕМЫЙ интерфейсом бд это ок, а 2 значения привести в стандарт - не комильфо...

    Обратите внимание на ответ Rsa97, Даты сравниваются как строки, по этому и сравнение идет именно в таком формате, от года к дате. Ваше преобразование делает строки вывернутыми по смыслу, то есть сортировка идет по дате дня, год "как бы вообще не учитывается".
    Ответ написан
    Комментировать
  • Можно ли составить 2d куб из картинок php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    почему вы квадрат так странно назвали? А 3д куб думаю можно через канвас, например вот с библиотекой Three.js.
    Ответ написан
    Комментировать
  • Прошу взглянуть на мой код и подсказать где я возможно не прав?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    <input type="file" name="avatar" accept="image/gif, image/jpeg">
    облегчает человеку выбор верного формата

    if(isset($file))не гарантирует что файл загрузился, по этому нужно проверять еще и еррор, перед тем как передавать несуществующие свойства в функцию

    $permitted_chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    ваще жесть, про хэш не слышали? Тем более еще и в разных регистрах называть файлы...

    В остальном обычный такой код из начала нулевых, пхп4 и вот это все...
    Ответ написан
    Комментировать
  • Как сделать ссылку со словами из заголовка?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Это называется slug, простейший метод - использовать класс Transliterator и preg_replace + strtolower для нелитералов.
    Ответ написан
    Комментировать
  • Долгий ответ сервера на Opencart в 5000 мс?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Без навыков и подтираться то не выйдет... Просто кнопки "сделать хорошо" там нету. Нужно проверить бд на наличие необходимых индексов, а по уму еще сначала тайминг кода с отсечками до/после запросов/циклов/критичных участков. Так что просто "стукнуть сервер посильнее" не прокатит.
    Ответ написан
    Комментировать
  • Почему из MySQL базы данных не выводится login?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    сессия хранит только элементарные типы, представляемые в виде строк. Что логично, ибо это суть файл, либо аналогичное хранилище. Для того чтобы работала подобная магия нужно:
    а) удалить из объекта все ссылки на ресурсы, которые будут мешать сериализации, если таковые имеются
    б) сериализовать объект и записать в сессию

    и в обратном порядке для чтения:
    а) Загрузить класс объекта который вы будете получать (иначе магии не получится)
    б) Десериализовать из сессии и добавить в объект все ссылки на нужные ресурсы, например ссылку на объект бд.
    Ответ написан
    Комментировать
  • Как объединить массивы json в Mysql?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    concat, group_concat, хотя понятно что это все кривые решения и по уму с самого начала у вас должно все это хранится как многие ко многим.
    Ответ написан
    Комментировать
  • Многомерный SimpleXMLElement object в массив php - как?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Классическое решение прям с мануала:
    $xml = simplexml_load_string($xmlstring);
    $json = json_encode($xml);
    $array = json_decode($json,TRUE);
    которое имеет однако несколько побочных эффектов, например не видит [CDATA[ ]] ноды или видит как пустые элементы...
    Ответ написан
  • Как передать скрытые значения ajax?

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

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    TL;DR : на вп вы можете пилить сайты сами, иногда пользуясь услугами фрилансеров, это выйдет эффективнее и дешевле.

    Можно ли обойтись без CMS в сегодняшних реалиях, и если да, то как выглядит разработка сайта?
    Сильно зависит. Есть ооочень много подходов, от "дядя Коля, че ты без сайта ходишь как дурак, давай я тебе на джумле быстро сайт за 50 баксов сделаю, гыы...", до уровня серьезных студий, где пишут серьезные проекты на современных фреймворках и с хорошей продуманной архитектурой, и ценник начинается от десятков тысяч убитых енотов, но за эти деньги вам сделают все: тз, дизайн, фирменный стиль, документацию на проект, технические требования, подбор серверной архитектуры етц... Как вы сами сказали - рынок обширен и, добавлю, весьма неоднороден.

    Если я пишу сайт к примеру на WP, то как обстоят дела с вёрсткой, что могут программировать фронтэндщики, а что бэкэндщики? Просто много где пишут, что на WP, можно самостоятельно создать сайт, не зная особо программирования, где могут фигурировать программисты?
    Типовой сайт без особого дизайна и функционала действительно можно поднять в одно рыло буквально за день. Если заморочиться с дизайном - можно либо взять/купить готовые темы, коих сегодня мульён и 2 сверху, или дизайнеру заказать за ценник примерно х2 от готового дизайна, ну, зависит еще от требований конечно. Программист нужен в случаях когда нужно реально что-то такое, что редко встретишь или какая-то специфическая задача под нужды заказчика, все типовые "хотелки" обычно решаются готовыми плагинами. Естественно что все эти прелести имеют серьезный изъян в виде хреновой производительности и кошмарного кода, лезть в который не хочется даже в костюме полной химзащиты.

    Могу ли я к примеру написать сайт грубо говоря в блокноте, а потом перенести его на WP?
    Странный вопрос... скорее всего нет, так как ваш код не будет вписываться в движок вп. И обычно делают наоборот - берут вп и вносят изменения и дополнения на основе его функций.
    Ответ написан
    Комментировать
  • Ajax несколько форм и перезагрузка страницы?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    охохох...
    $("#editSpecification-<?=$tovar_id?>").submit(function(e){...
    тут вы повесили листенер на ОДИН конкретный элемент формы, так как тут то у вас цикла нет! Замените селектор на form или на класс формы. Внутри соответственно вы спокойно получите эту конкретную форму как $(this), собственно ее сереализуете и все, профит!

    а если править второе и последующие то страница просто перегружается
    это понятно, так как на них не повешен листенер, форма нормально так себе субмитится, превентДефаулта то на ней нету...
    Ответ написан
    4 комментария
  • Цена за количество товаров?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    откуда взялся $key? Сделайте вар_дамп вашего $tmp и посмотрите что и как там лежит, делов то...
    Ответ написан
    Комментировать
  • Как проще написать удаление пробелов, тегов, и преобразование в нижний регистр?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    во первых - загадочная строка с $arr = str_replace('/\s/','',str_split($pin)); будет работать весьма неоднозначно, хотя бы по тому что str_split() не поддерживает работу с мультибайтовыми кодировками. Во вторых она там конечно же нафиг не нужна, так как str_replace() работает со строками в третьем аргументе, но зато не работает с регулярными выражениями в первом, по этому эта строка у вас вообще никак не работает. В остальном все вполне в лучших традициях бредогенераторов.

    Коротко: Если у вас есть поля определенных типов - проверяйте их отдельно на совпадение нужным типам, для этого есть фильтры и хелперы. Экономия на буквах была актуальна в 17 веке, когда бумага дорогая была.
    Ответ написан
    Комментировать
  • Как в кусок кода интегрировать дополнительный кусок правильно?

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