/** * @param ApplicationDefault $app * @param string $path * @return ApplicationDefault */ public static function initSeo(ApplicationDefault $app, $path) { preg_match('#^/all(?:/(?<spe>[^/]+))?(?:/(?<keyword>[^/]+))?#', $path, $m); $app->seoParams["noSpeciality"] = false; if(!Seo::hasSpeciality($app->applicationObject()->identifier)) { $app->seoParams["noSpeciality"] = true; } if( isset($m[0]) ) { if(isset($m["spe"])) { if($app->seoParams["noSpeciality"]) { $row = Seo::fetchSpecialityByUrl($app->applicationObject()->identifier, ""); if(!$row || !isset($row["speciality"])) return $app; $app->seoParams["speciality"] = ""; } else { $row = Seo::fetchSpecialityByUrl($app->applicationObject()->identifier, $m["spe"]); if(!$row || !isset($row["speciality"])) return $app; $app->seoParams["speciality"] = $row["speciality"]; } if(isset($m["keyword"])) { $row = Seo::fetchKeywordByUrl($app->applicationObject()->identifier, $m["keyword"]); if(!$row || !isset($row["keyword"])) return $app; $app->seoParams["keyword"] = $row["keyword"]; } } $app->setStatus('seo'); } return $app; }