• Как сделать компонент модальной формы и работать с ней из разных компонентов?

    APP.popup = function (component,props) {
    	let mount_poiunt = document.createElement('div');
    	document.body.append(mount_poiunt);
    	
    	var props = {
    		'component':component,
    		'props':props
    	}
    	
    	var Popup = Vue.extend({
    		data: function () {
    			return props
    		},
    		destroyed () {
    			this.$el.remove()
    		},
    		methods: {
    			close: function () {
    				this.$destroy()
    			}
    		},
    		template: `<div class="popup">
    						<span v-on:click="close" class="close">✖</span>
    						<component v-bind:is="component" v-on:close="close" v-bind="props"/>
    					</div>`
    	})
    	
    	new Popup().$mount(mount_poiunt)
    };


    Далее ты просто делаешь так в методе компонента своего:
    APP.popup('имяКомпонентаКоторыйНадоПоказатьВПопапе', {параметрыЭтогоКомпонента});
    Ответ написан
    Комментировать
  • Как ускорить импорт CSV файла с 300к записей?

    $res = CIBlockElement::GetList(Array(), $arFilter, false, Array("nPageSize"=>2), $arSelect);

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

    @smilingcheater
    получается при просмотре любого раздела товар может иметь любую позицию в списке (из вашего же примера, Платье 1 было на 1 позиции в разделе Платья было на 1м месте перед Платьем 2, а стало на позиции 4 в разделе Офисные модели, и поменялось порядком с Платьем 2).

    Именно так и именно из этого автоматически следует, что необходимо иметь отдельное поле сортировки для каждого раздела.
    Дальше можно придумывать разные способы как именно это реализовать но самым простым и быстрым является тот, который есть сейчас.

    цель именно увеличить кол-во свойств для ускорения работы сайта.

    Вы наверное хотели сказать уменьшить количество свойств для ускорения работы сайта?
    Но на самом деле количество свойств не сильно влияет на скорость или вы боритесь за сотые секунды во время выборки? Сомневаюсь.

    Рискну предположить, что вы копаете не в ту сторону и что проблема с производительностью где-то в другом месте.

    Покажите как именно вы используете сортирку и как переключаете ее для разделов.
    Ответ написан
  • Битрикс, скидки для разных пользователей + сортировка?

    Так как мы ничего не дождались, вот мой ответ:

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

    Хуже того то, что вам для формирования каждой страницы придется извлечь ВСЕ товары, вычилсить цену со скидкой для ВСЕХ товаров, отсортировать массив в рантайме и выбрать из него товары для страницы.

    Это очень дорогая операция которую никак не возможно обойти. Всё будет неплохо, пока у вас не много товаров или очень редкие изменения в них, но как только товаров станет много - все эти ваши расчеты положат сервер выжирая всю память и процессор.

    Следовательно нам нужен кэш. И было неплохо этот кэш сделать максимально узким чтобы как можно реже его обновлять. А лучше вычислять прямо при добавлении нового товара и желательно только для него.

    Что хранить в этом кэше? Выходит только что предвычисленные цены со скидкой...

    И вот мы вернулись ровно сюда:
    Как сделать, если у меня становится несколько групп?
    Не создавать на каждую группу новое свойство и по нему сортировать?

    Именно так и делать. Если групп относительно не много. Скажем до 2-3х десятков такое решение все равно будет оптимальным и самым быстрым.

    Обновление значений вешайте на апдейт товара/элемента на события.

    Если групп много - делайте то же самое но заводите отдельну таблицу и делайте джойны при выборке.
    И сравнивайте скорость работы обоих решений - с определенного момента при росте свойств второе станет чуть быстрее мне кажется.
    Ответ написан
    Комментировать
  • Как в vue.js перед изменением data проверять данные?

    Сделай два объекта с данными - один связанный с полями через модель, который будет отражать их состояние, а другой валидированные данные для отправки.
    Вотчем следи за изменением данных в объекте связанном с полями и перекладывай в объект для отправки, когда они валидные.
    Ответ написан
    Комментировать
  • Реактивность на Vue? Как обновить компонент?

    Требуется перерисовывать компонент каждый раз, когда приходят новые данные, как реализовать?

    Значит уже что-то не так. Не должно такого требоваться. Компонент должен перерисовываться сам на основании данных, когда это действительно нужно.

    this.firstWindow = Object.assign({}, this.firstWindow, data);

    Это вы добавляете объект в data? Не надо так делать - вы теряете реактивность.
    Положите этот объект в другой (на уровень ниже) и сделайте так:
    methods:{
          newvalue(data, whichScreen){        
             if(whichScreen){ 
               console.log("попал");
               console.log(data);         
               Vue.set(this.windows, 'firstWindow', Object.assign({}, this.firstWindow, data));
              
             }else{          
               Vue.set(this.windows, 'secondWindow', Object.assign({}, this.secondWindow, data));          
             }
          }
      }


    Сответственно у вас теперь будет this.windows.secondWindow вместо this.secondWindow
    Ответ написан
    Комментировать
  • Как использовать JavaScript с Bitrix?

    Flipflap, затем что вы делаете утверждения не соотвествующие действительности.
    Зачем вот это вот:
    там меню свёрстано не списком на html, а выводится массивом на php

    ?
    Если не понимаете как формируется меню лучше спросить как это происходит.

    На основе массива php компонентом menu по шаблону указанному для этого компонента, генерируется html блок представления меню.

    Вы можете добавить нужные вам классы как непосредственно в шаблоне (для всех пунктов) так и изменить шаблон так, чтобы он мог управляться параметрами из массива PHP, чтобы устанавливать различные классы для разных пунктов.

    Вам нужно найти шаблон на базе которого генерируется меню.

    Рискну предположить что он где-то там: /local/.default/components/bitrix/menu/...
    Но вомзожно и по другому пути - все зависит от того кто и как кастомизировал сайт.
    Ответ написан
    4 комментария
  • Бинарный поиск - как определить кол-во шагов?

    М... так это же просто логарифм по основанию 2, округленный в большую сторону. Зачем вообще какие-то программы писать?
    Ответ написан
  • Как избавиться от дублей в sitemap Bitrix?

    Вот и ответ. Скорее всего в каком-то инфоблоке так прописан URL детальки элемента и этот ИБ в индексе. Для каждого элемент генерируется УРЛ детальной страницы. Уберите либо ИБ из генерациия карты, либо в настройках уберите шаблон URL
    Ответ написан
    Комментировать
  • Битрикс вопрос по лицензии?

    При установке выбрали Малый бизнес. Потом активировали ключом от старта.
    Ответ написан
    Комментировать
  • Как генерировать уникальную строку перед сохранение в БД (D7 bitrix)?

    Может быть только один случай когда вам нужно генерировать индентификатор до внесения в БД - это когда клиент вынужден выполнять операции связанные с записью не сделаной в БД с состоянии отсуствия связи.
    Пример - вы создаёте на клиенте скажем список дел и добавляете в этот новый список новые пункты. И вам нужно чтобы это всё работало, даже пока связи с БД нет, а синхронизируется оно потом. На этот случай придуманы UUID.
    В вашем случае ничего такого нет поэто правильно - автоинкрементируемое поле.

    В самом простом случае +1 в иных случаях (оптовый заказ, индивидуальная поставка, дальний склад) номера заказов могут принимать вид AA-02-1122, AA-02-1123, AA-02-1124.

    А это вообще никак не относится к делу. Совсем. Этот номер генерируется ПОСЛЕ добавления записии из ппрефиксов и ИД: {ТипЗаказ}{ТипДоставки}-{Номерсклада}-ИД
    Можете писать его в отдельное поле, которое можете назвать Номер заказа и радоваться.
    Ответ написан
  • Как в поиске сделать упор на заголовки элементов каталога?

    Переиндексация тут не нужна - это же параметр каталога.
    Нужно разбираться почему не срабатывает параметр USE_TITLE_RANK - такого быть не должно.
    catalog.search - стандартный?
    Попробуйте на не кастомизированном шаблоне.
    USE_SEARCH_RESULT_ORDER Включен?
    Ответ написан
  • Как cделать алгоритм. который к каждой цифре числа (например 151)?

    А причем тут битрикс?

    Если прямо в лоб, то как-то так:
    $n = 151;
    $m = 1;
    if ($n > 9) {
    	$i=0;
    	$k=0;
    	while ($k < $n) {
    		$m = $k;
    		$k = $k+10**$i;
    		$i++;
    	}
    	
    }
    $n = $n+$m;
    Ответ написан
    Комментировать
  • Откуда берется переадресация с SEF_APPLICATION_CUR_PAGE_URL?

    Suntechnic
    @Suntechnic Автор вопроса
    Я так и не нашел откуда берется это (не сильно и искал), просто на событие OnBeforeProlog повесил обработчик:
    if ($_REQUEST['SEF_APPLICATION_CUR_PAGE_URL']
                    && $_REQUEST['AUTH_FORM'] == 'Y'
                    && $_REQUEST['TYPE'] == 'AUTH') {
                global $USER;
                if ($USER->IsAuthorized()) {
                    LocalRedirect($_REQUEST['SEF_APPLICATION_CUR_PAGE_URL']);
                }
            }

    Проблема вроде нет.
    Ответ написан
    Комментировать
  • Какая лучшая cms?

    Странный вопрос - вы же понимаете что вам будут советовать то с чем работают советчики. Даже те, кто работал со всеми тремя платформами, любят на самом деле что-то одно.
    Вот я бы раставил то что вы предлагаете ровно так же как стоят теги. При этом хочется отметить что Joomla вообще не CMS.
    Сам делал бы на Bitrix + Vue, но отказавшись от фронтальной части CMS. Т.е. использовал бы Buitrix как фреймворк и админку.
    Ответ написан
    3 комментария
  • Как определяете какую часть верстки выносить в header.php если много мелких различий в шапке?

    Если делать условия по урлу
    то будет не просто большая портянка, а еще в аду тебя будут варить в самом горячем котле.

    Пока я пришел к такому варианту, что буду использовать отложенные функции

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

    Причем на некоторых один вариант, на других второй, ещё на нескольких третий, а на главной четвертый. И таких мелочей где меняется один класс в шапке много, иногда добавляется новые теги(дивы), но это уже редко.

    В целом таких ситуацию лучше избегать, а при необходимости внесение различий в вид, управлять ими через css + классы на body типа .page-main, .page-inner, .page-blog (тире и подчеркивания можно расставить в зависимости от типа расстройства у верстальщика) и так далее, а вот эти классы вешать через отложенные функциию.
    Ответ написан
    Комментировать
  • Как передать в шаблон компонента данные?

    Смотрите содержимое $arParams. Оно будет таким:
    Array(
          ...
          "MENU_TITLE" => "О гостинице"
          "~MENU_TITLE" => "О гостинице"
          ...
        )
    Ответ написан
    Комментировать
  • Где лучше хранить изображения для статических страниц в bitrix?

    или в /local/img/ПутьКРазделу/pic.jpg

    Все варианты рабочие. У всех есть плюсы и минусы и практически все эти плюсы и минусы можно игнорировать если вы не используете систему контроля версий, вроде git.
    Ответ написан
    Комментировать
  • Может ли интернет-магазин на Битрикс быстро работать на виртуальном хостинге?

    Да - может. Хостинг любой.
    Лично я использую netangels (раз уж вы спросили).
    Ответ написан
    Комментировать