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

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

С нами с 31 января 2013; Место в рейтинге пользователей: #3
Сергей Шлоков
26 декабря 2015, 12:21
3
+2
Ну самое простое это сделать сниппет, в котором запрашивать группы
<?php
if ($modx->user->get('id')) {
	$q = $modx->newQuery('modUser',array('`modUser`.`id`'=>$modx->user->get('id')));
	$q->innerJoin('modUserGroupMember','UserGroupMembers');
	$q->innerJoin('modUserGroup','UserGroup','`UserGroupMembers`.`user_group` = `UserGroup`.`id`');
	$q->select('UserGroup.name');
	$groupsArray = array();
	if ($q->prepare() && $q->stmt->execute()) {
	    while($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) {
		    $groupsArray[] = $row['name'];
	    }
	}
	// Список групп через запятую
	$userGroups = implode(',',$groupsArray);
} else {
	$userGroups = 'Аноним';
}
return $userGroups;
и вставлять его в нужное место.
Сергей Шлоков
25 декабря 2015, 14:18
+2
Все проще.
В сниппете (хотя через файл будет быстрее) в массив нужно добавить признак успешности success=true
$output['success'] = true;
// И выводить в JSON
exit($modx->toJSON($output));
А в файле скрипта функцию load() заменить на post()
$.post("/assets/ajax.php",{action:"getContent",id:id}, function(response) {
	response.success = response.success || false;
	if (response.success) {
		$('.modal-title','#mymodal').text(response.pagetitle);
		$('#content','#mymodal').html(response.content);
		$("#mymodal").modal('show');
	}
}, 'json');
Сергей Шлоков
25 декабря 2015, 12:09
0
1. Опечатался, спасибо. Конечно нужен класс, ведь таких ссылок на странице несколько.
2. 'action' посылается в скрипте (см. «Шаг 2»). В принципе только для этого случая aсtion можно не использовать. Но это будет полезно для универсального контроллера, так как на него можно слать другие ajax-запросы для других действий.
А как мне вместо надписи Модальное окно в самом модальном окне)) выводить заголовок статьи pagetitle?
Для этого нужно доработать и ajax.php (чтобы возвращал и контент и заголовок) и javascript (чтобы разобрать результат запроса и расставить всё по местам). А load() заменить на post(). Т.е. это для самостоятельного примера.
П.С. А почта могла в спам попасть. Как минимум я и еще двое зарегистрировались без проблем.
Сергей Шлоков
25 декабря 2015, 11:55
+2
Как минимум, надо причесать сначала. Щас не до этого. После Нового года постараюсь.
Сергей Шлоков
24 декабря 2015, 19:33
0
Ну для начала нужно в категориях прописывать ссылки с cat=id ресурса.
Сергей Шлоков
24 декабря 2015, 18:53
0
Да забросил я это дело. Василий озвучил, что в планах есть создание решения для сообщений, поэтому я решил, что не имеет смысла городить огород.
Сергей Шлоков
24 декабря 2015, 10:30
0
Странно, у тебя написано
id:'mycomponent-checkbox-product-group',
xtype: 'checkboxgroup',...
Сергей Шлоков
24 декабря 2015, 10:26
+2
Простейшие манипуляции
<?php
// Фильтруем по параметру cat (category)
$parent = isset($_GET['cat']) ? intval($_GET['cat']) : '';

if ($parent ) {
    $where = '{"parents":"'.$parent.'"}';
    $scriptProperties = array_merge($scriptProperties,array('where'=>$where));
}

return $modx->runSnippet('pdoResources',$scriptProperties)
И попробуйте на странице с этим сниппетом прописать в адресной строке параметр ?cat=10
Сергей Шлоков
24 декабря 2015, 09:57
0
Как-то мудрёно ты добавляешь чекбокс. Попробуй так
checkbox.items.push({boxLabel: row.data.pagetitle, name: 'products['+row.data.id+']', value: row.data.id, checked: true});
checkbox.doLayout();
Сергей Шлоков
24 декабря 2015, 07:20
0
Когда в контейнер добавляешь элемент, его нужно перерисовывать
container.doLayout();
Сергей Шлоков
24 декабря 2015, 07:06
0
Вот как вариант. Только tag нужно заменить на parent.
П.С. Если уже стоит pdoTools, то лучше использовать pdoMenu вместо Wayfinder.
Сергей Шлоков
23 декабря 2015, 22:26
0
Кликни на ajax.php и дверь откроется :)
А там комментарии оставлять нельзя? говорит не достаточно прав
Да руки еще не до всего дошли. Щас вроде должно быть нормально.
Сергей Шлоков
23 декабря 2015, 22:25
0
Пожалуйста!
А на что конкретно ругается непонятно? У меня касперский молчит и яндекс тоже.
Сергей Шлоков
23 декабря 2015, 18:58
1
+2
Ещё тут можно почитать.
Сергей Шлоков
23 декабря 2015, 08:47
0
Заметил такую вещь — когда тикету в админке ставишь галочку «Опубликован», то он сбрасывает uri, несмотря на то, что стоит «Заморозить URI». Чей этот косяк — MODX или Tickets?
П.С. За транслитерацию отвечает ytranslite. Он генерит ошибку при создании нового тикета.
П.П.С. Еще вот такие ошибки бывают. Ругается на плагин Tickets
[2015-12-23 04:56:35] (ERROR @ /home/user/www/core/cache/includes/elements/modplugin/16.include.cache.php : 60) PHP warning: preg_match(): Unknown modifier '-'
Сергей Шлоков
20 декабря 2015, 07:20
0
AjaxSnippet вам тут не поможет. Если вы не знаете javascript, то вам вряд ли объяснишь — нужно делать уже готовое решение, а если знаете, то вот материал в помощь.
Сергей Шлоков
18 декабря 2015, 16:47
+1
У вас контексты настроены? В них должен быть прописан site_url для каждого контекста свой, а в шаблоне должна быть такая строчка
<base href="[[!++site_url]]" />
Сергей Шлоков
18 декабря 2015, 11:52
0
Установите системную настройку allow_forward_across_contexts в «Да».
Сергей Шлоков
18 декабря 2015, 11:46
0
Во втором варианте нужен еще параметр с паттерном
$_SESSION['form'] = $modx->sanitize($_POST, $modx->sanitizePatterns);