Василий Наумкин

Василий Наумкин

С нами с 08 декабря 2012; Место в рейтинге пользователей: #1
Василий Наумкин
26 августа 2015, 15:41
+1
Во-первых, я пока тормозов не вижу — для того и доработал debugParser, чтобы замерить.
А во-вторых, есть системная опция для кэширования скомпилированных шаблонов, она должна помочь пирамидостроителям.

Уж какие сейчас городят конструкции на фильтрах вывода, хуже, по моему, ничего быть не может.
Василий Наумкин
26 августа 2015, 12:30
0
Производительность можно замерить, если выставить в шаблоне страницы вот такие плейсхолдеры внизу:
Общее время: [^t^]
Время запросов: [^qt^]
Количество запросов: [^q^]
У нас, например, вы можете видеть такие цифры внизу каждой страницы.
Василий Наумкин
26 августа 2015, 11:38
+3
Возможно у меня на сайте будет новый платный курс про создании этого магазина, но только после его запуска в эксплуатацию.

А пока можно почитать про парсер pdoTools и официальную документацию по Fenom.
Василий Наумкин
26 августа 2015, 09:08
0
Согласен, да.

Можно написать свой сниппет, который будет вызывать pdoResources и кэшировать эти ids для конкретного юзера. Можно даже, наверное, сделать это и средствами самого pdoResources, используя параметры &cacheKey и &cacheTime, но мне сейчас некогда проверять.

Направление работы должно быть понятно.
Василий Наумкин
25 августа 2015, 22:47
+1
Есть идея: можно попробовать решить этот вопрос двойным вызовом pdoResources:
[[!pdoPage ?
	&parents=`0`
	&limit=`4`
	&resources=`[[!pdoResources?&parents=`3672`&limit=`0`&depth=`0`&return=`ids`&checkPermissions=`list`]]`
	&sortby=`{"publishedon":"DESC"}`
	&sortdir=`DESC`
	&hideContainers=`1`
	&includeTVs=`tvname1,tvname2`
	&processTVs=`1`
	&tpl=`news_tpl `
]]
Вложенный вызов в &resources вернёт список всех подходящих ресурсов, которые прошли проверку для юзера. А второй вызов будет работать уже с этими ресурсами без проверок — и выведет их разбитыми на страницы как положено.

Не проверял, но должно работать.
Василий Наумкин
25 августа 2015, 21:38
0
Нужно использовать источники файлов, например — вот так.
Василий Наумкин
25 августа 2015, 17:53
0
Ну так не должно быть.
Предложите своё решение, как выбрать ресурсы с учётом системы прав MODX.

Я с удовольствием освою этот трюк и даже включу в функционал pdoTools.
Василий Наумкин
25 августа 2015, 17:10
0
Почему?
Потому, что система прав в MODX настолько гибкая, что до выборки исключить ресурсы не получается.

Поэтому они исключаются после. И никак этого не избежать, разве что самостоятельно выбирать ресурсы по каким-то другим параметрам, типа родителя или шаблона, а не фильтровать по разрешению.
Василий Наумкин
25 августа 2015, 15:12
+1
А может быть, я вообще не в ту сторону смотрю? Подскажите плиз.
Конечно, не в ту.

Нужно расширить класс корзины и прописать там любые проверки на добавление или изменение количества товара.

Ну и еще есть системные события для плагинов, которые можно использовать и с родной корзиной. Но лично мне больше нравится использовать свой класс.
Василий Наумкин
25 августа 2015, 06:42
+3
У меня была подобная проблема при показе нового окошка загрузки в галерее.

Решилась она верным открытием, а не свойствами самого окна:
var w = MODx.load({
	xtype: 'ms2gallery-uploader-window',
	record: this.config.record,
	listeners: {
		success: {fn:function() {this.store.reload()}, scope: this}
	}
});
w.show(Ext.EventObject.target);
Весь фокус в последней строке, точнее в Ext.EventObject.target. Попробуй.

Вот само окно, если что.
Василий Наумкин
24 августа 2015, 22:57
0
В народе принято стабильные версии как-то объявлять. Мол, смотрите люди, это можно использовать на рабочих сайтах!

Мы изменили то-то и то-то, это нужно использовать вот так-то, а если не получается — пишите сюда, мы всё исправим. Это как минимум.

Можно и несколько объявлений, как у версии 2.1: 1, 2, 3, 4, 5, 6.

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

От таких объяснений у меня немного глаз дёргается.
Василий Наумкин
24 августа 2015, 22:11
+1
Да он уже давно был, вроде.

Для старта должно хватить, а больше ничего на эту тему писать не планирую.
Василий Наумкин
24 августа 2015, 22:10
0
Я же уже согласился, что мой код не идеален, но и никакой проблемы я в этом не вижу.

В новых виджетах я прибиваю окошки принудительно, сразу после скрытия, примерно так:
this.on('hide', function() {
	var w = this;
	window.setTimeout(function() {
		w.close()
	}, 300);
})
И анимация на месте, и лишних элементов не остаётся. Может и в Tickets когда-то это допишу, но не сегодня.
Василий Наумкин
24 августа 2015, 20:46
0
Где возможность открытия окошек формально называют утечкой? Утечкой чего, кстати?

Я вот штук 30 окон наоткрывал, да так и не увидел разницы с потреблении оперативки браузером.

Дай хоть ссылку почитать, а то утечка не пойми чего происходит, а я и не в курсе.
Василий Наумкин
24 августа 2015, 20:30
0
Why not?

Не вижу проблемы, серьёзно. Если бы оперативка заканчивалась и браузер вешался — это утечка. А так просто не идеально =)
Василий Наумкин
24 августа 2015, 20:25
0
Всё, теперь ты можешь одобрять pull-request.

А Илья просто коммитил, как и все.
Василий Наумкин
24 августа 2015, 20:24
0
Утечка-то где?

Ну вот захотелось мне открыть 100500 комментов — почему нет?
Василий Наумкин
24 августа 2015, 18:48
0
Даже и не знаю, буду ли я там когда-нибудь что-то менять в ближайшее время.

Если есть желание, я могу тебя добавить в этот репозиторий, будешь сам принимать коммиты. Идёт?
Василий Наумкин
24 августа 2015, 18:22
0
Видимо есть какая-то мелкая мелочь, которая ускользнула от моего пристального внимания.
Одинаковые идентификаторы.

Такое дублирование элементов в ExtJS всегда бывает, если у них одинаковые id. Если у полей твоей формы указаны id и они не нужны тебе, на самом деле, то убирай их нафиг — пусть ExtJS сгенерирует уникальные автоматически.

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