PageRenderTime 52ms CodeModel.GetById 24ms RepoModel.GetById 0ms app.codeStats 0ms

/phpcms/modules/link/link.php

https://github.com/sinfey69/cms
PHP | 374 lines | 296 code | 32 blank | 46 comment | 87 complexity | ab38ee00418d5c5c76d4eb7d6547de27 MD5 | raw file
  1. <?php
  2. defined('IN_PHPCMS') or exit('No permission resources.');
  3. pc_base::load_app_class('admin','admin',0);
  4. class link extends admin {
  5. function __construct() {
  6. parent::__construct();
  7. $this->M = new_html_special_chars(getcache('link', 'commons'));
  8. $this->db = pc_base::load_model('link_model');
  9. $this->db2 = pc_base::load_model('type_model');
  10. }
  11. public function init() {
  12. if($_GET['typeid']!=''){
  13. $where = array('typeid'=>intval($_GET['typeid']),'siteid'=>$this->get_siteid());
  14. }else{
  15. $where = array('siteid'=>$this->get_siteid());
  16. }
  17. $page = isset($_GET['page']) && intval($_GET['page']) ? intval($_GET['page']) : 1;
  18. $infos = $this->db->listinfo($where,$order = 'listorder DESC,linkid DESC',$page, $pages = '9');
  19. $pages = $this->db->pages;
  20. $types = $this->db2->listinfo(array('module'=>ROUTE_M,'siteid'=>$this->get_siteid()),$order = 'typeid DESC');
  21. $types = new_html_special_chars($types);
  22. $type_arr = array ();
  23. foreach($types as $typeid=>$type){
  24. $type_arr[$type['typeid']] = $type['name'];
  25. }
  26. $big_menu = array('javascript:window.top.art.dialog({id:\'add\',iframe:\'?m=link&c=link&a=add\', title:\''.L('link_add').'\', width:\'700\', height:\'450\'}, function(){var d = window.top.art.dialog({id:\'add\'}).data.iframe;var form = d.document.getElementById(\'dosubmit\');form.click();return false;}, function(){window.top.art.dialog({id:\'add\'}).close()});void(0);', L('link_add'));
  27. include $this->admin_tpl('link_list');
  28. }
  29. /*
  30. *判断标题重复和验证
  31. */
  32. public function public_name() {
  33. $link_title = isset($_GET['link_name']) && trim($_GET['link_name']) ? (pc_base::load_config('system', 'charset') == 'gbk' ? iconv('utf-8', 'gbk', trim($_GET['link_name'])) : trim($_GET['link_name'])) : exit('0');
  34. $linkid = isset($_GET['linkid']) && intval($_GET['linkid']) ? intval($_GET['linkid']) : '';
  35. $data = array();
  36. if ($linkid) {
  37. $data = $this->db->get_one(array('linkid'=>$linkid), 'name');
  38. if (!empty($data) && $data['name'] == $link_title) {
  39. exit('1');
  40. }
  41. }
  42. if ($this->db->get_one(array('name'=>$link_title), 'linkid')) {
  43. exit('0');
  44. } else {
  45. exit('1');
  46. }
  47. }
  48. //添加分类时,验证分类名是否已存在
  49. public function public_check_name() {
  50. $type_name = isset($_GET['type_name']) && trim($_GET['type_name']) ? (pc_base::load_config('system', 'charset') == 'gbk' ? iconv('utf-8', 'gbk', trim($_GET['type_name'])) : trim($_GET['type_name'])) : exit('0');
  51. $type_name = safe_replace($type_name);
  52. $typeid = isset($_GET['typeid']) && intval($_GET['typeid']) ? intval($_GET['typeid']) : '';
  53. $data = array();
  54. if ($typeid) {
  55. $data = $this->db2->get_one(array('typeid'=>$typeid), 'name');
  56. if (!empty($data) && $data['name'] == $type_name) {
  57. exit('1');
  58. }
  59. }
  60. if ($this->db2->get_one(array('name'=>$type_name), 'typeid')) {
  61. exit('0');
  62. } else {
  63. exit('1');
  64. }
  65. }
  66. //添加友情链接
  67. public function add() {
  68. if(isset($_POST['dosubmit'])) {
  69. $_POST['link']['addtime'] = SYS_TIME;
  70. $_POST['link']['siteid'] = $this->get_siteid();
  71. if(empty($_POST['link']['name'])) {
  72. showmessage(L('sitename_noempty'),HTTP_REFERER);
  73. } else {
  74. $_POST['link']['name'] = safe_replace($_POST['link']['name']);
  75. }
  76. if ($_POST['link']['logo']) {
  77. $_POST['link']['logo'] = safe_replace($_POST['link']['logo']);
  78. }
  79. $data = new_addslashes($_POST['link']);
  80. $linkid = $this->db->insert($data,true);
  81. if(!$linkid) return FALSE;
  82. $siteid = $this->get_siteid();
  83. //更新附件状态
  84. if(pc_base::load_config('system','attachment_stat') & $_POST['link']['logo']) {
  85. $this->attachment_db = pc_base::load_model('attachment_model');
  86. $this->attachment_db->api_update($_POST['link']['logo'],'link-'.$linkid,1);
  87. }
  88. showmessage(L('operation_success'),HTTP_REFERER,'', 'add');
  89. } else {
  90. $show_validator = $show_scroll = $show_header = true;
  91. pc_base::load_sys_class('form', '', 0);
  92. $siteid = $this->get_siteid();
  93. $types = $this->db2->get_types($siteid);
  94. //print_r($types);exit;
  95. include $this->admin_tpl('link_add');
  96. }
  97. }
  98. /**
  99. * 说明:异步更新排序
  100. * @param $optionid
  101. */
  102. public function listorder_up() {
  103. $result = $this->db->update(array('listorder'=>'+=1'),array('linkid'=>$_GET['linkid']));
  104. if($result){
  105. echo 1;
  106. } else {
  107. echo 0;
  108. }
  109. }
  110. //更新排序
  111. public function listorder() {
  112. if(isset($_POST['dosubmit'])) {
  113. foreach($_POST['listorders'] as $linkid => $listorder) {
  114. $linkid = intval($linkid);
  115. $this->db->update(array('listorder'=>$listorder),array('linkid'=>$linkid));
  116. }
  117. showmessage(L('operation_success'),HTTP_REFERER);
  118. }
  119. }
  120. //添加友情链接分类
  121. public function add_type() {
  122. if(isset($_POST['dosubmit'])) {
  123. if(empty($_POST['type']['name'])) {
  124. showmessage(L('typename_noempty'),HTTP_REFERER);
  125. }
  126. $_POST['type']['siteid'] = $this->get_siteid();
  127. $_POST['type']['module'] = ROUTE_M;
  128. $this->db2 = pc_base::load_model('type_model');
  129. $typeid = $this->db2->insert($_POST['type'],true);
  130. if(!$typeid) return FALSE;
  131. showmessage(L('operation_success'),HTTP_REFERER);
  132. } else {
  133. $show_validator = $show_scroll = true;
  134. $big_menu = array('javascript:window.top.art.dialog({id:\'add\',iframe:\'?m=link&c=link&a=add\', title:\''.L('link_add').'\', width:\'700\', height:\'450\'}, function(){var d = window.top.art.dialog({id:\'add\'}).data.iframe;var form = d.document.getElementById(\'dosubmit\');form.click();return false;}, function(){window.top.art.dialog({id:\'add\'}).close()});void(0);', L('link_add'));
  135. include $this->admin_tpl('link_type_add');
  136. }
  137. }
  138. /**
  139. * 删除分类
  140. */
  141. public function delete_type() {
  142. if((!isset($_GET['typeid']) || empty($_GET['typeid'])) && (!isset($_POST['typeid']) || empty($_POST['typeid']))) {
  143. showmessage(L('illegal_parameters'), HTTP_REFERER);
  144. } else {
  145. if(is_array($_POST['typeid'])){
  146. foreach($_POST['typeid'] as $typeid_arr) {
  147. $this->db2->delete(array('typeid'=>$typeid_arr));
  148. }
  149. showmessage(L('operation_success'),HTTP_REFERER);
  150. }else{
  151. $typeid = intval($_GET['typeid']);
  152. if($typeid < 1) return false;
  153. $result = $this->db2->delete(array('typeid'=>$typeid));
  154. if($result)
  155. {
  156. showmessage(L('operation_success'),HTTP_REFERER);
  157. }else {
  158. showmessage(L("operation_failure"),HTTP_REFERER);
  159. }
  160. }
  161. }
  162. }
  163. //:分类管理
  164. public function list_type() {
  165. $this->db2 = pc_base::load_model('type_model');
  166. $page = isset($_GET['page']) && intval($_GET['page']) ? intval($_GET['page']) : 1;
  167. $infos = $this->db2->listinfo(array('module'=> ROUTE_M,'siteid'=>$this->get_siteid()),$order = 'listorder DESC',$page, $pages = '10');
  168. $big_menu = array('javascript:window.top.art.dialog({id:\'add\',iframe:\'?m=link&c=link&a=add\', title:\''.L('link_add').'\', width:\'700\', height:\'450\'}, function(){var d = window.top.art.dialog({id:\'add\'}).data.iframe;var form = d.document.getElementById(\'dosubmit\');form.click();return false;}, function(){window.top.art.dialog({id:\'add\'}).close()});void(0);', L('link_add'));
  169. $pages = $this->db2->pages;
  170. include $this->admin_tpl('link_list_type');
  171. }
  172. public function edit() {
  173. if(isset($_POST['dosubmit'])){
  174. $linkid = intval($_GET['linkid']);
  175. if($linkid < 1) return false;
  176. if(!is_array($_POST['link']) || empty($_POST['link'])) return false;
  177. if((!$_POST['link']['name']) || empty($_POST['link']['name'])) return false;
  178. $this->db->update($_POST['link'],array('linkid'=>$linkid));
  179. //更新附件状态
  180. if(pc_base::load_config('system','attachment_stat') & $_POST['link']['logo']) {
  181. $this->attachment_db = pc_base::load_model('attachment_model');
  182. $this->attachment_db->api_update($_POST['link']['logo'],'link-'.$linkid,1);
  183. }
  184. showmessage(L('operation_success'),'?m=link&c=link&a=edit','', 'edit');
  185. }else{
  186. $show_validator = $show_scroll = $show_header = true;
  187. pc_base::load_sys_class('form', '', 0);
  188. $types = $this->db2->listinfo(array('module'=> ROUTE_M,'siteid'=>$this->get_siteid()),$order = 'typeid DESC');
  189. $type_arr = array ();
  190. foreach($types as $typeid=>$type){
  191. $type_arr[$type['typeid']] = $type['name'];
  192. }
  193. //解出链接内容
  194. $info = $this->db->get_one(array('linkid'=>$_GET['linkid']));
  195. if(!$info) showmessage(L('link_exit'));
  196. extract($info);
  197. include $this->admin_tpl('link_edit');
  198. }
  199. }
  200. /**
  201. * 修改友情链接 分类
  202. */
  203. public function edit_type() {
  204. if(isset($_POST['dosubmit'])){
  205. $typeid = intval($_GET['typeid']);
  206. if($typeid < 1) return false;
  207. if(!is_array($_POST['type']) || empty($_POST['type'])) return false;
  208. if((!$_POST['type']['name']) || empty($_POST['type']['name'])) return false;
  209. $this->db2->update($_POST['type'],array('typeid'=>$typeid));
  210. showmessage(L('operation_success'),'?m=link&c=link&a=list_type','', 'edit');
  211. }else{
  212. $show_validator = $show_scroll = $show_header = true;
  213. //解出分类内容
  214. $info = $this->db2->get_one(array('typeid'=>$_GET['typeid']));
  215. if(!$info) showmessage(L('linktype_exit'));
  216. extract($info);
  217. include $this->admin_tpl('link_type_edit');
  218. }
  219. }
  220. /**
  221. * 删除友情链接
  222. * @param intval $sid 友情链接ID,递归删除
  223. */
  224. public function delete() {
  225. if((!isset($_GET['linkid']) || empty($_GET['linkid'])) && (!isset($_POST['linkid']) || empty($_POST['linkid']))) {
  226. showmessage(L('illegal_parameters'), HTTP_REFERER);
  227. } else {
  228. if(is_array($_POST['linkid'])){
  229. foreach($_POST['linkid'] as $linkid_arr) {
  230. //批量删除友情链接
  231. $this->db->delete(array('linkid'=>$linkid_arr));
  232. //更新附件状态
  233. if(pc_base::load_config('system','attachment_stat')) {
  234. $this->attachment_db = pc_base::load_model('attachment_model');
  235. $this->attachment_db->api_delete('link-'.$linkid_arr);
  236. }
  237. }
  238. showmessage(L('operation_success'),'?m=link&c=link');
  239. }else{
  240. $linkid = intval($_GET['linkid']);
  241. if($linkid < 1) return false;
  242. //删除友情链接
  243. $result = $this->db->delete(array('linkid'=>$linkid));
  244. //更新附件状态
  245. if(pc_base::load_config('system','attachment_stat')) {
  246. $this->attachment_db = pc_base::load_model('attachment_model');
  247. $this->attachment_db->api_delete('link-'.$linkid);
  248. }
  249. if($result){
  250. showmessage(L('operation_success'),'?m=link&c=link');
  251. }else {
  252. showmessage(L("operation_failure"),'?m=link&c=link');
  253. }
  254. }
  255. showmessage(L('operation_success'), HTTP_REFERER);
  256. }
  257. }
  258. /**
  259. * 投票模块配置
  260. */
  261. public function setting() {
  262. //读取配置文件
  263. $data = array();
  264. $siteid = $this->get_siteid();//当前站点
  265. //更新模型数据库,重设setting 数据.
  266. $m_db = pc_base::load_model('module_model');
  267. $data = $m_db->select(array('module'=>'link'));
  268. $setting = string2array($data[0]['setting']);
  269. $now_seting = $setting[$siteid]; //当前站点配置
  270. if(isset($_POST['dosubmit'])) {
  271. //多站点存储配置文件
  272. $setting[$siteid] = $_POST['setting'];
  273. setcache('link', $setting, 'commons');
  274. //更新模型数据库,重设setting 数据.
  275. $m_db = pc_base::load_model('module_model'); //调用模块数据模型
  276. $set = array2string($setting);
  277. $m_db->update(array('setting'=>$set), array('module'=>ROUTE_M));
  278. showmessage(L('setting_updates_successful'), '?m=link&c=link&a=init');
  279. } else {
  280. @extract($now_seting);
  281. $big_menu = array('javascript:window.top.art.dialog({id:\'add\',iframe:\'?m=link&c=link&a=add\', title:\''.L('link_add').'\', width:\'700\', height:\'450\'}, function(){var d = window.top.art.dialog({id:\'add\'}).data.iframe;var form = d.document.getElementById(\'dosubmit\');form.click();return false;}, function(){window.top.art.dialog({id:\'add\'}).close()});void(0);', L('link_add'));
  282. include $this->admin_tpl('setting');
  283. }
  284. }
  285. //批量审核申请 ...
  286. public function check_register(){
  287. if(isset($_POST['dosubmit'])) {
  288. if((!isset($_GET['linkid']) || empty($_GET['linkid'])) && (!isset($_POST['linkid']) || empty($_POST['linkid']))) {
  289. showmessage(L('illegal_parameters'), HTTP_REFERER);
  290. } else {
  291. if(is_array($_POST['linkid'])){//批量审核
  292. foreach($_POST['linkid'] as $linkid_arr) {
  293. $this->db->update(array('passed'=>1),array('linkid'=>$linkid_arr));
  294. }
  295. showmessage(L('operation_success'),'?m=link&c=link');
  296. }else{//单个审核
  297. $linkid = intval($_GET['linkid']);
  298. if($linkid < 1) return false;
  299. $result = $this->db->update(array('passed'=>1),array('linkid'=>$linkid));
  300. if($result){
  301. showmessage(L('operation_success'),'?m=link&c=link');
  302. }else {
  303. showmessage(L("operation_failure"),'?m=link&c=link');
  304. }
  305. }
  306. }
  307. }else {//读取未审核列表
  308. $where = array('siteid'=>$this->get_siteid(),'passed'=>0);
  309. $page = isset($_GET['page']) && intval($_GET['page']) ? intval($_GET['page']) : 1;
  310. $infos = $this->db->listinfo($where,'linkid DESC',$page, $pages = '9');
  311. $pages = $this->db->pages;
  312. $big_menu = array('javascript:window.top.art.dialog({id:\'add\',iframe:\'?m=link&c=link&a=add\', title:\''.L('link_add').'\', width:\'700\', height:\'450\'}, function(){var d = window.top.art.dialog({id:\'add\'}).data.iframe;var form = d.document.getElementById(\'dosubmit\');form.click();return false;}, function(){window.top.art.dialog({id:\'add\'}).close()});void(0);', L('link_add'));
  313. include $this->admin_tpl('check_register_list');
  314. }
  315. }
  316. //单个审核申请
  317. public function check(){
  318. if((!isset($_GET['linkid']) || empty($_GET['linkid'])) && (!isset($_POST['linkid']) || empty($_POST['linkid']))) {
  319. showmessage(L('illegal_parameters'), HTTP_REFERER);
  320. } else {
  321. $linkid = intval($_GET['linkid']);
  322. if($linkid < 1) return false;
  323. //删除友情链接
  324. $result = $this->db->update(array('passed'=>1),array('linkid'=>$linkid));
  325. if($result){
  326. showmessage(L('operation_success'),'?m=link&c=link');
  327. }else {
  328. showmessage(L("operation_failure"),'?m=link&c=link');
  329. }
  330. }
  331. }
  332. /**
  333. * 说明:对字符串进行处理
  334. * @param $string 待处理的字符串
  335. * @param $isjs 是否生成JS代码
  336. */
  337. function format_js($string, $isjs = 1){
  338. $string = addslashes(str_replace(array("\r", "\n"), array('', ''), $string));
  339. return $isjs ? 'document.write("'.$string.'");' : $string;
  340. }
  341. }
  342. ?>