Top Ad unit 728 × 90

Lập trình trang tin tức: Tạo Modul quản lý bài viết

Chào các bạn!

Hôm nay chúng ta lại tiếp tục bài loạt bài về lập trình codeigniter với dự án thực tế. Bài ngày hôm nay chúng ta chuyển sang làm modul quản lý bài viết thêm sửa xóa và hiển thị danh sách bài viết!




Trong thời lượng có hạn nên hôm nay mình sẽ cùng các bạn đi xây dựng chức năng hiển thị và chức năng thêm còn chức năng sửa xóa mình sẽ để buổi khác nhé!

OK! Bắt đầu thôi!

Đầu tiên chúng ta đi xây dựng phần hiển thị danh sách bài viết!

Các bạn vào application/view/admin tạo một thư mục quản lý view chung của modul này. Ở đây mình sẽ tạo thư mục có tên là CONTENT.


Trong thư mục vừa tạo chúng ta tạo một file index.php với nội dung file như sau:

<table class="table table-hover">
   <thead>
      <tr>
         <th colspan="7">
            <table>
               <tr>
                  <form action="" method="get">
                    <td>Tên bài viết :</td>
                    <td><input name="name" type="text" class="form-control control" id="searchs" placeholder="Tên bài viết" value="<?php echo $this->input->get('name')?>" /></td>
                    <td style="width:10px;"></td>
                    <td style="width:150px">
                      <button type="submit" class="btn btn-primary control" style="height:34px; width:62.58px"><i class="fa fa-filter"> Lọc</i></button>
                      <button type="reset" onclick="window.location.href = '<?php echo admin_url('news')?>'; " class="btn control btn-default">Reset</button>
                    </td>
                    <td>
                      <button type="reset" onclick="window.location.href = '<?php echo admin_url('news/add')?>'; " class="btn control btn-danger"><i class="fa fa-plus-square" ></i> Tạo bài viết</button>
                    </td>
                  </form>
                </tr>
              </table>
            </th>
          </tr>
        </thead>
        <thead>
          <tr>
            <th>#</th>
            <th>Tên tiêu đề</th>
            <th>Ngày tạo</th>
            <th>Hành động</th>
          </tr>
        </thead>
        <tbody>
          <?php
          $tt = 0;
          foreach($list as $row):
            $tt++;
          ?>
          <tr>
            <td><?= $tt?></td>
            <td>
              <?php
              if($row->image_link != ""){
              ?>
                <p style="float:left; margin-right:5%"><img src="<?= base_url('upload/news/'.$row->image_link)?>" width="64" height="64" /></p>
              <?php
              }else{
              ?>
                <p style="float:left; margin-right:5%"><img src="<?= public_url('plugins/images/users')?>/user.png" width="64" height="64" /></p>
              <?php
              }
              ?>
                <p style="margin-top:2%"><?= $row->name?></p>
                <p><i class="fa fa-eye"> <?= $row->count_view?></i></p>
              </td>
              <td><?= get_date_full($row->created)?></td>
              <td>
                <span>

                 <a href="<?= admin_url('news/edit/'.$row->id)?>" data-toggle="tooltip" data-placement="left" title="Chỉnh sửa"><i class="fa fa-cogs"></i></a></span> 
                <span><a href="<?= admin_url('news/delete/'.$row->id)?>" data-toggle="tooltip" data-placement="left" title="Xóa" onclick="return confirm('Bạn chắc muốn xóa?')"><i class="fa fa-trash"></i></a></span>
              </td>
            </tr>
            <?php
            endforeach;
            ?>
          </tbody>
</table>





Sau khi xây dựng view xong chúng ta chuyển sang xây dựng controllers như sau: Trong controllers/admin các bạn tạo một file News.php với nội dung như sau:

<?php
class News extends MY_Contrllers{
    function __construct(){
        parent::__construct();
        $this->load->model('content_model');
    }

    function index(){
       $list = $this->content_model->get_list();
       $this->data['list'] = $list;

       $this->data['temp'] = 'admin/content/index';
       $this->load->view('admin/main', $this->data);
    }
}
?>


Vậy là đã xong được chức năng hiển thị danh sách bài viết rồi bây giờ chúng ta chuyển sang là chức năng thêm bài viết mới. Bắt đầu thôi!

Tương tự như phân trên chúng ta tạo một file add.php trong thư mục vừa tạo ở trên với nội dung sau:

