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

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

С нами с 08 декабря 2012; Место в рейтинге пользователей: #1
Василий Наумкин
24 февраля 2020, 14:14
0
Что делать, как быть?
Пиши в Вопросы, я перенесу.

кстати в чем разница?
В описании разделов указано.
Василий Наумкин
21 февраля 2020, 13:28
+2
Еще раз — Collections работает с ресурсами. Соответственно, все сниппеты MODX работают с ним.

Если ты перетаскиваешь весь контент в другие таблицы, то какой-нибудь GoogleSiteMap для них карту сайта не построит, а mSearch2 их для поиска не проиндексирует.

Сегодня есть pdoTools, и с его помощью можно выводить данные из любых таблиц, для которых есть схема, но опять же, все его родные сниппеты заточены именно под ресурсы. Например, в pdoResources прописана сортировка именно по publishedon, которого может не быть в другой таблице. А pdoMenu использует карту ресурсов в modX::getParentIds для построения меню.

У меня и данные в своих таблицах
У меня тоже.
Но это у меня и тебя, в наших непубличных проектах.

А теперь представь себе условный miniShop3, который хранит миллионы товаров в своих собственных таблицах. К нему нужно будет поставить и полный набор всех сниппетов для вывода этих товаров, генерации меню, хлебных крошек и т.д.

Как оно, сильно больше Collections будет? Одну документацию писать замучаешься, а потом баги отлавливать и править.

Говорю же, я много об этом думал и пришёл к выводу, что делать подобное не стоит. Ну а если и делать, то как отдельную независимую либу, которую потом интегрировать с MODX.
Собственно, как Андрей Чирко уже сделал с Shopkeeper 4 — и что-то большого успеха на рынке MODX у такого решения не видать.
Василий Наумкин
21 февраля 2020, 13:09
+2
Где-то во фреймворках есть заранее созданные таблицы под контент? С контекстами, прикрученными картами ресурсов кэша, менеджерами с кастомизацией форм для их редактирования?

Нет, никто так не делает во фреймворках, там ты всё пишешь под себя.

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

Использование modResource в MODX — это единственно верный путь для хранения пользовательского контента в 99% использования системы. А если кому-то это не подходит, нужно поискать другую систему, таков мой вывод.
Василий Наумкин
21 февраля 2020, 13:05
0
Выше отписал про это.

Слишком большой объём работы и непонятный выхлоп. Экономически не выгодно.
Василий Наумкин
21 февраля 2020, 12:59
+2
Как и Tickets, как и miniShop2.

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

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

Я вот до сих пор этого не сделал, хотя одно время всерьёз над этим подумывал, как вектор для развития miniShop.
Василий Наумкин
21 февраля 2020, 12:57
+1
Ну я в их модели никаких новых типов для документаов не вижу, только CollectionContainer, который расширяет modResource.

Стало быть, храниться в нём будут обычные ресурсы. Вот и подтверждение в процессоре publish на строке 32
$this->resource = $this->modx->getObject('modResource', $id);
Дальше мне копать исходники лень, но вроде и так всё понятно.
Василий Наумкин
21 февраля 2020, 12:53
+5
Возможность расширения базового функционала никак не является руководством к использованию ресурсов как к хранилищу контента сайта.
Насколько я помню, modResource наследуется классами modDocument, modLink, modWebLink и modStaticResource.

И по умолчанию в админке создаётся именно modDocument. Это не для хранения контента? И все сниппеты заточены именно под вывод этих документов, и для построения по ним навигации. Да и поля у этих документов как-бы намекают: published, pub_date, hide_menu, link_attributes и т.д.

Что бы там Джейсон себе не фантазировал, но как только разработчик доходит до мысли, что нужные ему данные проще хранить в своих таблицах, ему резко перестают быть нужны ТВ, шаблоны, чанки и сам MODX.
Потому что он переходит работать на фреймворки, которые создают таблицы и модели гораздо проще и быстрее.
Василий Наумкин
21 февраля 2020, 12:46
1
+3
Это делает pdoPage, которому можно указать &setMeta=`0`
Василий Наумкин
21 февраля 2020, 12:44
+1
Так Collections использует те же ресурсы, нет? Просто прячет их в админке, делая более удобной работу с каталогом.
miniShop2 делает так же, но это всё равно ресурсы — они так же попадают в кэш ресурсов сайта и так же приведут к тормозам, если их будет много.

