public function generateUrl(RequestTarget $target) { if ($target instanceof PageInstanceRequestTarget) { $page = $target->getPage(); PageMap::get()->addOrUpdate($page); return '?pageid=' . $page->getId(); } else { throw new \InvalidArgumentException('Expecting PageInstanceRequestTarget'); } }
/** * * @param RequestTarget $target * @todo Create a url builder helper * @todo turn this into an absolute url * @return string the URL for the request target */ public function generateUrl(RequestTarget $target) { if ($target instanceof PageRequestWithListenerTarget) { $trail = ""; if ($target->getPageClass()->namespace != null) { $trail = '/'; } $behaviourApped = null; if ($target->getBehaviour() != null) { $behaviourApped = '&behaviour=' . $target->getBehaviour(); } return $target->getPageClass()->namespace . $trail . $target->getPageClass()->className . '?listener=' . $target->getComponentPath() . $behaviourApped; } else { if ($target instanceof ListenerRequestTarget) { $ident = $target->getPage()->getIdentifier(); $trail = ""; if ($ident->namespace != null) { $trail = '/'; } $behaviourApped = null; if ($target->getBehaviour() != null) { $behaviourApped = '&behaviour=' . $target->getBehaviour(); } return $ident->namespace . $trail . $ident->className . '?pageid=' . $target->getPage()->getId() . '&listener=' . $target->getComponentPath() . $behaviourApped; } else { $trail = ""; if ($target->getPageClass()->namespace != null) { $trail = '/'; } return $target->getPageClass()->namespace . $trail . $target->getPageClass()->className; } } }