Jump to content

afficher dernier tweet sur la page d'acceuil : API Twitter


Recommended Posts


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 by abalone (see edit history)
Link to comment
Share on other sites

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 by abalone (see edit history)
Link to comment
Share on other sites

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

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

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...