/** * * @param ApplicationDefault $app * @param string $path * @return ApplicationDefault */ public static function initFull($app, $path) { $blockName = $app->blockName(); $applicationName = $app->applicationName(); $params = $app->_params; $outputType = $app->_outputType; $applicationObject = $app->applicationObject; $applicationLocalized = $app->applicationLocalized; $trimedPath = trim($path, '/ '); // ajax call if( in_array( $trimedPath, $app->ajaxAllowedCall() ) ) return $app; // view parameters if( preg_match('#^/\([^\)]+\)/#', $path) ) return $app; if ( $app->hasHomepage($app) && preg_match('#^/list#', $path) ) { $app->setStatus('list'); return $app; } $node = method_exists($app, 'findNodeFromPath') ? $app::findNodeFromPath( $path, $app ) : self::findNodeFromPath( $path, $app ); if ( $node instanceof ApplicationDefault ) { $app->setStatus('list'); return $app; } elseif( $node ) { // content list application with external content /* @var $applicationObject ApplicationObject */ if( $applicationObject->configurationContentService && $applicationObject->hasExternalLinkHandler() ) $app = new ExternalApplication( $params, $outputType, $blockName, $applicationName, $applicationObject, $applicationLocalized ); $app->setStatus('full'); $app->node = $node; } else { if(SolrSafeOperatorHelper::seoIsEnabled($app->applicationObject()->identifier)) $app = $app::initSeo($app, $path); if(!$app->isSeo) $app = self::extendedFactory( $params, $outputType, $blockName, null ); } return $app; }