UMIhelp

Разработка дополнительного функционала => Custom макросы => Тема начата: Rodogor от 17 Января 2013, 20:23:46

Название: Редирект на созданную страницу.
Отправлено: Rodogor от 17 Января 2013, 20:23:46
Здравствуйте. Вроде не маленький мальчик и подобное делал не раз, но почему-то сейчас у меня не получается сделать редирект на созданную страницу, как допустим создание блога - отправили из формы данные в макрос, а там $this->redirect();

Что делаю:
0. создаём страницу - получаем id
1. прописываем права (аналогично блогах и стандартному кодэ)
2. по id страницы получаем objectId источника данных страницы
3. сохраняем заполненные поля
4. commit для созданной страницы
5. выводим id страницы - выводится
6. через происходит либо а) выводим url - не выводится б) если выводится - редиректится

Что пробовал делать - у меня по порядку идут страницы, т.е. я заранее знаю url. Так вот я руками прописывал следующий url и редирект происходил.
              
 
                $questId = $hierarchy->addElement('41807','27', $name, $name,'1338');
$quest = $hierarchy->getElement($questId);
$quest->setIsActive(true);
$oUsers = cmsController::getInstance()->getModule('users');
$pCollection = permissionsCollection::getInstance();
$pCollection->setDefaultPermissions($questId);
$pCollection->setElementPermissions($oUsers->user_id, $questId, 31);
$user     = umiObjectsCollection::getInstance()->getObject( $oUsers->user_id );
$groups   = $user->getValue('groups');
foreach($groups as $id)
$pCollection->setElementPermissions($id, $blogId, 1);
$data = cmsController::getInstance()->getModule("data");
$oQuestId = $quest->getObjectId();
$data->saveEditedObject($oQuestId,true);
$quest->commit();
var_dump($questId);
var_dump($hierarchy->getIdByPath($questId));
$this->redirect($hierarchy->getIdByPath($questId));

UPDATE:
заметил, что так работает -
$this->redirect($quest->link);   
Название: Re:Редирект на созданную страницу.
Отправлено: admin от 18 Января 2013, 11:51:27
попробуй не
$this->redirect($hierarchy->getIdByPath($questId));

, а
$url = $hierarchy->getIdByPath($questId);
var_dump($url);
$this->redirect($url);

и заодно скажи, выводиться ли $url?
Название: Re:Редирект на созданную страницу.
Отправлено: Vladimir от 18 Января 2013, 19:53:40
ээээ.. а почему $hierarchy->getIdByPath($questId); ??
Мне всегда казалось, что в redirect нужно передавать урл, а не id
Название: Re:Редирект на созданную страницу.
Отправлено: Vladimir от 18 Января 2013, 19:54:34
ах да! getIdByPath($questId);   => getPathById
Название: Re:Редирект на созданную страницу.
Отправлено: admin от 19 Января 2013, 02:08:52
действительно, напутал сам когда копировал с исходника