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

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

С нами с 31 января 2013; Место в рейтинге пользователей: #3
Сергей Шлоков
11 августа 2016, 17:12
+1
Залезть в таблицу modx_site_content и поправить поле properties или вызвать на нужной странице сниппет ClearHitsPage
$page =  $modx->getObject('modResource', $modx->resource->get('id'));
$page->setProperty('hitts',0,'hitspage');
$page->save();
Сергей Шлоков
11 августа 2016, 13:25
+3
Уже есть такая. Фабрика сайтов называется. ;)
Сергей Шлоков
11 августа 2016, 09:50
0
Проверяем лог ошибок для начала.
Сергей Шлоков
11 августа 2016, 09:49
0
Оба варианта годятся. Кому что нравится.
Сергей Шлоков
10 августа 2016, 16:48
0
В данном случае календарь может пригодится только для вывода расписания этих самых курсов.
Сергей Шлоков
10 августа 2016, 16:45
0
Видимо ломается какой-то скрипт. Проверяй консоль браузера.
Сергей Шлоков
09 августа 2016, 19:03
+3
Думаю, можно обойтись одним Гвоздём. ;)
Сергей Шлоков
09 августа 2016, 18:26
0
Тогда наверно лучше в виде сниппета
[[*pagetitle:declension=`{"gender":"men", "padej":"rod", "chislo":"edin"}`]]
Сергей Шлоков
08 августа 2016, 11:37
+1
Не готов ответить за автора — пробовал он сделать todo лист в MODX на extjs или нет. Но если да, то писать такое
Всю ночь на это убил. Ничего не получается.
я бы точно не стал. )
Сергей Шлоков
08 августа 2016, 11:30
+1
Не понимаю, зачем эти пляски с плейсходерами. В плагине определяете регион (по куке или по ip) и переключаете контекст.
Сергей Шлоков
08 августа 2016, 11:25
0
Посмотри код виджета недавно редактированных ресурсов. Там подключается extjs таблица с нужными контролами.
А для виждета новостей достаточно и HTML.
А написать даже простенький туду менеджер для новичка задача трудная.
Сергей Шлоков
08 августа 2016, 11:08
0
Хулиганишь Иван. Можно, конечно, и из говна сделать. Но тогда и получится говно. Интерактив (а он явно нужен) без ExtJs не сделать. Вот только почему именно виджет нужен? Он менее удобен, чем отдельный интерфейс.
Сергей Шлоков
08 августа 2016, 11:05
0
Самый простой и самый быстрый вариант — выводить полный список и услуг и врачей, а яваскриптом скрывать ненужные пункты. Единственный момент — защита от дурака/хулигана — при сохранении проверять соответствие врача услуге по родителю.
Сергей Шлоков
02 августа 2016, 19:39
+1
2. Уже есть метод. Зачем его дублировать.
3. После первого запроса заменить код
if (empty($timestamp)) {
	$query = $modx->newQuery('TicketThread', array('resource' => $page));
	$query->select('comments');
	return $modx->getValue($query->prepare());
} else {
	$q = $modx->newQuery('TicketComment');
	$q->innerJoin('TicketThread','Thread', "TicketComment.thread = Thread.id AND Thread.resource = {$page}");
	$q->select('TicketComment.id');
	$q->where('TicketComment.createdon > Thread.comment_time');
	if ($q->prepare() && $q->stmt->execute()) {
		return $q->stmt->rowCount();
	}
}
Должно работать. В теории :)
Сергей Шлоков
02 августа 2016, 18:24
0
вылаживаю мой рабочий вариант
Думаю, ты имел ввиду «выкладываю» ;)

Предложу небольшую оптимизацию.
Нужно все-таки проверять $timestamp. А если пользователь ещё не видел ни одного комментария?
Строчки
$q = $modx->prepare("SELECT * FROM modx_tickets_comments WHERE thread = '{$thread}' AND createdon > '{$timestamp}' AND published = 1");
$q->execute();
$r = $q->fetchAll(PDO::FETCH_ASSOC);
return count($r);
можно заменить на
return $modx->getCount('TicketComment', array('thread'=>$thread, 'createdon:>'=>$timestamp, 'published'=>1));
Ну и в принципе, я бы второй и третий запрос объединил джойном.
Сергей Шлоков
02 августа 2016, 17:28
+1
Попробуй так.
Сергей Шлоков
02 августа 2016, 13:11
1
+4
Есть такая таблица modx_ticket_views. В ней хранится дата последнего просмотра ресурса текущим пользователем. Все комментарии ресурса, у которых дата создания позже даты из этой таблицы, считаются непрочитанными. Они высчитываются на лету.