Example #1
0
 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
 }
Example #2
0
 public static function generatePage(&$tpl, &$session, &$account, &$perso)
 {
     $errorUrl = '?popup=1&m=Action_Item_Media';
     $paCost = 0;
     if (!$perso->isConscient()) {
         return fctErrorMSG('Vous n\'êtes pas en état d\'effectuer cette action.', $errorUrl);
     }
     //Pas assez de PA
     if ($perso->getPa() <= $paCost) {
         return fctErrorMSG('Vous n\'avez pas assez de PA pour effectuer cette action.', $errorUrl);
     }
     //Vérifications du post
     if (!isset($_POST['mediaSelected'])) {
         return fctErrorMSG('Vous n\'avez pas sélectionné d\'objet.', $errorUrl);
     }
     if (empty($_POST[$_POST['mediaSelected'] . '_channelSelected'])) {
         return fctErrorMSG('Vous n\'avez pas choisi de canal.', $errorUrl);
     }
     //Récupérer les informations sur l'item media
     $item = Member_ItemFactory::createFromInvId($_POST['mediaSelected']);
     if ($item == false) {
         return fctErrorMsg('Erreur : l\'item selectionné n\'est pas supporté.', $errorUrl);
     }
     if ($item->getMediaType() != 'tous') {
         if ($item->getMediaType() != $_POST[$_POST['mediaSelected'] . '_typeSelected']) {
             return fctErrorMsg('Le type de média selectionné n\'est pas accessible par cet objet.', $errorUrl);
         }
     }
     $mediaMsg = $item->getMediaContenu($_POST[$_POST['mediaSelected'] . '_typeSelected'], $_POST[$_POST['mediaSelected'] . '_channelSelected']);
     $mediaReception = $item->isRecepteur();
     $mediaEmission = $item->isEmetteur();
     //Si on veut regarder les média : retirer les PA
     if ($item->isRecepteur()) {
         $perso->changePa('-', $paCost);
         $perso->setPa();
     }
     $tpl->set('MEDIA_RECEPTION', $mediaReception);
     $tpl->set('MEDIA_EMISSION', $mediaEmission);
     $tpl->set('MEDIA_MESSAGE', $mediaMsg);
     $tpl->set('PERSO', $perso);
     $tpl->set('CANAL', $_POST[$_POST['mediaSelected'] . '_channelSelected']);
     $tpl->set('ITEM', $item);
     if ($_POST[$_POST['mediaSelected'] . '_typeSelected'] = 'tele') {
         $typeAffichable = 'télé';
     } else {
         $typeAffichable = 'radio';
     }
     $tpl->set('MEDIA', $typeAffichable);
     $tpl->set('MEDIA_TYPE', $_POST[$_POST['mediaSelected'] . '_typeSelected']);
     //Retourner le template complété/rempli
     return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Item/Media2.htm', __FILE__, __LINE__);
 }
Example #3
0
 public static function generatePage(&$tpl, &$session, &$account, &$perso)
 {
     $errorUrl = '?popup=1&amp;m=Action_Lieu_MediaListe';
     $paCost = 0;
     if (!$perso->isConscient()) {
         return fctErrorMSG('Vous n\'êtes pas en état d\'effectuer cette action.', $errorUrl);
     }
     //Pas assez de PA
     if ($perso->getPa() <= $paCost) {
         return fctErrorMSG('Vous n\'avez pas assez de PA pour effectuer cette action.', $errorUrl);
     }
     //Vérifications du post
     if (!isset($_POST['mediaSelected'])) {
         return fctErrorMSG('Vous n\'avez pas sélectionné d\'objet.', $errorUrl);
     }
     //Récupérer les informations sur l'accès média
     $i = 0;
     $mediaAcces = false;
     while ($media = $perso->getLieu()->getMediaAcces($i++)) {
         if ($media->getId() == $_POST['mediaSelected']) {
             $mediaAcces = $media;
             break;
         }
     }
     if ($mediaAcces == false) {
         return fctErrorMsg('Erreur : l\'item selectionné n\'existe pas.', $errorUrl);
     }
     $mediaMsg = $mediaAcces->getMediaContenu();
     $mediaReception = $mediaAcces->isRecepteur();
     $mediaEmission = $mediaAcces->isEmetteur();
     //Si on veut regarder les média : retirer les PA
     if ($mediaReception) {
         $perso->changePa('-', $paCost);
         $perso->setPa();
     }
     $tpl->set('MEDIA_RECEPTION', $mediaReception);
     $tpl->set('MEDIA_EMISSION', $mediaEmission);
     $tpl->set('MEDIA_MESSAGE', $mediaMsg);
     $tpl->set('PERSO', $perso);
     $tpl->set('MEDIA_ACCES', $mediaAcces);
     //Retourner le template complété/rempli
     return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Lieu/MediaAcces.htm', __FILE__, __LINE__);
 }
