Home
Accueil
Downloads
Téléchargements
Forums
Forums
Your Account
Votre compte
Menu
· Accueil ·

· Communication ·
  · Forums
  · Messages privés
  · Contactez nous
  · Recommendez nous
  · Sondages
  · Les projets

· Nouvelles ·Stats
  · Sujets
  · Ecrire un article
  · Articles archivés
  · Articles RSS
  · Lettre de sécurité
  · Archive de lettres

· Téléchargements ·
  · Accueil
  · Nouveautés
  · Mises à jour
  · Thêmes

· Outils ·
  · Outils divers
  · Convertisseur de temps
  · Table de caractères
  · Générateur de boutons
  · Compresseur Javascript

· Documentation ·
  · Wiki
  · Questions/Réponses
  · Documents
  · Manuel PHP-Nuke
  · Manuel PHP
  · Manuel PEAR
  · Encyclopédies

· Liens ·
  · Nos liens
  · Nos fluxs RSS
  · Partenaires
  · Votre publicité
  · Sitemap
  · Mes bannières

· Infos ·
  · Rechercher
  · Votre compte
  · Liste des membres
  · Carte des membres
  · Top

· Divers ·
  · Météo
  · Galeries
  · Statistiques Phpnuke
  · MS Analysis


Exemple élaboré

Exemple élaboré

Exemple élaboré -- Comment construire une grille de données en utilisant plusieurs fonctionalités

Description

Une interface pour un système de gestion d'utilisateurs.

Cet exemple va vous expliquer comment créer une interface pour un système de gestion d'utilisateurs en utilisant le paquet DB_DataObject pour gérer l'aspects base de données de cet exemple.

Attention : cet exemple utilise de nouvelles fonctionnalités disponibles dans la version 0.7 de Structures_DataGrid.

Exemple 56-1. Exemple d'un système de gestion d'utilisateurs

<?php
require_once 'Structures/DataGrid.php';
require_once 'HTML/Table.php';
require_once 'myclasses/User.php';

// Instanciation de l'objet DataObject ; c'est notre conteneur DataSource
$user = new User_DataObject();

// Création de la grille de données, et liage du conteneur DataSource
$datagrid =& new Structures_DataGrid(20); // Display 20 records per page
$test = $datagrid->bind($user);
if (PEAR::isError($test)) {
    echo $test->getMessage();
}

// Spécifie comment la grille de données doit être triée par défaut
$datagrid->setDefaultSort(array('lname' => 'ASC'));

// Définition des colonnes
$datagrid->addColumn(new Structures_DataGrid_Column(null, null, null, array('width' => '10'), null, 'printCheckbox()'));
$datagrid->addColumn(new Structures_DataGrid_Column('Name', null, 'lname', array('width' => '40%'), null, 'printFullName()'));
$datagrid->addColumn(new Structures_DataGrid_Column('Username', 'username', 'username', array('width' => '20%')));
$datagrid->addColumn(new Structures_DataGrid_Column('Role', null, null, array('width' => '20%'), null, 'printRoleSelector()'));
$datagrid->addColumn(new Structures_DataGrid_Column('Edit', null, null, array('width' => '20%'), null, 'printEditLink()'));

// Définition de l'apparence
$tableAttribs = array(
    'width' => '100%',
    'cellspacing' => '0',
    'cellpadding' => '4',
    'class' => 'datagrid'
);
$headerAttribs = array(
    'bgcolor' => '#CCCCCC'
);
$evenRowAttribs = array(
    'bgcolor' => '#FFFFFF'
);
$oddRowAttribs = array(
    'bgcolor' => '#EEEEEE'
);
$rendererOptions = array(
    'sortIconASC' => '&uArr;',
    'sortIconDESC' => '&dArr;'
);

// Création du tableau HTML
$table = new HTML_Table($tableAttribs);
$tableHeader =& $table->getHeader();
$tableBody =& $table->getBody();

// Demande à la grille de données de remplir le tableau HTML avec les données, en utilisant les options d'affichage définies
$test = $datagrid->fill($table, $rendererOptions);
if (PEAR::isError($test)) {
    echo $test->getMessage();
}

// Définition des attributs pour la ligne d'en-tête
$tableHeader->setRowAttributes(0, $headerAttribs);

// Définition des attributs de lignes alternativement
$tableBody->altRowAttributes(0, $evenRowAttribs, $oddRowAttribs, true);

// Affichage de la table et des liens page par page
echo $table->toHtml();

// Affichage des liens page par page
$test = $datagrid->render(DATAGRID_RENDER_PAGER);
if (PEAR::isError($test)) {
    echo $test->getMessage();
}

function printCheckbox($params)
{
   extract($params);
   return '<input type="checkbox" name="idList[]" value="' . $record['id'] . '">';
}
function printFullName($params)
{
   extract($params);
   return $record['fname'] . ' ' . $record['lname'];
}
function printRoleSelector($params)
{
   global $roleList;

   extract($params);

   $html = '<select name="role_id">';
   foreach ($roleList as $roleId => $roleName) {
      $html .= "<option value=\"$roleId\">$roleName</option>\n";
   }
   $html .= '</select>';

   return $html;
}
function printEditLink($params)
{
   extract($params);
   return '<a href="edit.php?id=' . $record['id'] . '">Edit</a>';
}
?>

Manuel PEAR pour PHP-Nuke © www.stefvar.com
Syndiquez notre contenu RSS, Atom, etc..
PHP-Nuke © 2007Reproduction interdite sans autorisation de ma part www.stefvar.com Copyright © 2008Thème iCGstation
Site français de la communauté PragmaMx