2014-12-21 3 views
0

Я создаю простые cms с codeigniter, и я хочу, чтобы разбиение на страницы показывало несколько сообщений на страницу из выбранной категории. я получаю эти ошибки:codeigniter cms category pagination issue

Severity: Warning 

Message: Missing argument 1 for Vijesti::kategorija() 

Filename: controllers/vijesti.php 

Line Number: 12 

Severity: Notice 

Message: Undefined variable: cat_name 

Filename: controllers/vijesti.php 

Line Number: 13 

Severity: Warning 

Message: Cannot modify header information - headers already sent by (output started at C:\wamp\www\ci_cms_yt\system\core\Exceptions.php:185) 

Filename: libraries/Session.php 

Line Number: 688 

модель "vijest":

<?php 
class Vijest extends CI_Model{ 

    function get_news_by_name($cat_name,$num=20,$start=0){ 
    $sql="SELECT * FROM posts WHERE post_cat_name=? ORDER BY post_date DESC LIMIT $start,$num"; 
    $array=array($cat_name); 
    $this->session->set_userdata('term',$cat_name); 
    $query=$this->db->query($sql,$array); 
    return $query->result_array(); 
    } 
    function get_post($slug){ 
    $query=$this->db->query("SELECT * FROM posts WHERE slug='$slug'"); 
    return $query->result_array(); 
    } 
    function get_posts_count(){ 
    $query=$this->db->query("SELECT post_id FROM posts"); 
    return $query->num_rows(); 
    } 

} 

?> 

контроллер "Vijesti":

<?php 
class Vijesti extends CI_Controller{ 
    function __construct(){ 
    parent::__construct(); 

    $this->load->model('vijest'); 
    $this->load->model('home_model'); 
    $this->load->library('pagination'); 
    } 


    function kategorija($cat_name){ 
    $data['vijesti']=$this->vijest->get_news_by_name($cat_name,1,0); 
    $data1['navigation']=$this->home_model->get_cats_nav(); 
    $data3['sidebar_news']=$this->home_model->sidebar_news(); 
      $config['base_url']=base_url().'vijesti/kategorija/'; 
    $config['total_rows']=$this->vijest->get_posts_count(); 
    $config['per_page']=1; 
    $config['full_tag_open'] = '<ul class="pagination">'; 
$config['full_tag_close'] = '</ul>'; 
$config['prev_link'] = '&lt;'; 
$config['prev_tag_open'] = '<li>'; 
$config['prev_tag_close'] = '</li>'; 
$config['next_link'] = '&gt;'; 
$config['next_tag_open'] = '<li>'; 
$config['next_tag_close'] = '</li>'; 
$config['cur_tag_open'] = '<li class="active"><a href="#"><span class="sr-only">(current)</span>'; 
$config['cur_tag_close'] = '</a></li>'; 
$config['num_tag_open'] = '<li>'; 
$config['num_tag_close'] = '</li>'; 

$config['first_tag_open'] = '<li>'; 
$config['first_tag_close'] = '</li>'; 
$config['last_tag_open'] = '<li>'; 
$config['last_tag_close'] = '</li>'; 
    $this->pagination->initialize($config); 
    $data['pages']=$this->pagination->create_links(); 

    $this->load->view('header',$data1); 
    $this->load->view('vijesti_po_kategoriji',$data); 
    $this->load->view('footer',$data3); 

    } 



    function vijest($slug){ 
    $data1['navigation']=$this->home_model->get_cats_nav(); 
    $data2['vijest']=$this->vijest->get_post($slug); 
    $data3['sidebar_news']=$this->home_model->sidebar_news(); 
    $this->load->view('header',$data1); 
    $this->load->view('vijest_pojedinacno',$data2); 
    $this->load->view('footer',$data3); 
    } 
} 

?> 