Example #4
0
 public static function generatePage(&$tpl, &$session, &$account, &$perso)
 {
     $errorUrl = '?popup=1&amp;m=Action_Lieu_MediaListe';
     $paCost = 0;
     if (!$perso->isConscient()) {
         return fctErrorMSG('Vous n\'êtes pas en état d\'effectuer cette action.', $errorUrl);
     }
     //Pas assez de PA
     if ($perso->getPa() <= $paCost) {
         return fctErrorMSG('Vous n\'avez pas assez de PA pour effectuer cette action.', $errorUrl);
     }
     //Vérifications du post
     if (!isset($_POST['title'])) {
         return fctErrorMSG('Vous n\'avez pas sélectionné d\'émission.', $errorUrl);
     }
     if (empty($_POST['message'])) {
         return fctErrorMSG('Vous devez écrire un message.', $errorUrl);
     }
     if ($_POST['title'] == 'new' && empty($_POST['new_title'])) {
         return fctErrorMSG('Vous devez entrer un nom d\'émission.', $errorUrl);
     }
     //Récupérer les informations sur l'accès media du lieu
     $i = 0;
     $mediaAcces = false;
     while ($media = $perso->getLieu()->getMediaAcces($i++)) {
         if ($media->getId() == $_POST['media']) {
             $mediaAcces = $media;
             break;
         }
     }
     if ($mediaAcces == false) {
         return fctErrorMsg('Erreur : l\'item selectionné n\'existe pas.', $errorUrl);
     }
     $mediaAcces->writeInMedia($_POST[$_POST['title'] . '_title'], $_POST['message']);
     $perso->changePa('-', $paCost);
     $perso->setPa();
     //Rafraichir le HE
     return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/herefresh.htm', __FILE__, __LINE__);
 }
Example #5
0
 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__);
 }
Example #6
0
 public static function generatePage(&$tpl, &$session, &$account, &$perso)
 {
     $errorUrl = '?popup=1&amp;m=Action_Item_Media';
     $paCost = 0;
     if (!$perso->isConscient()) {
         return fctErrorMSG('Vous n\'êtes pas en état d\'effectuer cette action.', $errorUrl);
     }
     //Pas assez de PA
     if ($perso->getPa() <= $paCost) {
         return fctErrorMSG('Vous n\'avez pas assez de PA pour effectuer cette action.', $errorUrl);
     }
     //Vérifications du post
     if (!isset($_POST['title'])) {
         return fctErrorMSG('Vous n\'avez pas sélectionné d\'émission.', $errorUrl);
     }
     if (empty($_POST['message'])) {
         return fctErrorMSG('Vous devez écrire un message.', $errorUrl);
     }
     if ($_POST['title'] == 'new' && empty($_POST['new_title'])) {
         return fctErrorMSG('Vous devez entrer un nom d\'émission.', $errorUrl);
     }
     //Récupérer les informations sur l'item media
     $item = Member_ItemFactory::createFromInvId($_POST['item']);
     if ($item == false) {
         return fctErrorMsg('Erreur : l\'item selectionné n\'est pas supporté.', $errorUrl);
     }
     if ($item->getMediaType() != 'tous') {
         if ($item->getMediaType() != $_POST['mediaType']) {
             return fctErrorMsg('Le type de média selectionné n\'est pas accessible par cet objet.', $errorUrl);
         }
     }
     $item->writeInMedia($_POST['mediaType'], $_POST['channel'], $_POST[$_POST['title'] . '_title'], $_POST['message']);
     $perso->changePa('-', $paCost);
     $perso->setPa();
     //Rafraichir le HE
     return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/herefresh.htm', __FILE__, __LINE__);
 }
