Дмитрий Суворов

Дмитрий Суворов

С нами с 01 августа 2013; Место в рейтинге пользователей: #185
Андрей П
17 марта 2017, 19:16
1
0
Максим, здесь Вам дают лишь направление для мысли. Ваше дело адаптировать полученное к своим задачам, не забывая, хотя бы на первых порах, обращаться к мануалу-основам работы с MODX. [[*parent]] — id родителя документа. [[#[[*parent]].location]] — вывод поля location, указанного у родителя. notempty — модификатор-условие вернет значение, указанное в ``, если не пусто в выводе, указанном перед ним.
Илья Уткин
17 марта 2017, 09:45
1
0
[[#[[*parent]].location:notempty=`<p>Местоположение: [[#[[*parent]].location]]</p>`]]
Илья Уткин
14 марта 2017, 13:06
1
+1
Вам надо использовать сниппет pdoResources. В нём возможно выбрать картинки с помощью параметров loadModels и class. И в нём уже параметр where будет работать так как надо (только не забудьте добавить в него поля active, parent, чтобы для каждой картинки выбирать только оригинал и не выбирать неактивные картинки).

Кроме того, заметьте, что условие `add` NOT LIKE '%65%' исключит и записи, у которых будут указаны, например, такие числа: 165, 653, 1065 и пр.

И вообще, так как компонент платный, можете написать в техподдержку на сайте modstore.pro. Думаю, вам помогут составить правильный запрос.
Илья Уткин
17 февраля 2017, 09:25
1
0
Если вынос информации в кастомную базу данных не рассматривается, я бы сделал так:

Услуги не включены в ресурсы. Нам же не нужны отдельные страницы для каждой услуги со своим URL…
  • Ремонт телефонов
    • Ремонт Iphone
      • Ремонт Iphone 7
      • Ремонт Iphone 5
    • Ремонт Samsung
  • Ремонт Планшетов

У ресурсов «Ремонт Iphone» и «Ремонт Samsung» добавил бы TV MIGX — основной управляющий блок.

Преимущества MIGX в том, что он может включать в себя другие MIGX. Соответственно на первом уровне будет 3 поля: текстовое поле «Услуга», текстовая область «Описание» ещё один MIGX.

Во втором MIGX будет выпадающий список с дочерними ресурсами и текстовые поля «Стоимость», «Время», может ещё что.



Для вывода на сайте просто можно распарсить получившийся JSON и выводить для каждой модели свою табличку. В родителе можно составить сводную табличку.

Ну и заполнять будет удобно — не надо будет одно и то же в разных ресурсах писать. И редактировать тоже удобно.
Андрей Коробков
16 февраля 2017, 20:17
3
+3
Права пользователя кешируются в сессию, лечу плагином на OnWebPageInit — форсирую получение прав:
<?php
switch ($modx->event->name) {
    case 'OnWebPageInit':
        if($modx->user->isAuthenticated()){
            $modx->getUser('', true);
        }
        break;
}
Здоров Александр
09 февраля 2017, 20:25
1
0
попробуйте поэксперементировать с этим фильтром www.youtube.com/watch?v=NRZkTqCLYVU&
Алексей Федоров
24 января 2017, 17:04
1
+2
ClientConfig может помочь
Максим Кузнецов
24 января 2017, 12:38
3
+1
Примерно так в плагине, но это решение увеличит время создания основной страницы:

if ($modx->event->name == 'OnDocFormSave' && $mode == 'new') {
	$contexts = $modx->getCollection('modContext', array('key:!=' => 'mgr'));

	if ($curr_ctx_key = array_search($resource->get('context'), $contexts)) {
		unset($contexts[$curr_ctx_key]);
	}

	foreach ($contexts as $context) {
		//Создаем ресурс (заполняем все основные не-тв поля)
		$response = $modx->runProcessor('resource/create', array(
			'template' => $resource->get('template'),
			'isfolder' => $resource->get('isfolder'),
			'published' => $resource->get('published'),
			'pagetitle' => $resource->get('pagetitle'),
			'parent' => '', //нужно додумать логику, как связывать родителей из одного контекста с другим
		));
		
		if ($response->isError()) {
			return $modx->error->failure($response->getMessage());
		}
		else {
			//Получаем id свежесозданной копии
			$newId = $response->response['object']['id'];
		
			//Заполняем тв-поля
			$newPage = $modx->getObject('modResource', $newId);
			
			$newPage->setTVValue('Поле_1', $resource->getTvValue('Поле_1'));
			$newPage->setTVValue('Поле_2', $resource->getTvValue('Поле_2'));
			//...
		
			$newPage->save();
		}
	}

	$modx->cacheManager->clearCache();

}
Володя
22 января 2017, 13:08
1
0
Можно добавить нужные опции плагином на событие msOnBeforeAddToCart

if ($modx->event->name != 'msOnBeforeAddToCart') {
    return;
}

$options = $modx->getOption('options', $scriptProperties, array(), true);
$options = array_merge(array(
    'optiondefault1' => '1', // необходимые опции
    'optiondefault2' => '2'  // необходимые опции
), $options);

$values = $modx->Event->returnedValues;
$values['options'] = $options;
$modx->event->returnedValues = $values;

return;
Евгений швелев
22 января 2017, 01:03
2
0
Заходим в системные настройки, ищем ключ с параметром confirm_navigation после чего переключаем его в положение нет.