www.gusucode.com > DouPHP轻量PHP企业网站管理系统 v1.3 Release 源码程序 > DouPHP_v1.3.0502/upload/include/action.class.php
<?php /** * DouPHP * -------------------------------------------------------------------------------------------------- * 版权所有 2013-2015 漳州豆壳网络科技有限公司,并保留所有权利。 * 网站地址: http://www.douco.com * -------------------------------------------------------------------------------------------------- * 这不是一个自由软件!您只能在遵守授权协议前提下对程序代码进行修改和使用;不允许对程序代码以任何形式任何目的的再发布。 * 授权协议:http://www.douco.com/license.html * -------------------------------------------------------------------------------------------------- * Author: DouCo * Release Date: 2015-10-16 */ if (!defined('IN_DOUCO')) { die('Hacking attempt'); } class Action extends Common { /** * +---------------------------------------------------------- * 获取导航菜单 * +---------------------------------------------------------- * $type 导航类型 * $parent_id 默认获取一级导航 * $current_module 当前页面模型名称,用于高亮导航栏 * $current_id 当前页面栏目ID * +---------------------------------------------------------- */ function get_nav($type = 'middle', $parent_id = 0, $current_module = '', $current_id = '', $current_parent_id = '') { $nav = array (); $data = $this->fetch_array_all($this->table('nav'), 'sort ASC'); foreach ((array) $data as $value) { // 根据$parent_id和$type筛选父级导航 if ($value['parent_id'] == $parent_id && $value['type'] == $type) { // 如果是自定义链接则$value['guide']值链接地址,如果是内部导航则值是栏目ID if ($value['module'] == 'nav') { if (strpos($value['guide'], 'http://') === 0 || strpos($value['guide'], 'https://') === 0) { $value['url'] = $value['guide']; // 自定义导航如果包含http则在新窗口打开 $value['target'] = true; } else { $value['url'] = ROOT_URL . $value['guide']; // 系统会比对自定义链接是否包含在当前URL里,如果包含则高亮菜单,如果不需要此功能,请注释掉下面那行代码 $value['cur'] = strpos($_SERVER['REQUEST_URI'], $value['guide']); } } else { $value['url'] = $this->rewrite_url($value['module'], $value['guide']); $value['cur'] = $this->dou_current($value['module'], $value['guide'], $current_module, $current_id, $current_parent_id); } foreach ($data as $child) { // 筛选下级导航 if ($child['parent_id'] == $value['id']) { $value['child'] = $this->get_nav($type, $value['id']); break; } } $nav[] = $value; } } return $nav; } /** * +---------------------------------------------------------- * 高亮当前菜单 * +---------------------------------------------------------- * $module 模块名称 * $id 当前要判断的ID * $current_module 当前模块名称,例如在获取导航菜单时就会涉及到不同的模块 * $current_id 当前的ID * +---------------------------------------------------------- */ function dou_current($module, $id, $current_module, $current_id = '', $current_parent_id = '') { if (($id == $current_id || $id == $current_parent_id) && $module == $current_module) { return true; } elseif (!$id && $module == $current_module) { return true; } } /** * +---------------------------------------------------------- * 当前位置 * +---------------------------------------------------------- * $module 模块名称 * $class 分类ID或模块子栏目 * $title 信息标题 * +---------------------------------------------------------- */ function ur_here($module, $class = '', $title = '') { if ($module == 'page') { // 如果是单页面,则只显示单页面名称 $ur_here = $title; } elseif (!$class) { // 模块主页 $ur_here = $GLOBALS['_LANG'][$module]; } else { // 模块名称 $main = '<a href=' . $this->rewrite_url($module) . '>' . $GLOBALS['_LANG'][$module] . '</a>'; // 如果存在分类 if ($class) { $cat_name = is_numeric($class) ? $this->get_one("SELECT cat_name FROM " . $this->table($module) . " WHERE cat_id = '$class'") : $GLOBALS['_LANG'][$class]; // 如果存在标题 if ($title) { $category = '<b>></b><a href=' . $this->rewrite_url($module, $class) . '>' . $cat_name . '</a>'; } else { $category = "<b>></b>$cat_name"; } } // 如果存在标题 if ($title) $title = '<b>></b>' . $title; $ur_here = $main . $category . $title; } return $ur_here; } /** * +---------------------------------------------------------- * 标题 * +---------------------------------------------------------- * $module 模块名称 * $class 分类ID或模块子栏目 * $title 信息标题 * +---------------------------------------------------------- */ function page_title($module, $class = '', $title = '') { // 如果是单页面,则只执行这一句 if ($module == 'page') { $titles = $title . ' | '; } elseif ($module) { // 模块名称 $main = $GLOBALS['_LANG'][$module] . ' | '; // 如果存在分类 if ($class) { $cat_name = is_numeric($class) ? $this->get_one("SELECT cat_name FROM " . $this->table($module) . " WHERE cat_id = '$class'") : $GLOBALS['_LANG'][$class]; $cat_name = $cat_name . ' | '; } // 如果存在标题 if ($title) $title = $title . ' | '; $titles = $title . $cat_name . $main; } $page_title = ($titles ? $titles . $GLOBALS['_CFG']['site_name'] : $GLOBALS['_CFG']['site_title']) . ' - Powered by DouPHP'; return $page_title; } /** * +---------------------------------------------------------- * 判断是否是移动客户端 * +---------------------------------------------------------- */ function is_mobile() { static $is_mobile; $user_agent = $_SERVER['HTTP_USER_AGENT']; if (isset($is_mobile)) return $is_mobile; if (empty($user_agent)) { $is_mobile = false; } else { // 移动端UA关键字 $mobile_agents = array ( 'Mobile', 'Android', 'Silk/', 'Kindle', 'BlackBerry', 'Opera Mini', 'Opera Mobi' ); $is_mobile = false; foreach ($mobile_agents as $device) { if (strpos($user_agent, $device) !== false) { $is_mobile = true; break; } } } return $is_mobile; } /** * +---------------------------------------------------------- * 信息提示 * +---------------------------------------------------------- * $text 提示的内容 * $url 提示后要跳转的网址 * $time 多久时间跳转 * +---------------------------------------------------------- */ function dou_msg($text, $url = '', $time = 3) { if (!$text) { $text = $GLOBALS['_LANG']['dou_msg_success']; } /* 获取meta和title信息 */ $GLOBALS['smarty']->assign('page_title', $GLOBALS['_CFG']['site_title']); $GLOBALS['smarty']->assign('keywords', $GLOBALS['_CFG']['site_keywords']); $GLOBALS['smarty']->assign('description', $GLOBALS['_CFG']['site_description']); /* 初始化导航栏 */ $data = $this->fetch_array_all($this->table('nav'), 'sort ASC'); $GLOBALS['smarty']->assign('nav_top_list', $this->get_nav('top')); $GLOBALS['smarty']->assign('nav_middle_list', $this->get_nav('middle')); $GLOBALS['smarty']->assign('nav_bottom_list', $this->get_nav('bottom')); /* 初始化数据 */ $GLOBALS['smarty']->assign('ur_here', $GLOBALS['_LANG']['dou_msg']); $GLOBALS['smarty']->assign('text', $text); $GLOBALS['smarty']->assign('url', $url); $GLOBALS['smarty']->assign('time', $time); // 根据跳转时间生成跳转提示 $cue = preg_replace('/d%/Ums', $time, $GLOBALS['_LANG']['dou_msg_cue']); $GLOBALS['smarty']->assign('cue', $cue); $GLOBALS['smarty']->display('dou_msg.dwt'); exit(); } } ?>