abalone Posted June 12, 2015 Share Posted June 12, 2015 (edited) Bonjour à toutes et à tous. Je souhaite inserer dans la page d'accueil de mon theme le dernier tweet d'un compte. J'arrive à afficher le dernier tweet dans une fichier PHP. Jusque là tout va bien. je n'arrive pas à appeler la chaine data twitter dans mon tpl. J'ai créé un dossier : /themes/montheme/modules/twitter/ dans ce dossier j'ai un fichier twitter.tpl où {$last-tweet} devrait m'afficher le dernier twteet généré par le PHP <div class="content-twitter"> <h2>Ne manquez pas un tweet</h2> <div class="tweet"> {$last_tweet} </div> </div> et mon fichier PHP <?php global $smarty; include('../../config/config.inc.php'); include('../../header.php'); class twitter { public function __construct() { /*** LA CLASSE TWITTER ****/ } } $t = new twitter; $query = $t->user_timeline("COMTPE", 1); //compte "et "1" dernier tweet foreach($query as &$q): $last_tweet=$t->linkeur($q["text"]); endforeach; echo $last_tweet; $smarty->assign('last_tweet', $last_tweet ); // creation of our variable $smarty->display(dirname(__FILE__).'/twitter.tpl'); ?> Si j'affiche ce fichier dans le navigateur j'ai le dernier tweet Mais je n'arrive pas à transmettre la valeur à last_tweet Je vous remercie d'avance d'un tout petit coup de pouce. Edited June 12, 2015 by abalone (see edit history) Link to comment Share on other sites More sharing options...
abalone Posted June 13, 2015 Author Share Posted June 13, 2015 (edited) Bonjour à tous j'avance mais je sens que je ne suis plus loin : Je ne vois pas comment "brancher" ma classe twitter sur le constructeur php de mon module j'ai bien construit mon module, il s'affiche en backoffice et j'arrive à afficher un assign si je donne une valeur avec $this->context->smarty->assign('tweet', "tweeeeeeeeeeeeeeeeeet: $last_tweet" ); Comment renvoyer la valeur du tweet provenant la classe /monmodule/twitter/classes/twitter.php dans mon ookdisplayHomeTabContent ???? <?php if (!defined('_PS_VERSION_')) exit; include_once(dirname(__FILE__).'/classes/twitter.php'); class HomeTwitter extends Module { public function __construct() { ..... public function hookdisplayHomeTabContent($params) { $this->context->smarty->assign('tweet', "tweeeeeeeeeeeeeeeeeet: $last_tweet" ); return $this->display(__FILE__, 'hometwitter.tpl'); } } ?> mon fichier : /modules/hometwitter/classes/twitter.php Ce fichier m'affiche bien le dernier tweet si je le lmance dpepuis navigateur avec un echo $last_tweet : ça marche Je vous remercie d'avance si qqn pouvait me donner juste une petite piste. Edited June 13, 2015 by abalone (see edit history) Link to comment Share on other sites More sharing options...
abalone Posted June 13, 2015 Author Share Posted June 13, 2015 Bonjour okom3pom Merci beaucoup pour votre aide. en fait il est bien greffer : <?php if (!defined('_PS_VERSION_')) exit; include_once(dirname(__FILE__).'/classes/twitter.php'); class HomeTwitter extends Module { public function __construct() { $this->name = 'hometwitter'; $this->tab = 'front_office_features'; $this->version = '1.0'; $this->author = 'abalone Studio'; $this->need_instance = 0; $this->ps_versions_compliancy = array('min' => '1.5', 'max' => '1.6'); parent::__construct(); $this->displayName = $this->l('Home Twitter'); $this->description = $this->l('Afficher le dernier tweet Kristal'); $this->confirmUninstall = $this->l('Are you sure you want to uninstall?'); if (!Configuration::get('HOMETWITTER_NAME')) $this->warning = $this->l('No name provided'); } public function install() { if (!parent::install() OR !$this->registerHook('displayHomeTabContent')) return false; return true; } public function uninstall() { if (!parent::uninstall()) return false; return true; } public function hookdisplayHomeTabContent($params) { // $toto=display_tweet(); $this->context->smarty->assign('tweet', $_SESSION["tweet"] ); return $this->display(__FILE__, 'hometwitter.tpl'); } } ?> J'ai réussi à afficher le dernier tweet avec un variable de SESSION en fonction de $_SESSION["tweet"] qui est généré dans ma classe $t = new twitter; $query = $t->user_timeline("kristal_fr", 1); //compte "Shinix et "5" dernier tweet foreach($query as &$q): global $last; $last=$t->linkeur($q["text"]); $_SESSION["tweet"]=$last; endforeach; mais j'ai comme qui dirait l'impression que ce n'est pas ce qu'il y a de plus propre Link to comment Share on other sites More sharing options...
abalone Posted June 13, 2015 Author Share Posted June 13, 2015 j'ai un dossier : /modules/hometwitter/ dans lequel j'ai hometwitter.tpl hometwitter.php classes/twitter.php Mon fichier hometwitter.tpl contient exactement <div class="content-twitter"> <h2>Ne manquez pas un tweet</h2> <div class="tweet"> {$tweet} </div> </div> Le module s'affiche correctement dans l'onglet. Ce que j'arrive pas à faire c'est instancié un objet twitter issu de ma classe /classes/twitter.php à l'intérieur de public function hookdisplayHomeTabContent . En tout encore merci okom3pom pour ton aide Link to comment Share on other sites More sharing options...
abalone Posted June 13, 2015 Author Share Posted June 13, 2015 Merci beaucoup OkOm3pOM :) ça marche La solution que j'ai utilisé est là, dans le code que tu m'as fourni public function hookdisplayHomeTabContent($params) { $t = new twitter(); $query = $t->user_timeline("COMTPE", 1); //compte "et "1" dernier tweet foreach($query as &$q): $last_tweet=$t->linkeur($q["text"]); endforeach; $this->context->smarty->assign('tweet', $last_tweet ); return $this->display(__FILE__, 'hometwitter.tpl'); } UN GRAND MERCI ! Link to comment Share on other sites More sharing options...
abalone Posted June 14, 2015 Author Share Posted June 14, 2015 comment puis-je faire ça . je ne trouve pas moyen d'éditer le sujet ou de rendre résolu le topis, désolé Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now