Example #7
0
 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__);
 }
Example #8
0
 /** Transfère un item d'un inventaire vers un autre item (ex.:sac).
  *
  * @param object &$persoTo 	Instance de l'item de destination.
  * @param int $qte			Quantité d'item(s) à transférer.
  */
 public function transfererVersItem(&$itemTo, $qte)
 {
     if ($qte > $this->getQte()) {
         die(fctErrorMsg('Vous ne pouvez pas transférer plus que l\'ensemble de départ contient.'));
     }
     if ($this->getInvId() == $itemTo->getInvId()) {
         die(fctErrorMsg('Vous ne pouvez pas transférer un item dans lui-même.'));
     }
     //SANS gestion des quantités donc transfert de la totalité et non groupable : tranfert simple
     if (!$this->canRegroupe() && $this->getQte() == $qte) {
         $dbMgr = DbManager::getInstance();
         //Instancier le gestionnaire
         $db = $dbMgr->getConn('game');
         //Demander la connexion existante
         $query = 'UPDATE ' . DB_PREFIX . 'item_inv' . ' SET `inv_persoid` 			= NULL,' . ' `inv_lieutech`			= NULL,' . ' `inv_boutiquelieutech`	= NULL,' . ' `inv_idcasier`			= NULL,' . ' `inv_equip`				= NULL,' . ' `inv_itemid`			= :itemId' . ' WHERE `inv_id`=:id' . ' LIMIT 1;';
         $prep = $db->prepare($query);
         $prep->bindValue(':itemId', $itemTo->getInvId(), PDO::PARAM_INT);
         $prep->bindValue(':id', $this->getInvId(), PDO::PARAM_INT);
         $prep->execute($db, __FILE__, __LINE__);
         $prep->closeCursor();
         $prep = NULL;
         return;
     }
     //AVEC gestion des quantités
     //Rechercher si un item identique est déjà présent dans l'inventaire du lieu d'arrivé
     $itemFound = self::itemIsInItem($this, $itemTo);
     if ($itemFound === false) {
         //Il s'agit d'un nouvel item
         //Dupliquer l'item de l'inventaire de l'inventaire du donneur
         self::duplicateItem($this->getInvId(), $qte, null, null, null, null, $itemTo->getInvId());
     } else {
         //L'item est déjà présent dans l'inventaire du perso, augmenter sa quantité
         $itemFound->setQte($itemFound->getQte() + $qte);
     }
     //Retirer les items à transférer de l'inventaire de départ
     $this->setQte($this->getQte() - $qte);
 }
Example #9
0
 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__);
 }
Example #10
0
 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__);
 }
