/** Charge la liste des items en inventaire. * <br> Selon le perso actuel (de l'objet perso), cette fonction créer/génère le 'tableau des item en inventaire'. * <br> Cette fonction est apellée par getInventaire() et par les codes qui modifient l'inventaire (Inventaire, dépouillement, etc) dans le cas ou le 'tableau des item en inventaire' est innexistant. * */ public function refreshInventaire() { $dbMgr = DbManager::getInstance(); //Instancier le gestionnaire $db = $dbMgr->getConn('game'); //Demander la connexion existante //Vider l'inventaire $this->inventaire = NULL; //Charger le nouvel inventaire $this->inventaire = Member_ItemFactory::createFromItemId($this->getInvId()); $this->refreshPR(); }
/** * Génère un tableau de l'inventaire d'un item à partir d'une requête. * * @param Account &$account Account à utiliser (par défaut: $account) * @param array $arrItem tableau des items à traiter * @param string $returnPage Nom du module actuel (pour les pages de retour, ex: Member_Perso_Inventaire) * @param string $tableWidth Largeur du tableau à créer * @return string Retourne du code HTML ou false si aucun item */ public static function generateInventaireTable(&$account, &$arrItem, $returnPage, $returnId, $tableWidth, $deep = 0) { $deep++; $tpl = new Template($account); if (count($arrItem) == 0) { return array(); } //Trier le tableau en ordre de type usort($arrItem, "compare"); //Construire la liste des tableaux $tableHTML = ''; $currentCat = ''; $i = 0; foreach ($arrItem as $item) { //Gérer les entête du tableau $showHeader = false; if ($currentCat != $item->getTypeTech()) { if (!empty($tableHTML)) { //Ne pas commencer avec une fermeture de tableau $tableHTML .= '</table><br />'; } $currentCat = $item->getTypeTech(); $showHeader = true; } //Générer le tableau $type = $item->getTypeTech(); if ($item instanceof Member_ItemDefense) { $type = 'defense'; } if ($item instanceof Member_ItemDrogue) { $type = 'drogue'; } if ($item instanceof Member_ItemSac && $deep < 2) { $arrItem2 = Member_ItemFactory::createFromItemId($item->getInvId(), true); if (!empty($arrItem2)) { $sacHTML = self::generateInventaireTable($account, $arrItem2, $returnPage, $returnId, '750px', $deep); } else { $sacHTML = "Vide"; } $tpl->set('SAC_INVENTAIRE', $sacHTML); } $tpl->set('SHOW_HEADER', $showHeader); $tpl->set('TABLE_WIDTH', $tableWidth); $tpl->set('RETURN_PAGE', $returnPage); $tpl->set('RETURN_ID', $returnId); $tpl->set('ITEM', $item); $tableHTML .= $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Mj/Item/Inventaire_' . $type . '.htm', __FILE__, __LINE__); } return $tableHTML . '</table>'; }