Всего 125 676 комментариев

Василий Наумкин
04 августа 2021, 17:51
0
Ничего передавать не нужно, это Open Source — любой человек может сделать форк и выпускать свои версии с любыми исправлениями.

Архивация репозитория означает, что лично я им заниматься не буду, только и всего.
Andrey
04 августа 2021, 17:51
0
Скопировал ваш вызов, только parents поменял — не дублируется.
<ul class="nav">
	<li class="dropdown menu-item">
		<a class="dropdown-toggle" data-toggle="dropdown" href="index.php?id=3">test1</a>
		<ul class="nav menu1">
			<li class="dropdown">
				<a href="index.php?id=4">test2</a>
				<ul class="dropdown-menu mega-menu">
					<li class="yamm-content">
						<div class="row">
							<div class="col-md-4">
								<ul class="list-unstyled">
									<li>
										<a href="index.php?id=4">test2</a>
									</li>
								</ul>
							</div>
						</div>
					</li>
				</ul>
			</li>
		</ul>
	</li>
</ul>
Проверьте параметры сниппета pdoMenu, нет ли там лишнего.
Іван Клімчук
04 августа 2021, 16:21
+1
У Redis есть режим персистентности, так что данные не будут потеряны. У нас в огромном проекте (не MODX) редис активно используется именно для сессий, потому что по другому не получается. К тому же кластер редиса хорошо масштабируется и позволяет запускать по 10 и более инстансов приложения, при этом пользователь не теряет своей сессии, даже если балансировщик подсунул ему другую машину.
Scorp Satex
04 августа 2021, 14:37
0
Здравствуйте Василий.

Извините, что вопрос не по теме.

Github pdoTools github.com/bezumkin/pdoTools — архивирован вами, кто теперь будет им заниматься и будут ли? Или вы кому-то его передали уже?

Спасибо.
Наумов Алексей
04 августа 2021, 13:49
1
+6
Даже я отвечу: конечно можно, переписываете вот этот файл без сторонних библиотек и все будет работать
github.com/bezumkin/AjaxForm/blob/master/assets/components/ajaxform/js/default.js
Anton
04 августа 2021, 13:17
0
Василий, рад видеть!

Вопрос по AjaxForm. В описании сказано, используются jQuery.Form и jQuery.jGrowl.
То есть, ему нужен jQuery. Можно ли обойтись без него?
Сергей Шлоков
04 августа 2021, 10:46
0
BaseSessionHandler?
Подойдёт. Таким образом есть понимание, где интерфейс, а где реализация (при DI). Но как правило, одновременно интерфейсы и абстрактные классы используют редко. Для проекта достаточно абстрактного класса, для библиотеки — интерфейса. В общих случаях. Ну и пространства имён никто не отменял (для одинаковых названий).
Сергей Шлоков
04 августа 2021, 10:41
+3
увидел ветку комментариев про хранение данных в сессии. Казалось бы, совершенно заслуженный камень в мой огород, как автора дополнения.
А вот спроси этого человека как сделать без сессий проще, лучше и чтоб работало из коробки у всех, ответит что-нибудь в духе «не моё дело, я с MODX не работаю». Главное сказать, что сессии — зло. Почему и чем так они страшны? Думаю, объективного ответа не дождёмся.

Сессии — это просто инструмент. Всё зависит от того, как им пользоваться. Вот из коробки в сессии пишутся группы ресурсов и группы пользователей. В итоге возникает проблема консистентности данных после изменения этих настроек. Это плохое использование сессий. А в ajaxForm использование сессий вполне обосновано.
И это глобально никак не влияет на разрастание таблицы сессий.

По большей части проблема или в неправильной настройке сборщика мусора (не зависит от MODX) или в ботах (о чём писал Алексей в своей статье), ибо каждый запрос бота вызывает создание новой записи в таблице. С гостями особой проблемы нет — запись создаётся только один раз и будет использоваться в течение 7 дней, потом будет удалена и создана другая (разговор про один браузер и стандартные настройки). Пример как игнорировать ботов и не создавать для них сессии есть у меня на сайте.
Наумов Алексей
04 августа 2021, 10:39
0
А абстрактный класс тогда как назвать, если SessionHandler занято интерфейсом? BaseSessionHandler?
Я с C# много работал N лет назад, в голове все это еще прочно сидит)
weranda
04 августа 2021, 10:22
0
Спасибо. А я думал, что это сам MODX так делает запрос.
Сергей Шлоков
04 августа 2021, 10:21
0
Правильный — да, реальный — нет. В двойку это не добавят, а тройка никогда не выйдет. Поэтому нужно рулить в рамках пакета.

П.С. К слову, я не сторонник С-ишных названий с префиксом I. Да и суффикс Interface, наверно, всё-таки лишний. По-современному должно быть так — интерфейс SessionHandler, а реализации — modSessionHandler, AntibotSessionHandler и т.п.
Роман
04 августа 2021, 10:21
0
Попробуйте не кэшировать
[[!pdoCrumbs
Так же используйте &showLog=`1`
Василий Наумкин
04 августа 2021, 10:19
0
Отличная идея для дополнения!

Но я тоже за расширение оригинальной таблицы modx_sessions через свой плагин для добавления колонок.
Василий Наумкин
04 августа 2021, 10:18
0
Тот же вариант, что и настройки в файлах, только в БД.

Если работа сниппета зависит от каких-то динамических параметров (id юзера или группа), то точно так же замусорит базу данных. При этом, насколько я помню, возможностей по расширению логики работы там поменьше, чем у modSession.

Да и взять и разом почистить modRegistry из админки нельзя.
weranda
04 августа 2021, 10:16
0
Мне нужен такой порядок, который указан в переменной $photos. Как это сделать?
Павел Гвоздь
04 августа 2021, 10:14
0
modRegistry не подойдёт? Свои особенности, но всё же. Я в своё время тоже написал костыль, но думаю, что на перечисленных дополнениях он будет не уместен.
Роман
04 августа 2021, 10:14
0
Используйте ORDER BY и сортируйте, как вам угодно. По умолчанию сортировка идет по PRIMARY индексу, в вашем случаи по ID.
Иван Бочкарев
04 августа 2021, 10:07
+6
Приятно видеть тебя. Пиши еще :)