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

    @tgarl
    Скорее всего поврежден urlrewrite или htaccess файлы. Может что и глубже, но начинайте с проверки их.
    Ответ написан
    1 комментарий
  • Как заставить работать кририлицу в dompdf 2.0.4?

    @tgarl Автор вопроса
    В общем вот решение, нашел, рапишу с нуля для тех кто без композера.
    1. Качаем релизную версию с гита https://github.com/dompdf/dompdf/releases
    2. Берем файл load_font.php из утилит с гита dompdf, отсюда https://github.com/dompdf/utils/tree/master и кидаем в корень DomPDF, куда загрузили релиз
    3. открываем терминал, не знаю можно это без терминала повторить или нет
    4. В терминале переходим в корень DomPDF и запускаем php load_font.php - если видите текст справки - то скрипт работает.
    5. Скачиваем файлы шрифтов, я скачивал тут https://bestfonts.pro/font/arial
    6. Далее, для добавления шрифта используем справку, там четко все написано, но для примера пишу в терминале
      php load_font.php arial fonts/ArialMT.ttf fonts/Arial-BoldMT.ttf fonts/Arial-ItalicMT.ttf fonts/Arial-BoldItalicMT.ttf - где arial - название шрифта (если название с пробелом пишите в кавычках), далее по порядку перечисляем адреса, где находятся ваши шрифты. Первый ArialMT.ttf - это обычный шрифт, далее жирный, далее курсив, далее жирный-курсив. Последние три не обязательны - если они не поддерживаются.
    7. После запуска видим - Generating .... - значит все ок
    8. После идем в vendor/dompdf/dompdf/lib/fonts находим файл installed-fonts.dist.json
    9. Добавляем в конец списка "arial": { "bold": "Arial-BoldMT", "bold_italic": "Arial-BoldItalicMT", "italic": "Arial-ItalicMT", "normal": "ArialMT" }

    Всё, шрифт подхватился и заработал. Ура.
    Ответ написан
    Комментировать
  • Как убрать из title теги html в битрикс?

    @tgarl
    Раз вы решили использовать теги в названии, что категорически плохое решение, не предназначено это поле для тегов, то отключите тайтлы у компонента и в шаблоне(в эпилоге) сами его устанавливайте через setTitle
    Ответ написан
    Комментировать
  • Как получить трек вызовов методов и время их выполнения?

    @tgarl Автор вопроса
    В общем подобью итог, не смог я трек вызовов собрать, но по другой задаче потребовалось собрать все вызовы событий и вот тут решилась и текущая задача. У event:: кроме send есть еще и дебагер свой и вот там вылезло событие модуля который давно не используется, но не удален, события этого модуля затрагивают изменение элементов, заказов и корзины и делает запрос к стороннему сервису, который недоступен. После зачистки сайт работать в 2 раза быстрее стал ну и мой класс тоже перестал тупить.
    Ответ написан
    Комментировать
  • Как выполнить функцию из строки в PHP?

    @tgarl
    битрикс решает эту проблему вот так:
    protected static function __Unpack($arProduct, $strUnpack)
    	{
    		if (empty($strUnpack))
    			return false;
    		return eval('return '.$strUnpack.';');
    	}
    Ответ написан
    Комментировать
  • Как присвоить каждому экземпляру товара свой штрихкод?

    @tgarl
    вам придется отказаться от стандартного(если используется) добавления в корзину товара и написать свое, где каждому товару отправляемому в корзину присвоить дополнительное свойство с вашим штрихкодом, и кстати продумать а откуда он будет браться, чтобы быть уникальным. Тогда каждый товар будет идти отдельной позицией.
    В корзине тоже самое проделать с увеличением или вообще убрать возможность изменния количества.
    Ответ написан
    Комментировать
  • Как вывести все дополнительные фото?

    @tgarl
    вот это - $arItem[PROPERTIES][MORE_PHOTO][VALUE] - это массив
    А с массивом работают через циклы
    создайте цикл и все, не знаю как у вас должно получится в итоге, но принцип такой:
    foreach($arItem[PROPERTIES][MORE_PHOTO][VALUE] as $photo_item){
    $img_resize_path = CFile::ResizeImageGet(
                               $photo_item,
                                array('width'=>'100', 'height'=>'150'),
                                BX_RESIZE_IMAGE_PROPORTIONAL
                            );
                             ?>
                            <div class="main__right-bottom-item">
                                <img src="<?=$img_resize_path[src]?>" alt="img" class="main__right-bottom-img">
                            </div>
    <?}

    дальше уже смотрите как вам нужно
    Ответ написан
    Комментировать
  • Bitrix, почему не отображается страница?

    @tgarl
    Вот нет чтобы объяснить нормально, так сразу наймите специалиста...

    В целом, если прочитать комменты, общую проблему все же указали. Проблема в том что содержимое страницы некорректно сохранили. Через визредактор или нет - тут не факт, автор не сказал в какой именно момент появилась ошибка.
    Чтобы поправить нужно открыть страницу в режиме php(через админку сайта - структура файлов) или по фтп(что более правильно) и пройтись по коду, закрыв где нужно теги и поправив ошибки.

    Вообще такая ошибка часто встречается когда на странице идут вперемешку html и php и правки вносят через визредактор - в этом случае при правке через визредактор, происходит некорректный разбор кода и его сохранение. Поэтому обычно все оформляют либо в компоненты и их размещают на странице либо используют включаемые области (в этом случае если вы сломаете то только маленький кусочек во включаемой области, а не всю страницу).
    Ответ написан
    Комментировать
  • Как поправить сохранение сессий?

    @tgarl Автор вопроса
    Нашел решение: необходимо для групп пользователей прописать Маска сети для привязки сессии и Маска сети для привязки сохраненной авторизации 0.0.0.0
    Ответ написан
    Комментировать
  • Как отфильтровать ассоциативный массив?

    @tgarl
    Сразу в фильтр не пробовали добавить?
    $my_elements = CIBlockElement::GetList (
          Array("ID" => "ASC"),
          Array("IBLOCK_ID" => $iblock_id, 'PROPERTY_SHOW'=>'Y'),
          false,
          false,
          Array('ID', 'NAME',  'PROPERTY_PRICE', 'DETAIL_PAGE_URL')
        );
    Ответ написан
    Комментировать
  • Как пересчитать заказ с учетом всех скидок с использованием события OnSaleOrderSaved?

    @tgarl Автор вопроса
    Я был не прав что отказался от before. Нужно все же на событии до сохранения. Но беда остается, что нет пересчета окончательной цены с учетом скидок на доставку. По логике пересчет должен производится сам, но этого не происходит. Заказ по своей цене, доставка по своей.
    Ответ написан
    Комментировать