Принципиальной разницы я не вижу.
Василий Наумкин
20 февраля 2020, 14:08
+2
Суть в том, что все объекты зависимые от modResource можно паковать в JSON объекты и переносить их от сайта к сайту, делая обратное воспроизведение.
Всё уже давно придумано, сделано, и работает — modmore.github.io/Gitify/ru/

Очень было бы круто, что если я указываю определенный тег, то ниже код парсится как markdown текст. Я часто готовлю любые тексты в Bear для macOS и в нем архиудобно, но потом приходится переводить текст в теги сайта.
markdowntohtml.com
Василий Наумкин
12 февраля 2020, 15:06
+4
3 раза прочитать молитву за быстродействие, и 2 раза молитву за стабильность.

Отпускаю с миром.
Василий Наумкин
12 февраля 2020, 14:41
+1
Ну так поди нет закрывающего тега </body> или </head>, для инициализации?

Потому что, внезапно, скрипты нужно куда-то вставить, для их работы. И если на странице нет body — то вставлять их некуда.
Василий Наумкин
10 февраля 2020, 16:13
0
Даёт возможность авторизации под любым юзером.
Василий Наумкин
09 февраля 2020, 17:52
0
Еще раз — нет, не выводит она ничего.

Это после загрузки страницы javascript подставляет количество комментов. Открой исходник страницы и увидишь на месте переменной, что там пусто.
Василий Наумкин
09 февраля 2020, 17:13
0
Скорость надо проверять, зависит от многих факторов, но на большом количестве записей подсчёт результатов может украсть полсекунды или больше.

Да и дело даже не в скорости, а в том, что при добавлении нового комментария их общее количество изменится, а склонение — нет.

Поэтому лучше или оставить как есть, без склонения, или делать его на js — и тогда total вообще не нужен.
Василий Наумкин
09 февраля 2020, 14:40
0
В новых версиях pdoTools общее количество результатов не считается, если не указать это специально, для скорости.
Так что сейчас у тебя нет этой переменной, он пустая, и количество комментариев выставляется через javascript.

Укажи &setTotal=`1` в вызове TicketsComments, и всё должно заработать.
Василий Наумкин
06 февраля 2020, 11:24
+1
Лучше так:
<img src="{$image ?: '/assets/images/no-image.png'}" class="mw-100" alt="{$pagetitle}" title="{$pagetitle}"/>
Василий Наумкин
01 февраля 2020, 17:24
0
Какой же ты занудный, а.

Это по идее должно быть надо любому пользователю шаблонизатора феном на modx,
А вот до сих пор никому было не нужно. Да и сейчас толпы желающих не видно, ты один.

ибо глюки не нужны никому
Отсутствие кэширования чего-либо, это не глюк.

особенно которые на ровном месте занижают производительность.
Голословно. Fenom выигрывает в производительности за счёт других возможностей.

Если нет времени это делать, покажи файлы, части кода где это можно исправить — и кто-то из комюнити исправит
«Покажи», «кто-то исправил» — хорошо устроился. Тебя волнует — ты и исправляй, не жди никого.

дадут тебе обратно исправленный код и выложишь в репозитории
Поставь задачу сообществу
Разрешите выполнять? Бегом?

Нет проблем.
Ну так ты чего тут сидишь, раз нет проблем?

Поэтому без твоей поддержки тут будет сложновато :)
Да вот вообще никакого желания тратить своё время на тебя нет.

Тему закрываю, всё осудили.
Василий Наумкин
31 января 2020, 07:40
0
Да всё вышло просто:
— Fenom дёргает pdoTools::runSnippet()
— Тот дёргает pdoTools::_loadElement()
— Ну а тот делает modX::getObject() для получения содержимого сниппета из БД

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