вид "заголовок":

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>News</title> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
<link href="<?php echo base_url('assets/css/bootstrap.min.css');?>" rel="stylesheet"> 
<script src="<?php echo base_url('assets/js/bootstrap.min.js');?>"></script> 
<script src="<?php echo base_url('assets/js/jquery.js');?>"></script> 
<link rel="stylesheet" href="<?php echo base_url('assets/css/mojstil.css');?>"> 
</head> 
<body> 
<div class="sadrzaj"> 
    <div class="head"> 
    <a href="<?=base_url()?>home/index"><img id="logo" src="<?=base_url()?>assets/img/admalogo.png" alt="logo" /></a> 
    </div> 
    <div class="navbarr"> 
     <ul id="menuu"> 
     <li><a href="<?=base_url()?>home/index">Home</a></li> 
     <?php 
     foreach($navigation as $nav){ 
     ?> 
     <li><a href="<?=base_url()?>vijesti/kategorija/<?=$nav['cat_title']?>"><?=$nav['cat_title']?></a></li> 
     <?php 

     } 

     ?> 
     </ul> 

    </div> 

Просмотреть vijesti_po_kategori джи:

<div class="post_area"> 
    <?php 
    foreach($vijesti as $row){ 
    ?> 
    <h2><a class="ltitle" href="<?=base_url()?>vijesti/vijest/<?=$row['slug']?>"><?=$row['post_title']?></a></h2> 
    <span><i>Author:</i>&nbsp;<b><?=$row['post_author']?></b>&nbsp; &nbsp;<b><?=$row['post_date']?></b></span> 
    <img src="<?=base_url()?>news_images/<?=$row['post_image']?>" width="100" height="100" alt="title_image" /> 
    <div><?=substr($row['post_content'],0,300)?><a class="rmlink" href="<?=base_url()?>vijesti/vijest/<?=$row['slug']?>">Read more</a></div><br> 
    <?php 
    } 
    echo $pages; 
    ?> 

    </div> 

вид "сноска":

<div class="sidebarr"> 
    <h4>Recent news</h4> 
    <?php 
    foreach($sidebar_news as $sn){ 
    ?> 
    <div class="recent_posts" data-link="<?=base_url()?>vijesti/vijest/<?=$sn['slug']?>"> 
     <img src="<?=base_url()?>news_images/<?=$sn['post_image']?>" width="60" height="60" /><p><?=$sn['post_title']?></p> 

    <div style='clear:both'></div> 
    </div> 
    <?php 
    } 
    ?> 
    <h4>Subscribe</h4> 
    <div class="pretplatite_se"> 
    <input type="text" placeholder="Email"><br><br> 
    <input type="submit" value="Subscribe" id="pretplata"> 
    </div> 
    <h4>Follow us</h4> 
    <div class="pratite_nas"> 
    <img src="<?=base_url()?>assets/img/facebook.png" width="100" height="100"/> 
    <img src="<?=base_url()?>assets/img/twitter.png" width="100" height="100"/> 
    </div> 
    </div> 
    <div class="footer_area"> 
    Copyright &copy; <?php echo date("Y",time());?> 
    </div> 
</div> 
</body> 
</html> 

Если я поставил

$config['base_url']=base_url().'vijesti/kategorija/'.$cat_name; 

это обыкновение позвольте мне нажать через pagination.Help кого-нибудь?

+0

ошибки говорит все: $ cat_name не определено. – Vickel

+0

@ Викель, определяющий $ cat_name в конструкции или в методе kategorija, не решает недостающую ошибку аргумента. Каждый раз, когда я возвращаюсь через разбивку на страницы, я получаю эти ошибки, потому что почему-то теряется аргумент метода категории. – admir

+0

Проблема не в pagination. $ cat_name не определяется, когда вы впервые нажимаете на этот контроллер. Каков URL-адрес вашего браузера, когда вы получили эту ошибку? –

ответ

1

Я предполагаю, что, когда вы первый раз щелкните страницу ваш URL, как это

site_url/Vijesti/kategorija/a_category_name 

Если это ваш URL Тогда ваша функция Kategorija будет выглядеть следующим образом

function kategorija($cat_name){ 
    $data['vijesti']=$this->vijest->get_news_by_name($cat_name,1,0); 
    $data1['navigation']=$this->home_model->get_cats_nav(); 
    $data3['sidebar_news']=$this->home_model->sidebar_news(); 
    $config['base_url']=base_url().'vijesti/kategorija/'.$cat_name; 
    $config['uri_segment'] = 4;//you need to add this.At your case its 4 I think. 
    //rest of the code 
    $config['total_rows']=$this->vijest->get_posts_count(); 
} 
+0

ОК, который разрешил проблему, спасибо – admir