Học lập trinh web PHP CodeIgniter Framework sử dụng phần mêm ATCSMART gồm các bài sau.
0. Điều kiện cần cài đặt XAMPP (Appache + MySQL) xem tại Hưỡng dẫn cài Xampp
1. Tạo chức năng các bảng dữ liệu
CREATE DATABASE BlogATC;
USE BlogATC;
CREATE TABLE IF NOT EXISTS `roile` (
`id` int unsigned NOT NULL AUTO_INCREMENT ,
`name` varchar (100) NULL,
`status` tinyint(1) NULL,
`access` varchar(500) NULL
, INDEX(id), PRIMARY KEY(id))
ENGINE=InnoDB;
CREATE TABLE IF NOT EXISTS `menu` (
`id` int unsigned NOT NULL AUTO_INCREMENT ,
`name` varchar (150) NULL,
`parent` int NULL,
`sort` int NULL,
`link` varchar (255) NULL,
`status` tinyint(1) NULL
, INDEX(id), PRIMARY KEY(id))
ENGINE=InnoDB;
CREATE TABLE IF NOT EXISTS `category` (
`id` int unsigned NOT NULL AUTO_INCREMENT ,
`name` varchar (255) NULL,
`sort` int NULL,
`parrent` int NULL,
`status` boolean NULL
, INDEX(id), PRIMARY KEY(id))
ENGINE=InnoDB;
CREATE TABLE IF NOT EXISTS `blog` (
`id` int unsigned NOT NULL AUTO_INCREMENT ,
`name` varchar (255) NULL,
`sort` int NULL,
`images` varchar (255) NULL,
`categoryid` int NULL,
`description` varchar(500) NULL,
`status` boolean NULL,
`content` varchar(500) NULL,
`datepost` date NULL
, INDEX(id), PRIMARY KEY(id))
ENGINE=InnoDB;
CREATE TABLE IF NOT EXISTS `user` (
`username` int NOT NULL,
`name` varchar (50) NULL,
`password` varchar (50) NULL,
`roileid` int NULL
, PRIMARY KEY(username))
ENGINE=InnoDB;
CREATE TABLE IF NOT EXISTS `contact` (
`id` int unsigned NOT NULL AUTO_INCREMENT ,
`name` varchar (255) NULL,
`email` varchar (100) NULL,
`phone` varchar (20) NULL,
`message` varchar(500) NULL,
`status` boolean NULL,
`datesend` date NULL
, INDEX(id), PRIMARY KEY(id))
ENGINE=InnoDB;
ALTER TABLE User
ADD FOREIGN KEY(roileid) REFERENCES Roile(id);
ALTER TABLE Blog
ADD FOREIGN KEY(categoryid) REFERENCES Category(id);
2. Tạo và backup database lên MYSQL Hoặc MariaDB
3. Bulding code và chọn mẫu và xuất ra thu mục.
1. File CI_Controller.php
<?php
/**
*--Project: BlogATC
--Design by: ATC PRO
-- Date time: 8/15/2020 12:34:05 AM
* This controller handles project management.
*/
class Contact extends CI_Controller
{
public $user_id;
public $user_name;
public function __construct(Type $foo = null)
{
parent::__construct();
if (!$this->session->userdata('logged_in')) {
$this->session->set_flashdata('flash_danger', 'Vui lòng đăng nhập để xem trang');
header('location: ' .base_url().'backend/login');
}
else
{
$user_id = $this->session->userdata('user_id');
$user_name = $this->session->userdata('user_name');
}
$this->load->model('contact_model');
}
public function index()
{
$this->load->view('back_end_template/content', [
'template' => 'backend/contact/index','sl'=>1,
'data' => $this->contact_model->get_contact()
]);
}
public function create()
{
$data = $this->contact_model->get_where_contact('0');
$this->load->view('back_end_template/content', ['template' => 'backend/contact/create','data' => $data ]);
}
public function add()
{
$data = $this->contact_model->create_contact([
'id' => $this->input->post('id'),
'name' => $this->input->post('name'),
'email' => $this->input->post('email'),
'phone' => $this->input->post('phone'),
'message' => $this->input->post('message'),
'status' => $this->input->post('status'),
'datesend' => $this->input->post('datesend'),
]);
if ($data) {
$this->session->set_flashdata('flash_success', 'Your contact has been created');
return header('location: ' .base_url().'backend/contact/show/'.$data->id);
}
}
public function search(){
$data['template'] = 'backend/contact/index';
$keyword = $this->input->post('keyword');
$column = $this->input->post('column');
$list_col = array('id' => $keyword,'name' => $keyword,'email' => $keyword,'phone' => $keyword,'message' => $keyword,'status' => $keyword,'datesend' => $keyword,);
if($column!="")
{
$columns="contact.$column";
$list_col =array($columns => $keyword);
}
$config['$keyword'] = $keyword;
$config['$columnsearch'] = $column;
$config['base_url'] = site_url('backend/contact/search/');
$config['total_rows'] = $this->get_model->atc_get_count_search('contact',$list_col);
$data['sl'] = $config['total_rows'];
$config['per_page'] = 10;
$config['uri_segment'] = 3;
$config['cur_tag_open'] = '<a class="current_page" href="backend/contact/">';
$config['cur_tag_close'] = '</a>';
$this->pagination->initialize($config);
$data['data'] = $this->get_model->atc_get_search('contact',$list_col,$config['per_page'], $this->uri->segment($config['uri_segment']));
$data['link'] = $this->pagination->create_links();
$this->load->view('back_end_template/content', $data);
}
public function show($id)
{
$data = $this->contact_model->get_where_contact($id);
if (!$data) {
$this->denied_message();
return header('location: ' .base_url().'backend/contact');
}
$this->load->view('back_end_template/content', [
'template' => 'backend/contact/show',
'data' => $data
]);
}
public function edit($id)
{
$data = $this->contact_model->get_where_contact($id);
if (!$data) {
$this->denied_message();
return header('location: ' .base_url().'backend/contact');
}
$this->load->view('back_end_template/content', ['template' => 'backend/contact/edit', 'data' => $data ]);
}
public function update()
{
$data = [
'id' => $this->input->post('id'),
'name' => $this->input->post('name'),
'email' => $this->input->post('email'),
'phone' => $this->input->post('phone'),
'message' => $this->input->post('message'),
'status' => $this->input->post('status'),
'datesend' => $this->input->post('datesend'),
];
$ID=$this->input->post('id');
$url=$this->input->post('urlre');
if ($this->contact_model->update_contact( $data,$ID)) {
$this->session->set_flashdata('flash_success', 'Your contact has been updated');
if($url=="save")
{
return header('location: ' .base_url().'backend/contact/');
}
return header('location: ' .base_url().'backend/contact/show/'.$ID);
}
}
public function deleteall()
{
$con = $this->input->post('id_check');
$num_array = count($con);
if($num_array>0){
for($i=1;$i<=$num_array;$i++)
{
$id = $con[$i-1];
$this->contact_model->delete_contact($id);
}
$this->session->set_flashdata('flash_success', 'Tất cả đã xóa thành công !');
}
return header('location: ' .base_url().'backend/contact');
}
public function delete($id)
{
if(isset($_POST['id']))
{
$id=$_POST['id'];
}
$data= $this->contact_model->get_where_contact($id);
if (!$data) {
$this->denied_message();
return header('location: ' .base_url().'backend/contact');
}
if ($this->contact_model->delete_contact($id)) {
$this->session->set_flashdata('flash_success', 'Your contact has been deleted');
} else {
$this->denied_message();
}
return header('location: ' .base_url().'backend/contact');
}
private function denied_message()
{
$this->session->set_flashdata('flash_danger', 'That contact does not exist or you do not have permission');
}
}
2.File Model Blog.php
<?php
/**
*--Project: BlogATC
--Design by: ATC PRO
-- Date time: 8/15/2020 12:34:09 AM
*/
class Contact_model extends CI_Model
{
public function create_Contact($data)
{
$this->db->insert('Contact', $data);
$id=$this->db->insert_id();
if($id==0)
{
return base_url().'backend/Contact';
}
return $this->db->get_where('Contact', ['id' => $id])->row();
}
public function get_Contact()
{
$this->db->select('Contact'.'.*', FALSE);
$this->db->from('Contact');
$query = $this->db->get();
return $query->result();
}
public function get_where_Contact($id)
{
return $this->db->get_where('Contact', ['id' => $id])->result();
}
public function get_Contact_where( $id)
{
return $this->db->get_where('Contact', ['id' => $id])->row();
}
public function update_Contact( $data, $id)
{
return $this->db->where(['id' => $id])->update('Contact', $data);
}
public function delete_Contact( $id)
{
return $this->db->where(['id' => $id])->delete('Contact');
}
}
3. File View indexp.php
4. Xuất code và cấu hình thư mục cho đúng
5. Chạy demo và triển khai đăng nhập quản lý
6. Cập nhật chỉnh sửa theo ý 1 số mục cần thiết.
7. Hoàn thiện lần cuối.
8. Triển khai đưa sản phẩm lên hosting domain
----Nội dung đang được cập nhật----