IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[phpBB][3] Méthode fetch ?


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 7
    Points : 6
    Points
    6
    Par défaut [phpBB][3] Méthode fetch ?
    Bonjour,

    J'utilise le moteur de templates de PHPBB3 sur un projet.
    J'aimerais pouvoir retourner le contenu parsé dans une variable au lieu de l'afficher.

    $data = $tpl->fetch();

    J'ai étudié la méthode display afin de voir comment transformer cette méthode ou en ajouter une pour arriver a ce résultat, mais je ne sais pas comment faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public function display($handle, $include_once = true)
    	{
    		if ($filename = $this->_tpl_load($handle))
    			($include_once) ? include_once($filename) : include($filename);
    		else
    			eval(' ?>' . $this->compiled_code[$handle] . '<?php ');
    
    		return true;
    	}
    Quelqun aurait une idée ?
    Merci d'avance =)

  2. #2
    Membre du Club
    Inscrit en
    Juin 2002
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 36
    Points : 42
    Points
    42
    Par défaut
    Bonjour,

    As-tu essayé une solution basée sur la bufferisation de la sortie ?
    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ob_start();
    $tpl->display();
    $variable = ob_get_contents();
    ob_end_clean();
    En espérant que cela t'aidera,
    Tittom.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par Tittom Voir le message
    Bonjour,

    As-tu essayé une solution basée sur la bufferisation de la sortie ?
    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ob_start();
    $tpl->display();
    $variable = ob_get_contents();
    ob_end_clean();
    En espérant que cela t'aidera,
    Tittom.
    Bonjour,
    Oui finalement je me suis rabattu sur cette solution.
    A la base je voulais faire ceci pour mettre en place un système de cache.
    En parcourant la classe template je me suis rendu compte qu'elle embarquait déjà un système de cache, mais trop tard j'avais déjà fait le mien

    Merci pour ta réponse

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 40
    Points : 28
    Points
    28
    Par défaut
    Bonsoir,

    Avez vous testé avec la fonction (méthode) "assign_display" au lieu de "display" ?
    J'utilisais des assign_var_from_handle dans l'ancienne version du template PHPBB.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $template->set_filenames(array('liste_client' => 'skin_liste_client.tpl'));
     
    	$template->assign_block_vars('bloc_tableau_news', array(
    		'NOM' =>		$nom,
    		'PRENOM' =>	$prenom		
    	));	
     
    $variable = $template->assign_display('liste_client' );


    Je suis aujourd'hui passé au PHPBB3 et cette fonction (méthode) n'existant plus il a fallu que je la remplace.

    assign_display a répondu à mes attentes : je compile plusieurs template (centre de la page, menu de gauche, etc. que je repasse via le même moteur de template à un skin général).

    J'uilise assign_display pour chaque skin "de zone" puis j'utilise display pour le rendu final.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 40
    Points : 28
    Points
    28
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    function assign_display($handle, $template_var = '', $return_content = true, $include_once = false)
    	{
    		ob_start();
    		$this->display($handle, $include_once);
    		$contents = ob_get_clean();
     
    		if ($return_content)
    		{
    			return $contents;
    		}
     
    		$this->assign_var($template_var, $contents);
     
    		return true;
    	}

    On peut même modifier la fonction (méthode) dans template.php pour stocker directement dans la variable en passant son nom en paramètre

Discussions similaires

  1. Réponses: 8
    Dernier message: 03/10/2017, 16h31
  2. Réponses: 2
    Dernier message: 23/04/2012, 11h27
  3. Probleme d'impression avec la méthode TForm->Print()
    Par Kid Icarus dans le forum C++Builder
    Réponses: 13
    Dernier message: 31/07/2002, 14h26
  4. Cryptage en C selon la méthode de césat
    Par shenron dans le forum C
    Réponses: 2
    Dernier message: 31/05/2002, 08h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo