content_model.class.php 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550
  1. <?php
  2. defined('IN_PHPCMS') or exit('No permission resources.');
  3. if(!defined('CACHE_MODEL_PATH')) define('CACHE_MODEL_PATH',CACHE_PATH.'caches_model'.DIRECTORY_SEPARATOR.'caches_data'.DIRECTORY_SEPARATOR);
  4. /**
  5. * 内容模型数据库操作类
  6. */
  7. pc_base::load_sys_class('model', '', 0);
  8. class content_model extends model {
  9. public $table_name = '';
  10. public $category = '';
  11. public function __construct() {
  12. $this->db_config = pc_base::load_config('database');
  13. $this->db_setting = 'default';
  14. parent::__construct();
  15. $this->url = pc_base::load_app_class('url', 'content');
  16. $this->siteid = get_siteid();
  17. }
  18. public function set_model($modelid) {
  19. $this->model = getcache('model', 'commons');
  20. $this->modelid = $modelid;
  21. $this->table_name = $this->db_tablepre.$this->model[$modelid]['tablename'];
  22. $this->model_tablename = $this->model[$modelid]['tablename'];
  23. }
  24. /**
  25. * 添加内容
  26. *
  27. * @param $datas
  28. * @param $isimport 是否为外部接口导入
  29. */
  30. public function add_content($data,$isimport = 0) {
  31. if($isimport) $data = new_addslashes($data);
  32. $this->search_db = pc_base::load_model('search_model');
  33. $modelid = $this->modelid;
  34. require_once CACHE_MODEL_PATH.'content_input.class.php';
  35. require_once CACHE_MODEL_PATH.'content_update.class.php';
  36. $content_input = new content_input($this->modelid);
  37. $inputinfo = $content_input->get($data,$isimport);
  38. $systeminfo = $inputinfo['system'];
  39. $modelinfo = $inputinfo['model'];
  40. if($data['inputtime'] && !is_numeric($data['inputtime'])) {
  41. $systeminfo['inputtime'] = strtotime($data['inputtime']);
  42. } elseif(!$data['inputtime']) {
  43. $systeminfo['inputtime'] = SYS_TIME;
  44. } else {
  45. $systeminfo['inputtime'] = $data['inputtime'];
  46. }
  47. //读取模型字段配置中,关于日期配置格式,来组合日期数据
  48. $this->fields = getcache('model_field_'.$modelid,'model');
  49. $setting = string2array($this->fields['inputtime']['setting']);
  50. extract($setting);
  51. if($fieldtype=='date') {
  52. $systeminfo['inputtime'] = date('Y-m-d');
  53. }elseif($fieldtype=='datetime'){
  54. $systeminfo['inputtime'] = date('Y-m-d H:i:s');
  55. }
  56. if($data['updatetime'] && !is_numeric($data['updatetime'])) {
  57. $systeminfo['updatetime'] = strtotime($data['updatetime']);
  58. } elseif(!$data['updatetime']) {
  59. $systeminfo['updatetime'] = SYS_TIME;
  60. } else {
  61. $systeminfo['updatetime'] = $data['updatetime'];
  62. }
  63. $inputinfo['system']['username'] = $systeminfo['username'] = $data['username'] ? $data['username'] : param::get_cookie('admin_username');
  64. $systeminfo['sysadd'] = defined('IN_ADMIN') ? 1 : 0;
  65. //自动提取摘要
  66. if(isset($_POST['add_introduce']) && $systeminfo['description'] == '' && isset($modelinfo['content'])) {
  67. $content = stripslashes($modelinfo['content']);
  68. $introcude_length = intval($_POST['introcude_length']);
  69. $systeminfo['description'] = str_cut(str_replace(array("'","\r\n","\t",'[page]','[/page]','&ldquo;','&rdquo;','&nbsp;'), '', strip_tags($content)),$introcude_length);
  70. $inputinfo['system']['description'] = $systeminfo['description'] = addslashes($systeminfo['description']);
  71. }
  72. //自动提取缩略图
  73. if(isset($_POST['auto_thumb']) && $systeminfo['thumb'] == '' && isset($modelinfo['content'])) {
  74. $content = $content ? $content : stripslashes($modelinfo['content']);
  75. $auto_thumb_no = intval($_POST['auto_thumb_no'])-1;
  76. if(preg_match_all("/(src)=([\"|']?)([^ \"'>]+\.(gif|jpg|jpeg|bmp|png))\\2/i", $content, $matches)) {
  77. $systeminfo['thumb'] = $matches[3][$auto_thumb_no];
  78. }
  79. }
  80. //$systeminfo['description'] = str_replace(array('/','\\','#','.',"'"),' ',$systeminfo['description
  81. $systeminfo['description'] =$systeminfo['description'];
  82. $systeminfo['keywords'] = str_replace(array('/','\\','#','.',"'"),' ',$systeminfo['keywords']);
  83. //主表
  84. $tablename = $this->table_name = $this->db_tablepre.$this->model_tablename;
  85. $id = $modelinfo['id'] = $this->insert($systeminfo,true);
  86. $this->update($systeminfo,array('id'=>$id));
  87. //更新URL地址
  88. if($data['islink']==1) {
  89. $urls[0] = trim_script($_POST['linkurl']);
  90. $urls[0] = remove_xss($urls[0]);
  91. $urls[0] = str_replace(array('select ',')','\\','#',"'"),' ',$urls[0]);
  92. } else {
  93. $urls = $this->url->show($id, 0, $systeminfo['catid'], $systeminfo['inputtime'], $data['prefix'],$inputinfo,'add');
  94. }
  95. $this->table_name = $tablename;
  96. $this->update(array('url'=>$urls[0]),array('id'=>$id));
  97. //附属表
  98. $this->table_name = $this->table_name.'_data';
  99. $this->insert($modelinfo);
  100. //添加统计
  101. $this->hits_db = pc_base::load_model('hits_model');
  102. $hitsid = 'c-'.$modelid.'-'.$id;
  103. $this->hits_db->insert(array('hitsid'=>$hitsid,'catid'=>$systeminfo['catid'],'updatetime'=>SYS_TIME));
  104. if($data['status']==99) {
  105. //更新到全站搜索
  106. $this->search_api($id,$inputinfo);
  107. }
  108. //更新栏目统计数据
  109. $this->update_category_items($systeminfo['catid'],'add',1);
  110. //调用 update
  111. $content_update = new content_update($this->modelid,$id);
  112. //合并后,调用update
  113. $merge_data = array_merge($systeminfo,$modelinfo);
  114. $merge_data['posids'] = $data['posids'];
  115. $content_update->update($merge_data);
  116. //发布到审核列表中
  117. if(!defined('IN_ADMIN') || $data['status']!=99) {
  118. $this->content_check_db = pc_base::load_model('content_check_model');
  119. $check_data = array(
  120. 'checkid'=>'c-'.$id.'-'.$modelid,
  121. 'catid'=>$systeminfo['catid'],
  122. 'siteid'=>$this->siteid,
  123. 'title'=>$systeminfo['title'],
  124. 'username'=>$systeminfo['username'],
  125. 'inputtime'=>$systeminfo['inputtime'],
  126. 'status'=>$data['status'],
  127. );
  128. $this->content_check_db->insert($check_data);
  129. }
  130. //END发布到审核列表中
  131. if(!$isimport) {
  132. $html = pc_base::load_app_class('html', 'content');
  133. $urls['data']['system']['id'] = $id;
  134. if($urls['content_ishtml'] && $data['status']==99) $html->show($urls[1],$urls['data']);
  135. $catid = $systeminfo['catid'];
  136. }
  137. //发布到其他栏目
  138. if($id && isset($_POST['othor_catid']) && is_array($_POST['othor_catid'])) {
  139. $linkurl = $urls[0];
  140. $r = $this->get_one(array('id'=>$id));
  141. foreach ($_POST['othor_catid'] as $cid=>$_v) {
  142. $this->set_catid($cid);
  143. $mid = $this->category[$cid]['modelid'];
  144. if($modelid==$mid) {
  145. //相同模型的栏目插入新的数据
  146. $inputinfo['system']['catid'] = $systeminfo['catid'] = $cid;
  147. $newid = $modelinfo['id'] = $this->insert($systeminfo,true);
  148. $this->table_name = $tablename.'_data';
  149. $this->insert($modelinfo);
  150. if($data['islink']==1) {
  151. $urls = $_POST['linkurl'];
  152. $urls = str_replace(array('select ',')','\\','#',"'"),' ',$urls);
  153. } else {
  154. $urls = $this->url->show($newid, 0, $cid, $systeminfo['inputtime'], $data['prefix'],$inputinfo,'add');
  155. }
  156. $this->table_name = $tablename;
  157. $this->update(array('url'=>$urls[0]),array('id'=>$newid));
  158. //发布到审核列表中
  159. if($data['status']!=99) {
  160. $check_data = array(
  161. 'checkid'=>'c-'.$newid.'-'.$mid,
  162. 'catid'=>$cid,
  163. 'siteid'=>$this->siteid,
  164. 'title'=>$systeminfo['title'],
  165. 'username'=>$systeminfo['username'],
  166. 'inputtime'=>$systeminfo['inputtime'],
  167. 'status'=>1,
  168. );
  169. $this->content_check_db->insert($check_data);
  170. }
  171. if($urls['content_ishtml'] && $data['status']==99) $html->show($urls[1],$urls['data']);
  172. } else {
  173. //不同模型插入转向链接地址
  174. $newid = $this->insert(
  175. array('title'=>$systeminfo['title'],
  176. 'style'=>$systeminfo['style'],
  177. 'thumb'=>$systeminfo['thumb'],
  178. 'keywords'=>$systeminfo['keywords'],
  179. 'description'=>$systeminfo['description'],
  180. 'status'=>$systeminfo['status'],
  181. 'catid'=>$cid,'url'=>$linkurl,
  182. 'sysadd'=>1,
  183. 'username'=>$systeminfo['username'],
  184. 'inputtime'=>$systeminfo['inputtime'],
  185. 'updatetime'=>$systeminfo['updatetime'],
  186. 'islink'=>1
  187. ),true);
  188. $this->table_name = $this->table_name.'_data';
  189. $this->insert(array('id'=>$newid));
  190. //发布到审核列表中
  191. if($data['status']!=99) {
  192. $check_data = array(
  193. 'checkid'=>'c-'.$newid.'-'.$mid,
  194. 'catid'=>$systeminfo['catid'],
  195. 'siteid'=>$this->siteid,
  196. 'title'=>$systeminfo['title'],
  197. 'username'=>$systeminfo['username'],
  198. 'inputtime'=>$systeminfo['inputtime'],
  199. 'status'=>1,
  200. );
  201. $this->content_check_db->insert($check_data);
  202. }
  203. }
  204. $hitsid = 'c-'.$mid.'-'.$newid;
  205. $this->hits_db->insert(array('hitsid'=>$hitsid,'catid'=>$cid,'updatetime'=>SYS_TIME));
  206. }
  207. }
  208. //END 发布到其他栏目
  209. //更新附件状态
  210. if(pc_base::load_config('system','attachment_stat')) {
  211. $this->attachment_db = pc_base::load_model('attachment_model');
  212. $this->attachment_db->api_update('','c-'.$systeminfo['catid'].'-'.$id,2);
  213. }
  214. //生成静态
  215. if(!$isimport && $data['status']==99) {
  216. //在添加和修改内容处定义了 INDEX_HTML
  217. if(defined('INDEX_HTML')) $html->index();
  218. if(defined('RELATION_HTML')) $html->create_relation_html($catid);
  219. }
  220. return $id;
  221. }
  222. /**
  223. * 修改内容
  224. *
  225. * @param $datas
  226. */
  227. public function edit_content($data,$id) {
  228. $model_tablename = $this->model_tablename;
  229. //前台权限判断
  230. if(!defined('IN_ADMIN')) {
  231. $_username = param::get_cookie('_username');
  232. $us = $this->get_one(array('id'=>$id,'username'=>$_username));
  233. if(!$us) return false;
  234. }
  235. $this->search_db = pc_base::load_model('search_model');
  236. require_once CACHE_MODEL_PATH.'content_input.class.php';
  237. require_once CACHE_MODEL_PATH.'content_update.class.php';
  238. $content_input = new content_input($this->modelid);
  239. $inputinfo = $content_input->get($data);
  240. $systeminfo = $inputinfo['system'];
  241. $modelinfo = $inputinfo['model'];
  242. if($data['inputtime'] && !is_numeric($data['inputtime'])) {
  243. $systeminfo['inputtime'] = strtotime($data['inputtime']);
  244. } elseif(!$data['inputtime']) {
  245. $systeminfo['inputtime'] = SYS_TIME;
  246. } else {
  247. $systeminfo['inputtime'] = $data['inputtime'];
  248. }
  249. if($data['updatetime'] && !is_numeric($data['updatetime'])) {
  250. $systeminfo['updatetime'] = strtotime($data['updatetime']);
  251. } elseif(!$data['updatetime']) {
  252. $systeminfo['updatetime'] = SYS_TIME;
  253. } else {
  254. $systeminfo['updatetime'] = $data['updatetime'];
  255. }
  256. //自动提取摘要
  257. if(isset($_POST['add_introduce']) && $systeminfo['description'] == '' && isset($modelinfo['content'])) {
  258. $content = stripslashes($modelinfo['content']);
  259. $introcude_length = intval($_POST['introcude_length']);
  260. $systeminfo['description'] = str_cut(str_replace(array("\r\n","\t",'[page]','[/page]','&ldquo;','&rdquo;','&nbsp;'), '', strip_tags($content)),$introcude_length);
  261. $inputinfo['system']['description'] = $systeminfo['description'] = addslashes($systeminfo['description']);
  262. }
  263. //自动提取缩略图
  264. if(isset($_POST['auto_thumb']) && $systeminfo['thumb'] == '' && isset($modelinfo['content'])) {
  265. $content = $content ? $content : stripslashes($modelinfo['content']);
  266. $auto_thumb_no = intval($_POST['auto_thumb_no'])-1;
  267. if(preg_match_all("/(src)=([\"|']?)([^ \"'>]+\.(gif|jpg|jpeg|bmp|png))\\2/i", $content, $matches)) {
  268. $systeminfo['thumb'] = $matches[3][$auto_thumb_no];
  269. }
  270. }
  271. if($data['islink']==1) {
  272. $systeminfo['url'] = $_POST['linkurl'];
  273. $systeminfo['url'] = str_replace(array('select ',')','\\','#',"'"),' ',$systeminfo['url']);
  274. } else {
  275. //更新URL地址
  276. $urls = $this->url->show($id, 0, $systeminfo['catid'], $systeminfo['inputtime'], $data['prefix'],$inputinfo,'edit');
  277. $systeminfo['url'] = $urls[0];
  278. }
  279. //$systeminfo['description'] = str_replace(array('/','\\','#','.',"'"),' ',$systeminfo['description']);
  280. $systeminfo['description'] = $systeminfo['description'];
  281. $systeminfo['keywords'] = str_replace(array('/','\\','#','.',"'"),' ',$systeminfo['keywords']);
  282. //主表
  283. $this->table_name = $this->db_tablepre.$model_tablename;
  284. $this->update($systeminfo,array('id'=>$id));
  285. //附属表
  286. $this->table_name = $this->table_name.'_data';
  287. $this->update($modelinfo,array('id'=>$id));
  288. $this->search_api($id,$inputinfo);
  289. //调用 update
  290. $content_update = new content_update($this->modelid,$id);
  291. $content_update->update($data);
  292. //更新附件状态
  293. if(pc_base::load_config('system','attachment_stat')) {
  294. $this->attachment_db = pc_base::load_model('attachment_model');
  295. $this->attachment_db->api_update('','c-'.$systeminfo['catid'].'-'.$id,2);
  296. }
  297. //更新审核列表
  298. $this->content_check_db = pc_base::load_model('content_check_model');
  299. $check_data = array(
  300. 'catid'=>$systeminfo['catid'],
  301. 'siteid'=>$this->siteid,
  302. 'title'=>$systeminfo['title'],
  303. 'status'=>$systeminfo['status'],
  304. );
  305. if(!isset($systeminfo['status'])) unset($check_data['status']);
  306. $this->content_check_db->update($check_data,array('checkid'=>'c-'.$id.'-'.$this->modelid));
  307. //生成静态
  308. $html = pc_base::load_app_class('html', 'content');
  309. if($urls['content_ishtml']) {
  310. $html->show($urls[1],$urls['data']);
  311. }
  312. //在添加和修改内容处定义了 INDEX_HTML
  313. if(defined('INDEX_HTML')) $html->index();
  314. if(defined('RELATION_HTML')) $html->create_relation_html($systeminfo['catid']);
  315. return true;
  316. }
  317. public function status($ids = array(), $status = 99) {
  318. $this->content_check_db = pc_base::load_model('content_check_model');
  319. $this->message_db = pc_base::load_model('message_model');
  320. $this->set_model($this->modelid);
  321. if(is_array($ids) && !empty($ids)) {
  322. foreach($ids as $id) {
  323. $this->update(array('status'=>$status),array('id'=>$id));
  324. $del = false;
  325. $r = $this->get_one(array('id'=>$id));
  326. if($status==0) {
  327. //退稿发送短消息、邮件
  328. $message = L('reject_message_tips').$r['title']."<BR><a href=\'index.php?m=member&c=content&a=edit&catid={$r[catid]}&id={$r[id]}\'><font color=red>".L('click_edit')."</font></a><br>";
  329. if(isset($_POST['reject_c']) && $_POST['reject_c'] != L('reject_msg')) {
  330. $message .= $_POST['reject_c'];
  331. } elseif(isset($_GET['reject_c']) && $_GET['reject_c'] != L('reject_msg')) {
  332. $message .= $_GET['reject_c'];
  333. }
  334. $this->message_db->add_message($r['username'],'SYSTEM',L('reject_message'),$message);
  335. } elseif($status==99 && $r['sysadd']) {
  336. $this->content_check_db->delete(array('checkid'=>'c-'.$id.'-'.$this->modelid));
  337. $del = true;
  338. }
  339. if(!$del) $this->content_check_db->update(array('status'=>$status),array('checkid'=>'c-'.$id.'-'.$this->modelid));
  340. }
  341. } else {
  342. $this->update(array('status'=>$status),array('id'=>$ids));
  343. $del = false;
  344. $r = $this->get_one(array('id'=>$ids));
  345. if($status==0) {
  346. //退稿发送短消息、邮件
  347. $message = L('reject_message_tips').$r['title']."<BR><a href=\'index.php?m=member&c=content&a=edit&catid={$r[catid]}&id={$r[id]}\'><font color=red>".L('click_edit')."</font></a><br>";
  348. if(isset($_POST['reject_c']) && $_POST['reject_c'] != L('reject_msg')) {
  349. $message .= $_POST['reject_c'];
  350. } elseif(isset($_GET['reject_c']) && $_GET['reject_c'] != L('reject_msg')) {
  351. $message .= $_GET['reject_c'];
  352. }
  353. $this->message_db->add_message($r['username'],'SYSTEM',L('reject_message'),$message);
  354. } elseif($status==99 && $r['sysadd']) {
  355. $this->content_check_db->delete(array('checkid'=>'c-'.$ids.'-'.$this->modelid));
  356. $del = true;
  357. }
  358. if(!$del) $this->content_check_db->update(array('status'=>$status),array('checkid'=>'c-'.$ids.'-'.$this->modelid));
  359. }
  360. return true;
  361. }
  362. /**
  363. * 删除内容
  364. * @param $id 内容id
  365. * @param $file 文件路径
  366. * @param $catid 栏目id
  367. */
  368. public function delete_content($id,$file,$catid = 0) {
  369. //删除主表数据
  370. $this->delete(array('id'=>$id));
  371. //删除从表数据
  372. $this->table_name = $this->table_name.'_data';
  373. $this->delete(array('id'=>$id));
  374. //重置默认表
  375. $this->table_name = $this->db_tablepre.$this->model_tablename;
  376. //更新栏目统计
  377. $this->update_category_items($catid,'delete');
  378. }
  379. public function search_api($id = 0, $data = array(), $action = 'update') {
  380. $type_arr = getcache('search_model_'.$this->siteid,'search');
  381. $typeid = $type_arr[$this->modelid]['typeid'];
  382. if($action == 'update') {
  383. $fulltext_array = getcache('model_field_'.$this->modelid,'model');
  384. foreach($fulltext_array AS $key=>$value){
  385. if($value['isfulltext']) {
  386. $fulltextcontent .= $data['system'][$key] ? $data['system'][$key] : $data['model'][$key];
  387. }
  388. }
  389. $this->search_db->update_search($typeid ,$id, $fulltextcontent,addslashes($data['system']['title']).' '.addslashes($data['system']['keywords']),$data['system']['inputtime']);
  390. } elseif($action == 'delete') {
  391. $this->search_db->delete_search($typeid ,$id);
  392. }
  393. }
  394. /**
  395. * 获取单篇信息
  396. *
  397. * @param $catid
  398. * @param $id
  399. */
  400. public function get_content($catid,$id) {
  401. $catid = intval($catid);
  402. $id = intval($id);
  403. if(!$catid || !$id) return false;
  404. $siteids = getcache('category_content','commons');
  405. $siteid = $siteids[$catid];
  406. $this->category = getcache('category_content_'.$siteid,'commons');
  407. if(isset($this->category[$catid]) && $this->category[$catid]['type'] == 0) {
  408. $modelid = $this->category[$catid]['modelid'];
  409. $this->set_model($modelid);
  410. $r = $this->get_one(array('id'=>$id));
  411. //附属表
  412. $this->table_name = $this->table_name.'_data';
  413. $r2 = $this->get_one(array('id'=>$id));
  414. if($r2) {
  415. return array_merge($r,$r2);
  416. } else {
  417. return $r;
  418. }
  419. }
  420. return true;
  421. }
  422. /**
  423. * 设置catid 所在的模型数据库
  424. *
  425. * @param $catid
  426. */
  427. public function set_catid($catid) {
  428. $catid = intval($catid);
  429. if(!$catid) return false;
  430. if(empty($this->category) || empty($this->category[$catid])) {
  431. $siteids = getcache('category_content','commons');
  432. $siteid = $siteids[$catid];
  433. $this->category = getcache('category_content_'.$siteid,'commons');
  434. }
  435. if(isset($this->category[$catid]) && $this->category[$catid]['type'] == 0) {
  436. $modelid = $this->category[$catid]['modelid'];
  437. $this->set_model($modelid);
  438. }
  439. }
  440. private function update_category_items($catid,$action = 'add',$cache = 0) {
  441. $this->category_db = pc_base::load_model('category_model');
  442. if($action=='add') {
  443. $this->category_db->update(array('items'=>'+=1'),array('catid'=>$catid));
  444. } else {
  445. $this->category_db->update(array('items'=>'-=1'),array('catid'=>$catid));
  446. }
  447. if($cache) $this->cache_items();
  448. }
  449. public function cache_items() {
  450. $datas = $this->category_db->select(array('modelid'=>$this->modelid),'catid,type,items',10000);
  451. $array = array();
  452. foreach ($datas as $r) {
  453. if($r['type']==0) $array[$r['catid']] = $r['items'];
  454. }
  455. setcache('category_items_'.$this->modelid, $array,'commons');
  456. }
  457. //===fang 添加方法===============================================================
  458. /**
  459. * 单页,内容页
  460. * 通过catid 查找出相应的 数据表 再查找出相应的 content
  461. */
  462. public function contents($catid){
  463. $catid = intval($catid);
  464. $modelsql="SELECT `modelid` FROM `v9_category` WHERE catid ='$catid' LIMIT 0 , 1";
  465. $modelsql=$this->query($modelsql);
  466. $modelid = $this->fetch_array($modelsql);
  467. $modelid=$modelid[0]['modelid'];
  468. $tablesql="SELECT `tablename` FROM `v9_model` WHERE `modelid` ='$modelid' LIMIT 0 , 1";
  469. $tablename=$this->query($tablesql);
  470. $tablename = $this->fetch_array($tablesql);
  471. $tablename=$tablename[0]['tablename'];
  472. $tablename='v9_'.$tablename;
  473. $tablenamedata=$tablename.'_data';
  474. $sql="SELECT a.catid, a.title, a.url, b.content FROM `$tablename` AS a JOIN `$tablenamedata` AS b WHERE a.id = b.id and a.catid=$catid ORDER BY a.`listorder` DESC LIMIT 0 , 1";
  475. $contents=$this->query($sql);
  476. $contents = $this->fetch_array($sql);
  477. $contents=$contents[0];
  478. return $contents;
  479. }
  480. /**
  481. * 生成xml
  482. */
  483. public function banner(){
  484. function create_item($title,$title2,$url,$thumb,$content){
  485. $item = " <item>\n";
  486. $item.=" <img>".$thumb."</img>\n";
  487. $item.=" <btn_title>".$title."</btn_title>\n";
  488. $item.=" <btn_desc>".$title2."</btn_desc>\n";
  489. $item.=" <desc><![CDATA[".$content."]]></desc>\n";
  490. $item.=" <tourl>".$url."</tourl>\n";
  491. $item .=" </item>\n";
  492. $item .= "\n";
  493. return $item;
  494. }
  495. $sql="SELECT a.title,a.title2,a.url,a.thumb,b.content FROM `v9_banner` as a join `v9_banner_data` as b where a.id=b.id and a.catid = '83' ORDER BY a.`listorder` DESC LIMIT 0 , 4";
  496. $contents=$this->query($sql);
  497. $contents = $this->fetch_array($sql);
  498. $xml.="<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
  499. $xml.="<datas>\n";
  500. foreach ($contents as $data) {
  501. $data['thumb']= str_replace(APP_PATH,'./',$data['thumb']);
  502. $xml .= create_item($data['title'],$data['title2'],$data['url'],$data['thumb'],$data['content']);
  503. }
  504. $xml.="</datas>";
  505. @$fp = fopen("pic.xml","w");
  506. if(!$fp){
  507. echo "system error";
  508. exit();
  509. }else {
  510. fwrite($fp,$xml);
  511. fclose($fp);
  512. }
  513. }
  514. //==================================================================
  515. }
  516. ?>