Задать вопрос
  • Как изменить наименоваание версии файла загруженную через форму?

    Haotik
    @Haotik Автор вопроса
    PHP мидл без фреймворков
    Нашел решение.
    по самому модулю вызывается обработка действий по подписке
    GetModuleEvents внутри которого вызывалось предустановленное событие для модуля диск.
    Там уже дальше решил вопрос
    Ответ написан
    Комментировать
  • В чем могут быть проблемы крон запуска?

    Haotik
    @Haotik Автор вопроса
    PHP мидл без фреймворков
    Спасибо все кто оставлял комментарий.
    по итогу после изучения материалов от Владислава, переписал крон команду с того формата что написан в доках isp на обычную как если бы запускал из консоли сервера. И вот в таком варианте уже скрипт вернул ошибку апи стороннего сервиса поправив которую все заработало как должно было.

    это правда не объясняет почему отрабатывал ручной запуск скрипта но тем не менее проблема решена
    Ответ написан
    Комментировать
  • Как запустить php скрипт что бы он не отлетел по тайм ауту?

    Haotik
    @Haotik Автор вопроса
    PHP мидл без фреймворков
    Спасибо за помощь.
    В целом в скрипте mysqli после каждого запроса потихоньку кушал память до переполнения из за этого скрипт и выпадал с killed
    сейчас этот момент оптимизировал 4 час скрипт работает нормально.

    Причину почему запрос падал увидел благодаря команде dmesg -T

    И отдельное спасибо что рассказали что у письма есть еще отдельный id по которому можно его идентифицировать независимо от id под которым возвращает письма imap. (подробнее есть в комментариях)
    Ответ написан
    Комментировать
  • Как исправить дублирование заявок c формы Contact Form 7?

    Haotik
    @Haotik
    PHP мидл без фреймворков
    Сталкивался с такой ситуацией когда несколько раз подряд жмали на кнопку отправить и при этом скрипт притормаживает. (От некоторых постоянных клиентов по 3-4 заявки за раз стабильно падало)
    Варианты решения с фронта - добавить к обработчику обнуление формы после сабмита, отключить кнопку что бы не было дублирование клика
    Варианты с бэка - проверять некий ключ формы на уникальность или поле с уже существующими заявками.
    Ответ написан
    Комментировать
  • Как в foreach вывести от дешёвых к дорогим?

    Haotik
    @Haotik
    PHP мидл без фреймворков
    изначально отсортировать массив с продуктами.
    ссылка на базовые функции php
    если я не ошибаюсь то вы приложили код вывода внутри шаблона / шаблонизатора?
    Если же изначальный массив продуктов нужен в незименном виде, создайте доп переменную и отсортируйте / выведите уже ее.
    Ответ написан
    Комментировать
  • Foreach, странное поведение цикла?

    Haotik
    @Haotik
    PHP мидл без фреймворков
    Так если я не ошибаюсь она не в подмассиве $arResult[items] она последний элемент массива $arResult.
    Хотя по вашему примеру должна им быть...

    Извините ошибся )
    Ответ написан
    Комментировать
  • Как сделать вывод информации при нажатии на кнопку?

    Haotik
    @Haotik
    PHP мидл без фреймворков
    Если все таки будете использовать JS то попробуйте ajax.

    Если кратко при нажатии на кнопку аякс скрипт будет отправлять указанные вами данные на бэкэенд, где php обработчик подготовит нужные данные, например выберет нужные строки из БД. (там же лучше все сверстать сразу что бы потом через js не прописывать) и отправит их обратно пользователю и выведет в указанный вами блок.

    Данный способ все таки более предпочтителен чем выкидывать на страницу все возможные варианты сразу и потом их фильтровать. (как размер самой страницы, так и возможно вывод каких то персональных, приватных данных в общем потоке)

    Если же без использования JS
    То.
    1. выводим все данные на страницу с обязательным укзаанием ID блоков.
    2. Кнопки делаем ссылками с указанием id связанного блока Кнопка
    3. В CSS прописываем скрытие всех под элементов - display: none
    4. В CSS используем псевдокласс :target {display:block;}

    span{
        display: none;
    }
    
    span#element:target{
        display: block;
    }


    Логика
    При нажатии на кнопку элемент с указанным в нем ID получает псевдо класс :target который можно использовать в css

    Из недостатков - больше 1 элемента вы на такую цепочку не повесите. Т.е. если надо с "таргет" блока открыть какой то следующий, то следующий откроется, но для текущего слетит таргет и он снова будет не виден.
    Ответ написан
  • Как скрыть ведь label если input value не задано?

    Haotik
    @Haotik
    PHP мидл без фреймворков
    Помимо переделки структуры, можно добавить инпуту явный указатель на его label и далее обрабатывать через js
    <label id="Указатель">
          <input class="input" data-target="Указатель"><span class="input-radio-label__title"></span>
    </label>
    
    <script>
    	$(document).ready(function() {
    		$('.input').each(function(){
    			let $value = $(this).val();
                            let $target = $(this).attr('data-target');
    			if (!$value) {
    				$('#'+$target).css('display', 'none');
    			} else {
    				$('#'+$target).css('display', 'inline');
    			}
    		});
    	});
    </script>


    Вроде такого
    Ответ написан
    Комментировать
  • Как вывести значение из массива в ячейку таблицы циклом foreach?

    Haotik
    @Haotik
    PHP мидл без фреймворков
    Если индексы у элементов совпадают и нет пропусков то можно сделать примерно таким образом $array_2 - Второй массив
    <?php 
     
         		foreach($article as $key => $index) {
            	?> 
                <tr>
                <td><?php echo $index;?></td>
                <td><?php echo $array_2[$key]?></td> 
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
              </tr>
          	<?php
                }
          ?>

    Но лучше бы конечно что бы все данные относящиеся к одному элементу - строке хранились в одном массиве. А сейчас в первом массиве должен существовать некий указатель который будет использоваться что бы выбирать значения из второго массива. - в бд это называют ключевым полем
    Ответ написан
    Комментировать
  • Как определить откуда DDOS в локалке?

    Haotik
    @Haotik Автор вопроса
    PHP мидл без фреймворков
    Если кому интересно нашел решение но немного с другой стороны так сказать.
    После общения с провайдером удалось выяснить какие порты обзваниваются и сделать выводы что искали медиа порты под видео каналы. Т.Е, прозванивали белые IP и искали видео-регистраторы/камеры без защиты которые можно позырить. Ну а дальше планомерный перебор у кого что стоит на компах под видом планового ТО и нахождение виновника.
    Ответ написан
    Комментировать
  • Ошибка 709 при установке сетевого принтера?

    Haotik
    @Haotik Автор вопроса
    PHP мидл без фреймворков
    В общем удалось найти решение...
    1. Выставил на хосте галку разрешить виндоус управлять принтером по умолчанию.
    2. Через управление учетными записями виндоус создал дополнительного пользователя который используется по сети (говорю об этом Доступ к диспетчеру учетных данных) в качестве хоста указал имя самого себя
    3. Спорный пункт но тем не менее одно из действий которое привело к решению
    Вырубил в биосе ускорение загрузки (Не связано вроде как но это одни из действий после которого все заработало)
    4. Перезагрузка компьютера.
    Ответ написан
    1 комментарий
  • Как подключить регистрацию к заполнению веб формы Битрикс?

    Haotik
    @Haotik Автор вопроса
    PHP мидл без фреймворков
    Разобрался. В решении хранение корзины было через сессию.
    И при регистрации происходила ее очистка.
    Выделил то что отвечало за товары и при регистрации добавил копирование из старой сессии в новую
    Спасибо всем за участие
    Ответ написан
    Комментировать
  • Как вызвать отрисовку корзины в новом шаблоне битрикса?

    Haotik
    @Haotik
    PHP мидл без фреймворков
    Не совсем красивый способ но в скрипте удаления товара из верхней корзины вызывается вот такой код
    ....
    reloadTopBasket('', $('#basket_line, #basket_line_fixed, #basket_line_fixed_mobile'), 200, 2000, 'N', $(this));
    ...
    У меня работает штатно и корзина обновляется без каких либо проблем
    Ответ написан
    Комментировать
  • Почему в POST/GET могут не попадать hidden value?

    Haotik
    @Haotik Автор вопроса
    PHP мидл без фреймворков
    Проблема оказалась в сторонней js библиотеке и кэше cms
    библиотеку отрубили уже "давно" (за час до того как вопрос написал) однако в кэше она продолжала крутиться и ломала код.

    Всем спасибо кто интересовался
    Ответ написан
    Комментировать
  • Нужно ли писать текст в отдельном теге или достаточно положить его в div?

    Haotik
    @Haotik
    PHP мидл без фреймворков
    Помимо того что есть некоторые "договоренности" какой тэг для чего нужен
    нюансы в стилях по умолчанию в каждом браузере
    т.е. тэг имеет предустановки по отступам к примеру в каждом браузере
    обычно это сбрасывается при помощи нормализации

    Стили по умолчанию для p (будут выведены отступы снизу и сверху автоматом )
    display: block;
    margin-top: 1em;
    margin-bottom: 1em;
    margin-left: 0;
    margin-right: 0;


    Стили по умолчанию для div (два дива склеятся)
    display: block;

    Ну и вопрос вложенности тэгов.
    обычно применяется тэг обертка и в нем разное (связанное по смыслу) содержимое ложится в свой тэг для того что бы можно было их по разному изменять и позиционировать используя контейнер а не по отдельности каждый элемент
    <style>
    	.left_block{
    		width: 50%;
    		float: left;
    	}
    	.right_block{
    		width: 50%;
    		float: right;
    	}
    </style>
    <div class="container">
    	<div class="left_block">
    		<p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Eaque ex voluptatem dolores sequi animi non magni ipsam dignissimos quas molestias at consequuntur consequatur dolore explicabo minima, recusandae deleniti officiis voluptatum.</p>
    		<button>Посмотреть подробнее</button>
    	</div>
    	<div class="right_block">
    		<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Voluptate pariatur omnis illum nam voluptates corrupti iure quis amet. Soluta hic modi ad, corrupti maiores harum rem incidunt explicabo, nobis accusamus?</p>
    		<button>Посмотреть подробнее</button>
    	</div>
    </div>

    два блока рядом через стили можно передвигать весь блок
    Ответ написан
    Комментировать
  • Почему слетают стили при загрузке страницы?

    Haotik
    @Haotik Автор вопроса
    PHP мидл без фреймворков
    Нашел решение.
    Как оказалось достаточно самому селекту который вставляется на странице прописать CSS
    .класс {
     display:none;
    }

    Тогда и нормально вешается обработчик и блок скрывается не зависимо от того как срабатывает JS
    Ответ написан
    Комментировать
  • Как сделать замену символа внутри ввода select2?

    Haotik
    @Haotik Автор вопроса
    PHP мидл без фреймворков
    Нашел решение если кому интересно обработчик вешать так
    $(document).on('keyup', '.select2-search__field', function (e) { 
    код
    }
    Ответ написан
    Комментировать
  • 1с битрикс как вывести результаты поиска в персональных рекомендациях?

    Haotik
    @Haotik Автор вопроса
    PHP мидл без фреймворков
    Вопрос решен.
    Сверстал предпросмотр самостоятельно и сделал врезку в нужном месте в шаблон.
    Ответ написан
    Комментировать
  • Как формулировать запросы REST API для YII2?

    Haotik
    @Haotik Автор вопроса
    PHP мидл без фреймворков
    Нашел ответ, внутри yii\rest\ActiveController
    указан список action которые нужно добавлять после имени своего контролера, т.е. для моего случая
    получить пользователя с id 1
    php.english.local/index.php?r=users/1
    должно быть так
    php.english.local/index.php?r=users/view&id=1
    Ответ написан
    Комментировать
  • Как можно использовать Traits для установки переменных классов?

    Haotik
    @Haotik Автор вопроса
    PHP мидл без фреймворков
    Спасибо за идеи, но удалось реализовать этот вариант
    function setVar($name, $value) {
    $this -> $name = $value;
    }
    $key -> setVar('count', $_GET['count']);

    Всем спасибо
    Ответ написан