rendered paste body<?php
require 'Structures/DataGrid.php';
class Account_OrdersView extends MVC_View_DOM {
public function render( MVC_Request $p_oRequest ) {
$_SESSION['menu_id'] = 100;
$this->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' => '  <span style="color:#fff;">∧</span>',
'sortIconDESC' => '  <span style="color:#fff;">∨</span>',
'sortingResetsPaging' => false,
'evenRowAttributes' => $l_asRowAttributes,
'oddRowAttributes' => $l_asRowAttributes,
)
);
// Ajout du tableau pagin� dans le template
$this->addContent( $this->getNodes('//h1')->item(0),
$datagrid->getOutput() .
'<div id="navbar">' .
$datagrid->getOutput(
DATAGRID_RENDER_PAGER,
array(
'pagerOptions' => array(
'prevImg' => '<img src="arrow_previous.gif"/>',
'nextImg' => '<img src="arrow_next.gif"/>',
'altPrev' => 'aller � la page pr�c�dente',
'altPage' => 'aller � la page ',
'altNext' => 'aller � la page suivante',
'separator' => '.',
'spacesBeforeSeparator' => 1,
'spacesAfterSeparator' => 1,
'curPageLinkClassName' => 'current_page_link'
)
)
) .
'</div>'
);
// 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(
'<tr class="order_detail"><td colspan="3">Cette commande contient le%1$s support%1$s suivant%1$s :<lu>',
$l_iSupportCount > 1 ? 's' : ''
);
while ( $l_oOrderSupport->fetch() ) {
$l_sHtmlCode .= '<li>';
/*if ( !empty($l_oOrderSupport->download_file) ) {
$l_sHtmlCode .= '<a href="pdf/' . $l_oOrderSupport->download_file . '"';
if ( preg_match( '/\.pdf$/i', $l_oOrderSupport->download_file ) ) $l_sHtmlCode .= ' target="_blank"';
$l_sHtmlCode .= ' class="arrow_link">' . $l_oOrderSupport->quantity . ' ' . $l_oOrderSupport->name . '</a>';
}
else*/
$l_sHtmlCode .= $l_oOrderSupport->quantity . ' ' . $l_oOrderSupport->name;
$l_sHtmlCode .= '</li>';
}
$l_sHtmlCode .= '</lu></td></tr>';
// 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), '<p>Aucune commande pass�e ou en cours.</p>' );
return $this->toString();
}
}
?>