THẢO LUẬN

Nhờ bạn giúp mình 1 file với làm hoài chẳn được Trong file function:

function taobaiviet($ID="",$Loai=""){ //--- Neu chua dang nhap thi bat dang nhap if($this->session->userdata('permission')!=1){ redirect(base_url()); exit(); } if($ID==0){ $ID=""; } $data['error']=""; $data['Loai']=$Loai; //trinh soan thao include(APPPATH . 'includes/trinhsoanthao.php');

    if($this->form_validation->run('formTaoBaiViet')==FALSE)
    {
    }
    else
    {  
         $MenuCha=$this->input->post("MenuCha");
         if($MenuCha!=0){
            $menu=$this->default_model->getInfoID($this->_table,array("$this->_id" => $MenuCha));
            $capmenu=$menu['CapMenu']+1;
         }elseif($MenuCha==0){
            $capmenu=1;
         }elseif($MenuCha==""){
            $capmenu='';
         }
         
         $Loai=$this->input->post("Loai");
		  if (!empty($_FILES['picture']['name'])) {
			$config['upload_path'] = 'upload/baiviet';
			$config['allowed_types'] = 'jpg|jpeg|png|gif';
			$config['file_name'] = $_FILES['picture']['name'];

			$this->load->library('upload/baiviet', $config);
			$this->upload->initialize($config);

			if ($this->upload->do_upload('picture')) {
			  $uploadData = $this->upload->data();
			  $data["img"] = $uploadData['file_name'];
			} else{
			  $data["img"] = '';
			}
		  }else{
			$data["img"] = '';
		  }
          
         $add = array(
                    "TieuDe"   => $this->input->post("TieuDe"),
                    "Loai"   => $Loai,
                    "Link"   => $this->input->post("Link"),
                    "Title"   => $this->input->post("Title"),
                    "H1"   => $this->input->post("H1"),
                    "H2"   => $this->input->post("H2"),
                    "Keyword" => $this->input->post("Keyword"),
                    "Description"   => $this->input->post("Description"),
                    "NoiBat"   => $this->input->post("NoiBat"),
					"img"	=> $this->input->post("img"),
                    "NoiDung"  => $this->input->post("NoiDung"),
                    "TrangThai"=> $this->input->post("TrangThai"),
                    "NguoiGui" => $this->session->userdata('userid'),
                    "MenuCha"  => $MenuCha,
                    "CapMenu"  => $capmenu
                     );
         if($Loai=='Banner'){
            $add['ViTri']=$this->input->post("ViTri");
         }
       //tao khong thanh cong
          if($ID==""){
            $this->default_model->addDuLieuMoi($this->_table,$add);
          }else{
            $this->default_model->updateDuLieu($this->_table,$add,array("$this->_id" => $ID));
          }
          
          //
          
          if($Loai=="MenuFooter"){
            $MenuFooters=$this->default_model->getTableRows($this->_table,1000,0,'','',$this->_id,"",array("Loai" => "MenuFooter"));
            $code='<?
            ';
            foreach($MenuFooters as $MenuFooter){ 
                $code.="
                \$route['".stripUnicode($MenuFooter['TieuDe'])."'] = 'baiviet/xembaiviet/".$MenuFooter['IDBaiViet']."/Xem_GioiThieu';
                "; 
            }//print_r($code);
            //error_reporting(E_ALL);
            file_put_contents(APPPATH . 'config/blog_urls.php',$code);
          }
          if($Loai=="MenuHeader"){
            $MenuHeaders=$this->default_model->getTableRows($this->_table,1000,0,'','',$this->_id,"",array("Loai" => "MenuHeader"));
            $code='<?
            ';
            foreach($MenuHeaders as $MenuHeader){
              if($MenuHeader['MenuCha']!=455&&$MenuHeader['IDBaiViet']!=455){
                $menucha2=$this->default_model->getInfoID($this->_table,array("$this->_id" => $MenuHeader['MenuCha']));
                include APPPATH . 'modules/baiviet/views/Loai.php';
                $searchs=array_flip($searchs);
                $code.="
                \$route['".strtolower(isset($MenuHeader['Link'])&&$MenuHeader['Link']!=''?$MenuHeader['Link']:stripUnicode($MenuHeader['TieuDe']))."'] = 'baiviet/getdanhsachbaiviet/TinTuc/1//default/".$MenuHeader['IDBaiViet']."';
                \$route['".strtolower(isset($MenuHeader['Link'])&&$MenuHeader['Link']!=''?$MenuHeader['Link']:stripUnicode($MenuHeader['TieuDe']))."/(:num)'] = 'baiviet/getdanhsachbaiviet/TinTuc/$1//default/".$MenuHeader['IDBaiViet']."';
                \$route['".strtolower(isset($MenuHeader['Link'])&&$MenuHeader['Link']!=''?$MenuHeader['Link']:stripUnicode($MenuHeader['TieuDe']))."/(:any)-(:num)'] = 'baiviet/xembaiviet/$2/Xem_BaiViet//default/".$MenuHeader['IDBaiViet']."';
                ";
            }
            if($MenuHeader['MenuCha']==455||$MenuHeader['IDBaiViet']==455){
                $code.="
                \$route['".strtolower(isset($MenuHeader['Link'])&&$MenuHeader['Link']!=''?$MenuHeader['Link']:stripUnicode($MenuHeader['TieuDe']))."'] = 'salon/salonoto/".$MenuHeader['IDBaiViet']."';
                \$route['".strtolower(isset($MenuHeader['Link'])&&$MenuHeader['Link']!=''?$MenuHeader['Link']:stripUnicode($MenuHeader['TieuDe']))."/(:num)'] = 'salon/salonoto/".$MenuHeader['IDBaiViet']."/$1';
                \$route['".strtolower(isset($MenuHeader['Link'])&&$MenuHeader['Link']!=''?$MenuHeader['Link']:stripUnicode($MenuHeader['TieuDe']))."/(:any)-(:num)'] = 'salon/salonoto/".$MenuHeader['IDBaiViet']."/$2';
                ";
            }
            //print_r($code);
            //error_reporting(E_ALL);
            file_put_contents(APPPATH . 'config/sub_urls.php',$code);
            }
          }
          if($Loai=="DanhMuc"){
            $code='<?
            ';
            $menucat=$this->default_model->getTableRows($this->_table,4000,0,'','',$this->_id,"",array('Loai'=>'DanhMuc','CapMenu'=>1,'TrangThai'=>1));  
 foreach($menucat as $val){$stt++;
    $code.= "
    \$route['".strtolower(isset($val['Link'])&&$val['Link']!=''?$val['Link']:stripUnicode($val['TieuDe']))."/(:num)'] = 'dangtin/xemdanhmuc/HangXe/".$val['IDBaiViet']."/$1';
    \$route['".strtolower(isset($val['Link'])&&$val['Link']!=''?$val['Link']:stripUnicode($val['TieuDe']))."'] = 'dangtin/xemdanhmuc/HangXe/".$val['IDBaiViet']."';
    ";
    if($val['Link']!=''){
      $code.= " 
    \$route['".$val['Link']."/(:num)'] = 'dangtin/xemdanhmuc/HangXe/".$val['IDBaiViet']."/$1';
    \$route['".$val['Link']."'] = 'dangtin/xemdanhmuc/HangXe/".$val['IDBaiViet']."';;
    \$route['".$val['Link']."-([a-z0-9-]+)'] = 'dangtin/xemdanhmuc/HangXe/".$val['IDBaiViet']."/1/$1';
    \$route['".$val['Link']."-([a-z0-9-]+)/(:num)'] = 'dangtin/xemdanhmuc/HangXe/".$val['IDBaiViet']."/$2/$1';
    ";  
    }
 }
 
 $menucat=$this->default_model->getTableRows($this->_table,4000,0,'','',$this->_id,"",array('Loai'=>'DanhMuc','CapMenu'=>2,'TrangThai'=>1)); //print_r($menucat);
 foreach($menucat as $val){$stt++;
 $menucha=$this->default_model->getInfoID($this->_table,array('IDBaiViet'=>$val['MenuCha']));
    $code.= "
    \$route['".strtolower(isset($val['Link'])&&$val['Link']!=''?$val['Link']:stripUnicode($val['TieuDe']))."/(:num)'] = 'dangtin/xemdanhmuc/HangXe/".$val['IDBaiViet']."/$1';
    \$route['".strtolower(isset($val['Link'])&&$val['Link']!=''?$val['Link']:stripUnicode($val['TieuDe']))."'] = 'dangtin/xemdanhmuc/HangXe/".$val['IDBaiViet']."';
    \$route['".strtolower(isset($val['Link'])&&$val['Link']!=''?$val['Link']:stripUnicode($val['TieuDe']))."-([a-z0-9-]+)'] = 'dangtin/xemdanhmuc/HangXe/".$val['IDBaiViet']."/1/$1';
    \$route['".strtolower(isset($val['Link'])&&$val['Link']!=''?$val['Link']:stripUnicode($val['TieuDe']))."-([a-z0-9-]+)/(:num)'] = 'dangtin/xemdanhmuc/HangXe/".$val['IDBaiViet']."/$2/$1';
    ";
    if($val['Link']!=''){
      $code.= " 
    \$route['".$val['Link']."/(:num)'] = 'dangtin/xemdanhmuc/HangXe/".$val['IDBaiViet']."/$1';
    \$route['".$val['Link']."'] = 'dangtin/xemdanhmuc/HangXe/".$val['IDBaiViet']."';
    \$route['".$val['Link']."-([a-z0-9-]+)'] = 'dangtin/xemdanhmuc/HangXe/".$val['IDBaiViet']."/1/$1';
    \$route['".$val['Link']."-([a-z0-9-]+)/(:num)'] = 'dangtin/xemdanhmuc/HangXe/".$val['IDBaiViet']."/$2/$1';
    ";  
    }
 }
 include_once(APPPATH . 'includes/doctien.php');
 file_put_contents(APPPATH . 'config/ext_urls.php',$code); 
          }          
          //
          
          $region=$this->input->get("region");
	$exregion=explode('-',$region);
	$exregion[end(array_keys($exregion))]=end($exregion)+1;
	$exregion=implode('-',$exregion);
				  redirect(base_url()."baiviet/quanlybaiviet/g/$Loai?region=".$exregion);
          exit(); 
          
    }
    $data['users']=$this->default_model->getInfoID($this->_table,array("$this->_id" => $ID)); 
    if($data['users']==FALSE){
        $where=$Loai;
    }else{
        $where=$data['users']['Loai'];
        $Loai=$where;
    }
    if($where=='TinTuc'){
        $where=array("Loai" => "MenuHeader");
    }elseif($where=='TuVanXe'){
        $where=array("Loai" => "MenuHeader","MenuCha"=>25);
    }elseif($where=='DanhGiaXe'){
        $where=array("Loai" => "MenuHeader","MenuCha"=>27);
    }elseif($where=='KinhNghiem'){
        $where=array("Loai" => "MenuHeader","MenuCha"=>15);
    }elseif($where=='SoSanhXe'){
        $where=array("Loai" => "MenuHeader","MenuCha"=>42);
    }else{
        $where=array("Loai" => "$where");
    }
    $data['menu']=$this->default_model->getTableRows($this->_table,1000,0,'CapMenu asc, SapXep asc, '.$this->_id.' desc','',$this->_id,"",$where);
    $data['template']='taobaiviet';
    $data['title'] = $this->lang->line('lable_'.$Loai.'');
    $this->load->view('admin/admin',$data);
}

