public static function generatePage(&$tpl, &$session, &$account, &$perso) { $dbMgr = DbManager::getInstance(); //Instancier le gestionnaire $db = $dbMgr->getConn('game'); //Demander la connexion existante //BUT: Démarrer un template propre à cette page //Valider si le joueur à accès à Internet if (Member_Action_Item_Navigateur::checkAccess($perso) === false) { return fctErrorMSG('Vous n\'avez pas accès à Internet.'); } //Vérifier l'état du perso if (!$perso->isConscient()) { die('01|Votre n\'êtes pas en état d\'effectuer cette action.'); } if (!preg_match('/^[A-Za-z0-9.-_]+$/', $_POST['url'], $matches)) { die('03|L\'URL du site est invalide (' . $_POST['url'] . ').'); } //Vérifier si l'URL existe $site = Member_Siteweb::loadSite($_POST['url']); if (!$site) { die('10|Cette URL n\'existe pas.'); } //Vérifier si l'accès est valide $acces = $site->checkAcces($_POST['user'], $_POST['pass']); if ($acces === false) { die('11|Vous ne possèdez pas les autorisations nécésaires (1).'); } if (!$acces->canPoste() && !$acces->isAdmin()) { die('12|Vous ne possèdez pas les autorisations nécésaires (2).'); } //Tout est ok, Créer la page !!!!! $query = 'INSERT INTO ' . DB_PREFIX . 'sitesweb_pages' . ' (`site_id`, `titre`, `content`, `acces`, `showIndex`)' . ' VALUES' . ' (:site_id, :titre, :content, :acces, :showIndex);'; $prep = $db->prepare($query); $prep->bindValue(':site_id', $site->getId(), PDO::PARAM_INT); $prep->bindValue(':titre', $_POST['titre'], PDO::PARAM_STR); $prep->bindValue(':content', $_POST['content'], PDO::PARAM_STR); $prep->bindValue(':acces', $_POST['acces'] == 'true' ? 'pub' : 'priv', PDO::PARAM_STR); $prep->bindValue(':showIndex', $_POST['showIndex'] == 'true' ? '1' : '0', PDO::PARAM_STR); $prep->executePlus($db, __FILE__, __LINE__); $prep->closeCursor(); $prep = NULL; $pageid = $db->lastInsertId(); //Si la page est privé et que la personne qui crée est pas admin, lui donner droit d'accès if ($_POST['acces'] == 'priv' && $acces['admin'] != 1) { $query = 'INSERT INTO ' . DB_PREFIX . 'sitesweb_pages_acces (`page_id`, `user_id`) VALUES (:page_id,:user_id);'; $prep->bindValue(':page_id', $pageid, PDO::PARAM_INT); $prep->bindValue(':user_id', $acces['id'], PDO::PARAM_INT); $prep->executePlus($db, __FILE__, __LINE__); $prep->closeCursor(); $prep = NULL; } die('OK|' . $perso->getPa() . '|' . $_POST['url'] . '/' . $pageid); //Tout est OK }
public static function generatePage(&$tpl, &$session, &$account, &$perso) { $dbMgr = DbManager::getInstance(); //Instancier le gestionnaire $db = $dbMgr->getConn('game'); //Demander la connexion existante //BUT: Démarrer un template propre à cette page //Valider si le joueur à accès à Internet if (Member_Action_Item_Navigateur::checkAccess($perso) === false) { return fctErrorMSG('Vous n\'avez pas accès à Internet.'); } //Vérifier l'état du perso if (!$perso->isConscient()) { die('01|' . rawurlencode('Votre n\'êtes pas en état d\'effectuer cette action.')); } if (!preg_match('/^[A-Za-z0-9.-_]*$/', $_POST['url'], $matches)) { return fctErrorMsg('L\'URL du site est invalide.'); } //Vérifier si l'URL existe $site = Member_Siteweb::loadSite($_POST['url']); if (!$site) { die('10|' . rawurlencode('Cette URL n\'existe pas.')); } //Vérifier si l'accès est valide $acces = $site->checkAcces($_POST['user'], $_POST['pass']); if ($acces === false) { die('11|' . rawurlencode('Vous ne possèdez pas les autorisations nécésaires (1).')); } if (!$acces->isAdmin()) { die('12|' . rawurlencode('Vous ne possèdez pas les autorisations nécésaires (2).')); } //Tout est ok, modifier le site !!!!! //Valider si la page d'accueil demandée appartiend au site $query = 'SELECT id' . ' FROM ' . DB_PREFIX . 'sitesweb_pages' . ' WHERE site_id = :site_id' . ' AND id = :id;'; $prep = $db->prepare($query); $prep->bindValue(':site_id', $site->getId(), PDO::PARAM_INT); $prep->bindValue(':id', $_POST['accueil'], PDO::PARAM_INT); $prep->execute($db, __FILE__, __LINE__); $arr = $prep->fetch(); $prep->closeCursor(); $prep = NULL; if ($arr === false) { $_POST['accueil'] = 0; } $query = 'UPDATE ' . DB_PREFIX . 'sitesweb' . ' SET `url` =:urlNew,' . ' `titre` =:titre,' . ' `acces` =:acces,' . ' `first_page`=:firstPage' . ' WHERE url=:urlOld;'; $prep = $db->prepare($query); $prep->bindValue(':urlNew', $_POST['new_url'], PDO::PARAM_STR); $prep->bindValue(':titre', $_POST['titre'], PDO::PARAM_STR); $prep->bindValue(':acces', $_POST['acces'], PDO::PARAM_STR); $prep->bindValue(':firstPage', $_POST['accueil'], PDO::PARAM_INT); $prep->bindValue(':urlOld', $_POST['url'], PDO::PARAM_STR); $prep->execute($db, __FILE__, __LINE__); $prep->closeCursor(); $prep = NULL; die('OK|' . $perso->getPa() . '|' . $_POST['new_url']); //Tout est OK }
public static function generatePage(&$tpl, &$session, &$account, &$perso) { $dbMgr = DbManager::getInstance(); //Instancier le gestionnaire $db = $dbMgr->getConn('game'); //Demander la connexion existante //BUT: Démarrer un template propre à cette page preg_match('/^([^\\/]+)(?:[\\/]([a-z0-9]+))?(?:[?](.+))?/', $_POST['url'], $matches); if (count($matches) < 3) { return fctErrorMsg('L\'URL du site est invalide (2).'); } $site_url = $matches[1]; $mod_site_url = $matches[3]; //Vérifier si l'URL existe $site = Member_Siteweb::loadSite($mod_site_url); if (!$site) { return fctErrorMsg('Cette URL n\'existe pas.'); } //Vérifier si l'accès est valide $acces = $site->checkAcces($_POST['user'], $_POST['pass']); if (!$acces) { return fctErrorMsg('Vous ne possèdez pas les autorisations nécésaires (1).'); } if (!$acces->isAdmin()) { return fctErrorMsg('Vous ne possèdez pas les autorisations nécésaires (2).'); } //Trouver les pages du site $PAGES = array(); $i = 0; while ($page = $site->getPage($i++)) { if ($page->isPublic()) { $PAGES[] = $page; } } $tpl->set('PAGES', $PAGES); //Retourner le template complété/rempli $tpl->set('SITE', $site); return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Item/NavigateurDomnetModsite.htm', __FILE__, __LINE__); }
public static function generatePage(&$tpl, &$session, &$account, &$perso) { $dbMgr = DbManager::getInstance(); //Instancier le gestionnaire $db = $dbMgr->getConn('game'); //Demander la connexion existante //BUT: Démarrer un template propre à cette page // if (!isset($_POST['url'])) { return fctErrorMSG('url innexistante'); } //Séparer le site de la page (dans l'URL) preg_match('/^([^\\/]+)(?:[\\/]([a-z0-9]+))?(?:[?](.+))?/', $_POST['url'], $matches); if (count($matches) <= 3) { return fctErrorMSG('url invalide'); } $url_site = $matches[1]; $url_page = $matches[2]; $url_param = $matches[3]; //url du site en parametre a dom net //Vérifier si l'URL existe $site = Member_Siteweb::loadSite($url_param); if (!$site) { return fctErrorMSG('Cette URL n\'existe pas.'); } $tpl->set('SITE', $site); //Vérifier si l'accès est valide $acces = $site->checkAcces($_POST['user'], $_POST['pass']); if (!$acces) { return fctErrorMSG('Vous ne possèdez pas les autorisations nécésaires (1).'); } if (!$acces->canPoste() && !$acces->isAdmin()) { return fctErrorMSG('Vous ne possèdez pas les autorisations nécésaires (2).'); } //Retourner le template complété/rempli return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Item/NavigateurDomnetAddpage.htm', __FILE__, __LINE__); }
public static function generatePage(&$tpl, &$session, &$account, &$perso) { $dbMgr = DbManager::getInstance(); //Instancier le gestionnaire $db = $dbMgr->getConn('game'); //Demander la connexion existante //Vérifier l'état du perso if (!$perso->isConscient()) { return fctErrorMsg('Votre n\'êtes pas en état d\'effectuer cette action.'); } //Valider si le joueur à accès à Internet if (self::checkAccess($perso) === false) { return fctErrorMSG('Vous n\'avez pas accès à Internet.'); } //## AFFICHER L'ENTÊTE DU NAVIGATEUR if (!isset($_POST['url']) || empty($_POST['url'])) { $_POST['url'] = "dom.net"; } $tpl->set('URL', $_POST['url']); $tpl->set('USER', isset($_POST['user']) ? $_POST['user'] : ''); $tpl->set('PASS', isset($_POST['pass']) ? $_POST['pass'] : ''); //## AFFICHER LE CONTENU DE LA PAGE //Séparer le site de la page (dans l'URL) preg_match('/^([^\\/]+)(?:[\\/]([a-z0-9]+))?(?:[?](.+))?/', $_POST['url'], $matches); //$tmp = explode('/',$_POST['url']); $url_site = null; $url_page = null; $url_param = null; if (count($matches) > 1) { $url_site = $matches[1]; } if (count($matches) > 2) { $url_page = $matches[2]; } if (count($matches) > 3) { $url_param = $matches[3]; } //Charger le site $site = Member_Siteweb::loadSite($url_site); $tpl->set('url_param', !empty($url_param) ? $url_param : ''); //Charger l'entête (le menu de navigation) $header = $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Item/NavigateurHeader.htm', __FILE__, __LINE__); $tpl->set('HEADER', $header); //Vérifier les droits d'accès au site $acces = false; if ($site && isset($_POST['user']) && isset($_POST['pass'])) { $acces = $site->checkAcces($_POST['user'], $_POST['pass']); } if ($site === false) { $page_source = $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Item/NavigateurNotFound.htm', __FILE__, __LINE__); } elseif ($site && !$site->isPublic() && !$acces) { $page_source = $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Item/NavigateurAccessDenied.htm', __FILE__, __LINE__); } elseif (is_numeric($url_page) || empty($url_page)) { //Il s'agit d'une page régulière $page_source = self::loadPageSource($account, $site, $url_page, isset($_POST['user']) ? $_POST['user'] : '', isset($_POST['pass']) ? $_POST['pass'] : '', $acces); } else { //Il s'agit d'une page système switch ($url_page) { case 'addsite': $page_source = Member_Action_Item_NavigateurAddsite::generatePage($tpl, $session, $account, $perso); break; case 'addpage': $page_source = Member_Action_Item_NavigateurAddpage::generatePage($tpl, $session, $account, $perso); break; case 'modpage': $page_source = Member_Action_Item_NavigateurModpage::generatePage($tpl, $session, $account, $perso); break; case 'modsite': $page_source = Member_Action_Item_NavigateurModsite::generatePage($tpl, $session, $account, $perso); break; case 'modacces': $page_source = Member_Action_Item_NavigateurModacces::generatePage($tpl, $session, $account, $perso); break; case 'modpageacces': $page_source = Member_Action_Item_NavigateurModpageacces::generatePage($tpl, $session, $account, $perso); break; default: $page_source = $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Item/navigateurNotFound.htm', __FILE__, __LINE__); } } //Vérifier si la source -- du site retourné -- comprend un titre ou seulement la source if (count($page_source) == 2) { $tpl->set('TITRE', $page_source[0]); $tpl->set('PAGE', $page_source[1]); } else { $tpl->set('PAGE', $page_source); } //Charger l'index if ($site && ($site->isPublic() || $acces)) { $tpl->set('site', $site); $i = 0; $e = 0; $arrPages = array(); while ($page = $site->getPage($i++)) { if ($page->getShowIndex()) { $arrPages[$e++] = $page; } } $tpl->set('arrPages', $arrPages); //Valider les accès if ($acces && ($acces->canPoste() || $acces->isAdmin())) { $tpl->set('canPost', true); } if ($acces && $acces->isAdmin()) { $tpl->set('admin', true); } $page_source = $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Item/NavigateurIndex.htm', __FILE__, __LINE__); $tpl->set('INDEX', $page_source); } //Retourner le template complété/rempli return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Item/Navigateur.htm', __FILE__, __LINE__); }
public static function generatePage(&$tpl, &$session, &$account, &$perso) { $dbMgr = DbManager::getInstance(); //Instancier le gestionnaire $db = $dbMgr->getConn('game'); //Demander la connexion existante //BUT: Démarrer un template propre à cette page preg_match('/^([^\\/]+)(?:[\\/]([a-z0-9]+))?(?:[?](.+))?/', $_POST['url'], $matches); if (count($matches) < 3) { return fctErrorMsg('L\'URL du site est invalide (2).'); } $site_url = $matches[1]; $mod_site_url = $matches[3]; //Vérifier si l'URL existe $site = Member_Siteweb::loadSite($mod_site_url); if (!$site) { return fctErrorMsg('Cette URL n\'existe pas.'); } //Vérifier si l'accès est valide $acces = $site->checkAcces($_POST['user'], $_POST['pass']); if (!$acces) { return fctErrorMsg('Vous ne possèdez pas les autorisations nécésaires (1).'); } if (!$acces->isAdmin()) { return fctErrorMsg('Vous ne possèdez pas les autorisations nécésaires (2).'); } if (isset($_POST['action'])) { //En cas d'ajout, effectuer l'ajout du champ bidon AVANT if ($_POST['action'] == 'add') { $query = 'INSERT INTO ' . DB_PREFIX . 'sitesweb_acces' . ' (`site_id`)' . ' VALUES' . ' (:id);'; $prep = $db->prepare($query); $prep->bindValue(':id', $site->getId(), PDO::PARAM_INT); $prep->executePlus($db, __FILE__, __LINE__); $prep->closeCursor(); $prep = NULL; $site->clearAcces(); } if ($_POST['action'] == 'mod') { $i = 0; while ($ax = $site->getAcces($i++)) { if (isset($_POST['ax_' . $ax->getId() . '_del'])) { if ($acces->getId() == $ax->getId()) { echo fctErrorMSG('Vous ne pouvez pas vous auto-supprimer.'); } else { $query = 'DELETE FROM ' . DB_PREFIX . 'sitesweb_acces' . ' WHERE id=:id' . ' AND site_id=:siteId' . ' LIMIT 1;'; $prep = $db->prepare($query); $prep->bindValue(':siteId', $site->getId(), PDO::PARAM_INT); $prep->bindValue(':id', $ax->getId(), PDO::PARAM_INT); $prep->executePlus($db, __FILE__, __LINE__); $prep->closeCursor(); $prep = NULL; $query = 'DELETE FROM ' . DB_PREFIX . 'sitesweb_pages_acces' . ' WHERE user_id=:userId;'; $prep = $db->prepare($query); $prep->bindValue(':userId', $ax->getId(), PDO::PARAM_INT); $prep->executePlus($db, __FILE__, __LINE__); $prep->closeCursor(); $prep = NULL; } } else { if (isset($_POST['ax_' . $ax->getId() . '_user'])) { $query = 'UPDATE ' . DB_PREFIX . 'sitesweb_acces' . ' SET `user` =:user,' . ' `pass` =:pass,' . ' `accede` =:accede,' . ' `poste` =:poste,' . ' `modifier` =:modifier,' . ' `admin` =:admin' . ' WHERE id=:id' . ' AND site_id=:siteId' . ' LIMIT 1;'; $prep = $db->prepare($query); $prep->bindValue(':user', $_POST['ax_' . $ax->getId() . '_user'], PDO::PARAM_STR); $prep->bindValue(':pass', $_POST['ax_' . $ax->getId() . '_pass'], PDO::PARAM_STR); $prep->bindValue(':accede', isset($_POST['ax_' . $ax->getId() . '_accede']) ? '1' : '0', PDO::PARAM_STR); $prep->bindValue(':poste', isset($_POST['ax_' . $ax->getId() . '_poste']) ? '1' : '0', PDO::PARAM_STR); $prep->bindValue(':modifier', isset($_POST['ax_' . $ax->getId() . '_modifier']) ? '1' : '0', PDO::PARAM_STR); $prep->bindValue(':admin', isset($_POST['ax_' . $ax->getId() . '_admin']) ? '1' : '0', PDO::PARAM_STR); $prep->bindValue(':siteId', $site->getId(), PDO::PARAM_INT); $prep->bindValue(':id', $ax->getId(), PDO::PARAM_INT); $prep->executePlus($db, __FILE__, __LINE__); $prep->closeCursor(); $prep = NULL; } } } $site->clearAcces(); } } //Trouver le accès déjà existants $i = 0; $arrAcces = array(); while ($ax = $site->getAcces($i++)) { $arrAcces[] = $ax; } $tpl->set('ACCES', $arrAcces); //Retourner le template complété/rempli $tpl->set('SITE', $site); return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Item/NavigateurDomnetAcces.htm', __FILE__, __LINE__); }
public static function generatePage(&$tpl, &$session, &$account, &$perso) { $dbMgr = DbManager::getInstance(); //Instancier le gestionnaire $db = $dbMgr->getConn('game'); //Demander la connexion existante //BUT: Démarrer un template propre à cette page //Valider si l'URL est spécifiée. if (!isset($_POST['url'])) { return fctErrorMSG('url innexistante'); } //Séparer le site de la page (dans l'URL) preg_match('/^([^\\/]+)(?:[\\/]([a-z0-9]+))?(?:[?](.+))?/', $_POST['url'], $matches); if (count($matches) <= 3) { return fctErrorMSG('url invalide'); } $url_site = $matches[1]; $url_page = $matches[2]; $url_param = $matches[3]; //Id de la page a modifier //Trouver le site qui contient la page $query = 'SELECT s.url' . ' FROM ' . DB_PREFIX . 'sitesweb_pages as p' . ' LEFT JOIN ' . DB_PREFIX . 'sitesweb as s ON (s.id=p.site_id)' . ' WHERE p.id=:id' . ' LIMIT 1;'; $prep = $db->prepare($query); $prep->bindValue(':id', $url_param, PDO::PARAM_INT); $prep->executePlus($db, __FILE__, __LINE__); $arr = $prep->fetch(); $prep->closeCursor(); $prep = NULL; if ($arr === false) { return fctErrorMSG('Page innexistante'); } //Vérifier si l'URL existe $site = Member_Siteweb::loadSite($arr['url']); if (!$site) { return fctErrorMsg('Cette URL n\'existe pas.'); } //Vérifier si l'accès est valide $acces = $site->checkAcces($_POST['user'], $_POST['pass']); if (!$acces) { return fctErrorMsg('Vous ne possèdez pas les autorisations nécésaires (1).'); } if (!$acces->isAdmin()) { return fctErrorMsg('Vous ne possèdez pas les autorisations nécésaires (2).'); } //Charger les accès à la page $query = 'SELECT id, user_id' . ' FROM ' . DB_PREFIX . 'sitesweb_pages_acces' . ' WHERE page_id=:id;'; $prep = $db->prepare($query); $prep->bindValue(':id', $url_param, PDO::PARAM_INT); $prep->executePlus($db, __FILE__, __LINE__); $arrPageAx = $prep->fetchAll(); $prep->closeCursor(); $prep = NULL; $i = 0; $arrAcces = array(); while ($ax = $site->getAcces($i++)) { $tmp = array(); $tmp['obj'] = $ax; $tmp['ax'] = false; foreach ($arrPageAx as $pax) { if ($pax !== false && $pax['user_id'] == $ax->getId()) { $tmp['ax'] = true; break; } } $arrAcces[] = $tmp; } $tpl->set('ACCES', $arrAcces); //Trouver la page $query = 'SELECT *' . ' FROM ' . DB_PREFIX . 'sitesweb_pages' . ' WHERE `id` = :id' . ' LIMIT 1;'; $prep = $db->prepare($query); $prep->bindValue(':id', $url_param, PDO::PARAM_INT); $prep->executePlus($db, __FILE__, __LINE__); $arr = $prep->fetch(); $prep->closeCursor(); $prep = NULL; if ($arr === false) { return fctErrorMSG('page invalide (1)'); } $page = new Member_SitewebPage($arr); $tpl->set('PAGE', $page); //Retourner le template complété/rempli return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Item/NavigateurDomnetModpageacces.htm', __FILE__, __LINE__); }
public static function generatePage(&$tpl, &$session, &$account, &$perso) { $dbMgr = DbManager::getInstance(); //Instancier le gestionnaire $db = $dbMgr->getConn('game'); //Demander la connexion existante //BUT: Démarrer un template propre à cette page //Valider si le joueur à accès à Internet if (Member_Action_Item_Navigateur::checkAccess($perso) === false) { return fctErrorMSG('Vous n\'avez pas accès à Internet.'); } //Vérifier l'état du perso if (!$perso->isConscient()) { die('01|' . rawurlencode('Votre n\'êtes pas en état d\'effectuer cette action.')); } if (!preg_match('/^([^\\/]+)(?:[\\/]([0-9]+))?(?:[?](.+))?/', $_POST['url'], $matches)) { die('03|' . rawurlencode('L\'URL du site est invalide.')); } if (count($matches) <= 2) { die('04|' . rawurlencode('L\'id du site est manquant ou invalide.')); } //Vérifier si l'URL existe $site = Member_Siteweb::loadSite($matches[1]); if (!$site) { die('10|' . rawurlencode('Cette URL n\'existe pas.')); } //Vérifier si l'accès est valide $acces = $site->checkAcces($_POST['user'], $_POST['pass']); if (!$acces) { die('11|' . rawurlencode('Vous ne possèdez pas les autorisations nécésaires (1).')); } if (!$acces->canModifier() && !$acces->isAdmin()) { die('12|' . rawurlencode('Vous ne possèdez pas les autorisations nécésaires (2).')); } //Vérifier que la page appartient au site $i = 0; $e = 0; $found = false; while ($page = $site->getPage($i++)) { if ($page->getId() == $matches[2]) { $found = true; } } if (!$found) { die('12|' . rawurlencode('Cette page n\'appartiend pas à ce site.')); } //Tout est ok, Effacer la page :( $query = 'DELETE FROM ' . DB_PREFIX . 'sitesweb_pages_acces' . ' WHERE page_id=:id;'; $prep = $db->prepare($query); $prep->bindValue(':id', $matches[2], PDO::PARAM_INT); $prep->execute($db, __FILE__, __LINE__); $prep->closeCursor(); $prep = NULL; $query = 'DELETE FROM ' . DB_PREFIX . 'sitesweb_pages WHERE id=:id;'; $prep = $db->prepare($query); $prep->bindValue(':id', $matches[2], PDO::PARAM_INT); $prep->execute($db, __FILE__, __LINE__); $prep->closeCursor(); $prep = NULL; die('OK|' . $perso->getPa()); //Tout est OK }