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

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

С нами с 08 декабря 2012; Место в рейтинге пользователей: #1
Василий Наумкин
04 января 2015, 13:06
0
MODX запускает установленный плагин, тот подключает свои скрипты. MODX не может отвечать за то, как работает плагин и что он делает.

В этом и есть основной смысл плагинов и дополнений — изменить работу систему.

Технически возможна, например, более устойчивая реализация (дополнительные проверки существования файлов)
Если я установлю плагин на событие OnManagerPageInit и напишу там
die();
админка сломается полностью, и починится только через удаление плагина из БД и кэша.

Расскажи, пожалуйста, как ты планируешь делать «более устойчивую реализацию» обработки такого плагина?
Василий Наумкин
04 января 2015, 11:28
0
Ну так пришли pull-request в репозиторий.
Василий Наумкин
04 января 2015, 11:27
0
Если переименовать папку assets, а в /core/config/config.inc.php оставить без изменений
Если ты переименовываешь директорию и не меняешь конфиг — тебе ничего не поможет.

Не зря же в настройках config.core.php предусмотрели константы
Которые будут неверными, если ты не отредактировал config.inc.php.

В общем, с тобой как обычно — нашел «очередной фатальный недостаток» в системе и раздул из мухи слона.
Хоть я и зарекался с тобой вообще разговаривать, но опять не сдержался.
Василий Наумкин
04 января 2015, 11:24
0
Заодно скрой имена minishop2, tickets, minifyx и других дополнений, подключающих скрипты и стили из новой неизвестной папки.
Василий Наумкин
04 января 2015, 11:23
0
Еще раз, если не понятно. У MODX директория assets пуста по умолчанию. В репозитории её и вовсе нет.

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

И тогда дополнение пытается подключить свои файлы из несуществующей директории, и может сломать при этом админку.

Это не из-за MODX, это из-за тебя.
Василий Наумкин
04 января 2015, 06:27
0
Либо нужно отказываться от компонентов, приводящих к таким ситуациям, либо найти быстрый способ выявления причины без трассировки кода.
Либо подумать головой и понять, что в assets находятся скрипты, стили и коннекторы, к которым обращается UI.

Оттуда не подключаются php файлы, ядру MODX вообще не нужна эта директория для работы, поэтому на уровне php никаких ошибок нет и быть не должно.

Они все в консоли браузера:
Василий Наумкин
04 января 2015, 06:21
0
В целях какой безопасности?

Директория assets раскрывается просмотром исходного HTML, в котором видно, откуда подключены скрипты и стили дополнений.
Василий Наумкин
04 января 2015, 06:14
0
Не железно, а значением «по умолчанию», которое подставляется, если нужный системный параметр пуст или отсутствует.
Василий Наумкин
04 января 2015, 05:56
0
Нужно для начала создать тему в Краудфанинге и описать, что именно ты имеешь в виду под тегами.

Как оно должно выглядеть и работать, желательно с примерами и картинками. Там и обсудим.
Василий Наумкин
03 января 2015, 21:53
0
Если второй сниппет вызывается кэшированным, а первый нет — то он будет обработан раньше первого.

Должно быть так:
[[!DetectUserRegion]]

[[!getResources?
	&parents=`[[*id]]`
	&includeContent=`1`
	&where=`{"pagetitle:LIKE":"[[+DetectedRegion]]"}`
	&debug=`1`
]]

Ну и в сниппете DetectUserRegion, конечно, должно быть:
$modx->setPlaceholder('DetectedRegion', 'Значение');
Василий Наумкин
02 января 2015, 17:51
0
Зачем это здесь? Нужно задавать вопросы MODX или автору дополнения Ace.
github.com/modxcms/revolution/issues/new
github.com/danyaPostfactum/modx-ace/issues/new
Василий Наумкин
31 декабря 2014, 20:13
0
Ну вот, у меня уже 2015!

А у многих еще 2014 — машина времени, прям.
Василий Наумкин
31 декабря 2014, 17:56
0
Плюс показывает, что можно добавить результаты, нажав на фильтр.

Если активирован фильтр, то у других в той же категории плюсов не будет — они ничего не добавят.

Отключить эти циферки можно параметром &disableSuggestions=`1`
Василий Наумкин
31 декабря 2014, 16:46
0
А вот эта ссылка тебя чем не устраивает? bezumkin.ru/training/course2/3006/

Есть еще вот такая
rtfm.modx.com/xpdo/2.x/class-reference/xpdoquery/xpdoquery.where
Василий Наумкин
31 декабря 2014, 14:04
0
Ну не хочется, так не хочется.

Удачи!
Василий Наумкин
31 декабря 2014, 13:53
0
Естественно, можно. Я уже всё рассказал, осталось только сложить и подумать.

Или думать не хочется, хочется готовое решение?
Василий Наумкин
31 декабря 2014, 08:53
2
+2
Вот так немного симпатичнее:
$q = $modx->newQuery('TicketFile');
$q->limit(1);
$q->select('thumb');
$q->where(array(
	'parent' => $input
));
if ($q->prepare() && $q->stmt->execute()) {
	return $q->stmt->fetch(PDO::FETCH_COLUMN);
}
Василий Наумкин
30 декабря 2014, 21:43
+1
Я толком не знаю, для чего в MODX у юзера поле primary_group, но членство в группах хранится в таблице modx_member_groups.

Там есть:
  • id — идентификатор записи
  • user_group — id группы пользователей
  • member — id юзера
  • role — id роли
  • rank — сортировка
Юзеры добавляются в группу так:
$user->joinGroup(4);
Понятно, что сначала нужно получить где-то объект юзера, а потом уже делать join.

Например:
if ($user = $modx->getObject('modUser', 15)) {
	$user->joinGroup(4);
}
И юзер id = 15 добавлен в группу с id = 4.

Документация.