//quan ly thong bao cho admin
function quanlybaiviet($sucess="",$phanloai="",$page=1){
    
    //--- Neu chua dang nhap thi bat dang nhap
    if($this->session->userdata('permission')!=1){
        redirect(base_url());
        exit();
    }
    //phan trang hien thi
    $noibang="";
    $dieukien=array("Loai" => "$phanloai");
    $url_phantrang=base_url().'baiviet/quanlybaiviet/action/'.$phanloai.'/';
    $sort='';
    if($page==1){
        $this->session->set_userdata(array('cha'=>''));
    }
    if($this->input->get('cha')!=''){
        $this->session->set_userdata(array('cha'=>$this->input->get('cha')));
    }
    if($this->session->userdata('cha')!=''){
             $MenuChaID=$this->session->userdata('cha');
             $set_dk=1;
             include(APPPATH . 'modules/dangtin/controllers/HangXe.php');
             $dieukien["MenuCha IN ($MenuChaID $addIN) and IDBaiViet !="]='';  
        } 
    $bien_sapxep_hienthi=$sort.'SapXep asc, '.$this->_id.' desc';
        $user['template']='quanlybaiviet';
        $user['Loai']=$phanloai;
        $user['title'] = $this->lang->line('lable_'.$phanloai.'');
        
    if($phanloai=='MenuHeader'||$phanloai=='MenuFooter'||$phanloai=='MenuHuongDan'||$phanloai=='DanhMuc'||$phanloai=='HuongDan'){
        $sort='CapMenu asc, ';
        include APPPATH . 'includes/timkiem_admin.php';
        $config['total_rows'] = $this->default_model->totalRows($this->_table,$loai,$this->_id,$dieukien,$noibang);
        $user['data']=$this->default_model->getTableRows($this->_table,'',0,$bien_sapxep_hienthi,$loai,$this->_id,$noibang,$dieukien);
        $user['totalrow']=$config['total_rows'];
        $this->load->view('admin/admin',$user);
    }else{ 
        $config['uri_segment'] = 5; 
        include(APPPATH . 'includes/phantrang_admin.php'); 
    }
    
}
//xem thong bao
function xembaiviet($ID="",$Loai="",$Domain='',$Loai_template='default') {
    if($Domain!=''){
        $data['salon_info']=$this->default_model->getInfoID('salon',array("Domain" => $Domain));  
    }
    
    $data['users']=$this->default_model->getInfoID($this->_table,array("$this->_id" => $ID)); 
    $this->default_model->updateDuLieu($this->_table,array('LuotXem'=>$data['users']['LuotXem']+1),array("IDBaiViet" => $ID));
    if($data['users']!=FALSE){
        $data['title'] =  $data['users']['Title']!=''?$data['users']['Title']:$data['users']['TieuDe'];
        $data['description'] = $data['users']['Description'];
        $data['keyword'] = $data['users']['Keyword'];
        $data['cha_info']=$this->default_model->getInfoID('baiviet',array("IDBaiViet" => $data['users']['MenuCha'])); 
        if($Loai=="ThongBao"){
            $data['template']='Xem_ThongBao';
        }
        else{
            $data['template']=$Loai;
        }
        
        $this->load->view($Loai_template,$data);
    }else{
        show_404();
    }
	$this->output->cache(30) ;
}

