1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- <?php
- defined('IN_PHPCMS') or exit('No permission resources.');
- class call {
- private $db;
- public function __construct() {
- $this->db = pc_base::load_model('datacall_model');
- }
-
- public function get() {
- $id = isset($_GET['id']) && intval($_GET['id']) ? intval($_GET['id']) : exit();
- if ($data = $this->db->get_one(array('id'=>$id))) {
- if (!$str = tpl_cache('dbsource_'.$id,$data['cache'])) {
- if ($data['type'] == 1) { //自定义SQL调用
- $get_db = pc_base::load_model("get_model");
- $sql = $data['data'].(!empty($data['num']) ? " LIMIT $data[num]" : '');
- $r= $get_db->query($sql);
- while(($s = $get_db->fetch_next()) != false) {
- $str[] = $s;
- }
- } else {
- $filepath = PC_PATH.'modules'.DIRECTORY_SEPARATOR.$data['module'].DIRECTORY_SEPARATOR.'classes'.DIRECTORY_SEPARATOR.$data['module'].'_tag.class.php';
- if (file_exists($filepath)) {
- $pc_tag = pc_base::load_app_class($data['module'].'_tag', $data['module']);
- if (!method_exists($pc_tag, $data['action'])) {
- exit();
- }
- $sql = string2array($data['data']);
- $sql['action'] = $data['action'];
- $sql['limit'] = $data['num'];
- unset($data['num']);
- $str = $pc_tag->{$data['action']}($sql);
-
- } else {
- exit();
- }
- }
- if ($data['cache']) setcache('dbsource_'.$id, $str, 'tpl_data');
- }
- echo $this->_format($data['id'], $str, $data['dis_type']);
- }
- }
-
- private function _format($id, $data, $type) {
- switch($type) {
- case '1'://json
- if (CHARSET == 'gbk') {
- $data = array_iconv($data, 'gbk', 'utf-8');
- }
- return json_encode($data);
- break;
-
- case '2'://xml
- $xml = pc_base::load_sys_class('xml');
- return $xml->xml_serialize($data);
- break;
-
- case '3'://js
- pc_base::load_app_func('global');
- ob_start();
- include template_url($id);
- $html = ob_get_contents();
- ob_clean();
- return format_js($html);
- break;
- }
- }
- }
- ?>
|