Kamelot Blog

Aller au contenu | Aller au menu | Aller à la recherche

vendredi 29 août 2008

ven
29
aoû '08

Samalyse, Ressources PHP/PEAR

Il y en a comme moi qui traduisent, d'autres écrivent directement.

Voici 4 articles de plus faite chez Samalyse.

Cet exemple montre comment lier deux tables de données avec le composant Structures_DataGrid.

Ce tutoriel explique comment facilement générer des tableaux HTML à partir de données SQL, avec tri et pagination, en couplant deux composants PEAR : Structures_Datagrid et DB_Dataobject.

Librairie d'indexation de contenu XML. Ce composant permet de diminuer les temps d'accès aux données XML.

Contribution permettant d'utiliser des fichiers XML avec la librairie de gestion multi-langues Translation2.

jeudi 28 août 2008

jeu
28
aoû '08

PEAR::Pager tutorials. Navigation avec pagination et Ajax

Ce texte est une des traductions d'une série d'articles de Lorenzo Alberton Suite de PEAR::Pager tuto : Navigation avec pagination et Javascript simple

Comme vous avez pu le voir, the trick was setting the path parameter to an empty string and the fileName parameter to a javascript link, avec l'habituel marqueur "%s" pour le pageID.

Exemple #2: On veut de l'AJAX! On veut de l'AJAX!

Ok, maintenant que vous avez vu les bases, vous devriez avoir tous les éléments à aller plus loin.

Mais si vous êtes paresseux et voulez le voir quand même, voici un exemple sur la façon de faire la même chose que ce que nous avons vu avant, cette fois utilisant des appels AJAX chercher seulement les données utiles pour la page montrée.

Dans cet exemple, j'utilise la librairie PEAR::HTML_AJAX (docs):

Si vous ne pouvez pas attendre voyez cette démo, c'est l'exemple en fonctionnement, regardons comment il est fait :

1) Le fichier html:

nous incluons les fichiers js dynamiques (server.php) pour traiter les demandes AJAX, et appellons HTML_AJAX.replace ("target","testdata.php"), ce qui remplacera le contenu du DIV cible par le rendu du script testdata.php en utilisant un appel d'AJAX.

<html>
<body>
<h1>PEAR::Pager exemple avec AJAX</h1>
 
<script type="text/javascript" src="server.php?client=all"></script>
 
<div id="target">Je suis la cible</div>
 
<script type="text/javascript">
    HTML_AJAX.replace('target', 'testdata.php');
</script>
 
</body>
</html>
2) Le fichier testdata.php:

c'est un simple script php qui récupère les données que vous désirez afficher (Dais cet exemple, 100 entiers) et les renvoie au Paginateur.

L'output de ce script remplacera le contenu du DIV cible dans le premier fichier html.

Nous affichons également la date et l'heure courante pour nous prouver que les données sont « fraîches » et construites à chaque appel (c.-à-d. chaque fois que vous cliquez sur un lien de navigation).

<?php
require_once 'Pager.php';
$data = range(1, 100); //un tableau de données à paginer
$pager_params = array(
    'mode'     => 'Sliding',
    'append'   => false,  //ne pas ajouter les paramètres GET
    'path'     => '',
    'fileName' => 'javascript:HTML_AJAX.replace(\'target\',\'testdata.php?pageID=%d\');',  //Pager replaces "%d" with the page number...
    'perPage'  => 10, //afficher  10 item par page
    'delta'    => 1,
    'itemData' => $data,
);
$pager = & Pager::factory($pager_params);
$n_pages = $pager->numPages();
$links = $pager->getLinks();
echo '<p>Ce containeur est rempli avec un appel AJAX</p>';
echo '<p><span class="datetime">DateTime: '. date('Y-m-d H:i:s') .'</span></p>';
echo '<h3>Page '. $pager->getCurrentPageId() .'</h3>';
foreach ($pager->getPageData() as $item) {
    echo 'Item '. $item .'<br />';
}
echo '<hr />'.$pager->links;
?>
3) Finallement, le fichier server.php :

nous créons une instance de HTML_AJAX_Server pour livrer les les deux les bibliothèques de Javascript et pour traiter les demandes d'AJAX des navigateurs.



<?php
include 'HTML/AJAX/Server.php';
 
$server = new HTML_AJAX_Server();
$server->handleRequest();
?>

lundi 25 août 2008

lun
25
aoû '08

PEAR::Pager tutorials : Pager_Wrapper et Ajax

Je pense avoir déjà parlé de tous les cas de figure que vous pourriez rencontrer où il est utile d'utiliser PEAR::Pager, mais j'ai reçu de nombreux mails me demander comment utiliser le pager pour faire ceci ou cela.

Les 2 questions les plus récurrentes sont

a) Comment je peux utiliser Pager avec _moteur_de_template_ ?

et

b) Comment je peux utiliser Pager_Wrapper avec AJAX?"

En espérant réduire le flot de mails, je vais présenter 2 exemples complets.

La première à trouvé réponse ici : PEAR::Pager tutorials : Pager and Smarty

Pager_Wrapper and AJAX

Ce second exemple montre comment utiliser Pager_Wrapper pour paginer les données d'une DB et utiliser HTML_AJAX pour les afficher.

Lire la suite...

samedi 23 août 2008

sam
23
aoû '08

PEAR::Pager tutorials : Pager and Smarty

Ce texte est une des traductions d'une série d'articles de Lorenzo Alberton

Pager and...

