Browse Source

휘파람보드 1.2.0

- 대규모 업데이트
master
장선근 5 years ago
parent
commit
1f0d8d1870
  1. 123
      _src/admin/js/modules/faq.js
  2. 29
      _src/admin/scss/common/_layout.scss
  3. 10
      _src/admin/scss/plugins/devextreme/dx.light.compact.scss
  4. 2
      public_html/assets/css/admin.min.css
  5. 2
      public_html/assets/css/admin.min.css.map
  6. BIN
      public_html/assets/images/common/error_arr.png
  7. BIN
      public_html/assets/images/common/error_img.png
  8. 2
      public_html/assets/js/admin.min.js
  9. 2
      public_html/assets/js/admin.min.js.map
  10. 1
      source.info.json
  11. 17
      wheeparam/application/controllers/Board.php
  12. 4
      wheeparam/application/controllers/admin/Board.php
  13. 15
      wheeparam/application/controllers/admin/Management.php
  14. 22
      wheeparam/application/controllers/admin/ajax/Board.php
  15. 76
      wheeparam/application/controllers/admin/ajax/Management.php
  16. 82
      wheeparam/application/controllers/ajax/Faq.php
  17. 1
      wheeparam/application/hooks/HookPostControllerConstructor.php
  18. 46
      wheeparam/application/libraries/Boardlib.php
  19. 33
      wheeparam/application/libraries/Site.php
  20. 15
      wheeparam/application/models/Board_model.php
  21. 8
      wheeparam/application/models/Faq_model.php
  22. 60
      wheeparam/config/wheeparam.sql
  23. 78
      wheeparam/views/errors/html/error_404.php
  24. 74
      wheeparam/views/errors/html/error_db.php
  25. 14
      wheeparam/views/themes/admin/board/category.php
  26. 2
      wheeparam/views/themes/admin/board/category_form.php
  27. 10
      wheeparam/views/themes/admin/board/form.php
  28. 217
      wheeparam/views/themes/admin/board/lists.php
  29. 58
      wheeparam/views/themes/admin/board/posts.php
  30. 10
      wheeparam/views/themes/admin/board/read.php
  31. 2
      wheeparam/views/themes/admin/help/facebook_login.php
  32. 2
      wheeparam/views/themes/admin/help/google_analytics.php
  33. 2
      wheeparam/views/themes/admin/help/google_login.php
  34. 2
      wheeparam/views/themes/admin/help/google_ownership.php
  35. 2
      wheeparam/views/themes/admin/help/kakao_login.php
  36. 2
      wheeparam/views/themes/admin/help/naver_analytics.php
  37. 2
      wheeparam/views/themes/admin/help/naver_login.php
  38. 2
      wheeparam/views/themes/admin/help/naver_ownership.php
  39. 2
      wheeparam/views/themes/admin/help/recaptcha.php
  40. 38
      wheeparam/views/themes/admin/management/banner.php
  41. 140
      wheeparam/views/themes/admin/management/faq.php
  42. 24
      wheeparam/views/themes/admin/management/faq_category_form.php
  43. 2
      wheeparam/views/themes/admin/management/faq_form.php
  44. 34
      wheeparam/views/themes/admin/management/menu.php
  45. 129
      wheeparam/views/themes/admin/management/menu_form.php
  46. 2
      wheeparam/views/themes/admin/management/popup_form.php
  47. 4
      wheeparam/views/themes/admin/management/sitemap.php
  48. 2
      wheeparam/views/themes/admin/members/add.php
  49. 10
      wheeparam/views/themes/admin/members/info.php
  50. 6
      wheeparam/views/themes/admin/members/login.php
  51. 2
      wheeparam/views/themes/admin/members/point.php
  52. 4
      wheeparam/views/themes/admin/setting/apis.php
  53. 2
      wheeparam/views/themes/admin/statics/browser.php
  54. 2
      wheeparam/views/themes/admin/statics/device.php
  55. 2
      wheeparam/views/themes/admin/statics/keyword.php
  56. 2
      wheeparam/views/themes/admin/statics/os.php
  57. 2
      wheeparam/views/themes/admin/statics/referrer.php
  58. 2
      wheeparam/views/themes/admin/statics/times.php
  59. 2
      wheeparam/views/themes/admin/statics/visit.php
  60. 16
      wheeparam/views/themes/admin/theme.php
  61. 1
      wheeparam/views/themes/desktop/theme.php

123
_src/admin/js/modules/faq.js

@ -1,123 +0,0 @@
var faq = {};
faq.form = function(fac_idx, faq_idx)
{
var faq_idx = (typeof faq_idx == 'string' || typeof faq_idx == 'number' ) ? faq_idx : null;
var fac_idx = (typeof fac_idx == 'string' || typeof fac_idx == 'number' ) ? fac_idx : null;
if(! fac_idx) {
alert('FAQ 분류 정보가 없습니다.');
return false;
}
APP.MODAL.open({
width: 800,
height :650,
header : {
title : faq_idx ? 'FAQ 정보 수정' : 'FAQ 추가'
},
callback : function(){
location.reload();
},
iframe : {
method : 'get',
url : '/admin/management/faq_form',
param : {
fac_idx : fac_idx,
faq_idx : faq_idx
}
}
});
};
faq.remove = function(faq_idx) {
if(typeof faq_idx == 'undefined' || ! faq_idx || faq_idx.trim() == '') {
alert('잘못된 접근입니다.');
}
if(! confirm('해당 FAQ를 삭제하시겠습니까?')) return false;
$.ajax({
url : '/ajax/faq/info',
type : 'delete',
async:false,
cache:false,
data:{faq_idx:faq_idx},
success:function(res){
alert('FAQ가 삭제되었습니다.');
location.reload();
}
});
};
/**
* FAQ 분류
* @type {{}}
*/
faq.category = {};
faq.category.form = function(fac_idx)
{
var fac_idx = (typeof fac_idx == 'string' || typeof fac_idx == 'number' ) ? fac_idx : null;
APP.MODAL.open({
width: $(window).width() > 600 ? 600 : $(window).width(),
height :250,
header : {
title : fac_idx ? 'FAQ 분류 정보 수정' : 'FAQ 분류 추가'
},
callback : function(){
location.reload();
},
iframe : {
method : 'get',
url : '/admin/management/faq_category_form',
param : {
fac_idx : fac_idx
}
}
});
};
faq.category.exist = function(fac_idx) {
if(typeof fac_idx == 'undefined' || ! fac_idx || fac_idx.trim() == '') return false;
var result = false;
$.ajax({
url : '/ajax/faq/category',
type:'get',
async:false,
cache:false,
data:{fac_idx:fac_idx},
success:function (res) {
result = !(res && typeof res.fac_idx != 'undefined' && res.fac_idx);
}
});
return result;
};
faq.category.remove = function(fac_idx) {
if(typeof fac_idx == 'undefined' || ! fac_idx || fac_idx.trim() == '') {
alert('잘못된 접근입니다.');
}
var count = 0;
$.ajax({
url : '/ajax/faq/lists',
type : 'get',
async:false,
cache: false,
data : {fac_idx:fac_idx},
success:function(res){
count = res.total_count;
}
});
var msg = ( count > 0 ) ? '해당 FAQ 분류에 ' + count + '개의 FAQ 목록이 등록되어 있습니다.\nFAQ 분류을 삭제할시 등록된 FAQ 목록도 같이 삭제됩니다.\n\n계속 하시겠습니까?' : 'FAQ 분류을 삭제하시겠습니까?';
if(! confirm(msg)) return false;
$.ajax({
url : '/ajax/faq/category',
type : 'delete',
async:false,
cache:false,
data:{fac_idx:fac_idx},
success:function(res){
alert('FAQ 분류가 삭제되었습니다.');
location.href= base_url + "/admin/management/faq";
}
});
};

29
_src/admin/scss/common/_layout.scss

