find($where); return $data; } # 直接获取某个页面的内容 public function getPage($path = 'module', $cdate = 'Y-m-d H:i', $config = array()) { $page = Dever::input('page'); if ($page) { $uri = $page; } else { $uri = Dever::uri(); } if (!$uri) { $uri = 'home'; } $data = $this->getPageData($uri, $cdate); $result = array(); if ($data && $data['module']) { foreach ($data['module'] as $k => $v) { $v['config'] = $config; $result[] = Dever::render($path . '/' . $v['key'], $v); } } return implode("\r\n", $result); } # 获取某个页面的数据 public function getPageData($page_id, $cdate = 'Y-m-d H:i') { $where = array(); if (is_numeric($page_id)) { $where['id'] = $page_id; } else { $where['key'] = $page_id; } $data = Dever::db('page/page')->find($where); if ($data) { $data['module'] = Dever::db('page/page_module')->getData(array('page_id' => $data['id'])); if ($data['module']) { foreach ($data['module'] as $k => $v) { $where = array(); $where['module_id'] = $v['id']; $where['limit'] = '0,' . $v['num']; $data['module'][$k]['data'] = Dever::db('page/data')->getAll($where); if ($data['module'][$k]['data']) { foreach ($data['module'][$k]['data'] as $k1 => $v1) { $data['module'][$k]['data'][$k1] = $this->getOne($v1, 2, $cdate); } } } } } return $data; } # 获取某个推送位的所有数据 public function get($key, $name, $total = 10, $col = '1,2,3', $func = '-1', $page = false, $limit = false, $cdate = 'Y-m-d H:i') { $module = Dever::db('page/module')->one(array('key' => $key)); if (!$module) { $insert['key'] = $key; $insert['name'] = $name; $insert['num'] = $total; $insert['col'] = $col; $insert['func'] = $func; $module['id'] = Dever::db('page/module')->insert($insert); $module['num'] = $insert['num']; } $data = array(); if ($module) { if (!$module['num']) { $module['num'] = 20; } if ($limit > 0) { $module['num'] = $limit; } if ($module['content'] == 1 && $total > 0) { Dever::setInput('search_option_module_id', $module['id']); $where = array(); $where['module_id'] = $module['id']; if ($page) { $where['page'] = array($module['num'], 'list'); $data = Dever::db('page/data')->getAllPage($where); } else { $where['limit'] = '0,' . $module['num']; $data = Dever::db('page/data')->getAll($where); } if ($data) { foreach ($data as $k => $v) { $data[$k] = $this->getOne($v, 2, $cdate); } } } else { $data = $module; } } return $data; } # 获取某条推送位的数据 public function getOne($module, $state = 2, $cdate = 'Y-m-d H:i') { $data = is_array($module) ? $module : Dever::db('page/data')->one($module); $source = array(); $module = array(); $col = array(); if ($data['type'] > 0) { $func = Dever::db('page/func')->one($data['type']); if ($func) { if ($func['type'] == 1) { $method = $func['api']; $col = Dever::array_decode($func['col']); $source = Dever::load($method, $data['type_id']); } else { $data['type_id'] = $func['api']; } } } if ($state == 1) { $result = array(); } else { $result = $data; $result['cdate_string'] = date($cdate, $result['cdate']); } $lang = Dever::getLang(); if ($lang) { $key = $lang . '_col_'; } else { $key = 'col_'; } foreach ($data as $k => $v) { $s = strstr($k, $key); if ($lang && strstr($k, 'col_') && !$s) { $s = true; $key = 'col_'; } if ($s) { $id = str_replace($key, '', $k); $col_module = Dever::db('page/col')->one($id); if (!$col_module) { continue; } if (!$v && $source && $col) { foreach ($col as $k1 => $v1) { if ($v1['col_id'] == $id && isset($source[$v1['name']]) && $source[$v1['name']]) { $v = $source[$v1['name']]; } } } if (strstr($v, "\n")) { $v = str_replace("\n", '
', $v); } if (strstr($v, 'pics')) { $v = explode(',', $v); } if ($state == 1) { if (strstr($v, 'jpg') || strstr($v, 'png') || strstr($v, 'gif')) { $v = ''; } if (!isset($result[$k])) { $result[$k] = array(); } $result[$k][$col_module['name']] = $v; } else { if (strstr($col_module['key'], 'link')) { $v = Dever::url($v, 'main'); } $result[$col_module['key']] = $v; } } } return $result; } }