Je pense avoir déjà parlé de tous les cas de figure que vous pourriez rencontrer où il est utile d'utiliser PEAR::Pager, mais j'ai reçu de nombreux mails me demander comment utiliser le pager pour faire ceci ou cela.

Les 2 questions les plus récurrentes sont

a) Comment je peux utiliser Pager avec moteur_de_template?

et

b) Comment je peux utiliser Pager_Wrapper avec AJAX?"

En espérant réduire le flot de mails, je vais présenter 2 exemples complets.

La deuxième à trouvé réponse ici : PEAR::Pager tutorials : Pager_Wrapper and Ajax

Pager and Smarty

Les exemples suivants utilisent le populaire moteur de template Smarty, mais vous pouvez facilement transposer à un autre. N'hésitez pas à tester cette transposition et la poster en commentaire.

Lire la suite...

lundi 11 août 2008

lun
11
aoû '08

PEAR::Pager tutor : Navigation avec pagination et Javascript simple

Ce texte est une des traductions d'une série d'articles de Lorenzo Alberton

OK, vous ne pouvez pas résister à la tendance du Web 2.0 vous avez appris que tous que vous pourriez se renseigner sur cette « nouvelle » technologie appelée AJAX, et maintenant vous vous demandez comment vous pourriez vivre sans lui.

Tout le monde n'a pas sauté dans le mouvement, bien que, et beaucoup de bibliothèques existent toujours sans mettre en application ce dispositif, ainsi vous est confronté au dilemme :

Dois-je je continuer à employer que vieille bibliothèque et abandonner mes idées fraîches d'AJAX, ou devrais je mettre en application ma propre version ?

Si vous recherchez une classe de pagination avec ces conditions, je suis heureux de vous rassurer au sujet de PEAR::Pager : il est AJAX-ready, et a été depuis il y a longtemps.

garanti 100% buzzword-compliance !

Example #1 - Pagination et Javascript

D'abord, regardons un exemple simple sur la façon d'armer le paginateur pour créer des liens de Javascript.

Dans cet exemple plutôt simpliste, nous récupérons toutes les données dans les morceaux paginés, stockons chaque page dans un <div> et employons quelques scripting DOM pour cacher toutes les couches sauf la page courante.

@voir fonctionner cet exemple

[php]
<?php
require_once 'Pager/Pager.php';
$data = range(1, 100); //un tableau de données à paginer
$pager_params = array(
    'mode'     => 'Sliding',
    'append'   => false,  //ne pas ajouter les paramètres GET
    'path'     => '',
    'fileName' => 'javascript:revealDiv(%d)',  //Pager replaces "%d" with the page number...
    'perPage'  => 10, //afficher  10 item par page
    'delta'    => 5,
    'itemData' => $data,
);
$pager = & Pager::factory($pager_params);
$n_pages = $pager->numPages();
$links = $pager->getLinks();
?>
<html>
<head>
    <script type="text/javascript">
    var n_pages = <?php echo $n_pages ?>;
    function revealDiv(n)
    {
        for (var count = 1; count <= n_pages; count++) {
          document.getElementById("page"+count).style.display = 'none';
        }
        document.getElementById("page"+n).style.display = 'block';
    }
    </script>
    <style type="text/css">
    div.page {
      background: #FFFF99;
      border-top: 1px solid #FFBF99;
      border-bottom: 1px solid #FFBF99;
    }
    </style>
</head>
<body>
<h1>PEAR::Pager exemple with JavaScript</h1>
<?php echo $links['pages']; ?>
<hr />
<?php
for ($i=1; $i <= $n_pages; ++$i) {
    echo '<div class="page" id="page'.$i.'">';
    echo '<h2>Page '.$i.'</h2>';
    foreach ($pager->getPageData($i) as $item) {
        echo 'Item '.$item.'<br />';
    }
    echo '</div>';
}
?>
<hr />
<script type="text/javascript">
revealDiv(1);
</script>
</body>
</html>

à lire aussi

dimanche 10 août 2008

dim
10
aoû '08

Articles sur spl

J'ai envie de m'intéresser à la Standard PHP Librairy. J'ai cherché quelques tutos et références.

Lire la suite...

samedi 9 août 2008

sam
09
aoû '08

PEAR::PAGER, Paginations d'article, ou comment naviguer dans les paragraphes d'un article avec le paginateur

Ce texte est une des traductions d'une série d'articles de Lorenzo Alberton

Vous avez probablement vu beaucoup de sites Web comporter des articles longs et détaillés, qui sont coupés en paragraphes, chacun présenté dans une page séparée.

Les utilisateurs préfèrent souvent lire les morceaux courts du texte au lieu de faire défiler une très(trop) longue page (à moins qu'ils ne veulent l'imprimer).

Dans ce tuto, nous allons voir comment nous pouvons établir un système de paginations d'article, a l'aide de PEAR::Pager.

Lire la suite...

jeudi 7 août 2008

jeu
07
aoû '08

PEAR::Pager tuto : Créer des cool Url pour la pagination avec Pager et mod_rewrite

Ce texte est une des traductions d'une série d'articles de Lorenzo Alberton (original)

La plupart des classes de pagination PHP peuvent fonctionner très bien avec des paramètres GET, correctement envoyés par les pages.

Cependant, rares sont celles qui vous laissent le contrôle sur les liens qu'elles créent.

Ceci peut être particulièrement ennuyant quand vous travaillez avec des cool URL (grâce à mod_rewrite ordonne ou fait à la main par votre contrôleur) et la classe de de pagination ne peut pas les respecter, en affichant les liens réels et laids.

Lire la suite...

Tags