protected function findPagePath(PageLocalization $pageData)
	{
		$active = true;
		$limited = false;
		$inSitemap = true;

		$path = new Path();

		// Inactive page children have no path
		if ( ! $pageData->isActive()) {
			$active = false;
		}

		if ( ! $pageData->isVisibleInSitemap()) {
			$inSitemap = false;
		}

		$pathPart = $pageData->getPathPart();

		if (is_null($pathPart)) {
			return array(null, false, false, false);
		}

		$path->prependString($pathPart);

		$page = $pageData->getMaster();
		$locale = $pageData->getLocale();

		$parentPage = $page->getParent();

		if (is_null($parentPage)) {
			return array($path, $active, $limited, $inSitemap);
		}

		$parentLocalization = $parentPage->getLocalization($locale);

		// No parent page localization
		if (is_null($parentLocalization)) {
			return array(null, false, false, false);
		}

		// Page application feature to generate base path for pages
		if ($parentPage instanceof ApplicationPage) {
			$applicationId = $parentPage->getApplicationId();

			$pageApplicationManager = $this->container['cms.pages.page_application_manager'];
			/* @var $pageApplicationManager PageApplicationManager */

			if (! $pageApplicationManager->hasApplication($applicationId)) {
				throw new Exception\PagePathException(
						sprintf("Failed to generate path because, page application [%s] not found.", $applicationId),
						$pageData
				);
			}

			$application = $pageApplicationManager->createApplicationFor($pageData, $this->em);

			$pathBasePart = $application->generatePath($pageData);
			$path->prepend($pathBasePart);
		}

		// Search nearest page parent
		while ( ! $parentLocalization instanceof PageLocalization) {
			$parentPage = $parentPage->getParent();

			if (is_null($parentPage)) {
				return array($pageData->getPathPart(), $active, $limited, $inSitemap);
			}

			$parentLocalization = $parentPage->getLocalization($locale);

			// No parent page localization
			if (is_null($parentLocalization)) {
				return array(null, false, false, false);
			}
		}

		// Is checked further
//		if ( ! $parentLocalization->isActive()) {
//			$active = false;
//		}
		// Assume that path is already regenerated for the parent
		$parentPath = $parentLocalization->getPathEntity()->getPath();
		$parentActive = $parentLocalization->getPathEntity()->isActive();
		$parentInSitemap = $parentLocalization->getPathEntity()->isVisibleInSitemap();

		if ( ! $parentActive) {
			$active = false;
		}

		if ( ! $parentInSitemap) {
			$inSitemap = false;
		}

		if (is_null($parentPath)) {
			return array(null, false, false, false);
		}

		$path->prepend($parentPath);

		return array($path, $active, $limited, $inSitemap);
	}
protected function findPagePath(PageLocalization $pageData)
	{
		$active = true;
		$limited = false;
		$inSitemap = true;

		$path = new Path();

		// Inactive page children have no path
		if ( ! $pageData->isActive()) {
			$active = false;
		}

		if ( ! $pageData->isVisibleInSitemap()) {
			$inSitemap = false;
		}

		$pathPart = $pageData->getPathPart();

		if (is_null($pathPart)) {
			return array(null, false, false, false);
		}

		$path->prependString($pathPart);

		$page = $pageData->getMaster();
		$locale = $pageData->getLocale();

		$parentPage = $page->getParent();

		if (is_null($parentPage)) {
			return array($path, $active, $limited, $inSitemap);
		}

		$parentLocalization = $parentPage->getLocalization($locale);

		// No parent page localization
		if (is_null($parentLocalization)) {
			return array(null, false, false, false);
		}

		// Page application feature to generate base path for pages
		if ($parentPage instanceof ApplicationPage) {
			$applicationId = $parentPage->getApplicationId();

			$pageApplicationManager = $this->container['cms.pages.page_application_manager'];
			/* @var $pageApplicationManager PageApplicationManager */

			if (! $pageApplicationManager->hasApplication($applicationId)) {
				throw new Exception\PagePathException(
						sprintf("Failed to generate path because, page application [%s] not found.", $applicationId),
						$pageData
				);
			}

			$application = $pageApplicationManager->createApplicationFor($pageData, $this->em);

			$pathBasePart = $application->generatePath($pageData);
			$path->prepend($pathBasePart);
		}

		// Search nearest page parent
		while ( ! $parentLocalization instanceof PageLocalization) {
			$parentPage = $parentPage->getParent();

			if (is_null($parentPage)) {
				return array($pageData->getPathPart(), $active, $limited, $inSitemap);
			}

			$parentLocalization = $parentPage->getLocalization($locale);

			// No parent page localization
			if (is_null($parentLocalization)) {
				return array(null, false, false, false);
			}
		}

		// Is checked further
//		if ( ! $parentLocalization->isActive()) {
//			$active = false;
//		}
		// Assume that path is already regenerated for the parent
		$parentPath = $parentLocalization->getPathEntity()->getPath();
		$parentActive = $parentLocalization->getPathEntity()->isActive();
		$parentInSitemap = $parentLocalization->getPathEntity()->isVisibleInSitemap();

		if ( ! $parentActive) {
			$active = false;
		}

		if ( ! $parentInSitemap) {
			$inSitemap = false;
		}

		if (is_null($parentPath)) {
			return array(null, false, false, false);
		}

		$path->prepend($parentPath);

		return array($path, $active, $limited, $inSitemap);
	}
