Дмитрий

Дмитрий

С нами с 23 апреля 2015; Место в рейтинге пользователей: #325
Дмитрий
04 мая 2015, 02:56
0
Была такая мысль, но не было времени проверить. ;)
Спасибо!
Дмитрий
04 мая 2015, 02:50
0
Для чего? Чтобы русскоговорящий пользователь захотел получить описание предметов на другом языке? Обычно на сайте можно выбирать языки в меню.
Пытаюсь избавиться от рутины ручного дублирования ресурсов. Но похоже, что при любом добавлении новых, придется дублировать их не один раз.
Дмитрий
03 мая 2015, 14:25
0
Однако, спасибо. Я долго ломал голову, и не мог заставить гугл объяснить мне как вернуть значение контекста. + Вы открыли для меня Америку с кашерными modx запросами.

1. Если я правильно понимаю:
$modx->newQuery('Items');
— обращение к таблице `Items` в базе MODx. Верно?

2. Следующий вопрос касается моих сомнений по поводу кеширования.

Жизнеспособна ли смена контекста без изменения пути к странице?

Как я понимаю, правильная мультиязычность такова:
RU - http://ru.mysite.trade/items.html
EN - http://en.mysite.trade/items.html
Жизнеспособен ли следующий вариант, если выбранный контекст будет храниться у пользователя в профиле?
RU - http://mysite.trade/items.html
EN - http://mysite.trade/items.html
3. То есть в любом случае необходимо дублировать ресурсы, верно?
Дмитрий
02 мая 2015, 21:19
-1
Слегка дополнил код создания:
$document->set('createdby', $modx->user->get('id'));// - присваиваем автора ресурсу.
$document->set('template', '9');// - присваиваем шаблон ресурсу. (9 - empty)
$document->set('isfolder', '0');// - новый ресурс не будет контейнером.
$document->set('hidemenu', '1');
$document->set('content_dispo', '1');
$document->set('content_type', $content_type);
$document->set('published', '1');// - будет опубликован.
$document->set('createdon', time());// - дата создания контента.
$document->set('pagetitle', $name);// - заголовок материала.
$document->set('alias', $name);// - псевдоним для ссылки.
$document->set('description', 'Items IDs');// - описание, description.
$document->setContent($data);// - содержимое ресурса.
$document->set('parent', $parent);// - идентификатор родителя.
$document->save();// - сохраняем материал.
Дмитрий
02 мая 2015, 19:59
0
1. Понял в чем моя ошибка:
$resource_id = $modx->runSnippet('pdoResources',Array(
	'resources' => 'Test',
	'returnIds' => 1
));
resouces — берет id ресурсов.

2. Решил проблему следующим образом:
Создал чанк:
[[!pdoResources?
    &parents = `[[+parent]]`
    &returnIds = `1`
]]
Где parent — id контейнера с JSON ресурсами.

В итоге, получился следующий сниппет:
$resource_id = $modx->getChunk('JSON-Creator-GetID',Array(
	'parent' => $parent
));

$ids = explode(',',$resource_id);

$i = 0;
if($resource_id){
	foreach($resource_id as $id){
		if ($modx->getObject('modResource',$id)){
			$i = $id;
		}
	}
}

if($i > 0){
	$document = $modx->getObject('modResource',$id);
}else{
	$document = $modx->newObject('modResource');
}

$document->set('createdby', $modx->user->get('id'));// - присваиваем автора ресурсу.
$document->set('template', '1');// - присваиваем шаблон ресурсу.
$document->set('isfolder', '0');// - новый ресурс не будет контейнером.
$document->set('hidemenu', '1');
$document->set('published', '1');// - будет опубликован.
$document->set('createdon', time());// - дата создания контента.
$document->set('pagetitle', $name);// - заголовок материала.
$document->set('alias', $name);// - псевдоним для ссылки.
$document->set('description', 'Items IDs');// - описание, description.
$document->setContent($data);// - содержимое ресурса.
$document->set('parent', $parent);// - идентификатор родителя.
$document->save();// - сохраняем материал.
Проблема решена, однако буду рад любым пожеланиям по своему быдлокоду, ибо чую, что все может быть проще.