Массовое изменение типа данных у дочерних страниц — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
(Новая страница: «Если Вам необходимо массово изменить тип данных дочерних страниц, например, у раздела кат…»)
 
 
(не показаны 2 промежуточные версии 2 участников)
Строка 1: Строка 1:
 +
'''Актуально для версии 18.'''
 +
 
Если Вам необходимо массово изменить тип данных дочерних страниц, например, у раздела каталога, то для этого можно написать простой скрипт.
 
Если Вам необходимо массово изменить тип данных дочерних страниц, например, у раздела каталога, то для этого можно написать простой скрипт.
  
Строка 4: Строка 6:
  
 
<source lang="php">
 
<source lang="php">
 +
<?php
 +
 
   require 'standalone.php';
 
   require 'standalone.php';
 
      
 
      
Строка 10: Строка 14:
 
   $childrenList = $hierarchy->getChildrenTree($parentId);
 
   $childrenList = $hierarchy->getChildrenTree($parentId);
  
   foreach($childrenList as $id => $value) {
+
   foreach($childrenList as $elementId => $value) {
 +
    $element = $hierarchy->getElement($elementId);
 
     $object = $element->getObject();
 
     $object = $element->getObject();
  

Текущая версия на 07:43, 13 августа 2018

Актуально для версии 18.

Если Вам необходимо массово изменить тип данных дочерних страниц, например, у раздела каталога, то для этого можно написать простой скрипт.

Добавим файл change_type.php в корень сайта и внесем в него следующий код:

<?php

  require 'standalone.php';
    
  $hierarchy = umiHierarchy::getInstance();

  $childrenList = $hierarchy->getChildrenTree($parentId);

  foreach($childrenList as $elementId => $value) {
    $element = $hierarchy->getElement($elementId);
    $object = $element->getObject();

    if (!$object instanceof iUmiObject) {
	throw new Exception('Передан не объект');
    }
	
    $object->setTypeId($typeId);
  }

Где $parentId это id элемента, дочерние страницы которого мы хотим изменить, а $typeId это id нового типа данных.


Внимание: Уже заполненные значения останутся в БД, но станут недоступны через API, если не переключить тип данных для объекта назад.

Вызвать скрипт вы можете перейдя по ссылке имя_сайта.ru/change_type.php