protected function findPagePath ( PageLocalization $ pageData ) { $ active = true ; $ limited = false ; $ inSitemap = true ; $ path = new Path ( ) ; // Inactive page children have no path if ( ! $ pageData -> isActive ( ) ) { $ active = false ; } if ( ! $ pageData -> isVisibleInSitemap ( ) ) { $ inSitemap = false ; } $ pathPart = $ pageData -> getPathPart ( ) ; if ( is_null ( $ pathPart ) ) { return array ( null , false , false , false ) ; } $ path -> prependString ( $ pathPart ) ; $ page = $ pageData -> getMaster ( ) ; $ locale = $ pageData -> getLocale ( ) ; $ parentPage = $ page -> getParent ( ) ; if ( is_null ( $ parentPage ) ) { return array ( $ path , $ active , $ limited , $ inSitemap ) ; } $ parentLocalization = $ parentPage -> getLocalization ( $ locale ) ; // No parent page localization if ( is_null ( $ parentLocalization ) ) { return array ( null , false , false , false ) ; } // Page application feature to generate base path for pages if ( $ parentPage instanceof ApplicationPage ) { $ applicationId = $ parentPage -> getApplicationId ( ) ; $ pageApplicationManager = $ this -> container [ 'cms.pages.page_application_manager' ] ; /* @var $pageApplicationManager PageApplicationManager */ if ( ! $ pageApplicationManager -> hasApplication ( $ applicationId ) ) { throw new Exception \ PagePathException ( sprintf ( "Failed to generate path because, page application [%s] not found." , $ applicationId ) , $ pageData ) ; } $ application = $ pageApplicationManager -> createApplicationFor ( $ pageData , $ this -> em ) ; $ pathBasePart = $ application -> generatePath ( $ pageData ) ; $ path -> prepend ( $ pathBasePart ) ; } // Search nearest page parent while ( ! $ parentLocalization instanceof PageLocalization ) { $ parentPage = $ parentPage -> getParent ( ) ; if ( is_null ( $ parentPage ) ) { return array ( $ pageData -> getPathPart ( ) , $ active , $ limited , $ inSitemap ) ; } $ parentLocalization = $ parentPage -> getLocalization ( $ locale ) ; // No parent page localization if ( is_null ( $ parentLocalization ) ) { return array ( null , false , false , false ) ; } } // Is checked further //		if ( ! $parentLocalization->isActive()) { //			$active = false; //		} // Assume that path is already regenerated for the parent $ parentPath = $ parentLocalization -> getPathEntity ( ) -> getPath ( ) ; $ parentActive = $ parentLocalization -> getPathEntity ( ) -> isActive ( ) ; $ parentInSitemap = $ parentLocalization -> getPathEntity ( ) -> isVisibleInSitemap ( ) ; if ( ! $ parentActive ) { $ active = false ; } if ( ! $ parentInSitemap ) { $ inSitemap = false ; } if ( is_null ( $ parentPath ) ) { return array ( null , false , false , false ) ; } $ path -> prepend ( $ parentPath ) ; return array ( $ path , $ active , $ limited , $ inSitemap ) ; }
Loads page path
@param PageLocalization $pageData
@return Path
Loads page path