Files
cm-app-web/application/controllers/admin/config/Preview.php

217 lines
6.4 KiB
PHP

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/**
* Preview class
*
* Copyright (c) CIBoard <www.ciboard.co.kr>
*
* @author CIBoard (develop@ciboard.co.kr)
*/
/**
* 관리자>환경설정>Preview controller 입니다.
*/
class Preview extends CB_Controller
{
/**
* 관리자 페이지 상의 현재 디렉토리입니다
* 페이지 이동시 필요한 정보입니다
*/
public $pagedir = 'config/preview';
/**
* 모델을 로딩합니다
*/
protected $models = array();
/**
* 이 컨트롤러의 메인 모델 이름입니다
*/
protected $modelname = '';
/**
* 헬퍼를 로딩합니다
*/
protected $helpers = array('form', 'array');
function __construct()
{
parent::__construct();
}
/**
* Preview 페이지입니다
*/
public function preview($pagetype)
{
// 이벤트 라이브러리를 로딩합니다
$eventname = 'event_admin_config_preview_preview';
$this->load->event($eventname);
$view = array();
$view['view'] = array();
// 이벤트가 존재하면 실행합니다
$view['view']['event']['before'] = Events::trigger('before', $eventname);
$pagename = array(
'main' => '메인페이지',
'board' => '게시판',
'group' => '게시판그룹',
'document' => '일반문서페이지',
'faq' => 'FAQ',
'register' => '회원가입',
'findaccount' => '아이디패스워드찾기',
'login' => '로그인',
'mypage' => '마이페이지',
'currentvisitor' => '현재접속자',
'search' => '검색페이지',
'tag' => '태그페이지',
'note' => '쪽지',
'profile' => '프로필',
'formmail' => '폼메일',
'notification' => '알림페이지',
'helptool' => '헬프툴',
);
if ( ! element($pagetype, $pagename)) {
alert('잘못된 접근입니다');
}
$previewurl = '';
$pageurl = '';
$use_sidebar_option = true;
if ($pagetype === 'main'
OR $pagetype === 'mypage'
OR $pagetype === 'currentvisitor'
OR $pagetype === 'notification'
OR $pagetype === 'login'
OR $pagetype === 'findaccount') {
$pageurl = $pagetype;
}
if ($pagetype === 'board') {
$this->load->model('Post_model');
$where = array('post_del' => 0);
$latest = $this->Post_model->get('', '', $where, 1, '', 'post_id', 'desc');
$val = element(0, $latest);
if (empty($val)) {
alert_close('최소 1개 이상의 게시물이 작성된 후에 미리보기가 가능합니다');
}
$pageurl = 'board_post/post/' . element('post_id', $val);
}
if ($pagetype === 'group') {
$this->load->model('Board_group_model');
$val = $this->Board_group_model->get_one();
if (empty($val)) {
alert_close('최소 1개 이상의 그룹이 생성된 후에 미리보기가 가능합니다');
}
$pageurl = 'group/index/' . element('bgr_key', $val);
}
if ($pagetype === 'document') {
$this->load->model('Document_model');
$latest = $this->Document_model->get('', '', '', 1, '', 'doc_id', 'desc');
$val = element(0, $latest);
if (empty($val)) {
alert_close('최소 1개 이상의 일반문서가 작성된 후에 미리보기가 가능합니다');
}
$pageurl = 'document/index/' . element('doc_key', $val);
}
if ($pagetype === 'faq') {
$this->load->model('Faq_group_model');
$latest = $this->Faq_group_model->get('', '', '', 1, '', 'fgr_id', 'desc');
$val = element(0, $latest);
if (empty($val)) {
alert_close('최소 1개 이상의 FAQ가 작성된 후에 미리보기가 가능합니다');
}
$pageurl = 'faq/index/' . element('fgr_key', $val);
}
if ($pagetype === 'search') {
$pageurl = 'search/?skeyword=검색&';
}
if ($pagetype === 'tag') {
$this->load->model('Post_tag_model');
$latest = $this->Post_tag_model->get('', '', '', 1, '', 'pta_id', 'desc');
$val = element(0, $latest);
if (empty($val)) {
alert_close('최소 1개 이상의 태그가 작성된 후에 미리보기가 가능합니다');
}
$pageurl = 'tags/?tag=' . element('pta_tag', $val) . '&';
}
if ($pagetype === 'note') {
$use_sidebar_option = false;
$this->load->model('Note_model');
$where = array(
'recv_mem_id' => $this->member->item('mem_id'),
'nte_type' => 1,
);
$latest = $this->Note_model->get('', '', $where, 1, '', 'nte_id', 'desc');
$val = element(0, $latest);
if (empty($val)) {
alert_close('최소 1개 이상의 쪽지를 수신한 후에 미리보기가 가능합니다');
}
$pageurl = 'note/view/recv/' . element('nte_id', $val);
}
if ($pagetype === 'profile') {
$use_sidebar_option = false;
$pageurl = 'profile/index/' . $this->member->item('mem_userid');
}
if ($pagetype === 'formmail') {
$use_sidebar_option = false;
$pageurl = 'formmail/write/' . $this->member->item('mem_userid');
}
if ($pagetype === 'helptool') {
$use_sidebar_option = false;
$pageurl = 'helptool/emoticon';
}
if ($pagetype === 'register') {
$pageurl = 'register/form';
}
$previewurl = admin_url('preview/adminshow/' . $pageurl);
$previewurl .= '?layout=' . $this->input->get('layout', null, '') . '&sidebar=' . $this->input->get('sidebar', null, '') . '&skin=' . $this->input->get('skin', null, '') . '&is_mobile=' . $this->input->get('is_mobile', null, '');
$view['view']['pagetype'] = $pagetype;
$view['view']['previewurl'] = $previewurl;
$view['view']['use_sidebar_option'] = $use_sidebar_option;
$view['view']['pagename'] = element($pagetype, $pagename);
$view['view']['layout_option'] = get_skin_name(
'_layout',
$this->input->get('layout', null, ''),
'기본설정따름'
);
$view['view']['skin_option'] = get_skin_name(
$pagetype,
$this->input->get('skin', null, ''),
'기본설정따름'
);
$view['view']['mobile_layout_option'] = get_skin_name(
'_layout',
$this->input->get('mobile_layout', null, ''),
'기본설정따름'
);
$view['view']['mobile_skin_option'] = get_skin_name(
$pagetype,
$this->input->get('mobile_skin', null, ''),
'기본설정따름'
);
// 이벤트가 존재하면 실행합니다
$view['view']['event']['before_layout'] = Events::trigger('before_layout', $eventname);
/**
* 어드민 레이아웃을 정의합니다
*/
$layoutconfig = array('layout' => 'layout_popup', 'skin' => 'index');
$view['layout'] = $this->managelayout->admin($layoutconfig, $this->cbconfig->get_device_view_type());
$this->data = $view;
$this->layout = element('layout_skin_file', element('layout', $view));
$this->view = element('view_skin_file', element('layout', $view));
}
}