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( 'Cette commande contient le%1$s support%1$s suivant%1$s :', $l_iSupportCount > 1 ? 's' : '' ); while ( $l_oOrderSupport->fetch() ) { $l_sHtmlCode .= '
  • '; /*if ( !empty($l_oOrderSupport->download_file) ) { $l_sHtmlCode .= 'download_file ) ) $l_sHtmlCode .= ' target="_blank"'; $l_sHtmlCode .= ' class="arrow_link">' . $l_oOrderSupport->quantity . ' ' . $l_oOrderSupport->name . ''; } else*/ $l_sHtmlCode .= $l_oOrderSupport->quantity . ' ' . $l_oOrderSupport->name; $l_sHtmlCode .= '
  • '; } $l_sHtmlCode .= '
    '; // Ajout de la nouvelle ligne dans le tableau, juste en-dessous de // la ligne contenant les infos de la commande courante $this->addContent( $this->getNodes('//tbody/tr[' . $l_iIndex . ']')->item(0), $l_sHtmlCode ); $l_iIndex += 2; } } else $this->addContent( $this->getNodes('//h1')->item(0), '

    Aucune commande pass�e ou en cours.

    ' ); return $this->toString(); } } ?>