我是Codeigniter的新手,我正在尝试将RSS源添加到我的Home视图的一部分,如下所示。我已经问过这个问题,但是我不清楚我是如何提交代码的,所以我再次提交了它。我在多个论坛上研究了这一点,特别是这个,我绕圈子但是找不到答案。
主页视图
主视图包含标题图像,导航栏,jumbotron和登录表单。它还有以下部分,我想在其中添加RSS内容。
<div class="container">
<div class="row">
<div class="col-sm-8"><h1>Latest News</h1>
<?php
// RSS FEED HERE
?>
我有一个名为“User的索引函数中包含以下代码的控制器
用户控制器代码
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class User extends CI_Controller{
public function __construct()
{
parent::__construct();
$this->load->model('user_model');
$this->load->library('rssparser');
}
public function index()
{
if(($this->session->userdata('user_name')!=""))
{
$this->welcome();
}
else
{
$data['title']= 'Home';
$this->load->view('include/header',$data);
$this->load->view('pages/home.php', $data);
$this->load->view('include/footer',$data);
}
}
用户控制器中的控制器方法以获取RSS数据
rss Feed结果当前存储在无序列表中
public function get_news()
{
// Get 6 items from latest news
$this->rssparser->set_feed_url('http://www.datadomain.com'); // get feed
$this->rssparser->set_cache_life(30); // Set cache life time in minutes
$rss = $this->rssparser->getFeed(6);
echo '<ul>';
foreach ($rss as $item)
{
echo '<li>';
echo $item['title'];
echo '</li>';
echo '<li>';
echo $item['description'];
echo '</li>';
echo '<li>';
echo $item['link'];
echo '</li>';
echo '<li>';
echo $item['pubDate'];
echo '</li>';
}
echo '</ul>';
}
如果我在控制器的索引功能中插入以下内容,我可以在我的主页上获取Feed,但它显示在页面顶部而不是我需要的部分。
$data['rss'] = $this->get_news();
我尝试在主页的视图部分添加$ rss,但我得到一个未定义的变量错误。
如果有人能帮我解决这个问题,我将不胜感激,因为我无法找到解决方案。
我的项目中使用的其他方法和视图
控制器方法欢迎()
public function welcome()
{
$data['title']= 'Welcome';
$this->load->view('include/header',$data);
$this->load->view('pages/welcome_view.php', $data);
$this->load->view('include/footer',$data);
}
welcome_view
此视图表示应用程序的成员区域。由于应用程序处于构建的早期阶段,因此它不会在一分钟内保留任何实际内容。
<div class="container">
<div class="row">
<header class="page-header">
<img class="img-responsive" src="<?php echo site_url('../images/black_header.jpg'); ?>" />
</header>
</div>
</div>
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs- example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="<?php echo site_url('user/index') ?>">Premier Games</a>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li><a href="<?php echo site_url('user/index') ?>">Home</a></li>
<li><a href="<?php echo site_url('user/register') ?>">Register</a></li>
</ul>
<p class="navbar-text navbar-right"><strong>Signed in as <?php echo $this->session->userdata('user_name'); ?></strong></p>
</div><!-- /.navbar-collapse -->
</nav>
<div class="container">
<div class="content">
<h2><?php echo $this->session->userdata('user_name'); ?>, Welcome Back</h2>
<p>This section represents the area that only logged in members can access.</p>
<h4><?php echo anchor('user/logout', 'Logout'); ?></h4>
</div><!--<div class="content">-->
</div>
答案 0 :(得分:1)
通常,您在视图中执行html解析。不确定您是否正在加载视图...目前尚不清楚我们是否正在与登录用户合作。
假设我们没有处理登录用户并且正在调用
$data['title']= 'Home';
$this->load->view('include/header',$data);
$this->load->view('pages/home.php', $data);
$this->load->view('include/footer',$data);
最简单的方法是将数据转储到视图中并在那里进行布局/解析:
控制器:
$data['title']= 'Home';
$data['rss'] = $this->get_news();
$this->load->view('include/header',$data);
$this->load->view('pages/home.php', $data);
$this->load->view('include/footer',$data);
页/ home.php
<div class="container">
<?php
echo '<ul>';
foreach ($rss as $item)
{
echo '<li>';
echo $item['title'];
echo '</li>';
echo '<li>';
echo $item['description'];
echo '</li>';
echo '<li>';
echo $item['link'];
echo '</li>';
echo '<li>';
echo $item['pubDate'];
echo '</li>';
}
echo '</ul>';
?>
</div>
controller get_news()
:
public function get_news()
{
// Get 6 items from GAA latest news
$this->rssparser->set_feed_url('http://www.rte.ie/rss/gaa.xml'); // get feed
$this->rssparser->set_cache_life(30); // Set cache life time in minutes
$rss = $this->rssparser->getFeed(6);
return $rss;
}