/** * Get portal object by target * * @param string $target Target to search * * @return \XLite\Module\CDev\DrupalConnector\Model\Portal */ public function getPortalByTarget($target) { $class = \XLite\Core\Converter::getControllerClass($target); $portals = array_filter(\XLite\Module\CDev\DrupalConnector\Drupal\Module::getInstance()->getPortals(), function (\XLite\Module\CDev\DrupalConnector\Model\Portal $portal) use($class) { return $portal->getController() === $class; }); return is_array($portals) ? array_shift($portals) : null; }
/** * Assemble and get controller class name * * @return string */ protected static function getControllerClass() { return \XLite\Core\Converter::getControllerClass(static::getTarget()); }
/** * Return controller for current page * * @param string $target Controller target * @param array $params Controller params OPTIONAL * * @return \XLite\Core\WidgetDataTransport */ public function getPageInstance($target, array $params = array()) { $class = \XLite\Core\Converter::getControllerClass($target); return new \XLite\Core\WidgetDataTransport($class ? new $class(array('target' => $target) + $params) : null); }
/** * Compose URL from target, action and additional params * * @param string $target Page identifier OPTIONAL * @param string $action Action to perform OPTIONAL * @param array $params Additional params OPTIONAL * @param boolean $forceCuFlag Force flag - use Clean URL OPTIONAL * * @return string */ public function buildURL($target = '', $action = '', array $params = array(), $forceCuFlag = null) { if ('' !== $target && ('' !== $action || isset($params['action']) && '' !== $params['action'])) { $class = \XLite\Core\Converter::getControllerClass($target); $paramAction = isset($params['action']) ? $params['action'] : $action; if ($class && $class::needFormId() && !in_array($paramAction, $class::defineFreeFormIdActions())) { $params[\XLite::FORM_ID] = \XLite::getFormId(empty($params['static_form_id'])); } } return \XLite\Core\Converter::buildURL($target, $action, $params, null, false, $forceCuFlag); }
/** * Check if the form must have the form ID * * @return boolean */ protected function hasFormId() { $class = \XLite\Core\Converter::getControllerClass($this->getParam(static::PARAM_FORM_TARGET)); return $class ? $class::needFormId() : true; }