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;
}
}