diff --git a/private/bin/regenerateAutoUrlsForIndexing.php b/private/bin/regenerateAutoUrlsForIndexing.php new file mode 100644 index 0000000..7dbf99e --- /dev/null +++ b/private/bin/regenerateAutoUrlsForIndexing.php @@ -0,0 +1,23 @@ +#!/usr/bin/php +100, 'skip'=>0, 'sort'=> [ 'creationDate' => 1 ] ]; + +$notizie = GlobalVariables::get("dao")->query("NotiziaModel", [], $options); + +while (sizeof($notizie)>0 ){ + foreach ($notizie as $notizia){ + $notizia->buildAutoShortenedUrl(); + GlobalVariables::get("dao")->save($notizia); + } + $options['skip']+=$options['limit']; +} + +?> \ No newline at end of file diff --git a/private/lib/dao/models/NotiziaModel.php b/private/lib/dao/models/NotiziaModel.php index e88e93e..1cd50df 100644 --- a/private/lib/dao/models/NotiziaModel.php +++ b/private/lib/dao/models/NotiziaModel.php @@ -78,6 +78,13 @@ class NotiziaModel extends HasMediaModel{ return parent::__set($attr, $value); } + public function buildAutoShortenedUrl(){ + $shortened = preg_replace("/[^a-z0-9-_]/", "", $this->titolo); + $shortened = preg_replace("/\s+/", " ", trim($shortened) ); + $eles = explode(" ", $shortened); + $eles = array_slice($eles, 0, 15); + $this->shortenedUrl = implode("_", $eles); + } } ?> diff --git a/public/admin/editNotizie.php b/public/admin/editNotizie.php index db0f0c1..61ef982 100644 --- a/public/admin/editNotizie.php +++ b/public/admin/editNotizie.php @@ -75,6 +75,8 @@ try{ $notizia->about->owner = AdminLoginManager::getLogged()->id; } + $notizia->buildAutoShortenedUrl(); + if (!array_key_exists($notizia->category,NotiziaModel::$NOTIZIE_CATEGORY)){ throw new GUIException("La categoria inserita non รจ valida"); } diff --git a/public/articolo.php b/public/articolo.php index b1520e0..e8c54ac 100644 --- a/public/articolo.php +++ b/public/articolo.php @@ -12,7 +12,11 @@ try { $articolo = null; if (array_key_exists("id", $_GET)){ - $articolo = GlobalVariables::get("dao")->getFirst("NotiziaModel",array("id"=>$_GET["id"],"status"=>NotiziaModel::STATUS_ACCEPTED)); + $articolo = GlobalVariables::get("dao")->getFirst("NotiziaModel",array("id"=>strval($_GET["id"]),"status"=>NotiziaModel::STATUS_ACCEPTED)); + } + else if (array_key_exists("short", $_GET) ) { + $short = strval($_GET["short"]); + $articolo = GlobalVariables::get("dao")->getFirst("NotiziaModel",array("shortenedUrl"=> $short ,"status"=>NotiziaModel::STATUS_ACCEPTED)); } if (is_null($articolo)){ GUIHandler::redirect("index.php");