public function getType() { switch ($this->nav_item_type) { case self::TYPE_PAGE: $object = NavItemPage::findOne($this->nav_item_type_id); break; case self::TYPE_MODULE: $object = NavItemModule::findOne($this->nav_item_type_id); break; case self::TYPE_REDIRECT: $object = NavItemRedirect::findOne($this->nav_item_type_id); break; } // assign the current context for an item type object. $object->setNavItem($this); return $object; }
/** * * Copy content of type cms_nav_item_redirect to a target nav item. This will create a new entry in cms_nav_item_redirect. * * @param $targetNavItem * @return bool */ public function copyRedirectItem($targetNavItem) { if ($this->nav_item_type !== 3) { return false; } $sourceRedirectItem = NavItemRedirect::findOne($this->nav_item_type_id); if (!$sourceRedirectItem) { return false; } $redirectItem = new NavItemRedirect(); $redirectItem->attributes = $sourceRedirectItem->toArray(); if (!$redirectItem->save()) { return false; } $targetNavItem->nav_item_type_id = $redirectItem->id; return $targetNavItem->save(); }