Подскажите как в моем случае на MODx Revo 2.1.1 сделать то же самое. Нужно наплодить 5-7 тысяч доков,
НО вот беда: Doc Manager с этой версией MODx у меня не работает, а Batcher, который заменяет его в Рево не дает возможности копировать ресурсы с дочерними документами, т.к. он у меня и дерево ресурсов не отображает. Как в Revolution можно сделать подобное?
Очень просто, руками плодить документы, я бы назвал это полное извращение.
Пример кода, под себя можно править, по умолчанию, создаёт один TV для вывода картинки
Создайте файл к примеру addcontent.php и поместите в любое, для Вас удобное место, потом просто его вызывайте.
<?php
require_once './config.core.php';
require_once MODX_CORE_PATH.'model/modx/modx.class.php';
$modx = new modX();
$modx->initialize('web');
$modx->getService('error','error.modError');
$doc_name = array('Мышка','Клавиатура','Коврик','Флешка');//имена документов будут назначены в произвольном порядке
$doc_content = '
<p>Коллоидный процесс экстремально вызывает влагомер одинаково по всем направлениям. Пространственная вариабельность почвенного покрова, как бы это ни казалось парадоксальным, притягивает удельный дренаж, все дальнейшее далеко выходит за рамки текущего исследования и не будет здесь рассматриваться. В лабораторных условиях было установлено, что электрод традиционно вымывает в гончарный дренаж, все дальнейшее далеко выходит за рамки текущего исследования и не будет здесь рассматриваться. При переходе к следующему уровню организации почвенного покрова потенциал почвенной влаги неустойчив. Показатель адсорбируемости натрия отталкивает агрегат, хотя этот факт нуждается в дальнейшей тщательной экспериментальной проверке. Денситомер, как следствие уникальности почвообразования в данных условиях, растворяет ореховатый массоперенос, и этот процесс может повторяться многократно. </p>
';
$doc_introtext = 'Коллоидный процесс экстремально вызывает влагомер одинаково по всем направлениям.';
$doc_tv = array(1=>array(300,500,488.77,650),2=>'assets/images/mouse_pad.jpg'); //TV: ID и значения
$doc_context = 'catalog'; //контекст
$doc_template = 5; //ID шаблона
$doc_parent = 1894;//ID родительского документа
$doc_number = 1000;//число ресурсов (документов)
for($i=0;$i<$doc_number;$i++){
$resource = $modx->newObject('modDocument');
$resource->set('pagetitle', '1');
$resource->set('introtext', $doc_introtext);
$resource->set('content', $doc_content);
$resource->set('parent', $doc_parent);
$resource->set('published',true);
$resource->set('isfolder', false);
$resource->set('context_key', $doc_context);
$resource->set('template', $doc_template);
$pagetitle = is_array($doc_name) ? $doc_name[rand(0,(count($doc_name)-1))].$i.' '.uniqid() : $doc_name.$i.' '.uniqid();
$resource->set('pagetitle', $pagetitle);
$alias = uniqid().$i;
$resource->set('alias', $alias);
//$aliasPath = $resource->getAliasPath('', array('parent'=>$doc_parent,'automatic_alias'=>true,'pagetitle'=>$pagetitle));
$tmplvars = array();
foreach($doc_tv as $tvkey => $tvval){
$templateVarResource = $modx->newObject('modTemplateVarResource');
$templateVarResource->set('tmplvarid', $tvkey);
$templateVarResource->set('value', is_array($tvval) ? $tvval[rand(0,(count($tvval)-1))] : $tvval);
$tmplvars[] = $templateVarResource;
}
$resource->addMany($tmplvars);
$resource->save();
}
echo "Создано {$doc_number} документ(ов).";
?>
по умолчанию $doc_number = 1000 русурсов за один раз, если памяти маловато, снизьте число.
Запускайте срипт, столько, сколько нужно ресурсов.
P.S. Тут в виев всё режет русские буквы, прикрепил архивом
[ed. note: valikras last edited this post 12 years, 5 months ago.]