<div class="container" style="margin-top:10%; margin-bottom:5%">
    <center><h2>Thêm bài viết</h2></center>
    <form action="<?= admin_url('news/add')?>" method="post" enctype="multipart/form-data">
        <input type="hidden" name="<?=  $this->security->get_csrf_token_name()?>" value="<?= $this->security->get_csrf_hash()?>" id="__VIEWSTATEGENERATOR" />
        <div class="row">
            <div class="col-md-2"></div>
            <div class="col-md-8">
                <div id="infor">
                    <div class="form-group">
                <label class="col-md-12">Tiêu Đề:</label>
                <div class="col-md-12">
                    <input name="title" placeholder="Tiêu Đề" value="<?= set_value('title')?>" class="form-control form-control-line control" type="text">
                    <div style="color:#F00"><?= form_error('title')?></div>
                </div>
            </div>
                      <div class="form-group">
                        <label class="col-md-12">Mô tả</label>
                        <div class="col-md-12">
                            <textarea rows="6" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Mô tả';}" name="meta_desc" class="form-control form-control-line control" placeholder="Mô tả"><?= set_value('meta_desc')?></textarea>
                            <div style="color:#F00"><?= form_error('meta_desc')?></div>
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="col-md-12">Từ khóa</label>
                        <div class="col-md-12">
                            <input placeholder="Từ khóa, mỗi từ cách nhau bằng dấu ','" value="<?= set_value('meta_key')?>" class="form-control form-control-line control" name="meta_key" type="text">
                            <div style="color:#F00"><?= form_error('meta_key')?></div>
                        </div>
                    </div>

                   
                     <div class="form-group">
                        <label class="col-md-12">Danh mục</label>
                        <div class="col-md-12">
                            <select name='catalog_id'>

                               <?php foreach($catalog as $row_cata):?>
                                  <option value="<?= $row_cata->id?>"><?= $row_cata->name?></option>
                               <?php endforeach;?>
                            </select>
                            <div style="color:#F00"><?= form_error('meta_key')?></div>
                        </div>
                    </div>
                </div>
                <div id="icons">
                    <div class="form-group">
                        <label class="col-md-12">Nội dung</label>
                        <div class="col-md-12">
                            <textarea name="content" id="contents" class="form-control form-control-line control"><?= set_value('content')?></textarea>
                            <div style="color:#F00"><?= form_error('content')?></div>
                        </div>
                    </div>
                    <div class="form-group">
                        <div class="col-md-12" style="margin-top:1%;">
                            <button name="post" id="post" class="btn btn-success control" type="submit" style="float:right">Đăng <i class="fa fa-send-o"></i></button>
                            <input type="reset" name="cancel" id="cancel" class="btn btn-danger control"  value="Hủy" onclick="window.location.href = '<?= admin_url('news')?>'; ">
                        </div>
                    </div>
                </div>
            </div>
            <div class="col-md-2"></div>
        </div>
    </form>
</div>




Bây giờ chúng ta lại tiếp tục sang phần controllers vào file News.php tạo thêm một function mới là function add như sau:

function add(){
     $catalog = $this->catalog_model->get_list();
     $this->data['catalog'] = $catalog;

     if($this->input->post()){
        $this->form_validation->set_rules('title','Tiêu đê','required');
        $this->form_validation->set_rules('content','Nội dung','required');
        if($this->form_validation->run()){
           $data = array(
              'name' = $this->input->post('title'),
              'catalog_id' = $this->input->post('catalog_id')
              'content' = $this->input->post('content'),
              'meta_desc' = $this->input->post('meta_desc'),
             'meta_key' = $this->input->post('meta_key'),
             'meta_title' = $this->input->post('title'),
             'admin_id' = 0,
             'created' = now()
            );
           if($this->content_model->create($data)){
               $this->session->set_flashdata('message', array('status'=>1,'message'=>'Thêm thành công!'));
           }else{
               $this->session->set_flashdata('message', array('status'=>0,'message'=>'Thêm thất bại!'));
           }
           redirect(admin_url('news'));
        }
   }

   $this->data['temp'] = 'admin/content/add';
   $this->load->view('admin/main',$this->data);
}





Trong phần này mình còn thiếu id của người đăng bài và ảnh đại diện của bài viết đó. Vì mình chưa xây dựng chức năng đăng nhập, đăng xuất và xây dựng một thư viện để giúp các bạn có thể đăng ảnh lên. Hai cái này mình sẽ làm trong bài sau. Mọi người cùng đón đọc nhé!

Bài ngày hôm nay mình sẽ dừng lại tại đây! Hẹn các bạn trong bài tiếp theo của loạt bài này!

Chúc các bạn thành công!
Lập trình trang tin tức: Tạo Modul quản lý bài viết Reviewed by Thế Giới Tri Thức on tháng 11 04, 2017 Rating: 5

Không có nhận xét nào:

All Rights Reserved by THẾ GIỚI TRI THỨC © 2018
Thiết kế bởi: THẾ GIỚI TRI THỨC

Biểu mẫu liên hệ

Tên

Email *

Thông báo *

Được tạo bởi Blogger.