disableLog(); header("Content-type: text/html; charset=".HTTPCHARSET.""); } /** * */ function widgetView($f = NULL, $id = NULL, $title = NULL, $content = NULL, $footer = NULL, $type = NULL, $mode_edit = false) { // if ($type == "file" && !file_exists("../app/widget_".$footer.".php")) { // return; } // Ouverture du conteneur du widget echo "\n"; // Titre du widget echo "
"; echo "

"; echo $title; echo "

"; echo "
\n"; // Ouverture du wrapper : Contenu + Footer echo "
\n"; // Contenu du widget echo "\n"; echo "
\n\n"; // if ($type == "file") { // $file = "../app/widget_".$footer.".php"; $footer = "#"; include $file; } else { // echo $content; } echo "\n\n
\n"; echo "\n"; // Footer du widget if ($footer != "#" && $footer != "" && $footer != NULL) { echo "\n"; } // Fermeture du wrapper : Contenu + Footer echo "
\n"; // Fermeture du conteneur du widget echo "\n"; } /** * UPDATE */ if (isset($_GET['action']) && $_GET['action'] == "update") { // $alldata = array(); foreach($_GET as $key => $values) { // Dans le tableau associatif $_GET il y a la cle 'action' necessaire // au fonctionnement du script, donc si c'est le cas on passe a // l'iteration suivante if ($key == "action") { continue; } // $bloc = "C".str_replace("column_", "", $key); // $widgets = explode("x", $values); // foreach($widgets as $i => $widget) { // $position = $i+1; // $widget = str_replace("widget_", "", $widget); // Lorsqu'une colonne est vide, il y a une valeur vide dans le // tableau widget, donc si c'est le cas on passe a l'iteration // suivante if ($widget == "") { continue; } // array_push($alldata, array($position, $bloc, $widget)); } } // $sql = "update ".DB_PREFIXE."om_dashboard set "; $sql .= " position=?, "; $sql .= " bloc=? "; $sql .= " where om_dashboard=? "; // $sth = $f->db->prepare($sql); // Vérification d'une éventuelle erreur de base de données $f->isDatabaseError($sth); // Exécution de la requête $res = $f->db->executeMultiple($sth, $alldata); // Logger $f->addToLog("../spg/widgetctl.php: db->executeMultiple(\"".$sth."\", ".print_r($alldata, true).");", VERBOSE_MODE); // Vérification d'une éventuelle erreur de base de données $f->isDatabaseError($res); } /** * DELETE */ if (isset($_GET['action']) && $_GET['action'] == "delete") { // if (isset($_GET['widget']) && $_GET['widget'] != "") { // $widget = str_replace("widget_", "", $_GET['widget']); // Suppression du widget $sql = "delete from ".DB_PREFIXE."om_dashboard where om_dashboard = ".intval($widget); // Exécution de la requête $res = $f->db->query($sql); // Logger $f->addToLog("../spg/widgetctl.php: db->query(\"".$sql."\");", VERBOSE_MODE); // Vérification d'une éventuelle erreur de base de données $f->isDatabaseError($res); } } /** * INSERT */ if (isset($_GET['action']) && $_GET['action'] == "insert") { // $bloc = "C1"; // (isset($_GET["profil"]) ? $profil = str_replace("dashboard_profil_", "", $_GET['profil']) : $profil = 0); // Sur la validation du formulaire if (isset($_POST['widget_add_form_valid']) && isset($_POST['widget']) && is_numeric($_POST['widget'])) { // Ajout du widget dans la base et affichage de ce dernier // (isset($_POST['widget']) && is_numeric($_POST['widget']) ? $widget = $_POST['widget'] : $widget = 0); // (isset($_POST['profil']) && is_numeric($_POST['profil']) ? $profil = $_POST['profil'] : $profil = 0); // $valF = array(); // $valF['om_dashboard'] = $f->db->nextId(DB_PREFIXE."om_dashboard"); // Logger $f->addToLog("../spg/widgetctl.php: db->nextId(\"".DB_PREFIXE."om_dashboard\");", VERBOSE_MODE); // $valF['om_profil'] = $profil; $valF['om_widget'] = $widget; $valF['bloc'] = $bloc; $valF['position'] = 1; // XXX $sql = "update ".DB_PREFIXE."om_dashboard set position=position+1 where om_profil = ".intval($profil)." and bloc ='".$f->db->escapeSimple($bloc)."'"; // Exécution de la requête $position = $f->db->query($sql); // Logger $f->addToLog("../spg/widgetctl.php: db->query(\"".$sql."\");", VERBOSE_MODE); // Vérification d'une éventuelle erreur de base de données $f->isDatabaseError($position); // Exécution de la requête $res = $f->db->autoExecute(DB_PREFIXE."om_dashboard", $valF, DB_AUTOQUERY_INSERT); // Logger $f->addToLog("../spg/widgetctl.php: db->autoExecute(\"".DB_PREFIXE."om_dashboard\", ".print_r($valF, true).", DB_AUTOQUERY_INSERT);", VERBOSE_MODE); // Vérification d'une éventuelle erreur de base de données $f->isDatabaseError($res); // On retourne l'id du widget dans le tableau de bord de l'utilisateur // pour l'afficher echo $valF['om_dashboard']; } elseif (!isset($_POST['widget_add_form_valid'])) { // Composition du formulaire $content = ""; // Description du formulaire $content .= _("Selectionner le widget a inserer puis cliquer sur ". "le bouton 'Valider' pour valider votre selection."); // Ouverture du formulaire $content .= "db->query($sql); // Logger $f->addToLog("../spg/widgetctl.php: db->query(\"".$sql."\");", VERBOSE_MODE); // Vérification d'une éventuelle erreur de base de données $f->isDatabaseError($res); // Liste des widgets que l'utilisateur peut inserer en fonction de son // profil $content .= "\n"; // Valeur du profil $content .= "\n"; // Bouton Valider $content .= "\n"; // Fermeture du formulaire $content .= "\n"; // Affichage du widget widgetView($f, "", _("Ajouter un nouveau widget"), $content, "", "web", true); } else { echo "null"; } } /** * VIEW */ if (isset($_GET['action']) && $_GET['action'] == "view") { // Requete de selection du widget $sql = " SELECT "; $sql .= " om_dashboard.om_dashboard, "; $sql .= " om_widget.om_widget as widget, "; $sql .= " om_widget.libelle as libelle, "; $sql .= " om_widget.lien as lien, "; $sql .= " om_widget.texte as texte, "; $sql .= " om_widget.type as type, "; $sql .= " om_dashboard.position "; $sql .= " FROM ".DB_PREFIXE."om_dashboard "; $sql .= " INNER JOIN ".DB_PREFIXE."om_widget on om_dashboard.om_widget=om_widget.om_widget "; $sql .= " WHERE "; $sql .= " om_dashboard.om_dashboard=".intval($_GET['widget'])." "; // Exécution de la requête $res = $f->db->query($sql); // Logger $f->addToLog("../spg/widgetctl.php: db->query(\"".$sql."\");", VERBOSE_MODE); // Vérification d'une éventuelle erreur de base de données $f->isDatabaseError($res); // $row =& $res->fetchRow(DB_FETCHMODE_ASSOC); // widgetView($f, $row['om_dashboard'], $row['libelle'], $row['texte'], $row['lien'], $row["type"], true); } ?>