Wiki Plume Community : pxGetSingleArt

HomePage :: Categories :: PageIndex :: RecentChanges :: RecentlyCommented :: Login/Register

Use article function pxArtSomeThingToShow in a category template (Plume 1.2.2)

Sometimes it is usefull to access an article from a category page.
You can add this function in lib.frontend.php :


Utiliser les fonctions pxArtQuelqueChose sur une page Category (Plume 1.2.2)

Il est parfois utile de pouvoir obtenir le contenu d'un article dans une page de catégorie.
Voici une fonction permettant de le faire, à ajouter dans lib.frontend.php :

<?php
           /**
        *  Fonction permettant de récupérer un article sur une page de catégorie
        *
        *       @param  (boolean) défini la façon dont les données sont renvoyées (return OU echo)
        *       @return (string) renvoi une référence sur l'article
        */

    function pxGetSingleArt($return=false)
    {   
            // create a new Article Object
            $myRes_id = $GLOBALS['_PX_render']['res']->f('resource_id');
            $article = new Article();
            $result = $GLOBALS['_PX_render']['art'] = &$article ;
           
        if(!$article->load($myRes_id))
            return;

        // do as if Article was load from Disptacher   
        $GLOBALS['_PX_render']['ct_enabled'] = false;
                if   ((config::f('comment_support') == 1) or (config::f('comment_support') == 2 &&
                     $GLOBALS['_PX_render']['art']->f('comment_support') == 1)) {
                            $GLOBALS['_PX_render']['ct_enabled'] = true;
        }
       
        if ( $return ) return $result ;
    }
?>

Dans les gabarits category_something il est alors possible d'utiliser les fonctions d'articles pxArtQuelqueChose, exemple :

Now it is possible to use pxArtSomeThingToShow function, for example :
<?php       
    pxGetSingleArt() ;
    pxArtTitle('<h1>%s</h1>') ;   
    pxArtListPages("<h3>table of contents</h3>%s") ;
    pxArtPageContent();
?>

Remarque :
Pour pouvoir utiliser les commentaires dans la page il faut ajouter dans le gabarit le code ci-dessous :
    $ct = new Comment ;
    $GLOBALS['_PX_render']['ct'] = & $ct ;
    $ct->load($GLOBALS['_PX_render']['art']->comments->f('comment_id')) ;
Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by Wikka Wakka Wiki 1.1.6.1
Page was generated in 6.9015 seconds