Как использовать выборку getCollection Новый


Добрый вечер.
Как на основе вывода getCollection создать такой же список категорий в другом родителе с таким же pagetitle
$where = array(
'parent' => 42
);
$resources = $modx->getCollection('modResource',$where);
$output = 'Всего ресурсов: '.count($resources).'';
foreach ($resources as $k => $res) {
$output .= '['.$k.'] => '.$res->get('pagetitle').'';
}

Я получил нужные pagetitle, но не могу понять как их применить для создания новых категорий.
Заранее спасибо.
15 февраля 2017, 22:07    Aleksandr Suslov   
0    291 -1

Комментарии (9)

  1. Гриборий 16 февраля 2017, 01:10 # +1
    У Ильи доступно про xPDO написано. Изучите, а то так и будете каджый час вопросы писать.
    1. Aleksandr Suslov 16 февраля 2017, 09:59 # 0
      Я почитал. Сделал выборку количества ресурсов, через цикл создал нужное количество. Но никак не могу понять как мне дать названия категориям. У меня он выводит списком, а как разбить я не нашел нигде инфы.
      1. Гриборий 16 февраля 2017, 10:24 # 0
        Не понятно, сформулируйте четче, что нужно? Хотите создать просто ресурсы или речь о категориях minishop2?
        1. Гриборий 16 февраля 2017, 10:33 # 0
          Я почитал
          Методом скорочтения? Создание и удаление объектов.
          1. Aleksandr Suslov 16 февраля 2017, 11:40 # 0
            Есть категория «товары»: в ней 3 дочерних: тапки, шляпы, шубы.
            Есть отдельная категория продавцы. При подтверждении зарегистрировавшегося пользователя через сниппет создается категория «user-sasha» и дочерние ресурсы (количество дочерних категорий «user-shasha» равно количеству дочерних категорий «товары»). Через getCollection я получаю список названий дочерних категорий «товары», но не могу назвать так-же дочерние категории «user-shasha».

            Все дочерние ресурсы — категории minishop2.

            1. Гриборий 16 февраля 2017, 12:49 # 0
              $data = array(
                  'pagetitle' => 'Название категории',
                  'parent' => '123',
                  // и тд
                  );
              $new_category = $modx->newObject('msCategory', $data);
              $new_category->save();
              1. Гриборий 16 февраля 2017, 13:10 # 0
                Это внутри разбора полученной коллекции на ресурсы. То есть, в вашем случае
                foreach ($resources as $res) {
                    $data = array(
                       'pagetitle' => $res->get('pagetitle'),
                        ...
                	
                
                1. Гриборий 16 февраля 2017, 13:19 # 0
                  А, вообще, по-хорошему, ресурсы надо через процессор создавать.
                  $modx->runProcessor('resource/create', $data);
                  Только в этом случае не забудьте в массиве $data указать 'classKey' => 'msCategory'.
                  1. Aleksandr Suslov 16 февраля 2017, 13:23 # 0
                    Огромное вам спасибо.
        Вы должны авторизоваться, чтобы оставлять комментарии.