Trong bài đăng

Chổ đăng ảnh:

<?php if($Loai!='DanhMuc'||(isset($users['Loai'])&&$users['Loai']!='DanhMuc')):?>
                                    <div class="form-group">
										<td><input name="img" class="form-control" type="file" value="<?php set_value('img')?>"></td>
                                        <label class="form-label" for="NoiDung">Nội dung</label> 
                                        <div class="controls">
                                            <?php
     
												if(isset($users['TieuDe'])){
													$NoiDung=$users['NoiDung'];
												}else{
													$NoiDung=set_value('NoiDung');
												}
												echo $this->ckeditor->editor("NoiDung",html_entity_decode($NoiDung)); 
												
												 
												?>
                                        </div>
                                    </div>
                                    <? endif?>

Bạn chỉnh lại cho mình với nhé

thanks

0
Avatar
đã bình luận cho bài viết
thg 8 21, 2018 1:20 SA

Cảm ơn về nhận xét của bạn, mà bạn kể ra một hồi LinQ, hibernate các ORM, ... mình mới đi search google xem nó là gì này. Thật là bao la trời biển @@

0

bá vãi, toàn machine learning

+1

B cố gắng biến lời văn thành của bạn, sẽ giúp ng đọc dễ hiểu và ko bị ngang

+1

