如何将$mytweets
数据加载到特定模板/视图中的特定div
,footer.php
?
我有twitteruserfeed.php
作为我的控制器来获取推文,但我不知道如何在现有的推文中展示它。
HTML:
<div id="fresh-tweetfeed"> $mytweets GOES HERE </div>
PHP:
class TwitterUserFeed extends CI_Controller
{
public function __construct()
{
parent::__construct();
}
public function getTweets()
{
$params = array(
'userName' => 'RowlandBiznez',
'consumerKey' => 'hgfhhgffhg',
'consumerSecret' => 'hhffhfghfhf',
'accessToken' => 'hfhhhfhhf',
'accessTokenSecret' => 'hfhfhfhfhhfhfh',
'tweetLimit' => 5 // the no of tweets to be displayed
);
$this->load->library('twitter', $params);
$tweets = $this->twitter->getHomeTimeLine();
$this->load->helper('tweet_helper');
$mytweets = getTweetsHTML($tweets);
echo $mytweets;
}
}
我还有一个帮助文件tweet_helper.php。帮我解决这个问题。
答案 0 :(得分:1)
如果必须在每个页面上显示推文,请在CI_Controller
文件夹中扩展MY_Controller.php
(创建application/core
文件)并在属性上获取/存储推文:
class MY_Controller extends CI_Controller
{
public $tweets = '';
public function __construct()
{
// Execute CI_Controller Constructor
parent::__construct();
// Store the tweets
$this->tweets = $this->getTweets();
}
public function getTweets()
{
$params = array(
'userName' => 'RowlandBiznez',
'consumerKey' => 'hgfhhgffhg',
'consumerSecret' => 'hhffhfghfhf',
'accessToken' => 'hfhhhfhhf',
'accessTokenSecret' => 'hfhfhfhfhhfhfh',
'tweetLimit' => 5 // the no of tweets to be displayed
);
$this->load->library('twitter', $params);
$tweets = $this->twitter->getHomeTimeLine();
$this->load->helper('tweet_helper');
$mytweets = getTweetsHTML($tweets);
return $mytweets;
}
}
然后在每个控制器中,在加载视图时使用该属性:
$this->load->view('path/to/view', array('tweets', $this->tweets));
您还可以通过从客户端向Controller/Method
发送XHR请求(在提供页面后)加载推文,然后通过Javascript将响应插入到页面中。
这是一个jQuery示例:
$.ajax({
url : <?php echo base_url('controller/method'); ?>,
type : 'GET',
success : function (result) {
// Insert the result into a container
$('#fresh-tweetfeed').append(result);
}
});