Files
fdn2/private/lib/gui/MenuGenerator.php
T
2016-01-20 17:26:28 +01:00

125 lines
4.7 KiB
PHP

<?php
/*
Author: Riccardo Di Dato
Creation Date: 13/gen/2016
*/
class MenuGenerator {
private static $voices = array(
array("label"=>"Notizie", "subvoices"=>array(
array("label"=>"Nuova","page"=>"editNotizie.php","requires"=>AdminModel::ADMIN_TYPE_EDITORE),
array("label"=>"Tutte","page"=>"listNotizie.php","requires"=>AdminModel::ADMIN_TYPE_EDITORE_SUPERVISOR),
array("label"=>"Mie Notizie","page"=>"myNotizie.php","requires"=>AdminModel::ADMIN_TYPE_EDITORE),
array("label"=>"Da accettare","page"=>"unacceptedNotizie.php","requires"=>AdminModel::ADMIN_TYPE_EDITORE_SUPERVISOR),
array("label"=>"Respinte","page"=>"rejectedNotizie.php","requires"=>AdminModel::ADMIN_TYPE_EDITORE_SUPERVISOR)
)),
array("label"=>"Giornalisti", "subvoices"=>array(
array("label"=>"Nuovo","page"=>"editGiornalisti.php","requires"=>AdminModel::ADMIN_TYPE_NORMALADMIN),
array("label"=>"Lista","page"=>"listGiornalisti.php","requires"=>AdminModel::ADMIN_TYPE_NORMALADMIN),
)),
array("label"=>"Commenti","page"=>"unacceptedCommenti.php","requires"=>AdminModel::ADMIN_TYPE_COMMENTI_SUPERVISOR),
array("label"=>"Banner", "subvoices"=>array(
array("label"=>"Nuovo","page"=>"editBanner.php","requires"=>AdminModel::ADMIN_TYPE_BANNER),
array("label"=>"Lista","page"=>"listBanner.php","requires"=>AdminModel::ADMIN_TYPE_BANNER)
)),
array("label"=>"Utenti registrati","page"=>"listUsers.php","requires"=>AdminModel::ADMIN_TYPE_NORMALADMIN),
array("label"=>"Newsletter", "subvoices"=>array(
array("label"=>"Nuova","page"=>"editNewsletter.php","requires"=>AdminModel::ADMIN_TYPE_NEWSLETTER),
array("label"=>"Da inviare","page"=>"pendingNewsletter.php","requires"=>AdminModel::ADMIN_TYPE_NEWSLETTER),
array("label"=>"Inviate","page"=>"sentNewsletter.php","requires"=>AdminModel::ADMIN_TYPE_NEWSLETTER)
)),
array("label"=>"Statistiche", "subvoices"=>array(
array("label"=>"Sito","page"=>"statSito.php","requires"=>AdminModel::ADMIN_TYPE_STATISTICHE_SUPERVISOR),
array("label"=>"Banner","page"=>"statBanner.php","requires"=>AdminModel::ADMIN_TYPE_BANNER_SUPERVISOR)
)),
array("label"=>"Superuser", "subvoices"=>array(
array("label"=>"Amministratori","page"=>"listAmministratori.php","requires"=>AdminModel::ADMIN_TYPE_SUPERADMIN),
array("label"=>"Accessi","page"=>"listAccess.php","requires"=>AdminModel::ADMIN_TYPE_SUPERADMIN),
array("label"=>"Task","page"=>"listTasks.php","requires"=>AdminModel::ADMIN_TYPE_SUPERADMIN),
array("label"=>"Config","page"=>"listConfig.php","requires"=>AdminModel::ADMIN_TYPE_SUPERADMIN),
array("label"=>"Logs","page"=>"logs.php","requires"=>AdminModel::ADMIN_TYPE_SUPERADMIN)
)),
array("label"=>"Logout","page"=>"logout.php")
);
public static function getVoices(){
$user = AdminLoginManager::getLogged();
$rval = array();
foreach (self::$voices as $voice){
if ($user->hasRole($voice["requires"])){
$rval[] = $voice;
}
}
return $rval;
}
public static function generateMenu(){
$admin = AdminLoginManager::getLogged();
$menuText = "";
foreach (self::$voices as $voice){
$submenuText = "";
if (array_key_exists("subvoices", $voice)){
foreach ($voice["subvoices"] as $subvoice){
if ($admin->hasRole($subvoice["requires"])){
$submenuText.='<li><a href="'.$subvoice["page"].'">'.$subvoice["label"].'</a></li>';
}
}
if (strcmp("", $submenuText)!=0){
$menuText.='<li><a href="#">'.$voice["label"].'</a><ul>'.$submenuText.'</ul></li>';
}
}
else if (array_key_exists("requires", $voice)){
if ( $admin->hasRole($voice["requires"]) ){
$menuText.='<li><a href="'.$voice["page"].'">'.$voice["label"].'</a></li>';
}
}
else if (array_key_exists("label", $voice) && array_key_exists("page", $voice) ) {
$menuText.='<li><a href="'.$voice["page"].'">'.$voice["label"].'</a></li>';
}
}
if (strcmp("",$menuText)!=0){
echo "<div id=\"admin_menu\"><ul>$menuText</ul></div>";
?>
<script type="text/javascript">
$("#admin_menu > ul > li").click(function (){
$("#admin_menu > ul > li.selected").removeClass("selected");
$(this).addClass("selected");
var useUl = $(this).find("ul");
var curHeight = useUl.height();
var desiredHeight = 0;
if (curHeight == 0){
useUl.css("height", "auto");
desiredHeight = useUl.height();
useUl.height(curHeight);
}
useUl.animate({height:desiredHeight},200);
});
</script>
<?php
}
// $voices = self::getVoices();
// if (sizeof($voices)>0){
// echo "<div id=\"admin_menu\"><ul>";
// foreach ($voices as $voice){
// echo '<li><a href="'.$voice["page"].'">'.$voice["label"].'</a></li>';
// }
// echo "</ul></div>";
// }
}
}
?>