示例#1
0
文件: Setting.php 项目: nbaiwan/yav
 /**
  * 缓存设置
  */
 public function websiteAction()
 {
     if ($_SERVER['REQUEST_METHOD'] == 'POST') {
         if (empty($_POST['Setting']) || !is_array($_POST['Setting'])) {
             $this->redirect('/setting/website');
         }
         foreach ($_POST['Setting'] as $_k => $_v) {
             $this->db->update('{{setting}}', array('setting_value' => $_v), 'setting_identify=:setting_identify', array(':setting_identify' => $_k));
         }
         //记录操作日志
         $message = '{user_name}修改了站点设置';
         $data = array('data' => $_POST['Setting']);
         UserLogsModel::inst()->add('Setting/Website', '', 'Modify', 'success', $message, $data);
         //WebsiteModel::inst()->updateCache();
     }
     $settings = SettingModel::inst()->getSettingsByGroup('cache');
     $this->getView()->assign(array('settings' => $settings));
 }
示例#2
0
文件: User.php 项目: nbaiwan/yav
 /**
  * @param integer pagesize
  * @param integer CID
  * @param integer CState
  * @param integer GState
  * 
  * @param string  order
  * 
  * @return array $rows
  */
 public function Pages($params = array())
 {
     //设置默认参数
     $_defaults_params = array('allow_cache' => false, 'page' => isset($_GET['page']) ? intval($_GET['page']) : 1, 'pagesize' => 15);
     $params = array_merge($_defaults_params, $params);
     //有开启缓存功能,则从缓存中取数据, 如果有数据,则直接返回结果
     if ($params['allow_cache'] && isset($this->cache)) {
         $cache_key = 'user.pages.' . serialize($params);
         $ret = $this->cache->get($_cache_key);
         if ($ret && is_array($ret)) {
             return $ret;
         }
     }
     //添加条件
     $builds = array('select' => 'COUNT(u.user_id) AS COUNT', 'from' => array('{{user}}', 'u'), 'leftJoin' => array('{{group}}', 'g', '`g`.`group_id`=`u`.`group_id`'));
     if (isset($params['status']) && !empty($params['status'])) {
         $builds['where'][] = array('AND', 'u.status=:status');
         $sql_params = array(':status' => $params['status']);
     } else {
         $builds['where'][] = array('AND', 'u.status>:status');
         $sql_params = array(':status' => self::STAT_STATUS_DELETED);
     }
     if (isset($params['group_id']) && !empty($params['group_id'])) {
         $groups = GroupModel::inst()->getGroupsByOwner($params['group_id']);
         $group_ids = array();
         $_addons_groups = array();
         foreach ($groups as $_k => $_v) {
             $_addons_groups[] = array("OR", "`u`.`group_id`=:group_id_{$_k}");
             $sql_params[":group_id_{$_k}"] = $_v['group_id'];
         }
         $builds['where'][] = array('AND', $_addons_groups);
     }
     if (isset($params['search_key']) && $params['search_key']) {
         $builds['where'][] = array('AND', array('OR LIKE', 'u.user_name', ':search_key_1'), array('OR LIKE', 'u.realname', ':search_key_2'), array('OR LIKE', 'u.email', ':search_key_3'));
         $sql_params[':search_key_1'] = "%{$params['search_key']}%";
         $sql_params[':search_key_2'] = "%{$params['search_key']}%";
         $sql_params[':search_key_3'] = "%{$params['search_key']}%";
     }
     $sql = $this->buildQuery($builds);
     //统计数量
     $count = $this->db->queryScalar($sql, $sql_params);
     //分页处理
     $pages = new CPagination($count);
     //设置分页大小
     $pages->pageSize = $params['pagesize'];
     //清空前面执行过的SQL
     if (isset($params['orderby']) && $params['orderby']) {
         $builds['order'] = $params['orderby'];
     } else {
         $builds['order'] = array('`r`.`role_rank` ASC', '`u`.`user_rank` ASC', '`u`.`user_id` ASC');
     }
     $builds['select'] = 'u.user_id, u.user_name, u.realname, u.email, u.user_id, u.group_id, g.group_name, u.logintimes, u.lastvisit, u.lastip, u.user_rank, u.lasttime, u.dateline, u.is_system, u.status';
     $pages->applyLimit($builds);
     $sql = $this->buildQuery($builds);
     $result['pages'] = $pages;
     $result['rows'] = $this->db->queryAll($sql, $sql_params);
     //有开启缓存,则把结果添加到缓存中
     if ($params['allow_cache'] && isset($this->cache)) {
         $cache_time_out = SettingModel::inst()->getSettingCache('ADMIN_LOGS_TIME_OUT');
         $this->cache->add($cache_key, $result, $cache_time_out);
         unset($cache_time_out, $cache_key);
     }
     return $result;
 }