Example #11
0
 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
     $actionPa = 3;
     $cout_ouverture = 7500;
     if ($perso->getPa() <= $actionPa) {
         return fctErrorMsg('Vous n\'avez pas assez de PA pour effectuer cette action.');
     }
     if (!isset($_POST['url'])) {
         return fctErrorMsg('Paramètre requis manquant.');
     }
     //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 ($perso->getPa() < $actionPa) {
         die('02|' . 'Vous n\'avez pas assez de PA pour effectuer cette action.');
     }
     if (!preg_match('/^[A-Za-z0-9\\.-_]+$/', $_POST['url'], $matches)) {
         die('03|' . 'L\'URL dU site est invalide.');
     }
     if (!preg_match('/^([0-9]{4})-([0-9]{4}-[0-9]{4}-[0-9]{4})-([0-9]+)$/', $_POST['no'], $matches)) {
         die('04|' . 'Le # de la carte est invalide.');
     }
     $carte_banque = $matches[1];
     $carte_compte = $matches[2];
     $carte_id = $matches[3];
     $query = 'SELECT *' . ' FROM ' . DB_PREFIX . 'banque_cartes' . ' WHERE 	carte_banque=:carteBanque' . ' AND carte_compte=:carteCompte' . ' AND carte_id =:carteId' . ' LIMIT 1;';
     $prep = $db->prepare($query);
     $prep->bindValue(':carteBanque', $carte_banque, PDO::PARAM_STR);
     $prep->bindValue(':carteCompte', $carte_compte, PDO::PARAM_STR);
     $prep->bindValue(':carteId', $carte_id, PDO::PARAM_INT);
     $prep->executePlus($db, __FILE__, __LINE__);
     $carte = $prep->fetch();
     $prep->closeCursor();
     $prep = NULL;
     if ($carte === false) {
         die('05|' . 'Cette carte est innexistante.');
     }
     if ($carte['carte_valid'] == 0) {
         die('06|' . 'Cette carte a été désactivée.');
     }
     if ($carte['carte_nip'] != $_POST['nip']) {
         die('07|' . 'NIP erroné.');
     }
     //Valider le montant du compte associé à la carte
     $query = 'SELECT *' . ' FROM ' . DB_PREFIX . 'banque_comptes' . ' WHERE	compte_banque=:carteBanque' . ' AND compte_compte=:carteCompte;';
     $prep = $db->prepare($query);
     $prep->bindValue(':carteBanque', $carte_banque, PDO::PARAM_STR);
     $prep->bindValue(':carteCompte', $carte_compte, PDO::PARAM_STR);
     $prep->executePlus($db, __FILE__, __LINE__);
     $arr = $prep->fetch();
     $prep->closeCursor();
     $prep = NULL;
     if ($arr === false) {
         die('08|' . 'Le compte associé à la carte a été fermé.');
     }
     $compte = new Member_BanqueCompte($arr);
     if ($compte->getCash() < $cout_ouverture) {
         die('09|' . 'Compte sans fond.');
     }
     //Vérifier si l'URL existe déjà
     $query = 'SELECT id' . ' FROM ' . DB_PREFIX . 'sitesweb' . ' WHERE url=:url;';
     $prep = $db->prepare($query);
     $prep->bindValue(':url', $_POST['url'], PDO::PARAM_STR);
     $prep->executePlus($db, __FILE__, __LINE__);
     $arr = $prep->fetch();
     $prep->closeCursor();
     $prep = NULL;
     if ($arr !== false) {
         die('10|' . 'Cette URL existe déjà, veuillez en choisir une autre.');
     }
     //Tout est ok, Créer le site !!!!!
     $perso->changePa('-', $actionPa);
     $perso->setPa();
     $compte->changeCash('-', $cout_ouverture);
     $compte->setCash();
     $compte->add_bq_hist('', 'WWWA', $cout_ouverture);
     $query = 'INSERT INTO ' . DB_PREFIX . 'sitesweb' . ' (`url`, `titre`, `acces`)' . ' VALUES' . ' (:url, :titre, "pub");';
     $prep = $db->prepare($query);
     $prep->bindValue(':url', $_POST['url'], PDO::PARAM_STR);
     $prep->bindValue(':titre', $_POST['titre'], PDO::PARAM_STR);
     $prep->executePlus($db, __FILE__, __LINE__);
     $prep->closeCursor();
     $prep = NULL;
     $siteid = $db->lastInsertId();
     //Créer l'accès admin au site
     $query = 'INSERT INTO ' . DB_PREFIX . 'sitesweb_acces' . ' (`site_id`, `user`, `pass`, `accede`, `poste`, `modifier`, `admin`)' . ' VALUES' . ' (:siteId, :user, :pass, "1", "1", "1", "1");';
     $prep = $db->prepare($query);
     $prep->bindValue(':siteId', $siteid, PDO::PARAM_INT);
     $prep->bindValue(':user', $_POST['user'], PDO::PARAM_STR);
     $prep->bindValue(':pass', $_POST['pass'], PDO::PARAM_STR);
     $prep->executePlus($db, __FILE__, __LINE__);
     $prep->closeCursor();
     $prep = NULL;
     die('OK|' . $perso->getPa() . '|' . $_POST['url']);
     //Tout est OK
 }