Сергей Шлоков

Сергей Шлоков

С нами с 31 января 2013; Место в рейтинге пользователей: #3
Сергей Шлоков
13 апреля 2015, 14:41
+1
Хотя нет уже такой особенности. Видимо уже переделали.
Сергей Шлоков
13 апреля 2015, 13:58
0
У pdoUsers есть особенность — если по заданному условию результат пустой, то он выводит всех пользователей. Т.е. он всегда что-то выводит.
Сергей Шлоков
13 апреля 2015, 13:39
0
Как сделать так, чтобы сначала проверялась принадлежность uri к текущему контексту
Так и делается по умолчанию. Если в текущем контексте нет, то возникает ошибка 404. Значит надо ловить событие onPageNotFound и искать в другом контексте. Отсюда возникает вопрос — если одинаковых uri несколько, какой брать? И второй вопрос — обязательно ли переключать контексты? Может вполне достаточно форвардить запрос, оставляя пользователя в текущем контексте?
Сергей Шлоков
12 апреля 2015, 14:34
0
Ошибка всех начинающих. А с обновлением чего будешь делать?
Все решается очень просто. Нужно просто учить матчасть. И ни в коем случае не лезть в ядро.
$q->select('User.id,User.username, cast(Profile.fax AS UNSIGNED) as int_fax');
$q->sortby('int_fax');
Сергей Шлоков
11 апреля 2015, 15:07
+1
Привет. Как дела?
Подскажи, как можно отобразить статье на фронтЭнде кусок кода JavaScript?
Замени угловые скобки в теге script на их мнемоники (&lt и &gt с точкой с запятой) и оберни в тег pre.
<pre>
<script>
	var i = "Hi";
	alert(i);
</script>
</pre>
Сергей Шлоков
11 апреля 2015, 11:47
0
Например, тут. Или тут. В официальной документации в разных разделах есть примеры.
Сергей Шлоков
11 апреля 2015, 11:00
0
Получается что так.
Сергей Шлоков
11 апреля 2015, 08:38
0
Тебе уже понятно, что условие
'Profile.photo:!=' => "nophoto.jpg"
не будет работать?
Правильно будет
'Profile.photo:NOT LIKE' => "%nophoto.jpg",
Дальше. Тебе нужно всего 2 поля — username и fax. Так и пишем.
$q = $modx->newQuery('modUser');
$q->setClassAlias('User');
$q->innerJoin('modUserProfile', 'Profile');
$q->select('User.id,User.username,Profile.fax');
$q->where(array(
    'Profile.photo:NOT LIKE' => "%normal",
));
$users = $modx->getCollection('modUser', $q);
foreach ($users as $user) {
	echo $user->username,'[br]';
	// Сохраним fax в переменной $fax, а не в $rating
	$fax=$user->fax;
}
П.С. Тег [br] измени на правильный.
Сергей Шлоков
10 апреля 2015, 22:38
+1
Вы помогаете мне стать лучше
Прям рекламный слоган. Ну раз настрой позитивный, то продолжим.
Давай посмотрим, что там в поле photo есть
$q = $modx->newQuery('modUser');
$q->select('Profile.photo');
$q->innerJoin('modUserProfile', 'Profile');
$result = $modx->getCollection('modUser', $q);
foreach ($result as $user) {
	echo $user->photo.'
';
}
Есть что-то кроме «nophoto.jpg»
Сергей Шлоков
10 апреля 2015, 19:21
+2
Мда. Как же это можно написать такой код, когда и тут, а на rtfm.modx.com и на bezumkin.ru куча примеров и образцов.
Внутри foreach переменная $user перебивается — была объектом modUser, а стала modProfile. А обращение идет как к modUser.
Зачем нужен селект, если username можно получить просто
$myusername = $user->username;
А это чтоб врагов запутать?
$rating = $user->get('fax');
Ужас, ужас.
Сергей Шлоков
10 апреля 2015, 14:03
+1
Да тоже самое, только не со стороны ресурса, а со стороны TV.
Можно, например, и так.
$val = $captionTv->getValue($modx->resource->id);
Но тогда значение получится необработанное. Т.е. вместо картинки — путь, вместо даты — timestamp и т.п.
Сергей Шлоков
10 апреля 2015, 13:42
+1
Странно.
Попробуй заменить
$val = $modx->resource->getTVValue($tvID);
на
$val = $captionTv->renderOutput($modx->resource->id);
Сергей Шлоков
10 апреля 2015, 13:26
0
Потому что внутри класса обращаться надо через this.
$this->modx->user->get('id')
Сергей Шлоков
10 апреля 2015, 13:16
0
А вот тут можно поспорить. Глядя на тот же код, можно заметить недокументированную возможность указывать свой путь к файлам.
В системных настройках нужно указать свой путь в параметре mycalendar.assets_url и, соответственно, css и js файлы будут доступны по новому пути — «новое значение/css/» и «новое значение/js/». И пожалуйста, подключай свои файлы.
Это к разговору о разработчиках. Для простого админа это не очень прозрачно.
Сергей Шлоков
10 апреля 2015, 12:49
0
… но ведь же можно оставлять исходники, а рядом класть сжатый файл и подключать его...
Согласен.
Сергей Шлоков
10 апреля 2015, 09:44
0
А что мешает человеку, уже знающему мобильный телефон, позвонить после 17-00? Мне кажется логичнее сделать что-то типа «Не дозвонились? Оставьте телефон, мы Вам перезвоним».
Сергей Шлоков
10 апреля 2015, 09:10
0
Ваше решение на основе jquery.weekcalendar. Он не обновляется уже несколько лет. Плюс у него возможностей поменьше. Мне больше fullCalendar понравился.
Сергей Шлоков
10 апреля 2015, 09:00
+1
Наверно.
А вообще это решение — вырезка из дополнения, которое я щас заканчиваю по заказу знакомого — с авторизацией, неограниченным количеством календарей с интерфейсом в админке, уведомлением пользователя на сайте и по почте, повторением событий. В дальнейшем хочет назначать задачи пользователям и следить за исполнением.

Сергей Шлоков
10 апреля 2015, 08:34
+1
Все кому не лень. :)
Если нужно разрешить редактировать только авторизованным, то в сниппет перед перед сохранением параметров в сессию можно дописать условие
if (!$modx->user->isAuthenticated($modx->context->get('key'))
	$scriptProperties['readOnly'] = true;
Тогда неавторизованный пользователь может только любоваться. :)