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