@ -15,11 +15,13 @@ $nav-height : 40px;
position:relative;
@include display-flex();
height:$header-height;
background: #5399ea; /* Old browsers */
background: -moz-linear-gradient(left, #5399ea 0%, #5ec0cc 100%); /* FF3.6-15 */
background: -webkit-linear-gradient(left, #5399ea 0%,#5ec0cc 100%); /* Chrome10-25,Safari5.1-6 */
background: linear-gradient(to right, #5399ea 0%,#5ec0cc 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#5399ea', endColorstr='#5ec0cc',GradientType=1 ); /* IE6-9 */
//background: #5399ea; /* Old browsers */
//background: -moz-linear-gradient(left, #5399ea 0%, #5ec0cc 100%); /* FF3.6-15 */
//background: -webkit-linear-gradient(left, #5399ea 0%,#5ec0cc 100%); /* Chrome10-25,Safari5.1-6 */
//background: linear-gradient(to right, #5399ea 0%,#5ec0cc 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
//filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#5399ea', endColorstr='#5ec0cc',GradientType=1 ); /* IE6-9 */
background:#282828;
padding:0 30px;
z-index:101;
align-items: center;
@ -162,10 +164,27 @@ $nav-height : 40px;
font-size:12px;
color:#282828;
cursor:pointer;
position:relative;
&:hover {
background-color:#f4f8f9;
}
.badge {
position:absolute;
right:5px;
top:50%;
-webkit-transform: translateY(-50%);
-moz-transform: translateY(-50%);
-ms-transform: translateY(-50%);
-o-transform: translateY(-50%);
transform: translateY(-50%);
font-size:10px;
background-color:#ff2222;
color:#fff;
padding:3px 5px;
line-height:10px;
}
}
&.divider {

10
_src/admin/scss/plugins/devextreme/dx.light.compact.scss

@ -7025,8 +7025,8 @@
.dx-datagrid-rowsview .dx-row-focused.dx-data-row:not(.dx-edit-row) > td:not(.dx-focused),
.dx-datagrid-rowsview .dx-row-focused.dx-data-row:not(.dx-edit-row) > tr > td:not(.dx-focused),
.dx-datagrid-rowsview .dx-row-focused.dx-data-row:not(.dx-edit-row) .dx-command-edit .dx-link {
background-color: #337ab7;
color: #fff;
background-color: #f0f0f0;
///color: #fff;
}
.dx-datagrid-rowsview .dx-row-focused.dx-data-row:not(.dx-edit-row) > td:not(.dx-focused) .dx-datagrid-group-opened,
.dx-datagrid-rowsview .dx-row-focused.dx-data-row:not(.dx-edit-row) > tr > td:not(.dx-focused) .dx-datagrid-group-opened,
@ -7038,14 +7038,14 @@
}
.dx-datagrid-rowsview .dx-row-focused.dx-data-row:not(.dx-edit-row) > td,
.dx-datagrid-rowsview .dx-row-focused.dx-data-row:not(.dx-edit-row) > tr:last-child > td {
border-bottom: 1px solid #337ab7;
border-bottom: 1px solid #f0f0f0;
}
.dx-datagrid-rowsview .dx-row-focused.dx-data-row:not(.dx-edit-row):not(.dx-row-lines) > td,
.dx-datagrid-rowsview .dx-row-focused.dx-data-row:not(.dx-edit-row):not(.dx-row-lines) > tr:first-child > td {
border-top: 1px solid #337ab7;
border-top: 1px solid #f0f0f0;
}
.dx-datagrid-rowsview .dx-row-focused.dx-group-row {
background-color: #337ab7;
background-color: #f0f0f0;
color: #fff;
}
.dx-datagrid-rowsview .dx-row-focused.dx-group-row .dx-datagrid-group-opened,

2
public_html/assets/css/admin.min.css
File diff suppressed because it is too large
View File

2
public_html/assets/css/admin.min.css.map
File diff suppressed because it is too large
View File

BIN
public_html/assets/images/common/error_arr.png

Before

Width: 19  |  Height: 19  |  Size: 1.1 KiB

BIN
public_html/assets/images/common/error_img.png

Before

Width: 300  |  Height: 300  |  Size: 38 KiB

2
public_html/assets/js/admin.min.js
File diff suppressed because it is too large
View File

2
public_html/assets/js/admin.min.js.map
File diff suppressed because it is too large
View File

1
source.info.json

@ -51,7 +51,6 @@
"_src/admin/js/admin.js",
"_src/admin/js/modules/modal.js",
"_src/admin/js/modules/board.js",
"_src/admin/js/modules/faq.js",
"_src/admin/js/modules/member.js",
"_src/admin/js/modules/datagrid.js"
]

17
wheeparam/application/controllers/Board.php

@ -604,7 +604,7 @@ class Board extends WB_Controller {
$data['post_secret'] = $this->input->post('post_secret', TRUE, 'N') == 'Y' ? "Y":'N';
$data['post_content'] = $this->input->post('post_content', FALSE);
$data['brd_key'] = $brd_key;
$data['post_modtime'] = date('Y-m-d H:i:s');
$data['upd_datetime'] = date('Y-m-d H:i:s');
$data['post_html'] = $this->data['use_wysiwyg'] ? 'Y' : 'N';
$data['post_notice'] = $this->input->post('post_notice', TRUE) == 'Y' ? 'Y' : 'N';
$data['post_ip'] = ip2long( $this->input->ip_address() );
@ -635,15 +635,15 @@ class Board extends WB_Controller {
// 로그인 상태에 따라 값을 수정
if( $this->member->is_login() )
{
$data['mem_userid'] = $this->member->info('userid');
$data['mem_nickname'] = $this->member->info('nickname');
$data['mem_password'] = $this->member->info('password');
$data['upd_user'] = $this->member->info('idx');
$data['post_nickname'] = $this->member->info('nickname');
$data['post_password'] = $this->member->info('password');
}
else
{
$data['mem_userid'] = '';
$data['mem_nickname'] = $this->input->post('mem_nickname', TRUE);
$data['mem_password'] = get_password_hash( $this->input->post('mem_password', TRUE) );
$data['upd_user'] = 0;
$data['post_nickname'] = $this->input->post('mem_nickname', TRUE);
$data['post_password'] = get_password_hash( $this->input->post('mem_password', TRUE) );
}
// 게시판 설정을 이용해서 값 정리
@ -730,10 +730,11 @@ class Board extends WB_Controller {
// 수정이냐 신규냐에 따라 값 설정
if( empty($post_idx) )
{
$data['post_regtime'] = date('Y-m-d H:i:s');
$data['post_status'] = 'Y';
$data['post_count_comment'] = 0;
$data['post_hit'] = 0;
$data['reg_user'] = $data['upd_user'];
$data['reg_datetime'] = $data['upd_datetime'];
// 답글인경우
if(! empty($data['post_parent']))

4
wheeparam/application/controllers/admin/Board.php

@ -8,10 +8,6 @@ class Board extends WB_Controller
*/
public function lists()
{
$this->load->model('board_model');
$this->data['board_list'] = $this->board_model->board_list();
// 메타태그 설정
$this->site->meta_title = "게시판 관리";

15
wheeparam/application/controllers/admin/Management.php

@ -253,12 +253,18 @@ class Management extends WB_Controller {
{
$data['fac_idx'] = $this->input->post('fac_idx', TRUE);
$data['fac_title'] = trim($this->input->post('fac_title', TRUE));
$data['upd_user'] = $this->member->is_login();
$data['upd_datetime'] = date('Y-m-d H:i:s');
$mode = $this->input->post('mode', TRUE);
if( $mode == 'INSERT' )
{
$data['reg_user'] = $data['upd_user'];
$data['reg_datetime'] = $data['upd_datetime'];
// 가장큰 순서값을 가져온다.
$data['fac_sort'] = ((int) $this->db->select_max("fac_sort","max")->where('fac_status','Y')->get('faq_category')->row(0)->max) + 1;
$data['sort'] = ((int) $this->db->select_max("sort","max")->where('fac_status','Y')->get('faq_category')->row(0)->max) + 1;
if(( $exist = $this->faq_model->get_category($data['fac_idx'])) && isset($exist['fac_idx']) )
{
@ -321,6 +327,8 @@ class Management extends WB_Controller {
$data['fac_idx'] = $this->input->post('fac_idx', TRUE);
$data['faq_title'] = $this->input->post('faq_title', TRUE);
$data['faq_content'] = $this->input->post('faq_content', FALSE);
$data['upd_user'] = $this->member->is_login();
$data['upd_datetime'] = date('Y-m-d H:i:s');
if(empty($data['fac_idx']))
{
@ -330,7 +338,10 @@ class Management extends WB_Controller {
if(empty($data['faq_idx']))
{
$data['faq_sort'] = ((int) $this->db->select_max("faq_sort","max")->where('faq_status','Y')->where('fac_idx', $data['fac_idx'])->get('faq')->row(0)->max) + 1;
$data['sort'] = ((int) $this->db->select_max("sort","max")->where('faq_status','Y')->where('fac_idx', $data['fac_idx'])->get('faq')->row(0)->max) + 1;
$data['reg_user'] = $data['upd_user'];
$data['reg_datetime'] = $data['upd_datetime'];
if( ! $this->db->insert("faq", $data) )
{
alert("DB정보 등록에 실패하였습니다.");

22
wheeparam/application/controllers/admin/ajax/Board.php

@ -0,0 +1,22 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
require APPPATH . '/libraries/REST_Controller.php';
class Board extends REST_Controller
{
/********************************************************************
* 게시판 목록 가져오기
*******************************************************************/
function index_get()
{
$return['lists'] =
$this->db
->select('SQL_CALC_FOUND_ROWS *', FALSE)
->order_by('reg_datetime DESC')
->get('board')
->result_array();
$return['totalCount'] = (int)$this->db->query("SELECT FOUND_ROWS() AS cnt")->row(0)->cnt;
$this->response($return, 200);
}
}

76
wheeparam/application/controllers/admin/ajax/Management.php

@ -29,6 +29,82 @@ class Management extends REST_Controller
$this->db->update_batch($table, $update_array, $key);
}
/**********************************************************************
* FAQ 카테고리 삭제
***********************************************************************/
function faq_category_delete()
{
$fac_idx = $this->delete('fac_idx', TRUE);
if (empty($fac_idx)) $this->error_return("FAQ 그룹 고유키값이 없습니다.", 400);
$upd_user = $this->member->is_login();
$upd_datetime = date('Y-m-d H:i:s');
$this->db
->where('fac_idx', $fac_idx)
->set('fac_status','N')
->set('sort','0')
->set('upd_user', $upd_user)
->set('upd_datetime', $upd_datetime)
->update('faq_category');
$this->db
->where('fac_idx', $fac_idx)
->set('faq_status','N')
->set('sort','0')
->set('upd_user', $upd_user)
->set('upd_datetime', $upd_datetime)
->update('faq');
}
/**********************************************************************
* FAQ 목록 가져오기
***********************************************************************/
function faq_get()
{
$this->load->model('faq_model');
$fac_idx = trim($this->get('fac_idx', TRUE));
if (empty($fac_idx)) $this->error_return("FAQ 그룹 고유키값이 없습니다.", 400);
$faq_list = $this->faq_model->get_detail_list($fac_idx);
$this->response($faq_list, 200);
}
function faq_category_get()
{
$this->load->model('faq_model');
$fac_idx = trim($this->get('fac_idx', TRUE));
if (empty($fac_idx)) $this->error_return("FAQ 그룹 고유키값이 없습니다.", 400);
$result = $this->faq_model->get_category($fac_idx);
$this->response($result, 200);
}
/**********************************************************************
* FAQ 삭제
***********************************************************************/
function faq_delete()
{
$this->load->model('faq_model');
$faq_idx = $this->delete('faq_idx', TRUE);
if (empty($faq_idx)) $this->error_return("FAQ 고유키값이 없습니다.", 400);
// 기존 FAQ 값을 불러온다.
$faq = $this->faq_model->get_faq($faq_idx);
$this->db
->where('faq_idx', $faq_idx)
->set('faq_status','N')
->set('upd_user', $this->member->is_login() )
->set('upd_datetime', date('Y-m-d H:i:s'))
->update('faq');
$this->faq_model->update_category_count($faq['fac_idx']);
}
/**
* 팝업 목록
*/

82
wheeparam/application/controllers/ajax/Faq.php

@ -1,82 +0,0 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
require APPPATH . '/libraries/REST_Controller.php';
/**************************************************************
* FAQ API
*************************************************************/
class Faq extends REST_Controller {
function __construct()
{
parent::__construct();
if( !$this->input->is_ajax_request() ) $this->response(["result"=>FALSE,"message"=>langs('공통/msg/invalid_access')], 400);
}
function info_delete()
{
$this->load->model('faq_model');
$faq_idx = $this->delete('faq_idx', TRUE);
if (empty($faq_idx)) $this->error_return("FAQ 고유키값이 없습니다.", 400);
// 기존 FAQ 값을 불러온다.
$faq = $this->faq_model->get_faq($faq_idx);
$this->db->where('faq_idx', $faq_idx)->set('faq_status','N')->update('faq');
$this->faq_model->update_category_count($faq['fac_idx']);
}
function sort_post()
{
$sort_idx = $this->input->post("sort_idx", TRUE);
for($i=1; $i<=count($sort_idx); $i++)
{
$this->db->where("faq_idx", $sort_idx[$i-1]);
$this->db->set("faq_sort", $i);
$this->db->update("faq");
}
}
function category_get()
{
$this->load->model('faq_model');
$fac_idx = trim($this->get('fac_idx', TRUE));
if (empty($fac_idx)) $this->error_return("FAQ 그룹 고유키값이 없습니다.", 400);
$result = $this->faq_model->get_category($fac_idx);
$this->response($result, 200);
}
function category_sort_post()
{
$sort_idx = $this->input->post("sort_idx", TRUE);
for($i=1; $i<=count($sort_idx); $i++)
{
$this->db->where("fac_idx", $sort_idx[$i-1]);
$this->db->set("fac_sort", $i);
$this->db->update("faq_category");
}
}
function category_delete()
{
$fac_idx = $this->delete('fac_idx', TRUE);
if (empty($fac_idx)) $this->error_return("FAQ 그룹 고유키값이 없습니다.", 400);
$this->db->where('fac_idx', $fac_idx)->set('fac_status','N')->set('fac_sort','0')->update('faq_category');
$this->db->where('fac_idx', $fac_idx)->set('faq_status','N')->set('faq_sort','0')->update('faq');
}
function lists_get()
{
$this->load->model('faq_model');
$fac_idx = trim($this->get('fac_idx', TRUE));
if (empty($fac_idx)) $this->error_return("FAQ 그룹 고유키값이 없습니다.", 400);
$faq_list = $this->faq_model->get_detail_list($fac_idx);
$this->response($faq_list, 200);
}
}

1
wheeparam/application/hooks/HookPostControllerConstructor.php

@ -53,6 +53,7 @@ class HookPostControllerConstructor {
$this->CI->load->library('member');
$this->CI->load->library('user_agent');
$this->CI->load->library('banner');
$this->CI->load->library('boardlib');
if( PAGE_ADMIN )
{

46
wheeparam/application/libraries/Boardlib.php

@ -0,0 +1,46 @@
<?php
/*********************************************************************************************************
* Class Boardlib
* ======================================================================================================
*
* 게시판용 라이브러리
*********************************************************************************************************/
class Boardlib {
protected $CI;
function __construct()
{
$this->CI =& get_instance();
}
function initialize($brd_key = "")
{
if(empty($brd_key)) return;
}
/******************************************************************************************************
* 새글이 올라온 게시글 목록을 보여줍니다.
*****************************************************************************************************/
function getNewPostBoards ()
{
$cnt_query =
$this->CI->db
->select('brd_key, COUNT(brd_key) AS new_cnt')
->from('board_post')
->where('reg_datetime >=', date('Y-m-d H:i:s', strtotime('-1 days')))
->where('post_status','Y')
->group_by('brd_key')
->get_compiled_select();
$board_list =
$this->CI->db
->select('B.*, IF(ISNULL(BC.new_cnt), 0, new_cnt) AS new_cnt')
->from('board AS B')
->join("($cnt_query) AS BC", 'BC.brd_key=B.brd_key','left')
->get()
->result_array();
return $board_list;
}
}

33
wheeparam/application/libraries/Site.php

@ -64,6 +64,38 @@ class Site {
$CI->cache->save($menu_key, $menu_list);
}
foreach($menu_list as &$menu1) {
$menu1['active'] = $CI->active == $menu1['mnu_active_key'];
foreach($menu1['children'] as &$mnu2)
{
$mnu2['active'] = $CI->active == $mnu2['mnu_active_key'];
foreach($mnu2['children'] as &$mnu3)
{
$mnu3['active'] = $CI->active == $mnu3['mnu_active_key'];
if( $mnu3['active'] ) {
$mnu2['active'] = TRUE;
$menu1['active'] = TRUE;
break;
}
}
if($CI->active == $mnu2['mnu_active_key'] )
{
$mnu2['active'] = TRUE;
$menu1['active'] = TRUE;
}
}
if( $CI->active == $menu1['mnu_active_key'] )
{
$menu1['active'] = TRUE;
}
}
//print_r2($menu_list);
return $menu_list;
}
@ -73,6 +105,7 @@ class Site {
$return = array();
foreach($array as $arr) {
$arr['active'] = FALSE;
if( $arr['mnu_parent'] == $parent_id ) {
$children = $this->menu_arrange( $array, $arr['mnu_idx'] );
if( $children ) {

15
wheeparam/application/models/Board_model.php

@ -30,7 +30,7 @@ class Board_model extends WB_Model
$param['from'] = "board_post AS P";
$param['where']['post_notice'] = "Y";
$param['join'][] = array("board_category AS PC","PC.bca_idx=P.bca_idx","left");
$param['join'][] = array("member AS M", "M.mem_userid=P.mem_userid","left");
$param['join'][] = array("member AS M", "M.mem_idx=P.upd_user","left");
$param['limit'] = FALSE;
$notice_list = array();
@ -421,19 +421,6 @@ class Board_model extends WB_Model
return $return;
}
/**
* 게시판 목록을 가져온다.
*/
function board_list()
{
$param['from'] = "board";
$param['order_by'] = "brd_sort ASC";
$param['limit'] = FALSE;
$result = $this->get_list($param);
return $result;
}
/**
* 게시판 하나의 정보를 가져온다.
* @param $brd_key

8
wheeparam/application/models/Faq_model.php

@ -27,7 +27,7 @@ class Faq_model extends WB_Model {
$param['from'] = "faq_category";
$param['limit'] = FALSE;
$param['where']['fac_status'] = "Y";
$param['order_by'] = "fac_sort ASC";
$param['order_by'] = "sort ASC";
return $this->get_list($param);
}
@ -62,13 +62,15 @@ class Faq_model extends WB_Model {
function get_detail_list($fac_idx="")
{
$param['from'] = "faq";
$param['select'] = 'F.*, M.mem_nickname AS upd_username';
$param['from'] = "faq AS F";
$param['join'][] = array('member AS M','M.mem_idx=F.upd_user','left');
if($fac_idx)
{
$param['where']['fac_idx'] = $fac_idx;
}
$param['where']['faq_status'] = "Y";
$param['order_by'] = "faq_sort ASC";
$param['order_by'] = "sort ASC";
return $this->get_list($param);
}

60
wheeparam/config/wheeparam.sql

@ -92,20 +92,16 @@ CREATE TABLE `wb_board` (
`brd_lv_reply` tinyint(3) unsigned NOT NULL DEFAULT 0,
`brd_lv_comment` tinyint(3) unsigned NOT NULL DEFAULT 0,
`brd_lv_download` tinyint(3) unsigned NOT NULL DEFAULT 0,
`brd_lv_upload` tinyint(3) unsigned NOT NULL DEFAULT 0,
`brd_use_anonymous` enum('Y','N','A') NOT NULL DEFAULT 'N',
`brd_category` varchar(255) NOT NULL DEFAULT '',
`brd_use_category` enum('Y','N') NOT NULL DEFAULT 'Y',
`brd_use_secret` enum('Y','N','A') NOT NULL DEFAULT 'Y',
`brd_use_reply` enum('Y','N') NOT NULL DEFAULT 'Y',
`brd_use_comment` enum('Y','N') NOT NULL DEFAULT 'Y',
`brd_use_attach` enum('Y','N') NOT NULL DEFAULT 'Y',
`brd_use_wysiwyg` enum('Y','N') NOT NULL DEFAULT 'Y',
`brd_use_list_thumbnail` enum('Y','N') NOT NULL DEFAULT 'N',
`brd_use_list_file` enum('Y','N') NOT NULL DEFAULT 'N',
`brd_use_view_list` enum('Y','N') NOT NULL DEFAULT 'N',
`brd_use_assign` enum('Y','N') NOT NULL DEFAULT 'N',
`brd_thumb_width` int(10) unsigned NOT NULL DEFAULT 0,
`brd_thumb_height` int(10) unsigned NOT NULL DEFAULT 0,
`brd_thumb_width` smallint(5) unsigned NOT NULL DEFAULT 0,
`brd_thumb_height` smallint(5) unsigned NOT NULL DEFAULT 0,
`brd_use_rss` enum('Y','N') NOT NULL DEFAULT 'Y',
`brd_use_total_rss` enum('Y','N') NOT NULL DEFAULT 'Y',
`brd_use_sitemap` enum('Y','N') NOT NULL DEFAULT 'Y',
@ -131,6 +127,10 @@ CREATE TABLE `wb_board` (
`brd_keywords` varchar(255) NOT NULL,
`brd_description` text NOT NULL,
`brd_blind_nickname` enum('Y','N') NOT NULL DEFAULT 'N',
`reg_user` int(10) unsigned NOT NULL DEFAULT 0,
`reg_datetime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`upd_user` int(10) unsigned NOT NULL DEFAULT 0,
`upd_datetime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`brd_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
@ -169,28 +169,26 @@ CREATE TABLE `wb_board_comment` (
DROP TABLE IF EXISTS `wb_board_post`;
CREATE TABLE `wb_board_post` (
`post_idx` int(10) unsigned NOT NULL AUTO_INCREMENT,
`post_num` int(10) unsigned NOT NULL DEFAULT '0',
`post_parent` int(10) unsigned NOT NULL DEFAULT '0',
`post_num` int(10) unsigned NOT NULL DEFAULT 0,
`post_parent` int(10) unsigned NOT NULL DEFAULT 0,
`post_reply` varchar(10) NOT NULL DEFAULT '',
`brd_key` varchar(20) NOT NULL DEFAULT '',
`bca_idx` int(10) unsigned NOT NULL DEFAULT '0',
`bca_idx` int(10) unsigned NOT NULL DEFAULT 0,
`post_title` varchar(255) NOT NULL DEFAULT '',
`post_thumbnail` varchar(255) NOT NULL DEFAULT '' COMMENT '썸네일 파일',
`post_content` longtext NOT NULL,
`post_status` enum('Y','N','B') NOT NULL DEFAULT 'Y',
`mem_userid` varchar(100) NOT NULL DEFAULT '',
`mem_nickname` varchar(20) NOT NULL DEFAULT '',
`mem_password` char(32) DEFAULT NULL,
`post_regtime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`post_modtime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`post_count_comment` int(10) unsigned NOT NULL DEFAULT '0',
`post_recent_comment` datetime DEFAULT NULL,
`post_nickname` varchar(20) NOT NULL DEFAULT '',
`post_password` char(32) NOT NULL DEFAULT '',
`post_count_comment` int(10) unsigned NOT NULL DEFAULT 0,
`post_recent_comment` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`post_secret` enum('Y','N') NOT NULL DEFAULT 'N',
`post_html` enum('Y','N') NOT NULL DEFAULT 'Y',
`post_notice` enum('Y','N') NOT NULL DEFAULT 'N',
`post_hit` int(10) unsigned NOT NULL DEFAULT '0',
`post_hit` int(10) unsigned NOT NULL DEFAULT 0,
`post_mobile` enum('Y','N') NOT NULL DEFAULT 'N',
`post_assign` enum('Y','N') NOT NULL DEFAULT 'Y',
`post_ip` int(10) unsigned NOT NULL DEFAULT '0',
`post_ip` int(10) unsigned NOT NULL DEFAULT 0,
`post_keywords` varchar(255) NOT NULL,
`post_ext1` text NOT NULL,
`post_ext2` text NOT NULL,
@ -201,6 +199,10 @@ CREATE TABLE `wb_board_post` (
`post_ext7` text NOT NULL,
`post_ext8` text NOT NULL,
`post_ext9` text NOT NULL,
`reg_user` int(10) unsigned NOT NULL DEFAULT 0,
`reg_datetime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`upd_user` int(10) unsigned NOT NULL DEFAULT 0,
`upd_datetime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`post_idx`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
@ -268,8 +270,12 @@ CREATE TABLE `wb_faq` (
`fac_idx` varchar(20) NOT NULL,
`faq_status` enum('Y','N') NOT NULL DEFAULT 'Y',
`faq_title` varchar(255) NOT NULL,
`faq_content` mediumtext,
`faq_sort` int(10) unsigned NOT NULL DEFAULT '0',
`faq_content` mediumtext DEFAULT NULL,
`sort` int(10) unsigned NOT NULL DEFAULT 0,
`reg_user` int(10) unsigned NOT NULL DEFAULT 0,
`reg_datetime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`upd_user` int(10) unsigned NOT NULL DEFAULT 0,
`upd_datetime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`faq_idx`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
@ -279,8 +285,12 @@ CREATE TABLE `wb_faq_category` (
`fac_idx` varchar(20) NOT NULL,
`fac_title` varchar(255) NOT NULL,
`fac_status` enum('Y','N') NOT NULL DEFAULT 'Y',
`fac_count` int(10) unsigned NOT NULL DEFAULT '0',
`fac_sort` int(10) unsigned NOT NULL DEFAULT '0',
`fac_count` int(10) unsigned NOT NULL DEFAULT 0,
`sort` int(10) unsigned NOT NULL DEFAULT 0,
`reg_user` int(10) unsigned NOT NULL DEFAULT 0,
`reg_datetime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`upd_user` int(10) unsigned NOT NULL DEFAULT 0,
`upd_datetime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`fac_idx`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
@ -650,7 +660,3 @@ Create Table `wb_uniqid` (
`uq_ip` int(10) unsigned NOT NULL,
PRIMARY KEY (`uq_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
# VIEW 생성
CREATE ALGORITHM=UNDEFINED SQL SECURITY DEFINER VIEW `wb_board_post_new` AS (SELECT `wb_board_post`.`brd_key` AS `brd_key`, count(*) AS `new_cnt` from `wb_board_post` where ((`wb_board_post`.`post_regtime` > (now() + interval - (24)hour)) and (`wb_board_post`.`post_status` = 'Y')) group by `wb_board_post`.`brd_key`);

78
wheeparam/views/errors/html/error_404.php

@ -1,78 +1,24 @@
<!DOCTYPE html>
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?><!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="utf-8">
<title>404 Page Not Found</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://fonts.googleapis.com/css?family=Nunito" rel="stylesheet">
<style type="text/css">
::selection { background-color: #E13300; color: white; }
::-moz-selection { background-color: #E13300; color: white; }
body {
background-color: #fff;
margin: 60px 40px;
font: 13px/20px normal Helvetica, Arial, sans-serif;
color: #4F5155;
}
.error_contents {display:table; margin:0 auto; border:1px solid #eee;}
.error_contents .img-responsive {display: table-cell; vertical-align: middle;}
.error_contents .text-box{display: table-cell; vertical-align: middle; }
.error_contents h2 {font-size:50px; line-height:1.35; padding-right:40px;}
.error_contents h2 > strong {color:#d6040d;}
.img-responsive {max-width:100%;}
a.button{
background-color: #f7f7f7;
color: #747474;
display: inline-block;
margin-bottom: 15px;
cursor: pointer;
border: 0;
-webkit-border-radius: 5px;
border-radius: 5px;
position: relative;
overflow: hidden;
-webkit-box-shadow: inset 0 0 0 1px rgba(0,0,0,.03);
box-shadow: inset 0 0 0 1px rgba(0,0,0,.03);
background-image: url('/assets/images/common/box_shadow_button.png');
background-repeat: repeat-x;
}
a.button .button_icon {
display: block;
float: left;
background: rgba(0,0,0,.05);
padding:11px 11px;
}
a.button .button_label {
display: block;
float: left;
position: relative;
z-index: 2;
padding:11px 20px;
}
@media (max-width: 800px) {
.error_contents .img-responsive {display: table; vertical-align: middle;}
.error_contents .text-box{display: table; vertical-align: middle; margin:0 auto; }
.error_contents h2 {font-size:24px; line-height:1.35; padding-right:0px; text-align:center; text-align: center;}
}
html, body { background-color: #fff; margin:0; font-family: Nunito, sans-serif; color: #636b6f; height:100vh; }
.error-wrap {height: 100vh;display:-ms-flex;display:-webkit-flex; display:flex;justify-content:center;align-items: center;position:relative;}
.error-wrap .code {border-right:2px solid; font-size:26px; padding:0 15px; text-align:center;}
.error-wrap .message {padding:10px; font-size:18px; text-align: center}
</style>
</head>
<body>
<article class="container" id="container">
<div class="error_contents">
<img src="/assets/images/common/error_img.png" alt="" class="img-responsive">
<div class="text-box">
<h2><strong>404</strong><br>Page Not Found</h2>
<a class="button button_left button_size_2 button_js kill_the_icon" href="https://www.wheeparam.com/">
<span class="button_icon"><img src="/assets/images/common/error_arr.png" alt="" class="img-responsive"></span>
<span class="button_label">HOME</span>
</a>
</div>
</div>
</article>
<div class="error-wrap">
<div class="code">404</div>
<div class="message">Not Found</div>
</div>
</body>
</html>

74
wheeparam/views/errors/html/error_db.php

@ -1,64 +1,26 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?><?php
defined('BASEPATH') OR exit('No direct script access allowed');
?><!DOCTYPE html>
<html lang="en">
<html lang="ko">
<head>
<meta charset="utf-8">
<title>Database Error</title>
<style type="text/css">
::selection { background-color: #E13300; color: white; }
::-moz-selection { background-color: #E13300; color: white; }
body {
background-color: #fff;
margin: 40px;
font: 13px/20px normal Helvetica, Arial, sans-serif;
color: #4F5155;
}
a {
color: #003399;
background-color: transparent;
font-weight: normal;
}
h1 {
color: #444;
background-color: transparent;
border-bottom: 1px solid #D0D0D0;
font-size: 19px;
font-weight: normal;
margin: 0 0 14px 0;
padding: 14px 15px 10px 15px;
}
code {
font-family: Consolas, Monaco, Courier New, Courier, monospace;
font-size: 12px;
background-color: #f9f9f9;
border: 1px solid #D0D0D0;
color: #002166;
display: block;
margin: 14px 0 14px 0;
padding: 12px 10px 12px 10px;
}
#container {
margin: 10px;
border: 1px solid #D0D0D0;
box-shadow: 0 0 8px #D0D0D0;
}
p {
margin: 12px 15px 12px 15px;
}
</style>
<meta charset="utf-8">
<title>404 Page Not Found</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://fonts.googleapis.com/css?family=Nunito" rel="stylesheet">
<style type="text/css">
html, body { background-color: #fff; margin:0; font-family: Nunito, sans-serif; color: #636b6f; height:100vh; }
.error-wrap {height: 100vh;display:-ms-flex;display:-webkit-flex; display:flex;justify-content:center;align-items: center;position:relative; flex-direction: column}
.error-wrap .code {font-size:26px; padding:0 15px; text-align:center;}
.error-wrap .message {padding:10px; font-size:14px; text-align: left}
</style>
</head>
<body>
<div id="container">
<h1><?php echo $heading; ?></h1>
<?php echo $message; ?>
</div>
<div class="error-wrap">
<div class="code"><?php echo $heading; ?></div>
<div class="message"><?php echo $message; ?></div>
</div>
</body>
</html>

14
wheeparam/views/themes/admin/board/category.php

@ -15,16 +15,16 @@
<li>
<div>
<?=$board['brd_title']?>
<button type="button" class="btn btn-xs btn-default" onclick="APP.BOARD.CATEGORY.form('<?=$board['brd_key']?>',0)"><i class="far fa-plus-circle"></i></button>
<button type="button" class="btn btn-xs btn-default" onclick="APP.BOARD.CATEGORY.form('<?=$board['brd_key']?>',0)"><i class="fal fa-plus-circle"></i></button>
</div>
<ul id="category-list">
<?php foreach($board['category'] as $cate) : ?>
<li data-idx="<?=$cate['bca_idx']?>">
<div>
<i class="far fa-folder-open"></i> <span class="move-item"><?=$cate['bca_name']?></span>
<button type="button" class="btn btn-xs btn-default" onclick="APP.BOARD.CATEGORY.form('<?=$board['brd_key']?>', <?=$cate['bca_idx']?>)"><i class="far fa-plus-circle"></i></button>
<button type="button" class="btn btn-xs btn-default" onclick="APP.BOARD.CATEGORY.form('<?=$board['brd_key']?>', 0,<?=$cate['bca_idx']?>)"><i class="far fa-pencil"></i></button>
<button type="button" class="btn btn-xs btn-danger" onclick="APP.BOARD.CATEGORY.remove('<?=$cate['bca_idx']?>')"><i class="far fa-trash"></i></button>
<i class="fal fa-folder-open"></i> <span class="move-item"><?=$cate['bca_name']?></span>
<button type="button" class="btn btn-xs btn-default" onclick="APP.BOARD.CATEGORY.form('<?=$board['brd_key']?>', <?=$cate['bca_idx']?>)"><i class="fal fa-plus-circle"></i></button>
<button type="button" class="btn btn-xs btn-default" onclick="APP.BOARD.CATEGORY.form('<?=$board['brd_key']?>', 0,<?=$cate['bca_idx']?>)"><i class="fal fa-pencil"></i></button>
<button type="button" class="btn btn-xs btn-danger" onclick="APP.BOARD.CATEGORY.remove('<?=$cate['bca_idx']?>')"><i class="fal fa-trash"></i></button>
</div>
<ul class="items">
@ -32,8 +32,8 @@
<li data-idx="<?=$ct['bca_idx']?>">
<div>
<span class="move-item"><?=$ct['bca_name']?></span>
<button type="button" class="btn btn-xs btn-default" onclick="APP.BOARD.CATEGORY.form('<?=$board['brd_key']?>', <?=$cate['bca_idx']?>, <?=$ct['bca_idx']?>)"><i class="far fa-pencil"></i></button>
<button type="button" class="btn btn-xs btn-danger" onclick="APP.BOARD.CATEGORY.remove('<?=$ct['bca_idx']?>')"><i class="far fa-trash"></i></button>
<button type="button" class="btn btn-xs btn-default" onclick="APP.BOARD.CATEGORY.form('<?=$board['brd_key']?>', <?=$cate['bca_idx']?>, <?=$ct['bca_idx']?>)"><i class="fal fa-pencil"></i></button>
<button type="button" class="btn btn-xs btn-danger" onclick="APP.BOARD.CATEGORY.remove('<?=$ct['bca_idx']?>')"><i class="fal fa-trash"></i></button>
</div>
</li>
<?php endforeach;?>

2
wheeparam/views/themes/admin/board/category_form.php

@ -10,6 +10,6 @@
</div>
<div class="H10"></div>
<div class="text-center">
<button class="btn btn-primary"><i class="far fa-save"></i> 저장하기</button>
<button class="btn btn-primary"><i class="fal fa-save"></i> 저장하기</button>
</div>
<?=form_close()?>

10
wheeparam/views/themes/admin/board/form.php

@ -25,7 +25,7 @@
<div class="controls">
<input class="form-control form-control-inline" maxlength="20" name="brd_key" value="<?=element('brd_key', $view)?>" <?=$brd_key?'readonly':'required'?>>
<?php if (empty($brd_key)) : ?>
<button type="button" class="btn btn-default ML10" id="btn-check-brd-key"><i class="far fa-check"></i> 중복 확인</button>
<button type="button" class="btn btn-default ML10" id="btn-check-brd-key"><i class="fal fa-check"></i> 중복 확인</button>
<?php endif;?>
</div>
</div>
@ -170,7 +170,7 @@
<h4 class="panel-title">게시판 권한 설정</h4>
</div>
<div class="panel-body">
<p class="alert alert-info"><i class="far fa-info-circle"></i> 레벨0은 비회원을 의미합니다.</p>
<p class="alert alert-info"><i class="fal fa-info-circle"></i> 레벨0은 비회원을 의미합니다.</p>
<div class="form-group">
<label class="control-label">목록 보기</label>
<div class="controls">
@ -249,7 +249,7 @@
<h4 class="panel-title"> 목록 설정</h4>
</div>
<div class="panel-body">
<p class="alert alert-info"><i class="far fa-info-circle"></i> 갤러리 형식의 게시판에서는 '목록에서 썸내일 불러오기' / '목록에서 첨부파일 불러오기' 활성화 하세요.</p>
<p class="alert alert-info"><i class="fal fa-info-circle"></i> 갤러리 형식의 게시판에서는 '목록에서 썸내일 불러오기' / '목록에서 첨부파일 불러오기' 활성화 하세요.</p>
<div class="form-group">
<label class="control-label">썸네일 생성하기</label>
<div class="controls">
@ -437,9 +437,9 @@
</div>
<div class="panel-body">
<?php if($this->site->config('point_use') == 'Y') :?>
<p class="alert alert-info"><i class="far fa-info-circle"></i> <?=$this->site->config('point_name')?> 지급은 +값, <?=$this->site->config('point_name')?> 차감은 -값을 입력합니다.<br><i class="far fa-info-circle"></i> 포인트 차감이 설정된 경우 강제로 회원전용 기능으로 전환합니다.</p>
<p class="alert alert-info"><i class="fal fa-info-circle"></i> <?=$this->site->config('point_name')?> 지급은 +값, <?=$this->site->config('point_name')?> 차감은 -값을 입력합니다.<br><i class="fal fa-info-circle"></i> 포인트 차감이 설정된 경우 강제로 회원전용 기능으로 전환합니다.</p>
<?php else :?>
<p class="alert alert-info"><i class="far fa-info-circle"></i> <?=$this->site->config('point_name')?> 기능을 사용 하는경우만 아래 옵션이 활성화 됩니다.</p>
<p class="alert alert-info"><i class="fal fa-info-circle"></i> <?=$this->site->config('point_name')?> 기능을 사용 하는경우만 아래 옵션이 활성화 됩니다.</p>
<?php endif;?>
<div class="form-group">
<label class="control-label">글쓰기</label>

217
wheeparam/views/themes/admin/board/lists.php

@ -1,91 +1,152 @@
<div class="page-header">
<div class="page-header" data-fit-aside>
<h1 class="page-title">게시판 관리</h1>
</div>
<div class="grid">
<table>
<thead>
<tr>
<th>번호</th>
<th>고유키</th>
<th>게시판 이름</th>
<th>목록 스킨</th>
<th>페이지당 </th>
<th>등록된 </th>
<th>카테고리</th>
<th>답글</th>
<th>댓글</th>
<th>목록</th>
<th>첨부파일</th>
<th>내용</th>
<th>쓰기</th>
<th>관리</th>
</tr>
</thead>
<tbody>
<?php foreach($board_list['list'] as $brd) :?>
<tr>
<td class="text-center"><?=$brd['nums']?></td>
<td class="text-center"><?=$brd['brd_key']?></td>
<td class="text-center"><?=$brd['brd_title']?><a class="btn btn-default btn-xs ML10" data-toggle="tooltip" title="게시판 바로가기" target="_blank" href="<?=base_url('board/'.$brd['brd_key'])?>"><i class="fal fa-external-link-square"></i></a></td>
<td class="text-center"><?=$brd['brd_skin_l']?></td>
<td class="text-center"><?=$brd['brd_page_limit']=='Y'?$brd['brd_page_rows']:'미사용'?></td>
<td class="text-center"><?=number_format($brd['brd_count_post'])?></td>
<td class="text-center"><?=$brd['brd_use_category']=='Y'?'사용':'미사용'?></td>
<td class="text-center"><?=$brd['brd_use_reply']=='Y'?'사용':'미사용'?></td>
<td class="text-center"><?=$brd['brd_use_comment']=='Y'?'사용':'미사용'?></td>
<td class="text-center"><?=$brd['brd_use_attach']=='Y'?'사용':'미사용'?></td>
<td class="text-center"><?=$brd['brd_lv_list']?></td>
<td class="text-center"><?=$brd['brd_lv_read']?></td>
<td class="text-center"><?=$brd['brd_lv_write']?></td>
<td class="text-center">
<?php if($brd['brd_use_category']=='Y') :?>
<a class="btn btn-default btn-xs" href="<?=base_url('admin/board/category/'.$brd['brd_key'])?>" data-toggle="tooltip" title="카테고리 관리"><i class="far fa-sitemap"></i></a>
<?php endif;?>
<button class="btn btn-default btn-xs" data-button="copy-board" data-key="<?=$brd['brd_key']?>" data-toggle="tooltip" title="게시판 복사"><i class="far fa-copy"></i></button>
<a class="btn btn-default btn-xs" href="<?=base_url('admin/board/form/'.$brd['brd_key'])?>" data-toggle="tooltip" title="정보 수정"><i class="far fa-pencil"></i></a>
<a class="btn btn-danger btn-xs" href="<?=base_url('admin/board/remove/'.$brd['brd_key'])?>" onclick="return confirm('해당 게시판을 삭제하시겠습니까?');" data-toggle="tooltip" title="게시판 삭제"><i class="far fa-trash"></i></a>
</td>
</tr>
<?php endforeach;?>
<?php if(count($board_list['list']) == 0) :?>
<tr>
<td colspan="14" class="empty">등록된 게시판이 없습니다.</td>
</tr>
<?php endif;?>
</tbody>
</table>
<div class="ax-button-group" data-fit-aside>
<button type="button" class="btn btn-primary" onclick="grid.form();"><i class="fal fa-plus"></i> 게시판 신규등록</button>
</div>
<div class="ax-button-group ax-button-group-bottom">
<div class="right">
<a href="<?=base_url('admin/board/form')?>" class="btn btn-default"><i class="far fa-plus-circle"></i> 게시판 추가하기</a>
</div>
<div class="grid-wrapper" data-fit-content>
<div id="grid-container" class="grid-container"></div>
</div>
<script>
$(document).ready(function(){
$('[data-toggle="tooltip"]').tooltip();
var grid = new GRID('#grid-container', {
columns: [
{caption:'고유KEY', dataField:'brd_key', width:80, alignment:'left'},
{caption:'게시판이름', dataField:'brd_title', minWidth:100, alignment:'left'},
{
caption:'스킨',
columns: [
{caption:'목록', dataField:'brd_skin_l', width:80, alignment:'left'},
{caption:'목록(M)', dataField:'brd_skin_l_m', width:80, alignment:'left'},
{caption:'글쓰기', dataField:'brd_skin_w', width:80, alignment:'left'},
{caption:'글쓰기(M)', dataField:'brd_skin_w_m', width:80, alignment:'left'},
{caption:'글보기', dataField:'brd_skin_v', width:80, alignment:'left'},
{caption:'글보기(M)', dataField:'brd_skin_v_m', width:80, alignment:'left'},
{caption:'댓글', dataField:'brd_skin_c', width:80, alignment:'left'},
{caption:'댓글 (M)', dataField:'brd_skin_c_m', width:80, alignment:'left'},
]
},
{caption:'목록개수', dataField:'brd_page_rows', width:60, alignment:'right', dataType:'number', format:'fixedPoint'},
{caption:'현재글수', dataField:'brd_count_post', width:60, alignment:'right', dataType:'number', format:'fixedPoint'},
{
caption:'기능사용',
columns: [
{caption:'카테고리', dataField:'brd_use_category', alignment:'center', width:60, customizeText:function(cell){return cell.value == 'Y'?'사용':''}},
{caption:'답글기능', dataField:'brd_use_reply', alignment:'center', width:60, customizeText:function(cell){return cell.value == 'Y'?'사용':''}},
{caption:'댓글기능', dataField:'brd_use_comment', alignment:'center', width:60, customizeText:function(cell){return cell.value == 'Y'?'사용':''}},
{caption:'익명', dataField:'brd_use_category', alignment:'center', width:60, customizeText:function(cell){return cell.value == 'Y'?'사용':(cell.value == 'A'?'강제사용':'')}},
{caption:'비밀글', dataField:'brd_use_category', alignment:'center', width:60, customizeText:function(cell){return cell.value == 'Y'?'사용':(cell.value == 'A'?'강제사용':'')}},
{caption:'첨부파일', dataField:'brd_use_attach', alignment:'center', width:60, customizeText:function(cell){return cell.value == 'Y'?'사용':''}},
{caption:'이름가리기', dataField:'brd_blind_nickname', alignment:'center', width:75, customizeText:function(cell){return cell.value == 'Y'?'사용':''}},
]
},
{
caption:'권한레벨',
columns: [
{caption:'목록', dataField:'brd_lv_list', width:60, alignment:'right', dataType:'number', format:'fixedPoint'},
{caption:'글쓰기', dataField:'brd_lv_write', width:60, alignment:'right', dataType:'number', format:'fixedPoint'},
{caption:'글보기', dataField:'brd_lv_read', width:60, alignment:'right', dataType:'number', format:'fixedPoint'},
{caption:'답글', dataField:'brd_lv_reply', width:60, alignment:'right', dataType:'number', format:'fixedPoint'},
{caption:'댓글', dataField:'brd_lv_comment', width:60, alignment:'right', dataType:'number', format:'fixedPoint'},
{caption:'다운로드', dataField:'brd_lv_download', width:60, alignment:'right', dataType:'number', format:'fixedPoint'},
]
},
],
dataSource: new DevExpress.data.DataSource({
key : 'brd_key',
load: function(loadOptions) {
var d = $.Deferred();
var params = grid.getSearchParam(loadOptions);
$.ajax({
url : base_url + '/admin/ajax/board',
type: 'GET',
async: false,
cache: false,
data: params
}).done(function(res) {
d.resolve(res.lists, {
totalCount : res.totalCount
});
});
$('[data-button="copy-board"]').click(function(){
var brd_key = $(this).data('key');
APP.MODAL.callback = function() {
location.reload();
};
APP.MODAL.open({
iframe : {
url : '/admin/board/board_copy/'+brd_key,
param : {
brd_key : brd_key
return d.promise();
}
}),
onRowDblClick: function(e) {
grid.form(e.data.brd_key);
},
onContextMenuPreparing: function(e) {
if (e.row.rowType === "data") {
e.items = [
{
icon: 'edit',
text: '정보 수정',
onItemClick: function () {
grid.form(e.row.data.brd_key);
}
},
{
icon: 'edit',
text: '게시판복사',
onItemClick: function () {
grid.copy_board(e.row.data.brd_key);
}
},
{
icon : 'trash',
text: "삭제",
onItemClick: function () {
grid.delete(e.row.data);
}
}
},
header : {
title : '게시판 복사하기'
},
width:400,
height:300
});
]
}
},
});
grid.form = function(brd_key) {
brd_key = typeof brd_key != 'undefined' && brd_key ? brd_key : '';
APP.MODAL.callback = function() {
APP.MODAL.close();
grid.refresh();
}
APP.MODAL.open({
iframe: {
url :base_url + '/admin/board/form/' + brd_key
},
width: 940,
height: 600,
header: {
title: '게시판 정보 입력'
}
})
};
grid.copy_board = function(brd_key) {
APP.MODAL.callback = function() {
APP.MODAL.close();
grid.refresh();
};
APP.MODAL.open({
iframe : {
url : base_url + '/admin/board/board_copy/'+brd_key,
param : {
brd_key : brd_key
}
},
header : {
title : '게시판 복사하기'
},
width:400,
height:300
});
};
$(function() {
grid.init();
});
</script>

58
wheeparam/views/themes/admin/board/posts.php

@ -1,7 +1,57 @@
<div class="page-header" data-fit-aside>
<h1 class="page-title"><?=$board['brd_title']?></h1>
</div>
<form data-grid-search onsubmit="grid.refresh(1);return false;" data-fit-aside autocomplete="off">
<div data-ax-tbl>
<div data-ax-tr>
<div data-ax-td>
<div data-ax-td-label>작성 기간 검색</div>
<div data-ax-td-wrap>
<input class="form-control" data-chained-datepicker="[name='enddate']" name="startdate" data-toggle="datepicker" value="">
</div>
<div data-ax-td-wrap>
<input class="form-control" name="enddate" data-toggle="datepicker" value="">
</div>
</div>
<div data-ax-td>
<div data-ax-td-label>검색어 입력</div>
<div data-ax-td-wrap>
<select class="form-control form-control-inline" name="sc">
<option value="post_title">질문 제목</option>
<option value="qna_name">작성자</option>
<option value="qna_phone">연락처</option>
<option value="qna_email">이메일</option>
</select>
</div>
</div>
<div data-ax-td>
<div data-ax-td-wrap>
<input class="form-control" name="st" value="">
</div>
<div data-ax-td-wrap>
<button class="btn btn-default btn-sm"><i class="fal fa-search"></i> 필터적용</button>
</div>
</div>
<div data-ax-td class="right">
<div data-ax-td-wrap>
<button type="button" class="btn btn-default btn-sm" data-button="qna-category"><i class="fal fa-sitemap"></i> Q&amp;A 유형 관리</button>
</div>
</div>
</div>
</div>
</form>
<div class="ax-button-gorup" data-fit-aside>
</div>
<div class="container">
<div class="ax-button-group">
<div class="left">
<h2><?=$board['brd_title']?></h2>
<h2></h2>
</div>
</div>
<div class="grid">
@ -33,7 +83,7 @@
<?php if($row['is_new']) :?><label class="label label-warning ML10">NEW</label><?php endif;?>
<?php if($row['is_hot']) :?><label class="label label-danger ML10">HIT</label><?php endif;?>
<?php if($row['post_count_comment']>0) :?><small>(<?=$row['post_count_comment']?>)</small><?php endif;?>
<?php if($row['is_secret']) :?><i class="far fa-lock"></i><?php endif;?>
<?php if($row['is_secret']) :?><i class="fal fa-lock"></i><?php endif;?>
</td>
<td class="text-center"><?=$row['mem_nickname']?></td>
<td class="text-center"><?=$row['post_regtime']?></td>
@ -65,9 +115,9 @@
<div class="clearfix"></div>
</div>
<div class="MT10">
<button type="button" class="btn btn-danger" data-button="btn-remove-posts"><i class="far fa-trash"></i> 선택 삭제</button>
<button type="button" class="btn btn-danger" data-button="btn-remove-posts"><i class="fal fa-trash"></i> 선택 삭제</button>
<div class="pull-right">
<a class="btn btn-primary" href="<?=base_url("admin/board/write/{$board['brd_key']}")?>"><i class="far fa-pencil"></i> 작성</a>
<a class="btn btn-primary" href="<?=base_url("admin/board/write/{$board['brd_key']}")?>"><i class="fal fa-pencil"></i> 작성</a>
</div>
<div class="clearfix"></div>
</div>

10
wheeparam/views/themes/admin/board/read.php

@ -53,7 +53,7 @@
<div data-ax-td-wrap>
<ul class="list-group" style="margin-bottom:0px;">
<?php foreach($view['file'] as $f) :?>
<li class="list-group-item"><a href="<?=$f['link']?>"><i class="far fa-download"></i> <?=$f['att_origin']?> (<?=format_size($f['att_filesize'])?>)</a></li>
<li class="list-group-item"><a href="<?=$f['link']?>"><i class="fal fa-download"></i> <?=$f['att_origin']?> (<?=format_size($f['att_filesize'])?>)</a></li>
<?php endforeach;?>
</ul>
</div>
@ -85,13 +85,13 @@
<?php if( $board['brd_use_reply'] == 'Y' ):?>
<a href="<?=base_url("admin/board/write/{$board['brd_key']}/?post_parent={$view['post_idx']}")?>" class="btn btn-default">답글</a>
<?php endif;?>
<a href="<?=base_url("admin/board/write/{$board['brd_key']}/{$view['post_idx']}")?>" class="btn btn-default"><i class="far fa-pencil"></i> 수정</a>
<button type="button" class="btn btn-danger" data-button="btn-remove-posts"><i class="far fa-trash"></i> 선택 삭제</button>
<a href="<?=base_url("admin/board/write/{$board['brd_key']}/{$view['post_idx']}")?>" class="btn btn-default"><i class="fal fa-pencil"></i> 수정</a>
<button type="button" class="btn btn-danger" data-button="btn-remove-posts"><i class="fal fa-trash"></i> 선택 삭제</button>
<?php if( $board['brd_use_assign'] == 'Y' ):?>
<?php if($view['post_assign'] == 'Y') :?>
<button type="button" class="btn btn-default" data-button="btn-assign" data-value="N"><i class="far fa-ban"></i> 승인 취소</button>
<button type="button" class="btn btn-default" data-button="btn-assign" data-value="N"><i class="fal fa-ban"></i> 승인 취소</button>
<?php else :?>
<button type="button" class="btn btn-default" data-button="btn-assign" data-value="Y"><i class="far fa-check"></i> 승인 처리</button>
<button type="button" class="btn btn-default" data-button="btn-assign" data-value="Y"><i class="fal fa-check"></i> 승인 처리</button>
<?php endif;?>
<?php endif;?>
</div>

2
wheeparam/views/themes/admin/help/facebook_login.php

@ -1,6 +1,6 @@
<div class="col-xs-12">
<div class="page-header">
<h2 class="page-title"><i class="far fa-question-circle" style="display:inline"></i> 페이스북 로그인 등록방법</h2>
<h2 class="page-title"><i class="fal fa-question-circle" style="display:inline"></i> 페이스북 로그인 등록방법</h2>
</div>
<div class="admin-help-wrap">
<ul>

2
wheeparam/views/themes/admin/help/google_analytics.php

@ -1,6 +1,6 @@
<div class="col-xs-12">
<div class="page-header">
<h2 class="page-title"><i class="far fa-question-circle" style="display:inline"></i> 구글 애널리틱스 코드 등록 방법</h2>
<h2 class="page-title"><i class="fal fa-question-circle" style="display:inline"></i> 구글 애널리틱스 코드 등록 방법</h2>
</div>
<div class="admin-help-wrap">
<ul>

2
wheeparam/views/themes/admin/help/google_login.php

@ -1,6 +1,6 @@
<div class="col-xs-12">
<div class="page-header">
<h2 class="page-title"><i class="far fa-question-circle" style="display:inline"></i> 구글 로그인 등록방법</h2>
<h2 class="page-title"><i class="fal fa-question-circle" style="display:inline"></i> 구글 로그인 등록방법</h2>
</div>
<div class="admin-help-wrap">
<ul>

2
wheeparam/views/themes/admin/help/google_ownership.php

@ -1,6 +1,6 @@
<div class="col-xs-12">
<div class="page-header">
<h2 class="page-title"><i class="far fa-question-circle" style="display:inline"></i> 구글 소유 확인 코드 등록 방법</h2>
<h2 class="page-title"><i class="fal fa-question-circle" style="display:inline"></i> 구글 소유 확인 코드 등록 방법</h2>
</div>
<div class="admin-help-wrap">
<ul>

2
wheeparam/views/themes/admin/help/kakao_login.php

@ -1,6 +1,6 @@
<div class="col-xs-12">
<div class="page-header">
<h2 class="page-title"><i class="far fa-question-circle" style="display:inline"></i> 카카오 로그인 등록방법</h2>
<h2 class="page-title"><i class="fal fa-question-circle" style="display:inline"></i> 카카오 로그인 등록방법</h2>
</div>
<div class="admin-help-wrap">
<ul>

2
wheeparam/views/themes/admin/help/naver_analytics.php

@ -1,6 +1,6 @@
<div class="col-xs-12">
<div class="page-header">
<h2 class="page-title"><i class="far fa-question-circle" style="display:inline"></i> 네이버 애널리틱스 코드 등록 방법</h2>
<h2 class="page-title"><i class="fal fa-question-circle" style="display:inline"></i> 네이버 애널리틱스 코드 등록 방법</h2>
</div>
<div class="admin-help-wrap">
<ul>

2
wheeparam/views/themes/admin/help/naver_login.php

@ -1,6 +1,6 @@
<div class="col-xs-12">
<div class="page-header">
<h2 class="page-title"><i class="far fa-question-circle" style="display:inline"></i> 네이버 로그인 등록방법</h2>
<h2 class="page-title"><i class="fal fa-question-circle" style="display:inline"></i> 네이버 로그인 등록방법</h2>
</div>
<div class="admin-help-wrap">
<ul>

2
wheeparam/views/themes/admin/help/naver_ownership.php

@ -1,6 +1,6 @@
<div class="col-xs-12">
<div class="page-header">
<h2 class="page-title"><i class="far fa-question-circle" style="display:inline"></i> 네이버 소유 확인 코드 등록 방법</h2>
<h2 class="page-title"><i class="fal fa-question-circle" style="display:inline"></i> 네이버 소유 확인 코드 등록 방법</h2>
</div>
<div class="admin-help-wrap">
<ul>

2
wheeparam/views/themes/admin/help/recaptcha.php

@ -1,6 +1,6 @@
<div class="col-xs-12">
<div class="page-header">
<h2 class="page-title"><i class="far fa-question-circle" style="display:inline"></i> 구글 reCaptcha 등록방법</h2>
<h2 class="page-title"><i class="fal fa-question-circle" style="display:inline"></i> 구글 reCaptcha 등록방법</h2>
</div>
<div class="admin-help-wrap">
<ul>

38
wheeparam/views/themes/admin/management/banner.php

@ -16,7 +16,7 @@
<tr>
<th class="W20"></th>
<th>분류이름</th>
<th class="W140">관리</th>
<th class="W80">관리</th>
</tr>
</thead>
<tbody data-toggle="sortable" data-key="bng_idx" data-sort="bng_sort" data-table="banner_group">
@ -26,10 +26,10 @@
<span class="move-grip"></span>
<input type="hidden" name="bng_idx[]" value="<?=$row['bng_idx']?>">
</td>
<td><i class="far <?=isset($bng_key)&&$bng_key==$row['bng_key']?'fa-folder-open':'fa-folder'?>"></i>&nbsp;<a href="<?=base_url('admin/management/banner/'.$row['bng_key'])?>"><?=$row['bng_name']?></a></td>
<td><i class="fal <?=isset($bng_key)&&$bng_key==$row['bng_key']?'fa-folder-open':'fa-folder'?>"></i>&nbsp;<a href="<?=base_url('admin/management/banner/'.$row['bng_key'])?>"><?=$row['bng_name']?></a></td>
<td class="text-center">
<button type="button" class="btn btn-default btn-xs MR5" data-button="btn-banner-group-form" data-idx="<?=$row['bng_idx']?>"><i class="far fa-pencil"></i> 수정</button>
<button type="button" class="btn btn-danger btn-xs" data-button="btn-banner-group-delete" data-idx="<?=$row['bng_idx']?>"><i class="far fa-trash"></i> 삭제</button>
<button type="button" class="btn btn-default btn-xs MR5" data-button="btn-banner-group-form" data-idx="<?=$row['bng_idx']?>"><i class="fal fa-pencil"></i></button>
<button type="button" class="btn btn-danger btn-xs" data-button="btn-banner-group-delete" data-idx="<?=$row['bng_idx']?>"><i class="fal fa-trash"></i></button>
</td>
</tr>
<?php endforeach;?>
@ -51,7 +51,7 @@
<h4>[<?=$banner_group['bng_name']?>] 배너 관리</h4>
</div>
<div class="right">
<button type="button" class="btn btn-default" data-button="btn-banner-form" data-bng-key="<?=$bng_key?>" data-idx=""><i class="far fa-plus-circle"></i> 배너 추가</button>
<button type="button" class="btn btn-default" data-button="btn-banner-form" data-bng-key="<?=$bng_key?>" data-idx=""><i class="fal fa-plus-circle"></i> 배너 추가</button>
</div>
</div>
@ -77,8 +77,8 @@
<td><?=thumb_img($row['ban_filepath'],'img-thumbnail','style="max-width:250px"')?></td>
<td><?=$row['ban_name']?></td>
<td class="text-center W150">
<button type="button" class="btn btn-default btn-sm MR5" data-button="btn-banner-form" data-bng-key="<?=$bng_key?>" data-idx="<?=$row['ban_idx']?>"><i class="far fa-pencil"></i> 수정</button>
<button type="button" class="btn btn-danger btn-sm" data-button="btn-banner-delete" data-idx="<?=$row['ban_idx']?>"><i class="far fa-trash"></i> 삭제</button>
<button type="button" class="btn btn-default btn-xs MR5" data-button="btn-banner-form" data-bng-key="<?=$bng_key?>" data-idx="<?=$row['ban_idx']?>"><i class="fal fa-pencil"></i></button>
<button type="button" class="btn btn-danger btn-xs" data-button="btn-banner-delete" data-idx="<?=$row['ban_idx']?>"><i class="fal fa-trash"></i></button>
</td>
</tr>
<?php endforeach;?>
@ -90,22 +90,6 @@
</tbody>
</table>
</div>
<script>
$(function(){
$("#banner-list").sortable({
handle : 'i.far.fa-bars',
update: function(){
var sort_array = [];
$("#banner-list input[name='ban_idx[]']").each(function(){
sort_array.push( $(this).val() );
});
$.post('/admin/management/banner_sort',{sort_idx:sort_array});
}
});
});
</script>
<?php endif;?>
</div>
</div>
@ -118,7 +102,7 @@
APP.MODAL.open({
iframe : {
url : '/admin/management/banner_group_form',
url : base_url + '/admin/management/banner_group_form',
param : {
bng_idx : bng_idx
}
@ -142,7 +126,7 @@
return;
}
location.href="/admin/management/banner_group_delete/" + idx;
location.href = base_url + "/admin/management/banner_group_delete/" + idx;
});
$('[data-button="btn-banner-form"]').click(function(){
@ -156,7 +140,7 @@
APP.MODAL.open({
iframe : {
url : '/admin/management/banner_form',
url : base_url + '/admin/management/banner_form',
param : {
bng_key : bng_key,
ban_idx : ban_idx
@ -181,7 +165,7 @@
return;
}
location.href="/admin/management/banner_delete/" + idx;
location.href = base_url + "/admin/management/banner_delete/" + idx;
});
});
</script>

140
wheeparam/views/themes/admin/management/faq.php

@ -11,7 +11,7 @@
<h4>FAQ 분류</h4>
</div>
<div class="right">
<button type="button" class="btn btn-default" onclick="faq.category.form();"><i class="far fa-plus-circle"></i> 분류 추가</button>
<button type="button" class="btn btn-default" onclick="faq.category.form();"><i class="fal fa-plus-circle"></i> 분류 추가</button>
</div>
</div>
@ -22,18 +22,18 @@
<th class="W20"></th>
<th>분류이름</th>
<th class="W50">등록</th>
<th class="W125">관리</th>
<th class="W80">관리</th>
</tr>
</thead>
<tbody data-toggle="sortable" data-key="fac_idx" data-sort="fac_sort" data-table="faq_category">
<tbody data-toggle="sortable" data-key="fac_idx" data-sort="sort" data-table="faq_category">
<?php foreach($faq_category['list'] as $row) :?>
<tr class="<?=isset($fac_idx)&&$fac_idx==$row['fac_idx']?'active':''?>">
<td class="text-center"><span class="move-grip"></span><input type="hidden" name="fac_idx[]" value="<?=$row['fac_idx']?>"></td>
<td class=""><i class="far <?=isset($fac_idx)&&$fac_idx==$row['fac_idx']?'fa-folder-open':'fa-folder'?>"></i>&nbsp;<a href="<?=base_url('admin/management/faq/'.$row['fac_idx'])?>"><?=$row['fac_title']?></a></td>
<td class=""><i class="fal <?=isset($fac_idx)&&$fac_idx==$row['fac_idx']?'fa-folder-open':'fa-folder'?>"></i>&nbsp;<a href="<?=base_url('admin/management/faq/'.$row['fac_idx'])?>"><?=$row['fac_title']?></a></td>
<td class="text-right W50"><?=number_format($row['fac_count'])?></td>
<td class="text-center">
<button type="button" class="btn btn-default btn-sm MR5" onclick="faq.category.form('<?=$row['fac_idx']?>');"><i class="far fa-pencil"></i> 수정</button>
<button type="button" class="btn btn-danger btn-sm" onclick="faq.category.remove('<?=$row['fac_idx']?>');"><i class="far fa-trash"></i> 삭제</button>
<button type="button" class="btn btn-default btn-sm MR5" onclick="faq.category.form('<?=$row['fac_idx']?>');"><i class="fal fa-pencil"></i></button>
<button type="button" class="btn btn-danger btn-sm" onclick="faq.category.remove('<?=$row['fac_idx']?>');"><i class="fal fa-trash"></i></button>
</td>
</tr>
<?php endforeach;?>
@ -54,7 +54,7 @@
<h4>[<?=$faq_group['fac_title']?>] 내용 관리</h4>
</div>
<div class="right">
<button type="button" class="btn btn-default" onclick="faq.form('<?=$fac_idx?>');"><i class="far fa-plus-circle"></i> FAQ 추가</button>
<button type="button" class="btn btn-default" onclick="faq.form('<?=$fac_idx?>');"><i class="fal fa-plus-circle"></i> FAQ 추가</button>
</div>
</div>
@ -64,23 +64,27 @@
<tr>
<th class="W20"></th>
<th>FAQ 제목</th>
<th class="W150">관리</th>
<th class="W80">수정자</th>
<th class="W130">수정일시</th>
<th class="W80">관리</th>
</tr>
</thead>
<tbody data-toggle="sortable" data-key="faq_idx" data-sort="faq_sort" data-table="faq">
<tbody data-toggle="sortable" data-key="faq_idx" data-sort="sort" data-table="faq">
<?php foreach($faq_list['list'] as $row) :?>
<tr>
<td class="text-center"><span class="move-grip"></span><input type="hidden" name="faq_idx[]" value="<?=$row['faq_idx']?>"></td>
<td><?=$row['faq_title']?></td>
<td class="text-center W150">
<button type="button" class="btn btn-default btn-sm" onclick="faq.form('<?=$row['fac_idx']?>','<?=$row['faq_idx']?>');"><i class="far fa-pencil"></i> 수정</button>
<button type="button" class="btn btn-danger btn-sm" onclick="faq.remove('<?=$row['faq_idx']?>');"><i class="far fa-trash"></i> 삭제</button>
<td class="text-center"><?=$row['upd_username']?></td>
<td><?=$row['upd_datetime']?></td>
<td class="text-center">
<button type="button" class="btn btn-default btn-xs MR5" onclick="faq.form('<?=$row['fac_idx']?>','<?=$row['faq_idx']?>');"><i class="fal fa-pencil"></i></button>
<button type="button" class="btn btn-danger btn-xs" onclick="faq.remove('<?=$row['faq_idx']?>');"><i class="fal fa-trash"></i></button>
</td>
</tr>
<?php endforeach;?>
<?php if(count($faq_list['list']) == 0) :?>
<tr>
<td colspan="3" class="empty">등록된 FAQ가 없습니다.</td>
<td colspan="5" class="empty">등록된 FAQ가 없습니다.</td>
</tr>
<?php endif;?>
</tbody>
@ -90,3 +94,113 @@
</div>
</div>
<script>
var faq = {};
faq.form = function(fac_idx, faq_idx) {
var faq_idx = (typeof faq_idx == 'string' || typeof faq_idx == 'number' ) ? faq_idx : null;
var fac_idx = (typeof fac_idx == 'string' || typeof fac_idx == 'number' ) ? fac_idx : null;
if(! fac_idx) {
alert('FAQ 분류 정보가 없습니다.');
return false;
}
APP.MODAL.open({
width: 800,
height :650,
header : {
title : faq_idx ? 'FAQ 정보 수정' : 'FAQ 추가'
},
callback : function(){
location.reload();
},
iframe : {
method : 'get',
url : base_url + '/admin/management/faq_form',
param : {
fac_idx : fac_idx,
faq_idx : faq_idx
}
}
});
};
faq.remove = function(faq_idx) {
if(typeof faq_idx == 'undefined' || ! faq_idx || faq_idx.trim() == '') {
alert('잘못된 접근입니다.');
}
if(! confirm('해당 FAQ를 삭제하시겠습니까?')) return false;
$.ajax({
url : base_url + '/admin/ajax/management/faq',
type : 'DELETE',
async:false,
cache:false,
data:{faq_idx:faq_idx},
success:function(res){
alert('FAQ가 삭제되었습니다.');
location.reload();
}
});
};
/**
* FAQ 분류
* @type {{}}
*/
faq.category = {};
faq.category.form = function(fac_idx)
{
var fac_idx = (typeof fac_idx == 'string' || typeof fac_idx == 'number' ) ? fac_idx : null;
APP.MODAL.open({
width: $(window).width() > 600 ? 600 : $(window).width(),
height :250,
header : {
title : fac_idx ? 'FAQ 분류 정보 수정' : 'FAQ 분류 추가'
},
callback : function(){
location.reload();
},
iframe : {
method : 'get',
url : base_url + '/admin/management/faq_category_form',
param : {
fac_idx : fac_idx
}
}
});
};
faq.category.remove = function(fac_idx) {
if(typeof fac_idx == 'undefined' || ! fac_idx || fac_idx.trim() == '') {
alert('잘못된 접근입니다.');
}
var count = 0;
$.ajax({
url : base_url + '/admin/ajax/management/faq',
type : 'get',
async:false,
cache: false,
data : {fac_idx:fac_idx},
success:function(res){
count = res.total_count;
}
});
var msg = ( count > 0 ) ? '해당 FAQ 분류에 ' + count + '개의 FAQ 목록이 등록되어 있습니다.\nFAQ 분류을 삭제할시 등록된 FAQ 목록도 같이 삭제됩니다.\n\n계속 하시겠습니까?' : 'FAQ 분류을 삭제하시겠습니까?';
if(! confirm(msg)) return false;
$.ajax({
url : base_url+ '/admin/ajax/management/faq_category',
type : 'delete',
async:false,
cache:false,
data:{fac_idx:fac_idx},
success:function(res){
alert('FAQ 분류가 삭제되었습니다.');
location.href= base_url + "/admin/management/faq";
}
});
};
</script>

24
wheeparam/views/themes/admin/management/faq_category_form.php

@ -5,7 +5,7 @@
<div data-ax-tbl>
<div data-ax-tr>
<div data-ax-td class="width-100">
<div data-ax-td-label>FAQ 그룹 이름</div>
<div data-ax-td-label>분류 이름</div>
<div data-ax-td-wrap>
<input type="text" class="form-control" name="fac_title" value="<?=element('fac_title', $view) ?>" required maxlength="50" autofocus>
</div>
@ -13,7 +13,7 @@
</div>
<div data-ax-tr>
<div data-ax-td class="width-100">
<div data-ax-td-label>FAQ 그룹 이름</div>
<div data-ax-td-label>분류 고유 KEY</div>
<div data-ax-td-wrap>
<input type="text" maxlength="20" name="fac_idx" value="<?=element('fac_idx', $view) ?>" class="form-control" <?= element('fac_idx', $view) ? 'readonly="readonly"' : 'required="required"' ?>>
<p class="help-block"><?= base_url("faq/" . element('fac_idx', $view)) ?></p>
@ -22,7 +22,7 @@
</div>
</div>
<div class="text-center MT15">
<button class="btn btn-primary"><i class="far fa-check-circle"></i> 확인</button>
<button class="btn btn-primary"><i class="fal fa-check-circle"></i> 확인</button>
<button type="button" class="btn btn-default" onclick="parent.APP.MODAL.close();">닫기</button>
</div>
<?=form_close()?>
@ -42,7 +42,7 @@
return false;
}
if( ! faq.category.exist($this.val() ))
if( ! categoryExistCheck($this.val() ))
{
alert('이미 사용중인 고유키 입니다.');
$this.val('');
@ -54,5 +54,21 @@
$this.next('p.help-block').text(base_url + "faq/" + $this.val());
});
});
var categoryExistCheck = function(fac_idx) {
if(typeof fac_idx == 'undefined' || ! fac_idx || fac_idx.trim() == '') return false;
var result = false;
$.ajax({
url : base_url + '/admin/ajax/management/faq_category',
type:'get',
async:false,
cache:false,
data:{fac_idx:fac_idx},
success:function (res) {
result = !(res && typeof res.fac_idx != 'undefined' && res.fac_idx);
}
});
return result;
}
</script>
<?php endif;?>

2
wheeparam/views/themes/admin/management/faq_form.php

@ -29,7 +29,7 @@
</div>
</div>
<div class="text-center MT10">
<button class="btn btn-primary"><i class="far fa-check-circle"></i> 확인</button>
<button class="btn btn-primary"><i class="fal fa-check-circle"></i> 확인</button>
<button type="button" class="btn btn-default" onclick="parent.APP.MODAL.close();">닫기</button>
</div>
<?=form_close()?>

34
wheeparam/views/themes/admin/management/menu.php

@ -5,10 +5,10 @@
<?=form_open("admin/management/menu_multi_update")?>
<div class="ax-button-group">
<div class="left">
<button type="button" class="btn btn-default" onclick="menu_form(0);"><i class="far fa-plus-circle"></i> 대메뉴 등록</button>
<button type="button" class="btn btn-default" onclick="menu_form(0);"><i class="fal fa-plus-circle"></i> 대메뉴 등록</button>
</div>
<div class="right">
<button class="btn btn-primary"><i class="far fa-save"></i> 저장하기</button>
<button class="btn btn-primary"><i class="fal fa-save"></i> 저장하기</button>
</div>
</div>
@ -18,19 +18,19 @@
<tr>
<th colspan="3">메뉴 이름</th>
<th>메뉴 링크</th>
<th>메뉴 순서</th>
<th>새창보기</th>
<th>PC보기</th>
<th>모바일보기</th>
<th class="W80">메뉴 순서</th>
<th class="W100">새창보기</th>
<th class="W80">PC보기</th>
<th class="W80">모바일보기</th>
<th>Active </th>
<th>관리</th>
<th class="W160">관리</th>
</tr>
</thead>
<tbody>
<?php foreach($menu_list as $row):?>
<tr>
<td colspan="3">
<input type="hidden" name="mnu_idx[]" value="<?=$row['mnu_idx']?>" required>
<input type="hidden" name="mnu_idx[]" value="<?=$row['mnu_idx']?>" required>
<input class="form-control" name="mnu_name[]" value="<?=$row['mnu_name']?>" required>
</td>
<td>
@ -61,15 +61,15 @@
<input class="form-control" name="mnu_active_key[]" value="<?=$row['mnu_active_key']?>">
</td>
<td>
<button type="button" class="btn btn-default" onclick="menu_form('<?=$row['mnu_idx']?>');"><i class="far fa-plus-circle"></i> 하위메뉴 등록</button>
<a class="btn btn-danger" href="<?=base_url('admin/management/menu_delete/'.$row['mnu_idx'])?>" onclick="return confirm('메뉴를 삭제하시겠습니까?');">삭제</a>
<button type="button" class="btn btn-default btn-sm MR5" onclick="menu_form('<?=$row['mnu_idx']?>');"><i class="fal fa-plus-circle"></i> 하위메뉴 등록</button>
<a class="btn btn-danger btn-sm" href="<?=base_url('admin/management/menu_delete/'.$row['mnu_idx'])?>" onclick="return confirm('메뉴를 삭제하시겠습니까?');">삭제</a>
</td>
</tr>
<?php foreach($row['children'] as $row2) :?>
<tr>
<td class="text-right"></td>
<td class="text-right W20"></td>
<td colspan="2">
<input type="hidden" name="mnu_idx[]" value="<?=$row2['mnu_idx']?>" required>
<input type="hidden" name="mnu_idx[]" value="<?=$row2['mnu_idx']?>" required>
<input class="form-control" name="mnu_name[]" value="<?=$row2['mnu_name']?>" required>
</td>
<td>
@ -100,14 +100,14 @@
<input class="form-control" name="mnu_active_key[]" value="<?=$row2['mnu_active_key']?>">
</td>
<td>
<button type="button" class="btn btn-default" onclick="menu_form('<?=$row2['mnu_idx']?>');"><i class="far fa-plus-circle"></i> 하위메뉴 등록</button>
<a class="btn btn-danger" href="<?=base_url('admin/management/menu_delete/'.$row2['mnu_idx'])?>" onclick="return confirm('메뉴를 삭제하시겠습니까?');">삭제</a>
<button type="button" class="btn btn-default btn-sm MR5" onclick="menu_form('<?=$row2['mnu_idx']?>');"><i class="fal fa-plus-circle"></i> 하위메뉴 등록</button>
<a class="btn btn-danger btn-sm" href="<?=base_url('admin/management/menu_delete/'.$row2['mnu_idx'])?>" onclick="return confirm('메뉴를 삭제하시겠습니까?');">삭제</a>
</td>
</tr>
<?php foreach($row2['children'] as $row3) :?>
<tr>
<td></td>
<td class="text-right"></td>
<td class="W20"></td>
<td class="text-right W20"></td>
<td>
<input type="hidden" name="mnu_idx[]" value="<?=$row3['mnu_idx']?>" required>
<input class="form-control" name="mnu_name[]" value="<?=$row3['mnu_name']?>" required>
@ -140,7 +140,7 @@
<input class="form-control" name="mnu_active_key[]" value="<?=$row3['mnu_active_key']?>">
</td>
<td>
<a class="btn btn-danger" href="<?=base_url('admin/management/menu_delete/'.$row3['mnu_idx'])?>" onclick="return confirm('메뉴를 삭제하시겠습니까?');">삭제</a>
<a class="btn btn-danger btn-sm" href="<?=base_url('admin/management/menu_delete/'.$row3['mnu_idx'])?>" onclick="return confirm('메뉴를 삭제하시겠습니까?');">삭제</a>
</td>
</tr>
<?php endforeach;?>

129
wheeparam/views/themes/admin/management/menu_form.php

@ -1,78 +1,77 @@
<?=form_open(NULL, array('class'=>'form-flex'))?>
<input type="hidden" name="mnu_idx" value="<?=$mnu_idx?>">
<input type="hidden" name="mnu_parent" value="<?=$mnu_parent?>">
<div class="form-group">
<label class="control-label control-label-sm">메뉴 이름</label>
<div class="controls">
<input class="form-control" name="mnu_name" value="<?=element('mnu_name', $view)?>" required maxlength="30">
<div data-ax-tbl>
<div data-ax-tr>
<div data-ax-td class="width-100">
<div data-ax-td-label>메뉴 이름</div>
<div data-ax-td-wrap>
<input class="form-control" name="mnu_name" value="<?=element('mnu_name', $view)?>" required maxlength="30">
</div>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label control-label-sm">메뉴 링크 타입</label>
<div class="controls">
<select class="form-control" id="menu-helper">
<option value="">직접입력</option>
<option value="#" <?=element('mnu_link',$view)=='#'?'selected':''?>>링크 없음</option>
<option value="board">게시판</option>
<option value="pages">일반페이지</option>
</select>
<div data-ax-tr>
<div data-ax-td>
<div data-ax-td-label>링크 구분</div>
<div data-ax-td-wrap>
<select class="form-control" id="menu-helper">
<option value="">직접입력</option>
<option value="#" <?=element('mnu_link',$view)=='#'?'selected':''?>>링크 없음</option>
<option value="board">게시판</option>
<option value="pages">일반페이지</option>
</select>
</div>
</div>
<div data-ax-td>
<div data-ax-td-wrap id="menu-helper-input">
<select class="form-control">
<option value="">직접입력</option>
<option value="#" <?=element('mnu_link',$view)=='#'?'selected':''?>>링크 없음</option>
<option value="board">게시판</option>
<option value="pages">일반페이지</option>
</select>
</div>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label control-label-sm">메뉴 링크</label>
<div class="controls" id="menu-helper-input">
<select class="form-control">
<option value="">직접입력</option>
<option value="#" <?=element('mnu_link',$view)=='#'?'selected':''?>>링크 없음</option>
<option value="board">게시판</option>
<option value="pages">일반페이지</option>
</select>
<div data-ax-tr>
<div data-ax-td class="width-100">
<div data-ax-td-label>표시 설정</div>
<div data-ax-td-wrap>
<label class="w-check">
<input type="checkbox" name="mnu_desktop" value="Y" <?=element('mnu_desktop',$view,'Y')=='Y'?'checked':''?>>
<span>PC버젼 표시</span>
</label>
<label class="w-check">
<input type="checkbox" name="mnu_mobile" value="Y" <?=element('mnu_mobile',$view,'Y')=='Y'?'checked':''?>>
<span>모바일버젼 표시</span>
</label>
</div>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label control-label-sm">PC</label>
<div class="controls">
<label class="w-check">
<input type="checkbox" name="mnu_desktop" value="Y" <?=element('mnu_desktop',$view,'Y')=='Y'?'checked':''?>>
<span>PC버젼 표시</span>
</label>
</div>
</div>
<div class="form-group">
<label class="control-label control-label-sm">모바일</label>
<div class="controls">
<label class="w-check">
<input type="checkbox" name="mnu_mobile" value="Y" <?=element('mnu_mobile',$view,'Y')=='Y'?'checked':''?>>
<span>모바일버젼 표시</span>
</label>
<div data-ax-tr>
<div data-ax-td class="width-100">
<div data-ax-td-label>기타 옵션</div>
<div data-ax-td-wrap>
<label class="w-check">
<input type="checkbox" name="mnu_newtab" value="Y" <?=element('mnu_newtab',$view,'Y')=='N'?'checked':''?>>
<span>새탭으로 열기</span>
</label>
</div>
</div>
</div>
</div>
<div class="form-group">
<label class="control-label control-label-sm">새창</label>
<div class="controls">
<label class="w-check">
<input type="checkbox" name="mnu_newtab" value="Y" <?=element('mnu_newtab',$view,'Y')=='N'?'checked':''?>>
<span>새창으로 열기</span>
</label>
</div>
</div>
<div class="form-group">
<label class="control-label control-label-sm">Active </label>
<div class="controls" id="menu-helper-input">
<label class="w-check">
<input class="form-control" name="mnu_active_key" value="<?=element('mnu_active_key',$view)?>">
<p class="form-control-static">현재 메뉴 Active상태를 판별하기 위한 키값</p>
</label>
<div data-ax-tr>
<div data-ax-td class="width-100">
<div data-ax-td-label>Active KEY</div>
<div data-ax-td-wrap>
<input class="form-control" name="mnu_active_key" value="<?=element('mnu_active_key',$view)?>">
<p class="form-control-static">개발자가 설정하는 값입니다.</p>
</div>
</div>
</div>
</div>
<div class="text-center MT10">
<button class="btn btn-primary"><i class="far fa-save"></i> 저장하기</button>
<div class="text-center MT15">
<button class="btn btn-primary"><i class="fal fa-save"></i> 저장하기</button>
</div>
<?=form_close()?>

2
wheeparam/views/themes/admin/management/popup_form.php

@ -63,7 +63,7 @@
</div>
</div>
<div class="text-center MT15">
<button class="btn btn-primary"><i class="far fa-check"></i> 입력 완료</button>
<button class="btn btn-primary"><i class="fal fa-check"></i> 입력 완료</button>
</div>
<div class="H10"></div>
<?=form_close()?>

4
wheeparam/views/themes/admin/management/sitemap.php

@ -5,8 +5,8 @@
</div>
<p class="alert alert-info" data-fit-aside>
<i class="far fa-info-circle"></i> 추가로 sitemap.xml 에서 인덱싱하고싶은 URL을 관리하는 페이지입니다.<br>
<i class="far fa-info-circle"></i> 메인페이지와 게시판은 자동으로 로드하므로 추가할 필요가 없습니다.
<i class="fal fa-info-circle"></i> 추가로 sitemap.xml 에서 인덱싱하고싶은 URL을 관리하는 페이지입니다.<br>
<i class="fal fa-info-circle"></i> 메인페이지와 게시판은 자동으로 로드하므로 추가할 필요가 없습니다.
</p>
<div class="ax-button-group" data-fit-aside>

2
wheeparam/views/themes/admin/members/add.php

@ -4,7 +4,7 @@
<h1>신규 회원 등록</h1>
</div>
<div class="right">
<button type="button" class="btn btn-default" onclick="history.back();"><i class="far fa-chevron-left"></i> 회원목록으로</button>
<button type="button" class="btn btn-default" onclick="history.back();"><i class="fal fa-chevron-left"></i> 회원목록으로</button>
</div>
</div>

10
wheeparam/views/themes/admin/members/info.php

@ -25,11 +25,11 @@
</div>
<div data-ax-td-wrap>
<?php if($mem['mem_status'] == 'H') : ?>
<a href="#" class="btn btn-default btn-sm" onclick="APP.MEMBER.STATUS_CHANGE('<?=$mem['mem_idx']?>','<?=$mem['mem_status']?>','Y')"><i class="far fa-user-secret"></i> 휴면 해제</a>
<a href="#" class="btn btn-default btn-sm" onclick="APP.MEMBER.STATUS_CHANGE('<?=$mem['mem_idx']?>','<?=$mem['mem_status']?>','Y')"><i class="fal fa-user-secret"></i> 휴면 해제</a>
<?php elseif( $mem['mem_status'] == 'Y' ) :?>
<a href="#" class="btn btn-default btn-sm" onclick="APP.MEMBER.STATUS_CHANGE('<?=$mem['mem_idx']?>','<?=$mem['mem_status']?>','D')"><i class="far fa-ban"></i> 로그인 금지</a>
<a href="#" class="btn btn-default btn-sm" onclick="APP.MEMBER.STATUS_CHANGE('<?=$mem['mem_idx']?>','<?=$mem['mem_status']?>','D')"><i class="fal fa-ban"></i> 로그인 금지</a>
<?php elseif( $mem['mem_status'] == 'D' ) :?>
<a href="#" class="btn btn-default btn-sm" onclick="APP.MEMBER.STATUS_CHANGE('<?=$mem['mem_idx']?>','<?=$mem['mem_status']?>','Y')"><i class="far fa-ban"></i> 로그인 금지 해제</a>
<a href="#" class="btn btn-default btn-sm" onclick="APP.MEMBER.STATUS_CHANGE('<?=$mem['mem_idx']?>','<?=$mem['mem_status']?>','Y')"><i class="fal fa-ban"></i> 로그인 금지 해제</a>
<?php endif;?>
</div>
</div>
@ -91,6 +91,6 @@
<div class="H20"></div>
<div class="text-center">
<a href="<?=base_url('admin/members/modify/'.$mem['mem_idx'])?>" class="btn btn-default MR10"><i class="far fa-pencil"></i> 정보 수정</a>
<a href="#" class="btn btn-danger" onclick="APP.MEMBER.STATUS_CHANGE('<?=$mem['mem_idx']?>','<?=$mem['mem_status']?>','N')"><i class="far fa-user-secret"></i> 회원 탈퇴</a>
<a href="<?=base_url('admin/members/modify/'.$mem['mem_idx'])?>" class="btn btn-default MR10"><i class="fal fa-pencil"></i> 정보 수정</a>
<a href="#" class="btn btn-danger" onclick="APP.MEMBER.STATUS_CHANGE('<?=$mem['mem_idx']?>','<?=$mem['mem_status']?>','N')"><i class="fal fa-user-secret"></i> 회원 탈퇴</a>
</div>

6
wheeparam/views/themes/admin/members/login.php

@ -10,17 +10,17 @@
<div class="login-body">
<?=$form_open?>
<div class="form-group">
<label for="login-id"><i class="far fa-pen-square"></i> ID</label>
<label for="login-id"><i class="fal fa-pen-square"></i> ID</label>
<input class="form-control" id="login-id" name="login_id" placeholder="ID" value="<?=set_value('login_id')?>" maxlength="50" autofocus="1">
</div>
<div class="form-group MT10">
<label for="login-pass"><i class="far fa-key"></i> PASSWORD</label>
<label for="login-pass"><i class="fal fa-key"></i> PASSWORD</label>
<input type="password" class="form-control" id="login-pass" name="login_pass" placeholder="PASSWORD" value="" maxlength="20">
</div>
<button class="btn btn-block MT10">LOGIN</button>
<?=$form_close?>
</div>
</div>
<p class="login-notice"><i class="far fa-exclamation-circle"></i> 관리자모드는 IE9 이하의 브라우져를 지원하지 않습니다.</p>
<p class="login-notice"><i class="fal fa-exclamation-circle"></i> 관리자모드는 IE9 이하의 브라우져를 지원하지 않습니다.</p>
</div>
</article>

2
wheeparam/views/themes/admin/members/point.php

@ -37,7 +37,7 @@
<div class="H10"></div>
<div class="ax-button-group">
<div class="left">
<button type="button" class="btn btn-default" onclick="APP.MEMBER.POP_POINT_FORM_ADMIN('<?=$mem['mem_idx']?>');"><i class="far fa-plus-circle"></i> <?=$this->site->config('point_name')?> 등록</button>
<button type="button" class="btn btn-default" onclick="APP.MEMBER.POP_POINT_FORM_ADMIN('<?=$mem['mem_idx']?>');"><i class="fal fa-plus-circle"></i> <?=$this->site->config('point_name')?> 등록</button>
</div>
</div>
<div id="grid-container"></div>

4
wheeparam/views/themes/admin/setting/apis.php

@ -151,7 +151,7 @@
<div data-ax-td class="width-100">
<div data-ax-td-label>구글 reCaptcha</div>
<div data-ax-td-wrap>
<p class="form-control-static"><i class="far fa-info-circle"></i> 구글 reCaptcha는 구글에서 제공하는 스팸방지 기능입니다.<br><i class="far fa-info-circle"></i> 회원 글쓰기시 적용되며, 등록을 추천합니다.</p>
<p class="form-control-static"><i class="fal fa-info-circle"></i> 구글 reCaptcha는 구글에서 제공하는 스팸방지 기능입니다.<br><i class="fal fa-info-circle"></i> 회원 글쓰기시 적용되며, 등록을 추천합니다.</p>
</div>
</div>
</div>
@ -263,7 +263,7 @@
</div>
</div>
<div class="text-center MT15">
<button class="btn btn-primary"><i class="far fa-save"></i> 저장하기</button>
<button class="btn btn-primary"><i class="fal fa-save"></i> 저장하기</button>
</div>
<div class="H10"></div>
<?=form_close()?>

2
wheeparam/views/themes/admin/statics/browser.php

@ -18,7 +18,7 @@
</div>
<div data-ax-td>
<div data-ax-td-wrap>
<button class="btn btn-sm btn-default"><i class="far fa-search"></i> 필터적용</button>
<button class="btn btn-sm btn-default"><i class="fal fa-search"></i> 필터적용</button>
</div>
</div>
</div>

2
wheeparam/views/themes/admin/statics/device.php

@ -18,7 +18,7 @@
</div>
<div data-ax-td>
<div data-ax-td-wrap>
<button class="btn btn-sm btn-default"><i class="far fa-search"></i> 필터적용</button>
<button class="btn btn-sm btn-default"><i class="fal fa-search"></i> 필터적용</button>
</div>
</div>
</div>

2
wheeparam/views/themes/admin/statics/keyword.php

@ -18,7 +18,7 @@
</div>
<div data-ax-td>
<div data-ax-td-wrap>
<button class="btn btn-sm btn-default"><i class="far fa-search"></i> 필터적용</button>
<button class="btn btn-sm btn-default"><i class="fal fa-search"></i> 필터적용</button>
</div>
</div>
</div>

2
wheeparam/views/themes/admin/statics/os.php

@ -18,7 +18,7 @@
</div>
<div data-ax-td>
<div data-ax-td-wrap>
<button class="btn btn-sm btn-default"><i class="far fa-search"></i> 필터적용</button>
<button class="btn btn-sm btn-default"><i class="fal fa-search"></i> 필터적용</button>
</div>
</div>
</div>

2
wheeparam/views/themes/admin/statics/referrer.php

@ -18,7 +18,7 @@
</div>
<div data-ax-td>
<div data-ax-td-wrap>
<button class="btn btn-sm btn-default"><i class="far fa-search"></i> 필터적용</button>
<button class="btn btn-sm btn-default"><i class="fal fa-search"></i> 필터적용</button>
</div>
</div>
</div>

2
wheeparam/views/themes/admin/statics/times.php

@ -18,7 +18,7 @@
</div>
<div data-ax-td>
<div data-ax-td-wrap>
<button class="btn btn-sm btn-default"><i class="far fa-search"></i> 필터적용</button>
<button class="btn btn-sm btn-default"><i class="fal fa-search"></i> 필터적용</button>
</div>
</div>
</div>

2
wheeparam/views/themes/admin/statics/visit.php

@ -32,7 +32,7 @@
</div>
<div data-ax-td>
<div data-ax-td-wrap>
<button class="btn btn-sm btn-default"><i class="far fa-search"></i> 필터적용</button>
<button class="btn btn-sm btn-default"><i class="fal fa-search"></i> 필터적용</button>
</div>
</div>
</div>

16
wheeparam/views/themes/admin/theme.php

@ -33,7 +33,7 @@ $this->site->add_js('https://unpkg.com/devextreme-intl@19.1/dist/devextreme-intl
<nav id="nav">
<ul class="main-navigation">
<li>
<a href="javascript:;"><i class="far fa-wrench"></i><span>사이트 관리</span></a>
<a href="javascript:;"><i class="fal fa-wrench"></i><span>사이트 관리</span></a>
<ul>
<li data-active="management/popup"><a href="<?=base_url('admin/management/popup')?>">팝업 관리</a></li>
<li data-active="management/banner"><a href="<?=base_url('admin/management/banner')?>">배너 관리</a></li>
@ -43,7 +43,7 @@ $this->site->add_js('https://unpkg.com/devextreme-intl@19.1/dist/devextreme-intl
</ul>
</li>
<li>
<a href="javascript:;"><i class="far fa-users"></i><span>회원 관리</span></a>
<a href="javascript:;"><i class="fal fa-users"></i><span>회원 관리</span></a>
<ul>
<li data-active="members/lists"><a href="<?=base_url('admin/members/lists')?>">회원 목록</a></li>
<li data-active="members/add"><a href="<?=base_url('admin/members/add')?>">회원 등록</a></li>
@ -56,21 +56,23 @@ $this->site->add_js('https://unpkg.com/devextreme-intl@19.1/dist/devextreme-intl
<?php if(USE_BOARD OR IS_TEST) : ?>
<li>
<a href="javascript:;"><i class="far fa-th-large"></i><span>게시판 관리</span></a>
<a href="javascript:;"><i class="fal fa-th-large"></i><span>게시판 관리</span></a>
<ul>
<li data-active="board/lists"><a href="<?=base_url('admin/board/lists')?>">게시판 관리</a></li>
<li class="divider"></li>
<?php
$board_list = $this->db->select('B.brd_key,B.brd_title,BPN.new_cnt')->from('board AS B')->join('board_post_new AS BPN','BPN.brd_key=B.brd_key','left')->order_by('B.brd_title')->get()->result_array();
$board_list = $this->boardlib->getNewPostBoards();
foreach($board_list as $row): ?>
<li data-active="board/<?=$row['brd_key']?>"><a href="<?=base_url('admin/board/posts/'.$row['brd_key'])?>"><?=$row['brd_title']?><?=$row['new_cnt']>0?" <span class='badge pull-right'>{$row['new_cnt']}</span>":''?></a></li>
<li data-active="board/<?=$row['brd_key']?>"><a href="<?=base_url('admin/board/posts/'.$row['brd_key'])?>"><?=$row['brd_title']?><?=$row['new_cnt']>0?" <span class='badge'>{$row['new_cnt']}</span>":''?></a></li>
<?php endforeach;?>
</ul>
</li>
<?php endif;?>
<li>
<a href="javascript:;"><i class="far fa-chart-bar"></i><span>방문 통계</span></a>
<a href="javascript:;"><i class="fal fa-chart-bar"></i><span>방문 통계</span></a>
<ul>
<li data-active="statics/visit"><a href="<?=base_url('admin/statics/visit')?>">사용자 접속 로그</a></li>
<li data-active="statics/keyword"><a href="<?=base_url('admin/statics/keyword')?>">키워드별 통계</a></li>
@ -83,7 +85,7 @@ $this->site->add_js('https://unpkg.com/devextreme-intl@19.1/dist/devextreme-intl
</li>
<li>
<a href="javascript:;"><i class="far fa-cog"></i><span>환경 설정</span></a>
<a href="javascript:;"><i class="fal fa-cog"></i><span>환경 설정</span></a>
<ul>
<li data-active="setting/basic"><a href="<?=base_url('admin/setting/basic')?>">사이트 기본 설정</a></li>
<li data-active="setting/localize"><a href="<?=base_url('admin/setting/localize')?>">다국어 설정</a></li>

1
wheeparam/views/themes/desktop/theme.php

@ -20,6 +20,7 @@ $this->site->add_js("/assets/js/desktop.min.js", TRUE);
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="theme-color" content="#ffffff">
<?=$this->site->display_css()?>
</head>
<body>
<div class="container-fluid">

Loading…
Cancel
Save