UMIhelp
Разработка дополнительного функционала => Разработка модулей => Тема начата: Byte от 16 Мая 2013, 18:59:12
-
Всем привет!
Впервые взялся за разработку собственного модуля для UMI, делаю по примерам из документации, так же из примеров взял код создания страниц, но при его выполнении почему-то создаются 2 одинаковые страницы, разница только в псевдостатическом адресе, у 2й дописывается единица. В чем может быть дело?
Вот код:
public function newMyPage() {
//Определим свойства страницы, которую будем создавать
$newElementName = $_POST["caption"];
$hierarchy = umiHierarchy::getInstance();
$newElementAltName = $hierarchy->convertAltName($newElementName); ;
//Получим иерархический типа страницы - "Новость"
$hierarchyTypes = umiHierarchyTypesCollection::getInstance();
$hierarchyType = $hierarchyTypes->getTypeByName("MyPages", "MyPage");
$hierarchyTypeId = $hierarchyType->getId();
$hierarchy = umiHierarchy::getInstance();
//Получим id родительской страницы
$parentElementId = 0;
//add new element
$newElementId = $hierarchy->addElement($parentElementId, $hierarchyTypeId, $newElementName, $newElementAltName);
if($newElementId === false) {
echo "Не удалось создать новую страницу";
}
//Установим права на страницу в состояние "по умолчанию"
$permissions = permissionsCollection::getInstance();
$permissions->setDefaultPermissions($newElementId);
//Получим экземпляр страницы
$newElement = $hierarchy->getElement($newElementId);
if($newElement instanceof umiHierarchyElement) {
//Заполним новую страницу свойствами
$newElement->setValue("h1", $newElementName);
//Укажем, что страница является активной
$newElement->setIsActive(true);
//Подтвердим внесенные изменения
$newElement->commit();
//Покажем адрес новой страницы
echo "Успешно создана страница с адресом: \"", $hierarchy->getPathById($newElementId), "\"";
} else {
echo "Не удалось получить экземпляр страницы #{$newElementId}.";
}
}
-
Добавил шаблон для данного метода, все стало ОК =D
-
если создавалось 2 страницы с одинаковым именем(а прибавка цифры после alt-name говорит именно об этом), то где происходит повторное выполнение данного макроса