public static function generatePage(&$tpl, &$session, &$account, &$perso) { //Générer la liste des actions associable à un lieu $arrVide = array('url' => '', 'nom' => '', 'config_url' => null, 'sel' => true); $ACTION = array_merge(array($arrVide), Mj_Lieu::getAllLinkedActions()); $tpl->set('ACTION', $ACTION); $tpl->set('ACTION_IDX', $_POST['divid']); return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Mj/Lieu/AddmodActionpage.htm'); }
public static function generatePage(&$tpl, &$session, &$account, &$mj) { $dbMgr = DbManager::getInstance(); //Instancier le gestionnaire $db = $dbMgr->getConn('game'); //Demander la connexion existante if (!isset($_POST['id']) && !isset($_GET['id'])) { return fctErrorMSG('Vous devez sélectionner un lieu.'); } if (isset($_GET['id'])) { $_POST['id'] = $_GET['id']; } //Fetcher toutes les informations concernant le lieu $query = 'SELECT *' . ' FROM ' . DB_PREFIX . 'lieu' . ' WHERE id=:id' . ' LIMIT 1;'; $prep = $db->prepare($query); $prep->bindValue(':id', $_POST['id'], PDO::PARAM_INT); $prep->executePlus($db, __FILE__, __LINE__); $arr = $prep->fetch(); $prep->closeCursor(); $prep = NULL; //Déprotéger les textes stockés afin qu'il soit lisibles correctement $nomtech = $arr['nom_technique']; //Utile pour trouver les liens du lieu ci-bas //Récupérer les informations sur les gérants du lieu $query = 'SELECT p.nom as nom, p.id as id FROM ' . DB_PREFIX . 'boutiques_gerants as b' . ' LEFT JOIN ' . DB_PREFIX . 'perso as p ON (p.id = b.persoid)' . ' WHERE b.boutiqueid = :id;'; $prep = $db->prepare($query); $prep->bindValue(':id', $arr['id'], PDO::PARAM_INT); $prep->executePlus($db, __FILE__, __LINE__); $arrGerants = $prep->fetchAll(); $prep->closeCursor(); $prep = NULL; if (isset($_POST['liens'])) { self::saveLien($arr); } elseif (isset($_POST['save']) && isset($_POST['id'])) { self::saveLieu($arr, $arrGerants); //Re-Fetcher toutes les informations concernant le lieu $query = 'SELECT *' . ' FROM ' . DB_PREFIX . 'lieu' . ' WHERE id=:id' . ' LIMIT 1;'; $prep = $db->prepare($query); $prep->bindValue(':id', $_POST['id'], PDO::PARAM_INT); $prep->executePlus($db, __FILE__, __LINE__); $arr = $prep->fetch(); $prep->closeCursor(); $prep = NULL; $query = 'SELECT p.nom as nom, p.id as id FROM ' . DB_PREFIX . 'boutiques_gerants as b' . ' LEFT JOIN ' . DB_PREFIX . 'perso as p ON (p.id = b.persoid)' . ' WHERE b.boutiqueid = :id;'; $prep = $db->prepare($query); $prep->bindValue(':id', $arr['id'], PDO::PARAM_INT); $prep->executePlus($db, __FILE__, __LINE__); $arrGerants = $prep->fetchAll(); $prep->closeCursor(); $prep = NULL; } $nomtech = $arr['nom_technique']; //Utile pour trouver les liens du lieu ci-bas $arr['nom_technique'] = stripslashes($arr['nom_technique']); $arr['nom_affiche'] = stripslashes($arr['nom_affiche']); $arr['description'] = stripslashes($arr['description']); $arr['notemj'] = stripslashes($arr['notemj']); $tpl->set('LIEUID', $arr['id']); //Pour le formulaire de modification des liaisons $tpl->set('LIEU', $arr); $tpl->set('GERANTS', $arrGerants); // Afficher les informations sur le lieu if (isset($_GET['id'])) { $_POST['id'] = $_GET['id']; } $tpl->set('ACTIONTYPETXT', 'Modifier'); $tpl->set('SUBMITNAME', 'Mod'); $tpl->set('SHOWID', true); //Faire la liste de tout les lieux $arr = array(); $query = 'SELECT nom_technique' . ' FROM ' . DB_PREFIX . 'lieu' . ' ORDER BY nom_technique ASC;'; $prep = $db->prepare($query); $prep->executePlus($db, __FILE__, __LINE__); $arrAll = $prep->fetchAll(); $prep->closeCursor(); $prep = NULL; $tpl->set("PAGE_LIEUX", $arrAll); //lister le dossier d'image $dir2 = dir($account->getSkinRemotePhysicalPath() . "../_common/lieux/"); $counter = 0; $arrurl = array(); $arr = array(); while ($url = $dir2->read()) { $arrurl[$counter++] = $url; } natcasesort($arrurl); $arrurl = array_values($arrurl); for ($i = 0; $i < count($arrurl); $i++) { if ($arrurl[$i] != '' && substr($arrurl[$i], 0, 1) != '.') { $arr[$i] = $arrurl[$i]; } } $tpl->set('IMGS', $arr); //Générer la liste des actions associables à un lieu $query = 'SELECT id,url,caption FROM ' . DB_PREFIX . 'lieu_menu WHERE lieutech=:nomTech;'; $prep = $db->prepare($query); $prep->bindValue(':nomTech', $nomtech, PDO::PARAM_STR); $prep->executePlus($db, __FILE__, __LINE__); $arrAll = $prep->fetchAll(); $prep->closeCursor(); $prep = NULL; if (count($arrAll) > 0) { foreach ($arrAll as &$arr) { $arr['caption'] = stripslashes($arr['caption']); //Trouver le config_url si disponible $ret = Mj_Lieu::getLinkedAction($arr['url']); if (!empty($ret) && !empty($ret['config_url'])) { $arr['config_url'] = $ret['config_url']; } } $tpl->set('ACTIONS', $arrAll); } //Générer chaque lignes des liens individuellement $i = -1; $LIENS1 = array(); $query = 'SELECT *' . ' FROM ' . DB_PREFIX . 'lieu_lien' . ' WHERE `from`=:nomTech;'; $prep = $db->prepare($query); $prep->bindValue(':nomTech', $nomtech, PDO::PARAM_STR); $prep->executePlus($db, __FILE__, __LINE__); $arrAll = $prep->fetchAll(); $prep->closeCursor(); $prep = NULL; foreach ($arrAll as &$arr) { $arr['prefix'] = ''; $tpl->set('lien', $arr); $LIENS1[$i++] = $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Mj/Lieu/AddmodLien.htm'); } $tpl->set('LIENS1', $LIENS1); $i = -1; $LIENS2 = array(); $query = 'SELECT *' . ' FROM ' . DB_PREFIX . 'lieu_lien' . ' WHERE `to`=:nomTech;'; $prep = $db->prepare($query); $prep->bindValue(':nomTech', $nomtech, PDO::PARAM_STR); $prep->executePlus($db, __FILE__, __LINE__); $arrAll = $prep->fetchAll(); $prep->closeCursor(); $prep = NULL; foreach ($arrAll as &$arr) { $arr['prefix'] = ''; $tpl->set('lien', $arr); $LIENS2[$i++] = $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Mj/Lieu/AddmodLien.htm'); } $tpl->set('LIENS2', $LIENS2); return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Mj/Lieu/Addmod.htm'); }