• Как в Битрикс создать свойство инфоблока "До и после"?

    rpsv
    @rpsv
    Delauren, смотрите в сторону пользовательских свойств, точно не помню какие там есть варианты. https://dev.1c-bitrix.ru/learning/course/index.php...
  • Карта сайта битрикс! Реально ли сделать так?

    rpsv
    @rpsv
    Леонид, ооо, это так мило...
    А как справились то? Поделитесь, другим полезно будет
  • Файлова структура сайта, не - на CMS !?

    rpsv
    @rpsv
    maxgeor, про дублирование HTML/CSS - не только header, footer, а также различные компоненты (типа формы, карточки товара и т.д.).
    CMS (нормальное) дублирование кода ну никак не должна допускать, так что это заблуждение.
    Любая, даже самая стремная CMS, лучше статических страниц, т.к. что-то да автоматизирует (опять таки этот тезис зависит от задач).
  • Файлова структура сайта, не - на CMS !?

    rpsv
    @rpsv
    maxgeor, использование CMS (или хотя бы index.php) это как минимум проще, т.к. не будет дублирования HTML/CSS кода. Если говорить про SPA (React, Angular, ...) - то они как бы тоже файловые/статические без CMS (хотя можно/нужно backend прикрутить). Так что тут даже больше не "прошлый век", а просто удобство работы.
  • Огромная БД mySQL- что изучить?

    rpsv
    @rpsv
    Статья 2006 года, неактуальная, да и к тому же "используйте индексы" и норм...
  • Как не выводить пустые значения в массиве (битрикс)?

    rpsv
    @rpsv
    Если у вопроса есть решение, вы отмечайте ответы решением (кнопочка такая есть специальная).
  • Как в битриксе вывести массив свойств всех элементов инфоблока?

    rpsv
    @rpsv
    anton99zel: не пишите так больше код никогда в жизни...

    $arSelect = ["ID","PROPERTY_TIME"];
    $arFilter = ["IBLOCK_ID"=>34];
    $res = CIBlockElement::GetList([], $arFilter, false, Array("nPageSize"=>550), $arSelect);
    $values = [];
    while($row = $res->GetNext()) {
        if (isset($row['PROPERTY_TIME_VALUE'])) {
            $value = $row['PROPERTY_TIME_VALUE'];
            $values[ $value ] = $value; // ключ надо указывать чтобы дубли не плодить
        }
    }
  • Где осуществлять проверку формы в MVC?

    rpsv
    @rpsv
    kot-samolet: посмотрите в фреймворках как сделано.
    Если говорить на примере Yii, то у них разделены сущности Model и Validator.
    И собственно в модели указывается список валидаторов.
    Например:
    class User extends Model
    {
    	public $username;
    	public $password;
    
    	// список валидаторов
    	public function rules()
    	{
    		return [
    			['username', 'required'],
    			['password', 'required'],
    			['password', 'string', 'min' => 8, 'max' => 60],
    		];
    	}
    }

    Соответственно 'required' и 'string' - это валидаторы.
  • Зачем писать в ООП стиле в JS?

    rpsv
    @rpsv
    Естественно, можно.Но что лучше?

    Лучше функция-конструктор (фабрика), которая и будет вызывать все нужные функции.
    Это конечно менее удобно, но какой-никакой выход из ситуации.

    Ничего, но когда много функций так будет сложнее, не так ли?

    Естественно так будет сложнее.
    Но функции должны быть очень элементарными (см. чистая функция).
    И собственно если все функции написаны по этим правилам, то система будет большой.
    Однако, "большая система" != "сложная система".
    В большой системе и объектов хренова туча будет.
    А если еще углубляться в CQRS и DDD, то будет множество побочных объектов.

    А также я недавно читал статью на Хабре про ООП, где сказано что, у объекта ООП должно быть состояние.Он привёл пример.Есть товар и на них есть ценник который можно менять.А есть их количество.Это объект ООП?Нет.У него нету состояния.Давайте ему его сделаем.Например, количество товаров не может быть отрицательно, а цена должна быть всегда положительной.Вот теперь это объект ООП.

    Самое простое и самое идиотское объяснение ООП.
    Из вашего примера, человек добавил поведение, а не состояние.
    Это разные вещи.
    И если говорить про ООП, не обязательно чтобы было состояние. Состояние может быть, и это отличает ООП от ФП, т.к. там нет состояний вообще (в идеале).
    Так что выбейту эту дурь из головы, состояние не обязано быть.
    Есть такое понятие/pattern как ValueObject, в нем нет состояния, но однако он очень часто используется в ООП (ну потому что его использование, это уже ООП).

    P.S.
    как сделать цитату?

    b9516daf0b29430d9b81f73f865b4342.png
  • Зачем писать в ООП стиле в JS?

    rpsv
    @rpsv
    Удобство какого либо подхода — это субъективно. Если вы пишите на языке, который допускает использование любого подхода, то выбирайте тот, который больше нравится.

    Не совсем верно.
    Если говорить про такие языки как Prolog/Erlang, то они очень функциональные.
    На них сложно написать какую-либо бизнес логику, но вот обработку данных на них писать легко.
    Также функциональные языки (именно языки, а не стиль) априори более надежные, т.к. вы получается входные параметры, и должны что-то вернуть.
    Функциональные языки (и стиль), надежны за счет того что они просты и довольно примитивны.
  • Зачем писать в ООП стиле в JS?

    rpsv
    @rpsv
    У тех кто используют функции проблемы, потому что заказов много, а чтобы их сделать нужно вызвать много функций.А у тех кто используют классы, их нет, поскольку они один раз написали класс

    Эээ, а функции повторно использовать нельзя???

    Вышли две новые машины, которые унаследовали что-то от старой и этим фабрикам пошли заказы.Первые начали писать тонны функций, а вторые добавили в базовый класс к унаследованным функциям приставку virtual

    Когда вы пишите на функциях, у вас в принципе понятия объектов нет.
    Но что мешает вам написать к примеру так:
    function oldFunction(params) {
        return 1;
    }
    function newFunction(params) {
        return oldFunction(params) + 1;
    }


    Как, с кнопками громкости в пульте.Ты можешь только переключать на "Громче" или "Тише", но ты не можешь выбрать определённый уровень громкости, ведь ты рано или поздно доберёшься до него.

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

    Почитай лучше про SOLID, как по мне это понятнее "классического" объяснения ООП.
  • Зачем писать в ООП стиле в JS?

    rpsv
    @rpsv
    beginer123: попробуйте реализовать что нибудь сложнее формочки с несколькими полями. Какое-нибудь SPA новостное. Я понимаю что в "функциональном стиле" это тоже можно написать, но нормальный ООП будет намного органичнее и понятнее.
  • Как максимально оптимизировать связь двух таблиц через третью?

    rpsv
    @rpsv
    Kulay: а где это в условии? Если это гипотетические хотелки, то можно особо не заморачиваться. А вообще в режиме highload лучше посмотреть с сторону CQRS и физически делить базу для чтения и для записи.
  • Как максимально оптимизировать связь двух таблиц через третью?

    rpsv
    @rpsv
    Kulay: изменил ответ. Лучше вообще все это explainпросветить.
  • Ошибка в php при отправке почты как убрать?

    rpsv
    @rpsv
    ...: ошибка:
    PHP Notice: Undefined index: submit in /var/www/user150936/data/www/site.ru/mail.php on line 2

    Означает, что у вас в массиве POST нет поля с именем submit.

    Рабочий код такой:
    if (isset($_POST['submit'])

    И чтобы отправилось письмо, вам нужно ОТПРАВИТЬ форму, т.е. у вас должен быть HTML вида:
    <form method='post'>
    <button type='submit' name='submit'>Отправить письма</button>
    </form>
  • Ошибка импорта offers.xml битрикс?

    rpsv
    @rpsv
    Кирилл Горелов: цена в файле у вас есть, но проблема в том у вас несколько типов цен (можете поискать по файлу "ИдТипаЦены" у вас как минимум 2 разных значения должны быть)
  • Ошибка импорта offers.xml битрикс?

    rpsv
    @rpsv
    Кирилл Горелов: смотрите лучше файл import.xml - там описаны именно "типы цен", а не сами цены.\
    Если у вас несколько типов цен - то настраивайте 1С, указывайте какой один тип цен выгружать.
    Если у вас один тип цены - то ковыряйте Битрикс.

    28459393a1184de0a65f87d8f2ec7182.png
  • Ошибка импорта offers.xml битрикс?

    rpsv
    @rpsv
    Кирилл Горелов: в 1С. Должно открыться окно с примерно такой структурой (ну только вместо 5.х, может быть 6.х)