Александр Туниеков

Александр Туниеков

С нами с 19 декабря 2015; Место в рейтинге пользователей: #15
Александр Туниеков
30 ноября 2022, 07:32
0
Использование jquery большая часть разработчиков считает излишним в 2022. Код давно пишут на чистом JS.
Я как раз пишу на jquery. На чистом js писать могу научиться, но код на js растягивается Меня добивает что на jquery можно написать
$(".nav-img").css('width', 33);

а на чистом надо целых 4 строки
var vNavimg = document.getElementsByClassName("nav-img");
for(var i=0;i<vNavimg.length;i++){
    vNavimg[i].style.height = "33px";
}
Для использования цифрового слайдера и авто подсказок используется jquery UI. Это лишняя устаревшая зависимость. Есть плагины, которые реализуют подобное качественнее. Кроме того слайдер не работает на телефонах.
не знал что jquery UI не работает на телефонах. Какой компонент посоветуете? И вообще под телефоны надо для фильтров верстку другую. Потом думать буду.
Привязка к ID на страницах. Тоже можно к проблемам отнести. Переиспользовать код на странице несколько раз не получится. Сейчас подобные вещи обычно к data атрибутам и классам привязывают.
От ID я избавился, но переиспользовать код не получиться. Адресная строка одна и 2 фильтра в нее писать не могут. Я начал делать для 2 и более фильтров на странице, но отказался и отменил изменения.
Сам по себе код большой, объемный трудночитаемый. В современном мире разработки обычно принято разбивать код на логические куски и выносить в отдельные модули.
если вникнуть в код то на вполне логические блоки разбито. Можно разбить и по другому, но не факт что получиться лучше. Тем более у меня с этим не айс.
Александр Туниеков
27 ноября 2022, 11:52
0
Из лицензии mSearch2
«that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs»
«вы можете изменить программное обеспечение или использовать его части
в новых бесплатных программах;»
Так получилось что в FacetSearch который я только что написал 90% кода в js файле скопированно из mSearch2.
По лицензии я вроде могу это делать? Как вы к этому относитесь?
Просто js код я придумать лучше не могу :-(. PHP часть совершенно другая.
Александр Туниеков
11 ноября 2022, 17:49
0
https://yandex.ru/search/?text=mfilter2
А после 2018-го сайтов по modx развелось много. modx.pro не в первых строчках. Может трафик просто на них ушел?
Александр Туниеков
10 ноября 2022, 18:34
+1
nameid[] зачем скобки, если это radio? Из-за них массив приходит
Александр Туниеков
10 ноября 2022, 17:18
0
форму и вызов formit выложи
Александр Туниеков
10 ноября 2022, 16:49
+1
А планируете написать CMS на next? Писать модуль авторизации для каждого сайта сильно обломно! Или как на next собрать сайт из блоков модулей?
Александр Туниеков
10 ноября 2022, 16:27
0
$sql = "UPDATE innl2022cld_timebdlots SET active=10 where nameid=('" . $nameid . "')";
это
$sql = "UPDATE innl2022cld_timebdlots SET active=10 where nameid=('1')";
наверно nameid=('1') нет такого.
Вообще для migxdb api modx использовать лучше:
$modx->addPackage('timebdlot_pack', $modx->getOption('core_path') . 'components/timebdlot_pack/model/');
$nameid = $hook->getValue('nameid');
if($timebdlot = $modx->getObject('timebdlot',(int)$nameid){
$timebdlot->active = 10;
$$timebdlot->save();
}
timebdlot_pack -имя пакета. timebdlot — имя класса таблицы
Александр Туниеков
10 ноября 2022, 10:24
0
Тут аудитория 20 человек.
Откуда такая статистика?
Александр Туниеков
31 октября 2022, 16:45
+1
Добрый день! С кешированием Я написал что у меня получилось. Кешируется массив значений фильтра и id их ресурсов. Первый запуск медленный. Это когда этот массив собирается из базы. Когда кеш массива есть показ страници и ajax-фильтрация происходит быстро. Цифры привел в статье. Сейчас не охота их заного получать.
хочется что то из коробки
Это не ко мне. Я не автор компонента. Обращайтесь к @Илья Уткин
напишите решение до чего добились в производительности
Текушее решение https://gist.github.com/touol/fd1989021270553eafb6c9540f726965
Но оно тоже не идеальное. Сильно не парился. И не понятно почему может и работать и не работать. Например, не работает и вывод дебага начал выводить вдруг заработало.
Если надо чтоб работало из коробки и так как надо, Илью долбите чтоб начал работать над улучшением mFilter2. mFilter2 — компонент платный. Пусть париться тот кто за это деньги получает.
Александр Туниеков
25 октября 2022, 16:38
+1
В общем. Думаю надо тв позиции в каталоге email
при выводе
<a data-email="[[+email]]">запросить цену</a>
js берем data-email и подставляем в скрытое поле
добавить в форму скрытое поле в котором будет указан адрес получателя
Александр Туниеков
25 октября 2022, 16:24
0
А если феном использовать?
{switch каталог}
{case 'поставщик1'}
{'!formit' | snippet : ['emailto'=>'a1@b.ru']}
{case 'поставщик2'}
{'!formit' | snippet : ['emailto'=>'a2@b.ru']}
{/switch}
или заводишь тв email в каталоге. Когда показываешь каталог цепляешь тв и в формит на каждую позицию с отдельным емаил. Хотя так конечно ерунда получается.
Александр Туниеков
20 октября 2022, 17:51
0
Чтобы решать вопросы надо их вообще знать :-). Я тоже предпочитаю без решений не выступать, но эту тему поднял уже для того что разобраться в проблеме. Какие вопросы возникают? И обзор их решений. Исследование в общем. Так что ваши вопросы к mFilter2 мне интересны
Александр Туниеков
20 октября 2022, 17:30
0
39с это из-за того что на тестовой инсталяции значения из msProductData брал.
{'!mFilter2' | snippet : [
                'showLog'=>1,
                'suggestions'=>1,
                'parents'   =>  $_modx->resource.id,
                'cacheTime'=>600,
                'limit'=>100,
                'suggestionsMaxFilters'=>10000,
                'filters'=>'
                ms|size:default,
                ms|insert:default,
                ms|material:default,
                ms|style:default,
                ms|metal_color:default,
                ms|sample_material:default,
                ms|insert_color:default,
                ms|insert_form:default,
                ms|cover:default,
                ms|appointment:default,
                ms|weaving_type:default,
                ms|for_whom:default',
            ]}
В коде msearch
foreach ($filters as $table => &$fields) {
				$method = 'get' . ucfirst($table) . 'Values';
				$keys = !empty($duplicates[$table])
					? array_diff(array_keys($fields), array_keys($duplicates[$table]))
					: array_keys($fields);
				if (method_exists($this->filtersHandler, $method)) {
					$fields = call_user_func_array(array($this->filtersHandler, $method), array($keys, $ids));
То есть, значения собираются для каждой опции отдельно. 12 раз пробегается по каталогу из 11к товаров.
Блин 1 раз пробегается :-(
Вот я повернут на объективности. Обманывая других часто обманываешь и себя. А это уже чревато. Лучше честно признать ошибку и придумать новое лучшее. Это не к Вам если что. Просто лирика про себя :-).
Скорость отдачи страницы больше секунды это уже плохо. Тем более если страница для покупателей.
Спасибо что поделились своим опытом. Будет интересно взглянуть на результаты Ваших тестов.
Александр Туниеков
20 октября 2022, 16:40
0
Так есть один вариант. mFilter2 при запросе собирает информацию с выбранного каталога товаров, а не со всей базы данных. Если 200к товаров разбросанны по каталогам с 4000 товаров, то фильтрация как раз и 1-3сек будет :-)
Александр Туниеков
20 октября 2022, 16:28
0
200к товаров на 200 значений это 40 000 000 записей в базе.
В станданртной ситуации mFilter2 не может обработать 40 000 000 записей быстро.
Колитесь что Вы сделали? :-)
Александр Туниеков
20 октября 2022, 16:22
0
Просто следую правилам :-) Могу Вас на Вы называть.
Александр Туниеков
20 октября 2022, 16:20
0
Интересно что тогда влияет???
Вообще тестовая база у меня от людей которые расширили msProductData через msfieldsmanager в том числе и json полями. У меня собрать с каталога с msProductData на тестовой инсталяции уходит 39с.
У них фильтр работает по полям msOption и собрать данные уходит примерно в течении 10с.
У них шаред хостинг бегет.
То есть никаких 1-3с на 200к товаров не может быть на шаред хостингах.
Что за различия? Как-то оптимизировали базу?
Александр Туниеков
20 октября 2022, 16:10
0
как вы выражаетесь
Из правил modx.pro
Здесь все друзья и обращение на «ты» говорит только об этом. Не нужно вычурной вежливости, мы люди простые.