first commit
This commit is contained in:
316
application/controllers/admin/advertisement.php
Executable file
316
application/controllers/admin/advertisement.php
Executable file
@@ -0,0 +1,316 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
/**
|
||||
* 인클루드 class
|
||||
*
|
||||
* cm_controller: 부모 Class(CI_Controller 확장한 custome class)
|
||||
*/
|
||||
include_once (APPPATH.'core/admin/cm_controller.php');
|
||||
|
||||
class advertisement extends cm_controller {
|
||||
|
||||
var $ad_page_tb_name = 'ad_page'; // 광고 페이지 테이블 이름
|
||||
var $ad_code_tb_name = 'ad_detail'; // 광고 코드 테이블 이름
|
||||
|
||||
/*
|
||||
title : 광고 페이지 관리 (목록)
|
||||
*/
|
||||
public function fn_1($page=1) {
|
||||
$this->load->database();
|
||||
$query = $this->db->get($this->ad_page_tb_name);
|
||||
$i = 0;
|
||||
$return_data = array();
|
||||
foreach($query->result_array() as $row) {
|
||||
$return_data['row'][$i] = $row;
|
||||
$i++;
|
||||
}
|
||||
return $this->load->view('/admin/advertisement/ads', $return_data, true);
|
||||
|
||||
}
|
||||
|
||||
public function fn_ad_page_arr_del_proc() {
|
||||
$is_del = $this->input->post('is_del');
|
||||
foreach($is_del as $v) {
|
||||
if($v>0) {
|
||||
$where_in[] = $v;
|
||||
}
|
||||
}
|
||||
if(count($where_in)>0) {
|
||||
$this->load->database();
|
||||
$this->db->where_in('idx',$where_in);
|
||||
$ret = $this->db->delete($this->ad_page_tb_name);
|
||||
if($ret==TRUE) {
|
||||
$message = '삭제되었습니다.';
|
||||
} else {
|
||||
$message = '삭제되지 않았습니다.(디비 에러) 서버 관리자에게 문의해 주십시오.';
|
||||
}
|
||||
echo "<script>alert('".$message."'); parent.location.reload();</script>";
|
||||
}
|
||||
exit;
|
||||
}
|
||||
|
||||
public function fn_ad_page_edit() {
|
||||
$idx = $this->input->get('idx');
|
||||
|
||||
if(is_numeric($idx)==TRUE) {
|
||||
$this->load->database();
|
||||
$query = $this->db->get_where($this->ad_page_tb_name, array('idx'=>$idx));
|
||||
$row = $query->row_array();
|
||||
$row['result'] = 'success';
|
||||
} else {
|
||||
$row['result'] = 'fail';
|
||||
}
|
||||
echo json_encode($row);
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* [ad_page_proc register ad page]
|
||||
* @return [boolean]
|
||||
*/
|
||||
public function fn_ad_page_proc() {
|
||||
$page_key = $this->input->post('page_key');
|
||||
$page_name = $this->input->post('page_name');
|
||||
$ad_pos_key = $this->input->post('ad_pos_key');
|
||||
$ad_pos_name = $this->input->post('ad_pos_name');
|
||||
$mode = $this->input->post('mode');
|
||||
$idx = $this->input->post('idx');
|
||||
|
||||
$this->load->library('form_validation');
|
||||
$this->form_validation->set_rules('page_key','페이지 키',array('required','regex_match[/^[a-zA-Z]+$/]'));
|
||||
$this->form_validation->set_rules('page_name','페이지 이름',array('required'));
|
||||
$this->form_validation->set_rules('ad_pos_key','광고 위치 키',array('required','regex_match[/^[a-zA-Z]+$/]'));
|
||||
$this->form_validation->set_rules('ad_pos_name','광고 위치 이름',array('required'));
|
||||
if ($this->form_validation->run() == TRUE) {
|
||||
$this->load->database();
|
||||
$data = ['page_key'=>$page_key,
|
||||
'page_name'=>$page_name,
|
||||
'ad_pos_key'=>$ad_pos_key,
|
||||
'ad_pos_name'=>$ad_pos_name];
|
||||
if($mode=='upt' && $idx>0) {
|
||||
$this->db->where('idx',$idx);
|
||||
$this->db->update($this->ad_page_tb_name,$data);
|
||||
$message = '수정되었습니다';
|
||||
} else {
|
||||
$this->db->insert($this->ad_page_tb_name,$data);
|
||||
$message = '등록되었습니다';
|
||||
}
|
||||
echo "<script>alert('".$message."'); parent.location.reload();</script>";
|
||||
} else {
|
||||
echo "<script>alert('적합한 데이터를 입력해 주십시오.');exit;</script>";
|
||||
}
|
||||
exit;
|
||||
}
|
||||
|
||||
// 개별광고페이지
|
||||
public function fn_ad_detail(){
|
||||
$this->load->database();
|
||||
// $this->db->select('*');
|
||||
// $this->db->from($this->ad_code_tb_name);
|
||||
// $this->db->join($this->ad_page_tb_name, $this->ad_page_tb_name.'.idx = '.$this->ad_code_tb_name.'.ad_idx');
|
||||
// $query = $this->db->get();
|
||||
$query = $this->db->query("SELECT a.idx, b.page_name, b.ad_pos_name, a.ad_code, a.ad_file FROM $this->ad_code_tb_name AS a JOIN $this->ad_page_tb_name AS b ON a.ad_idx = b.idx");
|
||||
$i = 0;
|
||||
$return_data = array();
|
||||
foreach($query->result_array() as $row) {
|
||||
$return_data['row'][$i] = $row;
|
||||
$i++;
|
||||
}
|
||||
return $this->load->view('/admin/advertisement/ad_detail',$return_data,true);
|
||||
}
|
||||
|
||||
// 개별광고페이지 등록 및 수정 form
|
||||
public function fn_ad_register(){
|
||||
$this->load->database();
|
||||
//page_list 만들기
|
||||
$query = $this->db->get($this->ad_page_tb_name);
|
||||
$i=0;
|
||||
$return_data = array();
|
||||
$result=$query->result_array();
|
||||
foreach($result as $v){
|
||||
$page_list[]=$v['page_name'];
|
||||
}
|
||||
|
||||
$return_data['page_name']=array_values(array_unique($page_list)); //page_name list
|
||||
|
||||
//page_list array 에 광고 위치 push
|
||||
$x = count($return_data['page_name']);
|
||||
$return_data['ad_pos_name']=array();
|
||||
$y=0;
|
||||
foreach($return_data['page_name'] as $row2) {
|
||||
foreach($result as $row) {
|
||||
if($row['page_name']==$row2){
|
||||
$return_data['ad_pos_name'][$y][]=$row['ad_pos_name'];
|
||||
}
|
||||
}
|
||||
$y++;
|
||||
}
|
||||
|
||||
//수정btn으로 이동했을 시
|
||||
if($this->input->post('mode')=='modify'){
|
||||
$return_data['mode']='modify';
|
||||
$select ='a.*, b.page_name, b.ad_pos_name';
|
||||
$query = $this->db->query("SELECT $select FROM $this->ad_code_tb_name AS a JOIN $this->ad_page_tb_name AS b ON a.ad_idx = b.idx");
|
||||
foreach($query->result_array() as $row) {
|
||||
$return_data['edit_data'] = $row;
|
||||
}
|
||||
}else{
|
||||
$return_data['mode']='reg';
|
||||
}
|
||||
|
||||
// row -> 전체 배열
|
||||
// page_name -> page_name list
|
||||
// ad_pos_name -> ad_pos_name list
|
||||
// mode -> 수정 등록 구분
|
||||
// edit_data -> 수정일 때 data
|
||||
|
||||
return $this->load->view('/admin/advertisement/ad_reg', $return_data , true);
|
||||
}
|
||||
|
||||
//개별광고 등록
|
||||
public function fn_ad_detail_reg(){
|
||||
$page_name = $this->input->post('page_title');
|
||||
$ad_pos_name = $this->input->post('ad_pos');
|
||||
|
||||
$ad_option = $this->input->post('ad_option'); // $ad_option 0: 광고 파일 등록 1:광고 코드 등록
|
||||
$ad_lending = $this->input->post('ad_lending');
|
||||
$ad_code = htmlspecialchars($this->input->post('ad_code'));
|
||||
|
||||
$where=array('page_name' => $page_name, 'ad_pos_name' => $ad_pos_name);
|
||||
|
||||
$this->load->database();
|
||||
$query = $this->db->get_where($this->ad_page_tb_name, $where);
|
||||
$ad_idx; //ad_idx 찾기
|
||||
foreach ($query->result() as $row)
|
||||
{
|
||||
$ad_idx = $row->idx;
|
||||
}
|
||||
//이미지 업로드
|
||||
if($_FILES['ad_file']['name']!='') {
|
||||
$upload_path = './files/advertisement/'.date("Y")."/".date("m");
|
||||
if (!is_dir($upload_path)) {
|
||||
umask(0);
|
||||
mkdir($upload_path, 0777, TRUE);
|
||||
}
|
||||
$config['upload_path'] = $upload_path;
|
||||
$config['allowed_types'] = 'gif|jpg|png';
|
||||
$config['encrypt_name'] = TRUE;
|
||||
|
||||
$this->load->library('upload');
|
||||
$this->upload->initialize($config);
|
||||
|
||||
$file_name= date("H").date("i").date("s");
|
||||
|
||||
if ( ! $this->upload->do_upload('ad_file')) {
|
||||
$error = array('error' => $this->upload->display_errors());
|
||||
gf_alert("이미지 업로드에 실패했습니다.", 'back');
|
||||
exit;
|
||||
}
|
||||
$arr_upload_data = $this->upload->data();
|
||||
$ad_file = str_replace($_SERVER['DOCUMENT_ROOT'], '', $arr_upload_data['full_path']);
|
||||
}
|
||||
|
||||
// 이미 존재하는 데이터이면 수정 함
|
||||
$where=array('ad_idx' => $ad_idx);
|
||||
$query = $this->db->get_where($this->ad_code_tb_name, $where);
|
||||
$result = $query->result();
|
||||
empty($result[0]->idx)?$isdata=false:$isdata=true;
|
||||
|
||||
if($isdata){
|
||||
if(!empty($ad_file)){
|
||||
$update_data = array(
|
||||
'ad_idx' => $ad_idx,
|
||||
'ad_option' => $ad_option,
|
||||
'ad_file' => $ad_file,
|
||||
'ad_lending' => $ad_lending,
|
||||
'ad_code' => $ad_code,
|
||||
);
|
||||
}else{
|
||||
$update_data = array(
|
||||
'ad_idx' => $ad_idx,
|
||||
'ad_option' => $ad_option,
|
||||
'ad_lending' => $ad_lending,
|
||||
'ad_code' => $ad_code,
|
||||
);
|
||||
}
|
||||
$this->db->where('idx', $result[0]->idx);
|
||||
$this->db->update($this->ad_code_tb_name, $update_data);
|
||||
}else{
|
||||
if(!empty($ad_file)){
|
||||
$insert_data = array(
|
||||
'ad_idx' => $ad_idx,
|
||||
'ad_option' => $ad_option,
|
||||
'ad_file' => $ad_file,
|
||||
'ad_lending' => $ad_lending,
|
||||
'ad_code' => $ad_code,
|
||||
);
|
||||
}else{
|
||||
$insert_data = array(
|
||||
'ad_idx' => $ad_idx,
|
||||
'ad_option' => $ad_option,
|
||||
'ad_lending' => $ad_lending,
|
||||
'ad_code' => $ad_code,
|
||||
);
|
||||
}
|
||||
$this->db->insert($this->ad_code_tb_name, $insert_data);
|
||||
}
|
||||
$this->config->load('filecache',TRUE);
|
||||
$file_cache_path = $this->config->item('file_cache_path','filecache');
|
||||
$params = array('file_cache_path'=>$file_cache_path);
|
||||
$this->load->library('advertisement_lib',$params);
|
||||
$this->advertisement_lib->create_ad_cache();
|
||||
$this->load->helper('url');
|
||||
redirect('https://crossmap.co.kr/admin/advertisement/ad_detail');
|
||||
}
|
||||
|
||||
//광고 개별 관리 삭제
|
||||
public function fn_ad_detail_arr_del_proc() {
|
||||
$is_del = $this->input->post('is_del');
|
||||
foreach($is_del as $v) {
|
||||
if($v>0) {
|
||||
$where_in[] = $v;
|
||||
}
|
||||
}
|
||||
if(count($where_in)>0) {
|
||||
$this->load->database();
|
||||
$this->db->where_in('idx',$where_in);
|
||||
$ret = $this->db->delete($this->ad_code_tb_name);
|
||||
if($ret==TRUE) {
|
||||
$message = '삭제되었습니다.';
|
||||
} else {
|
||||
$message = '삭제되지 않았습니다.(디비 에러) 서버 관리자에게 문의해 주십시오.';
|
||||
}
|
||||
echo "<script>alert('".$message."'); parent.location.reload();</script>";
|
||||
}
|
||||
$this->config->load('filecache',TRUE);
|
||||
$file_cache_path = $this->config->item('file_cache_path','filecache');
|
||||
$params = array('file_cache_path'=>$file_cache_path);
|
||||
$this->load->library('advertisement_lib',$params);
|
||||
$this->advertisement_lib->create_ad_cache();
|
||||
exit;
|
||||
}
|
||||
|
||||
public function fn_ad_create_cache(){
|
||||
$this->load->database();
|
||||
$query = $this->db->query("SELECT a.idx, b.page_key, b.ad_pos_key, a.ad_option, a.ad_code, a.ad_file,a.ad_lending FROM $this->ad_code_tb_name AS a JOIN $this->ad_page_tb_name AS b ON a.ad_idx = b.idx");
|
||||
$i=array();
|
||||
foreach($query->result_array() as $v){
|
||||
$i[$v['page_key']][$v['ad_pos_key']]=array('option'=>$v['ad_option'],'ad_code'=>$v['ad_code'],'ad_file'=>$v['ad_file'],'ad_lending'=>$v['ad_lending']);
|
||||
}
|
||||
|
||||
$json_data=json_encode($i);
|
||||
|
||||
print_r($i);
|
||||
|
||||
$this->config->load('filecache',TRUE);
|
||||
$file_cache_path = $this->config->item('file_cache_path','filecache');
|
||||
$params = array('file_cache_path'=>$file_cache_path);
|
||||
$this->load->library('advertisement_lib',$params);
|
||||
|
||||
if($json_data!=FALSE) {
|
||||
$this->advertisement_lib->write_ad_cache($json_data);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user