Финансовая поддержка VPS, бесплатные дополнения и docs Донаты оплачивают сервер и двигают бесплатные дополнения MODX и документацию. Поддержать

Всего 126 145 комментариев

Василий Наумкин
Василий Наумкин
Евгений Довгань
Евгений Довгань
Нужно обязательно через Login, но ведь через window.open(); после логина — она редиректится на какой либо ресурс, как сделать что бы она закрывалась?
Прошу прощения за такие вопросы, я только постигаю)
Василий Наумкин
Василий Наумкин
Самый простой — открывать форму во всплывающем окне браузера методом window.open();

Более красиво, через ajax можно сделать только авторизацию по логину\паролю, с социальной авторизацией (как тут) не прокатит.
Scorp Satex
Scorp Satex
А если приготовить это облако тегов, и прикрутить к этому getResources?

При щелчке на теге, выводиться все результаты с таким то тегом…

Беда только в том, что я не знаю как вызывать getResources с такими параметрами, чтобы он понял что за теги искать…

Подскажешь?
Василий Наумкин
Василий Наумкин
Смотри, вот сниппет, который построит тебе дерево ресурсов глубиной в 2 уровня, от указанного родителя.

$parent = 3;
$exclude_parents = array(3,13,69,81);
$template = 4;

$ids = $modx->getChildIds($parent, 1, array('context' => 'web')); // получаем всех потомков родителя

$q = $modx->newQuery('modResource', array('parent:IN' => $ids, 'OR:id:IN' => $ids)); // Выбираем подкатегории + категории
$q->andCondition(array('id:NOT IN' => $exclude_parents, 'template' => $template)); // Убираем ненужные по id и шаблону
$q->select('id,pagetitle,parent');	// Нам нужно только 3 поля
// Поехали!
$resources = array();
if ($q->prepare() && $q->stmt->execute()) {
	while ($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) {
		if ($row['parent'] == $parent) {
			if (isset($resources[$row['id']])) {
				$resources[$row['id']] = array_merge($resources[$row['id']], $row);
			}
			else {
				$resources[$row['id']] = $row;
				$resources[$row['id']]['children'] = array();
			}
			
		}
		else {
			$resources[$row['parent']]['children'][$row['id']] = $row;
		}
	}
}
echo'<pre>';print_r($resources);die;

Вот такой будет результат.
Array
(
    [1] => Array
        (
            [id] => 1
            [pagetitle] => Главная
            [parent] => 0
            [children] => Array
                (
                )

        )

    [11] => Array
        (
            [children] => Array
                (
                    [2] => Array
                        (
                            [id] => 2
                            [pagetitle] => Категория 1
                            [parent] => 11
                        )

                    [4] => Array
                        (
                            [id] => 4
                            [pagetitle] => Корзина
                            [parent] => 11
                        )
                )
            [id] => 11
            [pagetitle] => miniShop2
            [parent] => 0
        )
)
Ну а дальше ты можешь пройтись по нему foreach() и оформить как угодно. Обрати внимание, что у всез нужных ресурсов должен быть один указанный шаблон, иначе дерево может быть неправильным.
Василий Наумкин
Василий Наумкин
А нет ли у тебя в чанках сниппета какого-то, может он ошибку выдает или рекурсию устраивает?

Все письма парсятся как страницы сайт. Глянь в лог сервера и системный журнал, возможно у тебя прям ошибка php.