sql_query($sql);
$row = $db->sql_fetchrow($result);
$main_module = $row['main_module'];
$general_dynamic=($row['dynamic']=='on') ? 1 : 0 ;
$type_invisible=$row['invisible'];
if ($gestiongroupe==1) {
$gestiongroupe = ($row['invisible']=="4" || $row['invisible']=="5") ? 1 : 0 ;
}
else {
$gestiongroupe=0;
}
//on va tester si le visiteur est un admin et/ou un membre
$is_admin = (is_admin($admin)) ? 1 : 0 ;
$is_user = (sommaire_is_user($user,$gestiongroupe)) ? 1 : 0 ; //cf. fonction sommaire_is_user() en bas
global $userpoints; // défini dans la fonction sommaire_is_user
$userpoints=intval($userpoints); //juste au cas où ;)
$ThemeSel = sommaire_get_theme($is_user); // récupère le thème du membre : évite une requête.
//$pathicon = "themes/$ThemeSel/images/sommaire";
$path_icon = "images/sommaire";
$imgnew="new.gif";
///////////// on récupère les infos pour savoir si le user a des messages privés non lus /////////////////
if ($is_user==1 && $detectPM==1) {
global $uid;
$uid=intval($uid); // on sécurise l'appel à la BDD
$newpms = $db->sql_fetchrow($db->sql_query("SELECT COUNT(*) FROM ".$prefix."_bbprivmsgs WHERE privmsgs_to_userid='$uid' AND (privmsgs_type='5' OR privmsgs_type='1')")); //2 requetes SQL
}
// voilà, si $newpms[0]>0 --> il y a des PMs non lus //
//////// on va mettre la liste des modules dans la variable $modules /////////////////////
$sql = "SELECT * FROM ".$prefix."_modules WHERE active='1' AND inmenu='1' ORDER BY custom_title ASC";
$modulesaffiche= $db->sql_query($sql);
$compteur=0;
while ($tempo = $db->sql_fetchrow($modulesaffiche)) {
$module[$compteur]= $tempo['title'];
$customtitle[$compteur] = $tempo['custom_title'];
$view[$compteur] = $tempo['view'];
$active[$row['title']] = $tempo['active'];
$mod_group[$compteur] = ($gestiongroupe==1 && isset($tempo['mod_group'])) ? $tempo['mod_group'] : "";
$nsngroups[$compteur]=(isset($tempo['groups'])) ? $tempo['groups'] : "" ; // NSN Groups
$gt_url[$compteur]=(isset($tempo['url'])) ? $tempo['url'] : "" ; //GoogleTap-NextGen
$compteur++;
if ($tempo['view']==3) { $gestionsubscription="yes";}
}
/////// ok, on a les infos de la table modules //////////////
///// on récupère la table des groupes si on gère les groupes, et l'état de souscription ////
if ($is_user==1) {
if ($gestiongroupe==1 && $gestionsubscription=="yes") {
$sql="SELECT group.id, group.points, sub.userid, sub.subscription_expire FROM ".$prefix."_groups as group, ".$prefix."_subscriptions as sub WHERE sub.userid=".$uid."";
$result=$db->sql_query($sql);
while ($row = $db->sql_fetchrow($sql)) {
$pointsneeded[$row['id']]=$row['points'];
echo "$row[subscription_expire]
";
}
}
elseif ($gestiongroupe==1) {
$sql="SELECT id, points FROM ".$prefix."_groups";
$result=$db->sql_query($sql);
while ($row = $db->sql_fetchrow($sql)) {
$pointsneeded[$row['id']]=$row['points'];
echo "$row[subscription_expire]
";
}
}
elseif ($gestionsubscription=="yes") {
$sql="SELECT id, points FROM ".$prefix."_groups";
$result=$db->sql_query($sql);
while ($row = $db->sql_fetchrow($sql)) {
$pointsneeded[$row['id']]=$row['points'];
echo "$row[subscription_expire]
";
}
}
}
///// ok, on connait le nb de points nécessaires pour faire partie de chaque groupe /////
//// on va récupérer le module par défaut dans le thème (s'il existe)
if (file_exists("themes/$ThemeSel/module.php")) {
include("themes/$ThemeSel/module.php");
$is_active = ($active[$default_module]!=0) ? 1 : 0 ; // permet de savoir si le Default Module est actif.
if ($is_active==1 AND file_exists("modules/$default_module/index.php")) {
$main_module = $default_module;
}
}
$ferme_sublevels="";
$total_actions="";
$flagmenu = 0; // flag qui est mis automatiquement à "1" quand il y a un module dans la rubrique 99
// --> permet d'afficher 1 seule fois la barre horizontale.
// on va mettre les données de la table nuke_sommaire_categories dans les variables adéquates.
$sql2= "SELECT groupmenu, module, url, url_text, image, new, new_days, class, bold, sublevel, date_debut, date_fin, days FROM ".$prefix."_sommaire_categories ORDER BY id ASC";
$result2= $db->sql_query($sql2);
$compteur=0;
$totalcompteur=0;
$premier=0;
$hidden=0;
$hidden_sublevel=0;
$now=time(); //attention, variable utile + bas (détection NEW)
// echo "{$moduleinthisgroup[$categorie][$compteur]}
{$linkinthisgroup[$categorie][$compteur]}
{$linktextinthisgroup[$categorie][$compteur]}
{$imageinthisgroup[$categorie][$compteur]}
";
while ($row2 = $db->sql_fetchrow($result2)) {
// on n'affiche rien si cette ligne est 'Hidden' ou Scheduled et hors de la plage de visualisation
if (strpos($row2['days'],'8')!==false || $now<$row2['date_debut'] || ($row2['date_fin']>0 && $now>$row2['date_fin'])) {
if ($compteur2!=$row2['groupmenu']) {//on a changé de catégorie, il faut remettre cette variable à 0.
$hidden_sublevel=0;
}
$hidden=1;
if ($hidden_sublevel==0) {
$hidden_sublevel=$row2['sublevel'];
}
else {
$hidden_sublevel=($row2['sublevel']<$hidden_sublevel) ? $row2['sublevel'] : $hidden_sublevel;
}
continue;
}
//lien externe (pas un lien pointant vers un module du site web) ou texte sans url -> on affiche.
if($row2['module']=="SOMMAIRETEXTONLY" || ($row2['module']=="Lien externe" && !eregi("^modules.php\?name=", $row2['url']) && !eregi("^((http(s)?)|(ftp(s)?))://".$_SERVER['SERVER_NAME']."/modules.php\?name=",$row2['url']))) {
$affiche_module=1;
}
else { // module ou lien externe pointant vers un module du site web -> on check si le module est activé et visible pour l'utilisateur.
$affiche_module=0;
$restricted_reason="";
foreach ($module as $key => $zemodule) {
if ($row2['module']=="Lien externe") {//lien externe pointant vers un module du site web -> on récupère le nom du module
$temponomdumodule=split("&", $row2['url']);
if (ereg("^((http(s)?)|(ftp(s)?))://".$_SERVER['SERVER_NAME']."/modules.php\?name=",$row2['url'])) { // v2.1.2beta5 : les liens externes target blank qui pointent vers le serveur sont traités comme des modules.
$nomdumodule = substr(strstr($temponomdumodule[0],'modules.php'),17);
$targetblank="target=\"_blank\"";
}
elseif (eregi("^((http(s)?)|(ftp(s)?))://".$_SERVER['SERVER_NAME']."/modules.php\?name=",$row2['url'])) { // v2.1.2beta6 : les liens externes target blank qui pointent vers le serveur sont traités comme des modules.
$nomdumodule = substr(strstr($temponomdumodule[0],'modules.php'),17);
$targetblank="";
}
else {
$nomdumodule = ereg_replace("modules.php\?name=","",$temponomdumodule[0]);
$targetblank="";
}
$customtitle2 =$row2['url_text'];
$urldumodule =$row2['url'];
}
else {//module normal
$temponomdumodule=array();//beta8 : on vide cette variable car il n'y a aucun paramètre dans l'url.
$targetblank="";
$nomdumodule =$row2['module'];
$customtitle2 = ($customtitle[$key] != "") ? $customtitle[$key] : ereg_replace("_", " ", $zemodule);
$urldumodule = ($gt_url[$key]!="") ? $gt_url[$key] : "modules.php?name=".$nomdumodule ; //GT-NextGen
}
if (!($zemodule==$main_module && $row2['module']!="Lien externe")) {//on n'affiche pas le module en homepage, sauf s'il est appelé par un lien externe
if (($is_admin===1 AND $view[$key] == 2) OR $view[$key] != 2) { //si on n'est pas admin et que le module est réservé aux admins, il n'apparaît pas
if ($nomdumodule==$zemodule) { //le module de la boucle FOR correspond au module en cours, on va checker les droits de visualisation des groupes
//gestion des groupes phpnuke
$isin=0;
if ($is_user==1 && ($type_invisible==5 || $type_invisible==4) && $view[$key]==1){
$isin = ($mod_group[$key]==0 || ($userpoints>0 && $userpoints>=$pointsneeded[$mod_group[$key]])) ? 1 : 0 ;
}
if($is_user==1 && $view[$key]==1 && $type_invisible==4 && $isin==0) {// c'est un membre, qui n'est pas dans le groupe pouvant visualiser ce module
$affiche_module=2;
$restricted_reason=""._SOMRESTRICTEDGROUP."";
break;
}
elseif ($is_user==0 && $view[$key]==1 && ($type_invisible==2 || $type_invisible==4)) {//visiteur non membre, ne peut pas visualiser un module réservé aux membres.
$affiche_module=2;
$restricted_reason=""._SOMRESTRICTEDMEMBERS."";
break;
}
elseif ($view[$key]==3 && !paid()) {
$affiche_module=2;
$restricted_reason=""._SOMRESTRICTEDPAID."";
break;
}
elseif ($view[$key]>3 && ($type_invisible==2 || $type_invisible==4) && !in_groups($nsngroups[$key])) {//nsn groups
$affiche_module=2;
$restricted_reason=""._SOMRESTRICTEDGROUP."";
break;
}
if ($is_user==1 && $view[$key]==1 && $type_invisible==5 && $isin==0 && $is_admin==0) { //c'est un membre, mais pas dans le bon groupe pour voir le module.
if ($compteur2!=$row2['groupmenu']) {//on a changé de catégorie, il faut remettre cette variable à 0.
$hidden_sublevel=0;
}
$hidden=1;
if ($hidden_sublevel==0) {
$hidden_sublevel=$row2['sublevel'];
}
else {
$hidden_sublevel=($row2['sublevel']<$hidden_sublevel) ? $row2['sublevel'] : $hidden_sublevel;
}
}
elseif($is_user==0 && $view[$key]==1 && ($type_invisible==5 || $type_invisible==3) && $is_admin==0) { //c'est un visiteur, il doit être membre et faire partie d'un groupe pour voir le module si gestion des groupes.
if ($compteur2!=$row2['groupmenu']) {//on a changé de catégorie, il faut remettre cette variable à 0.
$hidden_sublevel=0;
}
$hidden=1;
if ($hidden_sublevel==0) {
$hidden_sublevel=$row2['sublevel'];
}
else {
$hidden_sublevel=($row2['sublevel']<$hidden_sublevel) ? $row2['sublevel'] : $hidden_sublevel;
}
}
elseif ($view[$key]==3 && !paid()) {
if ($compteur2!=$row2['groupmenu']) {//on a changé de catégorie, il faut remettre cette variable à 0.
$hidden_sublevel=0;
}
$hidden=1;
if ($hidden_sublevel==0) {
$hidden_sublevel=$row2['sublevel'];
}
else {
$hidden_sublevel=($row2['sublevel']<$hidden_sublevel) ? $row2['sublevel'] : $hidden_sublevel;
}
}
elseif ($view[$key]>3 && ($type_invisible==3 || $type_invisible==5) && !in_groups($nsngroups[$key])) {//nsn groups
if ($compteur2!=$row2['groupmenu']) {//on a changé de catégorie, il faut remettre cette variable à 0.
$hidden_sublevel=0;
}
$hidden=1;
if ($hidden_sublevel==0) {
$hidden_sublevel=$row2['sublevel'];
}
else {
$hidden_sublevel=($row2['sublevel']<$hidden_sublevel) ? $row2['sublevel'] : $hidden_sublevel;
}
}
else {
$affiche_module=1;
}
break;
}
}
}
}
}
if ($affiche_module>0) {//si $affiche_module est =0, le visiteur ne peut pas voir le module, donc on ne remplit pas le tableau.
$categorie=$row2['groupmenu'];
$totalcategorymodules[$totalcompteur]=$row2['module'];
$totalcompteur++;
if ($premier==0) {
$premier++;
$total_actions="sommaire_showhide('sommaire-".$row2['groupmenu']."','nok','sommaireupdown-".$row2['groupmenu']."');";
}
elseif ($compteur2==$categorie) { //permet de savoir si on a changé de catégorie (groupmenu différent) : dans ce cas on remet le 2ème compteur à 0.
$compteur++;
}
else {
$total_actions=$total_actions."sommaire_showhide('sommaire-".$row2['groupmenu']."','nok','sommaireupdown-".$row2['groupmenu']."');";
$compteur=0;
$hidden_sublevel=0;
$hidden=0;
}
if ($compteur==0 && $row2['sublevel']>0) { //premier module de la catégorie, on met le sublevel à 0.
$hidden=1;
$hidden_sublevel=0;
$row2['sublevel']=0;
}
elseif ($row2['sublevel']>$hidden_sublevel && $hidden==1) {
$row2['sublevel']=$row2['sublevel']-$hidden_sublevel;
if ($hidden_sublevel==0) {
$row2['sublevel']--;
}
}
else {
$hidden_sublevel=0;
$hidden=0;
}
$moduleinthisgroup[$categorie][$compteur]=$row2['module'];
$linkinthisgroup[$categorie][$compteur]=$row2['url'];
$linktextinthisgroup[$categorie][$compteur]=$row2['url_text'];
$imageinthisgroup[$categorie][$compteur]=$row2['image'];
$newinthisgroup[$categorie][$compteur]=$row2['new'];
$newdaysinthisgroup[$categorie][$compteur]=$row2['new_days'];
$classinthisgroup[$categorie][$compteur]=$row2['class'];
$grasinthisgroup[$categorie][$compteur]=$row2['bold'];
$sublevelinthisgroup[$categorie][$compteur]=$row2['sublevel'];
$date_debutinthisgroup[$categorie][$compteur]=$row2['date_debut'];
$date_fininthisgroup[$categorie][$compteur]=$row2['date_fin'];
$daysinthisgroup[$categorie][$compteur]=$row2['days'];
//v2.5
$nomdumoduleinthisgroup[$categorie][$compteur]=$nomdumodule;
$targetblankinthisgroup[$categorie][$compteur]=$targetblank;
$customtitle2inthisgroup[$categorie][$compteur]=$customtitle2;
$urldumoduleinthisgroup[$categorie][$compteur]=$urldumodule;
$affiche_moduleinthisgroup[$categorie][$compteur]=$affiche_module;
$whyrestricted[$categorie][$compteur]=$restricted_reason;
$restricted_reason="";
$compteur2=$categorie;
// echo "{$moduleinthisgroup[$categorie][$compteur]}
{$linkinthisgroup[$categorie][$compteur]}
{$linktextinthisgroup[$categorie][$compteur]}
{$imageinthisgroup[$categorie][$compteur]}
";
}
}
// --> OK, les variables ont pris la valeur adéquate de la table nuke_sommaire_categories
$content ="
";
?>
sql_query($sql);
$content.="
| "; } else { $content.=" | |
";
$aenlever="sommaire_showhide\('sommaire-".$som_groupmenu."','nok','sommaireupdown-".$som_groupmenu."'\);";
$total_actions = ereg_replace("$aenlever", "" , $total_actions);
$content.="
| "; } else { $content.=" | |
";
for ($z=0;$z "; // si il y a des modules affichés en rubrique 99, on affiche avant une ligne horizontale } $urldumodule99 = ($gt_url[$z]!="") ? $gt_url[$z] : "modules.php?name=".$module[$z] ; // GT-NextGen if (($newpms[0]) AND ($module[$z]=="Private_Messages")) { // si PMs non lus, on affiche le logo mail $content .= "·$customtitle2 \n"; } else { $content .= "· $customtitle2 \n"; } } } } }//end for groupmenu=99 $content.=" |