示例#3
0
文件: UserLogs.php 项目: nbaiwan/yav
 /**
  * @param integer pagesize
  * @param integer CID
  * @param integer CState
  * @param integer GState
  * 
  * @param string  order
  * 
  * @return array $rows
  */
 public function Pages($params = array())
 {
     //设置默认参数
     $_defaults_params = array('allow_cache' => false, 'page' => isset($_GET['page']) ? intval($_GET['page']) : 1, 'pagesize' => 10);
     $params = array_merge($_defaults_params, $params);
     //有开启缓存功能,则从缓存中取数据, 如果有数据,则直接返回结果
     if ($params['allow_cache'] && isset($this->cache)) {
         $cacheKey = md5('admin.logs.pages' . serialize($params));
         $ret = $this->cache->get($cacheKey);
         if ($ret && is_array($ret)) {
             return $ret;
         }
     }
     //添加条件
     $builds = array('select' => 'COUNT(ul.log_id) AS COUNT', 'from' => array('{{user_logs}}', 'ul'));
     $sql_params = array();
     if (isset($params['searchKey']) && $params['searchKey']) {
         $builds[] = array('AND', array(array('OR LIKE', 'ul.log_type', ':searchKey_lType'), array('OR LIKE', 'ul.log_action', ':searchKey_lAction'), array('OR LIKE', 'ul.log_result', ':searchKey_lResult'), array('OR LIKE', 'ul.log_message', ':searchKey_lMessage'), array('OR LIKE', 'ul.log_data', ':searchKey_lData')));
         $sql_params[':searchKey_lType'] = "%{$params['searchKey']}%";
         $sql_params[':searchKey_lAction'] = "%{$params['searchKey']}%";
         $sql_params[':searchKey_lResult'] = "%{$params['searchKey']}%";
         $sql_params[':searchKey_lMessage'] = "%{$params['searchKey']}%";
         $sql_params[':searchKey_lData'] = "%{$params['searchKey']}%";
     }
     $sql = $this->buildQuery($builds);
     //统计数量
     $count = $this->db->queryScalar($sql, $sql_params);
     //分页处理
     $pages = new CPagination($count);
     //设置分页大小
     $pages->pageSize = $params['pagesize'];
     if (isset($params['orderby']) && $params['orderby']) {
         $builds['order'] = $params['orderby'];
         $cmd->order();
     } else {
         $builds['order'] = array('ul.lasttime DESC');
     }
     $builds['select'] = 'ul.log_id, ul.user_id, ul.log_type, ul.log_item_id, ul.log_action, ul.log_result, ul.log_message, ul.log_data, ul.user_ip, ul.lasttime';
     $pages->applyLimit($builds);
     $sql = $this->buildQuery($builds);
     $result['pages'] = $pages;
     $result['rows'] = $this->db->queryAll($sql);
     foreach ($result['rows'] as $key => $row) {
         $data = json_decode($row['log_data'], true);
         foreach ($data as $__key => $__value) {
             $row['log_message'] = str_replace("{{$__key}}", "\"{$__value}\"", $row['log_message']);
         }
         $result['rows'][$key] = $row;
     }
     //有开启缓存,则把结果添加到缓存中
     if ($params['allow_cache'] && isset($this->cache)) {
         $cacheTimeOut = SettingModel::inst()->getSettingValue('ADMIN_LOGS_TIME_OUT');
         $this->cache->set($cacheKey, $result, $cacheTimeOut);
         unset($cacheTimeOut, $cacheKey);
     }
     return $result;
 }