Mình đã cố gắng dịch nhưng có lẽ không được hay lần sau mình sẽ cố gắng cải thiện và hi vọng giúp ích được ai đó. Có link bên dưới bạn có thể vào đọc trực tiếp thank bạn đã góp ý !

+1
thg 8 20, 2018 2:37 CH

Bài viết rất hay và bổ éc, em thích nhất câu này 😄

Sử dụng cách nào để khử N + 1 query thì mỗi framework sẽ có cách khái quát và trình bày riêng, nhưng bản chất thì vẫn là xoay quanh sử dụng select in() hay joins.

Hồi trước khi đi làm sử dụng sql thuần qua các sp, trigger thì chủ yếu làm thế nào để tăng performance trong các câu truy vấn của mình. Về sau dùng LinQ, activerecord, hibernate các ORM thấy nhiều bạn đề cập đến N+1 query lúc đó mới hỏi quái lại sao mình không biết cái này nhỉ =)) 😄 😅.

Cách anh viết cũng rất hay dễ đọc 😄. Chắc phải chăm đọc nhiều bài của các tiền bối để nâng cao tay viết mới được.

p/s: Thank for sharing

+1

Tks,,,nhưng có vẻ copy hay google dịch mà có những đoạn đọc không đã

0

Loạt bài viết hay quá, cảm ơn anh nhiều 😄

