loadTemplate( 'orders' ); // Instanciation du DataGrid $datagrid = new Structures_DataGrid(10); $datagrid->setDefaultSort( array('creation_date' => 'DESC') ); // Libell�s des ent�tes de colonnes � associer aux champs de la BDD $l_asFieldsLabel = array( 'creation_date' => 'Date de la commande', 'number' => 'N� de la commande', 'product' => 'D�signation' ); // Param�trage de la source de donn�es $options = array( 'dsn' => MVC::$config['DB_DataObject']['database'], 'generate_columns' => true, 'fields' => array_keys($l_asFieldsLabel), 'labels' => $l_asFieldsLabel ); // Attachement d'une requ�te SQL comme source de donn�es $test = $datagrid->bind( 'SELECT id, creation_date, number, product FROM orders WHERE partner_id = ' . $_SESSION['partner']['siret'], $options, DATAGRID_SOURCE_MDB2 ); if ( !empty($datagrid->recordSet) ) { $l_asRowAttributes = array( 'class' => 'order', 'title' => 'cliquez pour afficher / cacher le d�tail de cette commande', 'onclick' => 'showHideInfo(this);', 'onmouseover' => 'highlightRow(this);', 'onmouseout' => 'unHighlightRow(this);' ); // Param�trage du rendu des donn�es $l_oHtmlTable = $datagrid->getRenderer(); $l_oHtmlTable->setTableAttribute('class', 'blue'); $l_oHtmlTable->setTableAttribute('title', '�tat de vos commandes'); $l_oHtmlTable->setOptions( array( 'sortIconASC' => ' ∧', 'sortIconDESC' => ' ∨', 'sortingResetsPaging' => false, 'evenRowAttributes' => $l_asRowAttributes, 'oddRowAttributes' => $l_asRowAttributes, ) ); // Ajout du tableau pagin� dans le template $this->addContent( $this->getNodes('//h1')->item(0), $datagrid->getOutput() . '
' ); // Ajout d'informations suppl�mentaires dans le tableau // // Ent�te du tableau : // - rattachement des �l�ments du tableau au libell� avec // l'attribut "scope" // - Ajout d'un attribut "title" aux liens situ�s dans les ent�tes de // colonnes. $l_iIndex = 1; $l_asHeaderTitles = array( 1 => 'date de la commande', 'num�ro de la commande', 'rubrique de la commande', ); foreach (array_values($l_asFieldsLabel) as $l_sLabel) { $this->setNodeAttribute('//thead/tr/th[' . $l_iIndex . ']', array('scope' => 'col', 'title' => $l_asHeaderTitles[$l_iIndex])); $this->setNodeAttribute('//thead/tr/th[' . $l_iIndex . ']/a', 'title', 'cliquez pour trier vos commandes par "' . $l_sLabel . '"'); ++$l_iIndex; } // Insertion des supports de chaque commande � l'endroit appropri� dans // le template // // Instanciation d'un DataObject orders_supports et param�trage des // donn�es � r�cup�rer. $l_oOrderSupport = MVC_Model_DAO::factory('orders_supports'); $l_oOrderSupport->keys('order_id'); $l_oOrderSupport->selectAdd(); $l_oOrderSupport->selectAdd('name, quantity, download_file'); // R�cup�ration et affichage des supports de chaque commande $l_iIndex = 1; foreach ( $datagrid->recordSet as $l_asOrder ) { // "Vidage" du DataObject et r�cup�ration des supports pour la // commande courante $l_oOrderSupport->clear(); $l_oOrderSupport->whereAdd(); $l_oOrderSupport->whereAdd('order_id = ' . $l_asOrder['id']); $l_iSupportCount = $l_oOrderSupport->find(); // Contruction d'une nouvelle ligne de tableau contenant la liste // des supports $l_sHtmlCode = sprintf( 'Aucune commande pass�e ou en cours.
' ); return $this->toString(); } } ?>