Задать вопрос
  • Пишет Class not found. Как правильно определить пространство имен?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Эээ... а что вы сделать то хотите ?

    Я вот о чем говорю: при использовании ООП в bitrix вы сталкиваетесь сразу с 2 большими стенами - применение ооп и битрикс. Прежде чем разбирать конкретный код хотелось бы немножко просветить вас в самой архитектуре битрикса.
    В терминологии Битрикса он использует концепцию MVC, но в рамках битрикса, а это означает что на любой странице где вы общаетесь с ним вы должны подключить пролог (хотя бы prolog_before) и эпилог (хотя бы epilog_after, ну в идеале). Именно "компонент" и является тем самым MVC (Вообще это скорее VC + row access, так как модели по сути нет). Есть класс CBitrixComponent (контроллер) и класс CBitrixComponentTemplate (который совместно с файлами шаблона и образует view).

    Вызов компонента происходит из глобальной переменной $APPLICATION путем метода IncludeComponent. До версии 14 (если мне не изменяет память) вообще не было такого понятия как class.php, где можно было отнаследоваться от CBitrixComponent и перекрыть какие-нибудь функции (шаблонизатор к примеру сменить), а после нового ядра d7 появилась возможность отнаследоваться от CBitrixComponent и в файле class.php разместить свой код (таким образом мы сохраняем и class.php с новыми функциями и component.php с логикой), а перекрывая метод executeComponent вы можете избавиться и от component.php.

    С точки зрения архитектуры (рекомендую изучить документацию, она очень обширна и познавательна) все компоненты должны лежать в так называемом пространстве имен, чем обычно служит ник-нейм или название компании (Естественно начинается не с цифры и содержит только латинские буквы), которые в свою очередь могут располагаться в /bitix/components/#пространство_имен#/#название_компонента#/

    Теперь построчно разберем Ваш вопрос:

    Вы положили свой класс сюда: /bitrix/templates/app/Pi/Test.php, что является неверным с точки зрения архитектуры, так как поместили класс отвечающий за контроллер в папку с шаблоном. Если вы не пишете свой модуль вы можете подключить его например в /local/php_interface/classes/ (пример надуманный, можете просто в /local/php_interface положить или сразу в init.php), однако для этого вы должны будете написать autoloader, так как у битрикса он работает только для модулей. Предположим вы в init.php напишете грубый require_once с файлом.

    Затем вы делаете следующее:

    Что является неверным, так как по сути вы обьявляете неймспейс для файла и это с точки зрения php выглядит вот так в конечном итоге:

    class app\Pi\test extends app\Pi\CBitrixComponent
    {
    // ...
    }

    А класса app\Pi\CBitrixComponent не существует. Так что вам нужно поправить пример хотя бы так:

    class test extends \CBitrixComponent

    Настоятельно рекомендую прочитать документацию или хотя бы посмотреть видео с академии битрикс. Сама система не подарок, а другой программист который увидит ваш код будет говорить что это битрикс виноват.
    Ответ написан
    Комментировать
  • При экспорте инфоблока как быть с картинками?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Жаль что с опозданием, но может другим поможет:

    При экспорте инфоблоков вы должны указать xml-файл экспорта (или csv). Например экспортировать инфоблок "Новости" из типа инфоблока "Новости" в файл news.xml, в таком случае будет создан/изменен существующий файл news.xml и будет создана папка news_export содержащая изображения из инфоблока (собственно их пути и будут прописаны в xml или csv)
    Ответ написан
    Комментировать
  • Максимальный индекс производительности Битрикс 1С?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Самый большой индекс что я видел это 75 попугаев, на собственном сервере

    А вообще индекс производительности это обратная от среднего времени отклика. Например, при среднем времени отклика 0.0216 секунд индекс производительности будет показывать где-то около 46.3.
    Ответ написан
    Комментировать
  • Как сделать в форме отправку прикрепленного файла в (bitrix)?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Если не хотите писать рутинные вещи, то для таких вещей в 1С-Битрикс есть Веб-формы. Один раз делаете "натяжку" дизайна на форму, а потом плодите сколько-хотите вопросов.

    А вообще у сервиса веб-форм есть свои плюсы и минусы:
    + Один раз настраивайте форму и "масштабируйте" (увеличивайте число полей) просто
    + Для форм есть своя логика и о валидации не надо думать, большая часть работы сделана за вас
    + В них заложена логика обмена с crm и права доступа
    - Работа модуля не совсем проста, придется покопать документацию
    - О валидации все-таки нужно думать, так как шаг влево и проще будет написать на голом php
    Ответ написан
    Комментировать
  • Как настроить обработку адресов в Битрикс?

    gromdron
    @gromdron
    Работаю с Bitrix24
    А с чем связан такой необычный кейс ? Может быть цель, которую вы преследуете, решается другими способами ?
    Ответ написан
    Комментировать
  • Избранные товары в Битрикс?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Давно не работал с интернет-магазинами на битриксе, но я предположу что вариантов 3:

    1) Он же наиболее правильный - прописать таблицу/инфоблок для таких товаров и разработать для них вьюху.
    2) Нещадный вариант - приспособить под это дело "отложенные товары". Механика вроде как одинаковая но вдобавок пару плюшек с уведомлениями
    3) Невероятный - в последних битриксах эта функциональность есть в коробке.
    Ответ написан
    Комментировать
  • Как верно отрабатывать ошибки для ответа API?

    gromdron
    @gromdron
    Работаю с Bitrix24
    А если используется rest, то можно возвращать просто текст и 400 ошибку.
    Ответ написан
    Комментировать
  • Почему PHP бросает ошибки в Windows-1251?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Если вручную поставить в браузере кодировку Кириллица (Windows), то текст нормально отображается.

    Именно. PHP и возвращяет вам ответ в UTF-8, однако ваш браузер читает и пытается отобразить его как windows-1251.

    А что касается кириллицы, то D:\��� �������\ - вы запускаете тестовый сервер на windows ? Для теста вы и так знаете где он лежит, а вот для production все-таки стоит перейти на linux и избавиться от кириллицы.
    Ответ написан
  • Как убрать лишние отступы?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Ну как минимум - тег footer - bottom: 0; height: auto;

    + перестаньте указывать bottom, top, left, right, пользуйтесь margin, padding, text-align
    Ответ написан
    Комментировать
  • Где взять уроки по SEO оптимизации?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Есть бесплатный центр в Москве, где можно не только посетить семинары, но и посмотреть записи предыдущих семинаров и т.п.

    CyberMarketing.ru
    Ответ написан
    Комментировать
  • Где пройти обучение базовым знаниям для не специалиста в области IT?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Если из Москвы, попробуйте пройтись по курсам CyberMarketing.ru.
    Или же обратиться к знакомым IT'шникам.
    Так же можно задавать вопросы тут.
    Ответ написан