0

rồi làm thế nào để match với session trên server trong khi nó đã bị xóa nhỉ 😃)

0
thg 8 20, 2018 9:01 SA

@DoanhPV

2018-08-20.png

code em như thế này sao nó không thay đổi hình ảnh nhỉ, anh giúp em với

0

cookie lưu ở client

0

Google dịch thế này thì ko nên post b à

+1

@quynh001 : cách giải thích về Package ManagerDependency Manager như vậy là đúng rồi. Về 2 khái niệm này đơn giản như sau:

  • Package Manager được sử dụng cho SYSTEM (hệ thống) và Dependency Manager cho PROJECT
  • Package Manager được sử sụng để cấu hình hệ thống ví dụ như cài đặt môi trường phát triển với các cài đặt này, mình có thể sử dụng cho nhiều projects
  • Dependency Manager chỉ dùng cho project. Mình có thể quản lý tất cả các dependencies cho project và các dependencies này được lưu trên project đó thôi. Project khác thì phải cài đặt lại. Vì vậy COMPOSER chỉ là là Dependency manager.
+1
thg 8 20, 2018 8:49 SA

@HuyDQ tks bạn nhé, code của bạn về logic dễ hiểu hơn rất nhiều

+1
thg 8 20, 2018 8:44 SA

@wiliamfeng ok bạn 😄

0
thg 8 20, 2018 8:43 SA

@HuyDQ tks bạn

0
thg 8 20, 2018 8:37 SA

@wiliamfeng hàm handleClick của bạn thực chất nó có nhiệm vụ gán cái sự kiện itemAccor.onclick = () => itemAccor.classList.toggle("active") cho thẻ div. Sau lần click đầu tiên thì các thẻ div đã được gán sự kiện rồi nó mới chạy được cái toggle bạn khai báo

+2

" reuby on rails cung cấp cho ta web server tên là WEBrick với câu lệnh rails s" WEBrick là app server, không phải là web server. Từ rails 5 thì app server mặc định khi tạo rails project là puma, không còn là WEBrick nữa.

0
thg 8 20, 2018 8:27 SA

@DoanhPV anh Doanh ơi có rảnh giúp em với, em làm mãi mà không được ạ

0
thg 8 20, 2018 8:27 SA

Bạn có thể cập nhât lại code như này sẽ tối ưu hơn tí 😄 https://codepen.io/anon/pen/NLKVwp?editors=1010

+1
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí