Задать вопрос
  • Как привести Битрикс до нормального состояния?

    gromdron
    @gromdron
    Работаю с Bitrix24
    Эм... давайте я отвечу (если не от всех, то хотя бы от лица себя и своих коллег) "битриксойдов" - никак.

    Поясню свой ответ: дело не в битриксе, а в подходе. Именно этого и не понимают многие разработчики, которые после Yii, Zend, Symfony и т.д. видят Bitrix.

    Во-первых, у продукта (я имею ввиду Битрикс24, и именно продукт, а не CMF/CMS) есть определенная парадигма: User First & Business insight.

    User First - это означает, что для реализации базовых вещей, например бизнес-процессы, пользователь с правами администратора должен иметь возможность сделать 80% работы без привлечения разработчика (читать - без привлечения, а я не без опыта/знаний/навыков/образования). Реальность такова, что Вы не сможете за столь короткий срок, сделать ВСЕ ТО ЖЕ САМОЕ, НО ЛУЧШЕ (я не сомневаюсь в Ваших способностях, но одному человеку за измеримые 1-5 лет это практически нереально).

    Business Insight - это означает, что в продукте уже заложена логика, а "кривизна результата" зачастую складывается из того, что Бизнес диктует свои условия (Продукт не для всех, но каждый пытается его использовать как хочет и как умеет). Как пример: купив зубную щетку Вы можете чистить ей зубы И/ИЛИ мыть машину, но согласитесь машину мыть неудобнее, но "бизнес решает не тратиться и на имеющуюся щетку нацепить тряпку побольше и ручку подлиннее".

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

    В-третьих, а давно ли Вы видели битрикс? Сейчас он движется в нужную сторону и, я Вас уверяю, если вы подключите к нему Yii/Silex и т.п., ничего кроме бОльшего "говнокода" Вы не получите. Я не говорю о том, что Вы плохой программист, но что будет после Вас? Вот уволитесь Вы, а это все достанется очередному бедолаге и ему с этим жить.
    Ответ написан
    4 комментария
  • Как вывести ссылку на скачивание файла 1c-Bitrix?

    sabramovskikh
    @sabramovskikh
    var_dump($arItem);
    Много нового узнаешь
    Ответ написан
    Комментировать
  • Перехват обращение к свойству объекта?

    by25
    @by25
    Веб-разработчик
    Обращаться к свойству через геттер/сеттер.

    class Foo {
        private $param;
    
        public function getParam() {
            //... тут своя логика
            return $this->param;
        }
    }
    Ответ написан
    Комментировать
  • Как в Bitrix искать элементы инфоблока по правилу «или»?

    Параметр arFilter может содержать вложенные фильтры. Ключом массива вложенного фильтра должно быть число. Например:
    $arFilter = array("NAME" => "A%", array(..<здесь пары "поле" => "фильтр">...), "IBLOCK_ID" => $IBLOCK_ID);

    Вложенность фильтров теоретически не ограничена.
    Так же условия фильтра могут объединяться не только по условию "И", но и "ИЛИ". Для этого в качестве фильтруемого поля надо указать "LOGIC". Может принимать два значения: "AND" и "OR". По умолчанию - "AND". Например выберем маленькие зрелые и большие не зрелые апельсины:
    $arFilter = array(
        "IBLOCK_ID" => $IBLOCK_ID,
        "SECTION_CODE" => "orange",
        "INCLUDE_SUBSECTIONS" => "Y",
        array(
            "LOGIC" => "OR",
            array("<PROPERTY_RADIUS" => 50, "=PROPERTY_CONDITION" => "Y"),
            array(">=PROPERTY_RADIUS" => 50, "!=PROPERTY_CONDITION" => "Y"),
        ),
    );

    CIBlockElement::GetList()
    Ответ написан
    Комментировать
  • Перетяжка шаблона стандартных компонентов битрикса?

    Logic87
    @Logic87
    Программист/администратор сайтов на 1С-Битрикс.
    Для успешного выполнения задания, вам нужны знания php, логика, ловкость, терпение.
    Изменяйте код, смотрите результат в браузере. Пару десятков раз натяните верстку на Битрикс и будете как рыба в воде.
    Ответ написан
    2 комментария
  • Вывести языковой файл в поле Описание товара. Как сделать туда вставку php?

    @SharuPoNemnogu
    не язык плохой, программисты такие...
    сделайте теги типа {{MY_TEST}} и при сохранении на сервере парсите их из контента и заменяйте на GetMessage('MY_TEST');
    Ответ написан
    9 комментариев
  • Синхронные ajax запросы вешают страницу, как исправить?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Вы видно не очень поняли принцип работы коллбэков. Поскольку они вызываются асинхронно, то return там не применим. Нужно вызывать следующий шаг, примерно так:
    $.ajax({
        success: function(data){
            console.log("ok");
            //Тут провожу обработку данных, использую данные полученные с сервера
            nextStep(data);
        }
    });
    
    function nextStep (data) {
        // вот тут ваши данные будет доступны
    }
    Ответ написан
    Комментировать
  • Как сделать выборку?

    @AlikDex
    для начала установите дату в мускуле в формате date, чтоб можно быть вывести в нужном формате (например добавить поле dayDate) и сделать запрос типа:
    SELECT *, DATE_FORMAT(create_at,'%d/%m/%Y') AS dayDate 
    FROM table
    ORDER BY `create_at` DESC

    Далее в пхп выводишь, что-то типа:
    $previousDate = "";
    foreach($posts as $post) {
       if ($post['dayDate'] !== $previousDate)
          echo "<b>" . $post['dayDate'] . "</b><br>";
       echo $post['title'] . "<br>";
       $previousDate = $post['dayDate'];
    }
    Ответ написан
    1 комментарий
  • Как разместить на странице две версии макета?

    shambler81
    @shambler81 Куратор тега 1С-Битрикс
    Битрикс А-Б тестирование
    www.1c-bitrix.ru/products/cms/features/abtest.php
    bitrix/admin/abtest_admin.php?lang=ru
    Ответ написан
    Комментировать
  • Как реализовать?

    bigton
    @bigton
    Web-программист
    Вот тут всё подробно расписано php.net
    Ответ написан
    1 комментарий
  • Редирект пользователя при заходе с мобильного?

    kawabanga
    @kawabanga
    печеньку храните, что выбор сделан, спасибо.
    Ответ написан
    6 комментариев
  • Правильно ли я делаю цикличную проверку полей?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    Откуда Вы взяли такой уродливый код?
    Вот посмотрите как вариант на это codepen.io/bingo347/pen/ZWyxGb
    Ответ написан
    2 комментария
  • В какой бесплатной IDE есть возможность пользоваться встроенным FTP клиентом аля Browse Remote Host в PhpStorm?

    sabramovskikh
    @sabramovskikh
    1) netbeans достойная замена (работа с фтп для некоторых лучше)
    2) рашеш пиратен
    Ответ написан
    1 комментарий
  • Как вызвать скрипт файла php при нажатии кнопки формы?

    miraage
    @miraage
    Старый прогер
    1) Нажать на кнопку
    2) Вызвать скрипт
    Ответ написан
    1 комментарий
  • Как реализовать каталог подобным образом?

    Logic87
    @Logic87
    Программист/администратор сайтов на 1С-Битрикс.
    Однозначно все нужно делать комплексным компонентом Каталог.
    Меню с разделами и элементами - воспользуйтесь этой статьей, все работает отлично: max22.ru/bx-solutions/menu-sections-elements
    Ответ написан
    Комментировать
  • Почему значение массива начинается не с первого?

    27cm
    @27cm
    TODO: Написать статус
    $month_arr = array (1=> "Января", "Февраля", "Марта",
        "Апреля", "Мая", "Июня", 
        "Июля", "Августа", "Сентября",
        "Октября", "Ноября", "Декабря" );
    $month = '';
    foreach ($month_arr as $counter => $value ) {
        $month .= '<option value="'.$counter.'">'.$value.'</option>' . PHP_EOL;
    }
    echo '<select name="month">' . PHP_EOL . $month . '</select>';

    ideone.com/vJbp4b
    Ответ написан
    Комментировать
  • Какие есть способы передать данные в представление (MVC)?

    skobkin
    @skobkin
    Гентушник, разработчик на PHP и Symfony.
    Разные.
    Ответ написан
    Комментировать
  • Как организовать хранение большого количества данных?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    5,5 лямов записей в год?
    За десять лет смешные 55 лямов? Право, какая фигня. Даже для mysql. С чего вы взяли, что это - большие данные? Вот 50 лямов ежедневно - уже можно с натяжкой большими данными назвать.

    Две таблицы:
    id name и чего ещё надо для самой сущности.
    date, entity_id, low, middle, high. Можно партицировать поквартально.
    Ответ написан
    1 комментарий
  • Почему Битрикс так популярен?

    north_leshiy
    @north_leshiy
    Руководитель направления разработки
    Поставьте себя на место заказчика:
    1. CMS с богатым опытом (уже более 10 лет на рынке)
    2. Имеет самую большую в России долю по eccommerce
    3. Имеет бесплатную качественную поддержку
    4. Имеет широкую документацию
    5. Во всех регионах от малых до самых топовых студий можно найти специалистов без труда.
    6. Обратная совместимость. Полная и безоговорочная. Вы всегда получите доступ к новым фичам и вам не придется доплачивать дохрена программистам чтобы перейти на новую версию движка т.к. старый уже не поддерживают и он кишмя кишит дырами.
    7. Уже готова большая часть функционала которая вам нужна, и оттестирована годами. Только шаблон по сути натяни + немного кастомизируй логику под свои БП.
    8. Есть штатная интеграция с 1с, у нас весь бизнес в России почти на ней.

    Ключевое: "бизнес не любит риски", и потому в большинстве случаев bitrix самая удобная и выгодная система для заказчика как минимум в России.

    За 6 летний опыт работы в направлении веб-студий, столько компаний повидал которые писались на каких нибудь:
    а) Самописных движках
    б) Бесплатных движках к которым прибили гвоздями функционал который в них не заложен
    в) Или вовсе на питоне/руби
    ... которых не хотели брать ни одна из топ 10-20 региональных студий (РнД) на поддержку, и они потом переписывали заново проекты... на bitrix.

    Bitrix это стандарт отрасли по ecommerce в России. Сейчас глобальный тренд на рынке - работы по поддержке и развитию проектов становится все больше чем работы по созданию новых.

    И когда вы пишите на bitrix framework, у вас будет всегда много работы, т.к. bitrix не только популярен, но становится все популярнее, следите за вектором. Сейчас он входит в топ 8 CMS в мире, за последние годы прибавил 5 позиций и продолжает увеличивать свою долю.

    А на счет качества... Мне порой приходит на ум ассоциация с PHP. PHP издавна отвоевала огромную долю рынка, но потом у нее появился некоторый период застоя. А тут сбоку питоны, руби. И все ругали PHP, говорили что у него не самая лучшая поддержка ООП (немного улучшившаяся с первыми 5х релизами), но в сети были модны статьи в духе PHP не круто, "PHP все", сейчас его долю на рынке веба по откусывают.
    Но вот нифига, за счет большого сообщества и богатой инерции просто PHP стал улучшаться, преодолели кризис PHP6 и разногласий, и вуаля, уже php7 который уже "более-менее", и php пошел в гору.

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

    Ну и что немаловажно это те люди которые пишут этот код. Если вы в топовой веб-студии с хорошими архитекторами и ведущими программистами - код на bitrix Framework будет написан качественно, и грамотно на новом ядре в традициях ООП, использования паттернов, грамотно собраны в модули и компоненты. Если же вы фрилансер или в мелкой студии, скорей всего ваши проекты будут "дурно" пахнуть, вся логика будет в шаблонах, или вообще в 1 шаблоне который будет напрочь состоять из сплошного роутинга.
    Ответ написан
    7 комментариев
  • Как правильно выдавать 404?

    Раз уж вы сделали какую-никакую cms, то все-таки советую улучшить ее и
    отойти от формирования ссылок в htaccess. Сделайте ЧПУ на чистом PHP и
    ваша мобильность не будет иметь границ, а управление ошибками будет
    куда примитивней и сведется к обычным логическим конструкциям if else.

    Немного погуглил, вот отличная статья о том, как создавать ЧПУ при помощи
    PHP. Сначала рассказывается о том, как сделать посредством htaccess, а после
    идет как раз то, что вам нужно, начиная с заголовка ЧПУ на PHP и два примера
    с разной реализацией.

    Не поленитесь и разберитесь с этим :).

    А ответ сервера - 404 Not Found, на PHP будет выглядеть вот так:

    header("HTTP/1.0 404 Not Found");

    Когда человек открывает страницу вашего сайта, у вас должна быть проверка на
    существовании этой страницы в вашей базе данных или в файлах. И если нет,
    то отдаете ответ сервера 404, а для пользователя выводите сообщение о
    несуществовании страницы.
    Ответ написан
    7 комментариев