icon.php
<?php
/*-----------引入檔案區--------------*/
$xoopsOption['template_main'] = 'ugm_creative_adm_icon_b3.html';
include_once "header.php";
include_once "../function.php";
#取得資料表
$tbl = "ugm_creative_nav";
#取得模組名稱
$DIRNAME = $xoopsModule->getVar('dirname');
/*-----------執行動作判斷區----------*/
#system_CleanVars (&$global, $key, $default= '', $type= 'int')
include_once $GLOBALS['xoops']->path('/modules/system/include/functions.php');
$op = system_CleanVars($_REQUEST, 'op', '', 'string');
$sn = system_CleanVars($_REQUEST, 'sn', '', 'int');
$kind = system_CleanVars($_REQUEST, 'kind', 'icon', 'string');
#初始值
$kind_arr = array(
"icon" => array("title" => "圖示連結", "stop_level" => 1, "description" => ""),
);
#---------------------------------
switch ($op) {
case "op_update_sort": //更新排序ajax
echo op_update_sort();
XoopsCache::clear();
write_html();
exit;
case "op_update_enable": //更新啟用
op_update_enable();
XoopsCache::clear();
write_html();
redirect_header($_SESSION['return_url'], 3, _BP_SUCCESS);
break;
case "op_update_target": //更新外連狀態
op_update_target();
XoopsCache::clear();
write_html();
redirect_header($_SESSION['return_url'], 3, _BP_SUCCESS);
break;
case "op_insert": //新增、更新資料表
op_insert($sn);
XoopsCache::clear();
write_html();
redirect_header($_SESSION['return_url'], 3, _BP_SUCCESS);
break;
case "op_all_insert": //更新列表所有資料
op_all_insert();
XoopsCache::clear();
write_html();
redirect_header($_SESSION['return_url'], 3, _BP_SUCCESS);
break;
case "op_form": //新增、編輯表單
op_form($sn);
break;
//刪除資料
case "op_delete": //刪除
op_delete($sn);
XoopsCache::clear();
write_html();
redirect_header($_SESSION['return_url'], 3, _BP_DEL_SUCCESS);
break;
//預設動作
default:
# ---- 目前網址 ----
$_SESSION['return_url'] = getCurrentUrl();
$op = "op_list";
op_list();
break;
/*---判斷動作請貼在上方---*/
}
/*-----------秀出結果區--------------*/
#CSS
$xoTheme->addStylesheet(XOOPS_URL . "/modules/ugm_tools/css/xoops_adm3.css");
$xoTheme->addStylesheet(XOOPS_URL . "/modules/ugm_tools/css/forms.css");
$xoTheme->addStylesheet(XOOPS_URL . "/modules/{$DIRNAME}/css/module_b3.css");
get_jquery(true);
$file_name = basename($_SERVER['PHP_SELF']);
$moduele_admin = new ModuleAdmin();
$xoopsTpl->assign("Navigation", $moduele_admin->addNavigation($file_name));
$xoopsTpl->assign("op", $op);
$xoopsTpl->assign("DIRNAME", $DIRNAME);
$xoopsTpl->assign("action", $file_name);
include_once 'footer.php';
/*-----------功能函數區--------------*/
###############################################################################
# 編輯表單
###############################################################################
function op_form($sn = "") {
global $xoopsDB, $xoopsTpl, $DIRNAME, $tbl, $kind;
//----------------------------------*/
//抓取預設值
if (!empty($sn)) {
$DBV = get_ugm_module_tbl($sn, $tbl);
} else {
$DBV = array();
}
//預設值設定
//設定「kind_sn」欄位預設值
$DBV['sn'] = (!isset($DBV['sn'])) ? "" : $DBV['sn'];
//設定「kind_ofsn」欄位預設值
$DBV['ofsn'] = (!isset($DBV['ofsn'])) ? 0 : $DBV['ofsn'];
//設定「title」欄位預設值
$DBV['title'] = (!isset($DBV['title'])) ? "" : $DBV['title'];
//設定「enable」欄位預設值
$DBV['enable'] = (!isset($DBV['enable'])) ? "1" : $DBV['enable'];
//kind
$DBV['kind'] = (!isset($DBV['kind'])) ? $kind : $DBV['kind'];
//設定「target」欄位預設值
$DBV['target'] = (!isset($DBV['target'])) ? "0" : $DBV['target'];
//設定「url」欄位預設值
$DBV['url'] = (!isset($DBV['url'])) ? "" : $DBV['url'];
//設定「col_sn」欄位預設值
$DBV['col_sn'] = (!isset($DBV['col_sn'])) ? "" : $DBV['col_sn'] ? $DBV['col_sn'] : "";
$content = json_decode($DBV['content'], true);//(PHP 5 >= 5.2.0 true=>array
$DBV['content'] = $content['content'];
$DBV['icon'] = $content['icon'];
$DBV['op'] = "op_insert";
#--------------------------------------------------------------------
//----- 驗證碼 -----------------*/
if (!file_exists(XOOPS_ROOT_PATH . "/modules/tadtools/formValidator.php")) {
redirect_header("index.php", 3, _TAD_NEED_TADTOOLS);
}
include_once XOOPS_ROOT_PATH . "/modules/tadtools/formValidator.php";
$formValidator = new formValidator("#myForm", true);
$formValidator->render();
//-------------------------------*/
$xoopsTpl->assign('DBV', $DBV);
}
###############################################################################
# 列表
# $content = json_decode($row['content'], true);
# $row['icon'] = $content['icon'];
# $row['content'] = $content['content'];
###############################################################################
function op_list() {
global $xoopsTpl, $kind_arr, $DIRNAME, $kind, $xoopsDB;
//---- 過濾資料 -----------------------*/
$myts = &MyTextSanitizer::getInstance();
# ----得到外鍵選單之選項 ----------------------------
$kind_option = $kind_description = "";
foreach ($kind_arr as $key => $value) {
$selected = "";
if ($kind == $key) {
$selected = " selected";
$kind_description = $value['description'];
}
$kind_option .= "<option value='{$key}'{$selected}>{$value['title']}</option>";
}
$kind_form = "
<select name='kind' id='kind' onchange=\"location.href='?kind='+this.value\" class='form-control' style='width:300px;'>
$kind_option
</select>
";
#----------------------------------------------
$xoopsTpl->assign('kind_form', $kind_form);
$xoopsTpl->assign('kind', $kind);
$xoopsTpl->assign('kind_description', $kind_description);
# ----得到陣列 ----------------------------
$sql = "select *
from " . $xoopsDB->prefix("ugm_creative_nav") . "
where `kind`='{$kind}'
order by sort"; //die($sql);
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'], 3, mysql_error());
$rows = array();
while ($row = $xoopsDB->fetchArray($result)) {
$row['sn'] = intval($row['sn']);
$row['title'] = $myts->addSlashes($row['title']);
$row['target'] = intval($row['target']);
$content = json_decode($row['content'], true);
$row['icon'] = $content['icon'];
$row['content'] = "";
$rows[] = $row;
}
$xoopsTpl->assign('rows', $rows);
#---- 刪除javascript函數 ----
if (!file_exists(XOOPS_ROOT_PATH . "/modules/tadtools/sweet_alert.php")) {
redirect_header("index.php", 3, _MA_NEED_TADTOOLS);
}
include_once XOOPS_ROOT_PATH . "/modules/tadtools/sweet_alert.php";
$sweet_alert_obj = new sweet_alert();
$sweet_alert_obj->render('op_delete_js', "?op=op_delete&kind={$kind}&sn=", "sn");
#-----驗證碼---------------------------------------------------------
if (!file_exists(XOOPS_ROOT_PATH . "/modules/tadtools/formValidator.php")) {
redirect_header("index.php", 3, _TAD_NEED_TADTOOLS);
}
include_once XOOPS_ROOT_PATH . "/modules/tadtools/formValidator.php";
$formValidator = new formValidator("#myForm", true);
$formValidator->render();
}
###########################################################
# 新增、編輯資料
# $content = json_encode($content, JSON_NUMERIC_CHECK | JSON_UNESCAPED_UNICODE);
###########################################################
function op_insert() {
global $xoopsDB, $tbl, $DIRNAME;
//---- 過濾資料 -----------------------------------------*/
$myts = &MyTextSanitizer::getInstance();
#輪播標題
$_POST['title'] = $myts->addSlashes($_POST['title']);
if (empty($_POST['title'])) {
return false;
}
#摘要與圖示存成json
$content['content'] = $myts->addSlashes($_POST['content']);
$content['icon'] = $myts->addSlashes($_POST['icon']);
$_POST['content'] = json_encode($content, JSON_NUMERIC_CHECK | JSON_UNESCAPED_UNICODE);
#網址
$_POST['url'] = $myts->addSlashes($_POST['url']);
#類別
$_POST['kind'] = $myts->addSlashes($_POST['kind']);
#狀態
$_POST['enable'] = intval($_POST['enable']);
#連結狀態
$_POST['target'] = intval($_POST['target']);
#sn
$_POST['sn'] = intval($_POST['sn']);
#ofsn
$_POST['ofsn'] = intval($_POST['ofsn']);
//-------------------------------------------------------*/
if ($_POST['sn']) {
#編輯
$sql = "update " . $xoopsDB->prefix($tbl) . " set
`ofsn` = '{$_POST['ofsn']}' ,
`title` = '{$_POST['title']}' ,
`content` = '{$_POST['content']}' ,
`enable` = '{$_POST['enable']}',
`target` = '{$_POST['target']}',
`url` = '{$_POST['url']}'
where sn='{$_POST['sn']}'";
$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'], 3, mysql_error());
} else {
#---------新增------------------------
#---------取得排序--------------------
$sql = "select max(sort)as max_sort
from " . $xoopsDB->prefix($tbl) . "
where ofsn='{$_POST['ofsn']}' and kind='{$_POST['kind']}'";
$sort = get_ugm_module_sql($sql);
$sort['max_sort']++;
#---------寫入-------------------------
$sql = "insert into " . $xoopsDB->prefix($tbl) . "
(`ofsn` ,`title` ,`content`, `enable` , `sort`,`kind`,`target`,`url`)
values('{$_POST['ofsn']}' , '{$_POST['title']}', '{$_POST['content']}' ,'{$_POST['enable']}' , '{$sort['max_sort']}' , '{$_POST['kind']}', '{$_POST['target']}', '{$_POST['url']}')";
$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'], 3, mysql_error());
//取得最後新增資料的流水編號
$_POST['sn'] = $xoopsDB->getInsertId();
}
return $_POST['sn'];
}
###############################################################################
# 更新啟用
###############################################################################
function op_update_enable() {
global $xoopsDB, $tbl;
#權限
/***************************** 過瀘資料 *************************/
$enable = intval($_GET['enable']);
$sn = intval($_GET['sn']);
/****************************************************************/
//更新
$sql = "update
" . $xoopsDB->prefix($tbl) . "
set `enable` = '{$enable}'
where `sn`='{$sn}'";
$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'], 3, mysql_error());
return;
}
###############################################################################
# 更新外連
###############################################################################
function op_update_target() {
global $xoopsDB, $tbl;
#權限
/***************************** 過瀘資料 *************************/
$target = intval($_GET['target']);
$sn = intval($_GET['sn']);
/****************************************************************/
//更新
$sql = "update
" . $xoopsDB->prefix($tbl) . "
set `target` = '{$target}'
where `sn`='{$sn}'";
$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'], 3, mysql_error());
return;
}
###########################################################
# 批次編輯資料
###########################################################
function op_all_insert() {
global $xoopsDB, $tbl;
//---- 過濾資料 -----------------------------------------*/
$myts = &MyTextSanitizer::getInstance();
foreach ($_POST['title'] as $sn => $title) {
$title = $myts->addSlashes($title);
$sn = intval($sn); #編輯
$url = $myts->addSlashes($_POST['url'][$sn]);
$sql = "update
" . $xoopsDB->prefix($tbl) . " set
`title` = '{$title}',
`url` = '{$url}'
where sn='{$sn}'";
$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'], 3, mysql_error());
}
}
###############################################################################
# 刪除資料
###############################################################################
function op_delete($sn = "") {
global $xoopsDB, $tbl, $DIRNAME;
if (empty($sn)) {
redirect_header($_SERVER['PHP_SELF'], 3, _BP_DEL_ERROR);
}
#取得資料
$sql = "delete from " . $xoopsDB->prefix($tbl) . "
where sn='{$sn}'"; //die($sql);
$xoopsDB->queryF($sql) or redirect_header($_SERVER['PHP_SELF'], 3, mysql_error());
}
###############################################################################
# 自動更新排序
###############################################################################
function op_update_sort() {
global $xoopsDB, $tbl;
$sort = 1;
foreach ($_POST['tr'] as $sn) {
if (!$sn) {
continue;
}
$sql = "update
" . $xoopsDB->prefix($tbl) . "
set `sort`='{$sort}'
where `sn`='{$sn}'";
$xoopsDB->queryF($sql) or die("Save Sort Fail! (" . date("Y-m-d H:i:s") . ")");
$sort++;
}
return "Save Sort OK! (" . date("Y-m-d H:i:s") . ")" . _BP_F5;
}
###############################################################################
# 產生 write_html
###############################################################################
function write_html() {
global $tbl, $xoopsDB, $DIRNAME, $kind;
//---- 過濾資料 ----------------------*/
$myts = &MyTextSanitizer::getInstance();
$sql = "select *
from " . $xoopsDB->prefix($tbl) . "
where kind='{$kind}' and enable='1'
order by sort"; //die($sql);
$result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'], 3, mysql_error());
$item = "";
$i = 0;
while ($row = $xoopsDB->fetchArray($result)) {
$row['target'] = $row['target'] ? " target='_blank'" : "";
$row['title'] = $myts->htmlSpecialChars($row['title']);
$row['url'] = $myts->htmlSpecialChars($row['url']);
$content = json_decode($row['content'], true);
$row['icon'] = $myts->htmlSpecialChars($content['icon']);
$html = 0;
$br = 1;
$row['content'] = $myts->displayTarea($content['content'], $html, 1, 0, 1, $br);
$item .= " <div class='col-lg-3 col-md-6 text-center'>\n";
$item .= " <a href='{$row['url']}'{$row['target']}>\n";
$item .= " <div class='service-box'>\n";
$item .= " <i class='fa fa-4x {$row['icon']} text-primary sr-icons'></i>\n";
$item .= " <h3>{$row['title']}</h3>\n";
$item .= " <p class='text-muted'>{$row['content']}</p>\n";
$item .= " </div>\n";
$item .= " </a>\n";
$item .= " </div>\n";
}
$content = "";
$content = "<section id='services'>\n";
$content .= " <div class='container'>\n";
$content .= " <div class='row'>\n";
$content .= " <div class='col-lg-12 text-center'>\n";
$content .= " <h2 class='section-heading'>最新消息</h2>\n";
$content .= " <hr class='primary'>\n";
$content .= " </div>\n";
$content .= " </div>\n";
$content .= " </div>\n";
$content .= " <div class='container'>\n";
$content .= " <div class='row'>\n";
$content .= $item;
$content .= " </div>\n";
$content .= " </div>\n";
$content .= "</section>\n";
#---- 檢查資料夾
mk_dir(XOOPS_ROOT_PATH . "/uploads/{$DIRNAME}/tpl");
$file = XOOPS_ROOT_PATH . "/uploads/{$DIRNAME}/tpl/creative_services.html";
$f = fopen($file, 'w'); //以寫入方式開啟文件
fwrite($f, $content); //將新的資料寫入到原始的文件中
fclose($f);
}