flink.inc.php 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593
  1. <?php
  2. if(!defined('IN_DISCUZ')) {
  3. exit('Access Denied');
  4. }
  5. require_once(DISCUZ_ROOT.'source/plugin/milu_seotool/config.inc.php');
  6. sload('F:copyright');
  7. $header_arr = array('flink_set', 'flink_to', 'flink_get' , 'flink_onlie');
  8. $args = array('default_ac' => 'flink_set');
  9. $baidusnap_arr = array(0 => stlang('no_limit'), 1 => stlang('one_day'), 2 => '1-3'.stlang('day'), 3 => stlang('one_weekly'));
  10. $pr_arr = array(0 => stlang('no_limit'), 1 => 1, 2 => 2, 3 => 3 , 4 => 4, 5 => 5, 6 => '6'.stlang('value_up'));
  11. $link_type_arr = array(0 => stlang('no_limit'), 1 => stlang('type_img'), 2 => stlang('text'));
  12. $default_link_displayorder = 15;
  13. $flink_status_arr = array('10' => stlang('all_status'), 1 => stlang('trun_sucess'), 0 => stlang('wait_accept'), '-1' => stlang('refused'));
  14. seo_tpl($args);
  15. function flink_set(){
  16. global $_G,$pr_arr,$link_type_arr,$baidusnap_arr,$pluin_info;
  17. if($_GET['editsubmit']){
  18. $set = $_POST['set'];
  19. $set['link_type'] = $_POST['link_type'];
  20. $set['site_catid'] = $_POST['site_catid'];
  21. $set['limit_site_catid'] = st_serialize($_POST['limit_site_catid']);
  22. $set['limit_baidusnap'] = $_POST['limit_baidusnap'];
  23. $set['limit_pr'] = $_POST['limit_pr'];
  24. tool_common_set('flink', $set);
  25. add_online_flink($set);
  26. cpmsg(stlang('op_success'), PLUGIN_GO."flink", 'succeed');
  27. }else{
  28. $info = tool_common_get('flink');
  29. $info['limit_site_catid'] = dunserialize($info['limit_site_catid']);
  30. $cat_arr = $cat_site_arr = get_site_category();
  31. array_unshift($cat_arr, stlang('empty'));
  32. $show .= seoOutput::show_title(stlang('base_set'));
  33. $show .= seoOutput::show_tr(
  34. array(
  35. 'name' => stlang('ask_add_flink'),
  36. 'desc' => stlang('ask_add_flink_notice'),
  37. 'arr' => array(
  38. 'name' => 'is_open',
  39. 'info' => $info,
  40. 'int_val' => 2,
  41. 'lang_type' => 2,
  42. ),
  43. )
  44. ,'radio');
  45. $show .= seoOutput::show_title(stlang('perfect_info'));
  46. $show .= seoOutput::show_tr(
  47. array(
  48. 'name' => stlang('link_type'),
  49. 'desc' => stlang('link_type_notice'),
  50. 'arr' => array(
  51. 'name' => 'link_type',
  52. 'info' => $info,
  53. 'int_val' => 0,
  54. 'flag' => 1,
  55. 'option_arr' => $link_type_arr,
  56. ),
  57. )
  58. ,'select');
  59. $show .= seoOutput::show_tr(
  60. array(
  61. 'name' => stlang('site_catid'),
  62. 'desc' => '',
  63. 'arr' => array(
  64. 'name' => 'site_catid',
  65. 'info' => $info,
  66. 'int_val' => 0,
  67. 'flag' => 1,
  68. 'option_arr' => $cat_site_arr,
  69. ),
  70. )
  71. ,'select');
  72. $show .= seoOutput::show_tr(
  73. array(
  74. 'name' => stlang('qq_info'),
  75. 'desc' => stlang('qq_info_notice'),
  76. 'arr' => array(
  77. 'name' => 'qq',
  78. 'info' => $info,
  79. ),
  80. )
  81. ,'input');
  82. $info['link_keyword'] = $info['link_keyword'] ? $info['link_keyword'] : $_G['setting']['bbname'];
  83. $show .= seoOutput::show_tr(
  84. array(
  85. 'name' => stlang('link_text'),
  86. 'desc' => stlang('link_text_notce'),
  87. 'arr' => array(
  88. 'name' => 'link_keyword',
  89. 'info' => $info,
  90. ),
  91. )
  92. ,'input');
  93. list($navtitle, $info['site_desc'], $metakeywords) = get_seosetting('forum', array(), array('seodescription' => $info['site_desc']));
  94. $info['site_desc'] = $info['site_desc'] ? $info['site_desc'] : $_G['setting']['seodescription']['forum'];
  95. $show .= seoOutput::show_tr(
  96. array(
  97. 'name' => stlang('link_desc'),
  98. 'desc' => stlang('link_desc_notice'),
  99. 'arr' => array(
  100. 'name' => 'site_desc',
  101. 'info' => $info,
  102. ),
  103. )
  104. ,'textarea');
  105. $logo_url = $info['logo_url'] ? $info['logo_url'] : $_G['siteurl'].$_G['style']['boardimg'];
  106. $logo_img = $logo_url ? '<a target="_blank" href="'.$logo_url.'">'.stlang('hits_view').'</a> ' : '';
  107. $show .= seoOutput::show_tr(
  108. array(
  109. 'name' => stlang('logo_url'),
  110. 'desc' => $logo_img.stlang('logo_url_notice'),
  111. 'arr' => array(
  112. 'name' => 'logo_url',
  113. 'info' => $info,
  114. 'int_val' => $logo_url,
  115. ),
  116. )
  117. ,'input');
  118. $show .= seoOutput::show_title(stlang('ask_limit_title'));
  119. $show .= seoOutput::show_tr(
  120. array(
  121. 'name' => stlang('site_cate'),
  122. 'desc' => stlang('selected_notice'),
  123. 'arr' => array(
  124. 'name' => 'limit_site_catid',
  125. 'info' => $info,
  126. 'int_val' => 0,
  127. 'flag' => 1,
  128. 'multiple' => TRUE,
  129. 'option_arr' => $cat_arr,
  130. ),
  131. )
  132. ,'select');
  133. $show .= seoOutput::show_tr(
  134. array(
  135. 'name' => stlang('limit_baidu'),
  136. 'desc' => '',
  137. 'arr' => array(
  138. 'name' => 'limit_baidu',
  139. 'info' => $info,
  140. ),
  141. )
  142. ,'input');
  143. $show .= seoOutput::show_tr(
  144. array(
  145. 'name' => stlang('limit_google'),
  146. 'desc' => '',
  147. 'arr' => array(
  148. 'name' => 'limit_google',
  149. 'info' => $info,
  150. ),
  151. )
  152. ,'input');
  153. $show .= seoOutput::show_tr(
  154. array(
  155. 'name' => stlang('baidusnap'),
  156. 'desc' => '',
  157. 'arr' => array(
  158. 'name' => 'limit_baidusnap',
  159. 'info' => $info,
  160. 'int_val' => 0,
  161. 'flag' => 1,
  162. 'option_arr' => $baidusnap_arr,
  163. ),
  164. )
  165. ,'select');
  166. $show .= seoOutput::show_tr(
  167. array(
  168. 'name' => stlang('limit_pr'),
  169. 'desc' => '',
  170. 'arr' => array(
  171. 'name' => 'limit_pr',
  172. 'info' => $info,
  173. 'int_val' => 0,
  174. 'flag' => 1,
  175. 'option_arr' => $pr_arr,
  176. ),
  177. )
  178. ,'select');
  179. $info['show'] = $show;
  180. $info['tpl'] = 'common_set';
  181. return $info;
  182. }
  183. }
  184. function flink_to(){
  185. $info = get_flink_info();
  186. return $info;
  187. }
  188. function flink_get(){
  189. $info = get_flink_info(1);
  190. return $info;
  191. }
  192. function get_flink_info($type = 0){
  193. global $flink_status_arr;
  194. $set = $_POST['set'];
  195. $sitename = $set['sitename'];
  196. $status = $_GET['status'];
  197. $search_info = array('sitename' => $sitename, 'status' => $status);
  198. $search_show .= stlang('sitename').seoOutput::input(
  199. array(
  200. 'name' => 'sitename',
  201. 'info' => $search_info,
  202. 'int_val' => '',
  203. ),$info);
  204. $search_show .= seoOutput::select(
  205. array('option_arr' => $flink_status_arr,
  206. 'name' => 'status',
  207. 'info' => $search_info,
  208. 'int_val' => 10,
  209. 'flag' => 2,
  210. ),$info);
  211. $info = flink_list(array('type' => $type, 'sitename' => $sitename, 'status' => $status));
  212. $info['search_show'] = $search_show;
  213. $info['tpl'] = 'flink_ask_list';
  214. $info['type'] = $type;
  215. $info['show_title'] = $type == 1 ? stlang('to_ask_info') : stlang('send_ask_info');
  216. $info['flink_status_arr'] = $flink_status_arr;
  217. return $info;
  218. }
  219. function flink_onlie(){
  220. global $_G,$cat_site_arr,$pr_arr,$baidusnap_arr,$link_type_arr;
  221. $set = $_GET['set'];
  222. $set['sitename'] = $_GET['sitename'] ? $_GET['sitename'] : $set['sitename'];
  223. $set['baidu'] = $_GET['baidu'] ? $_GET['baidu'] : $set['baidu'];
  224. $set['google'] = $_GET['google'] ? $_GET['google'] : $set['google'];
  225. $set['order_by'] = $_GET['order_by'];
  226. $set['order'] = $_GET['order'];
  227. $set['link_type'] = $_GET['link_type'];
  228. $set['site_catid'] = $_GET['site_catid'];
  229. $set['PR'] = $_GET['PR'];
  230. $set['baidusnap'] = $_GET['baidusnap'];
  231. $set['only_list_my'] = $_GET['search_submit'] ? $_GET['only_list_my'] : 0;
  232. $search_info = dstripslashes($set);
  233. $cat_site_arr = get_site_category();
  234. array_unshift($cat_site_arr, stlang('no_limit_cate'));
  235. $search_show .= stlang('sitename').' '.seoOutput::input(
  236. array(
  237. 'name' => 'sitename',
  238. 'info' => $search_info,
  239. 'int_val' => '',
  240. ),$info);
  241. $search_show .= stlang('web_from_type').seoOutput::select(
  242. array(
  243. 'name' => 'site_catid',
  244. 'info' => $search_info,
  245. 'int_val' => 0,
  246. 'flag' => 1,
  247. 'option_arr' => $cat_site_arr,
  248. ),$info);
  249. $search_show .= stlang('search_limit_set').seoOutput::select(
  250. array(
  251. 'name' => 'PR',
  252. 'info' => $search_info,
  253. 'int_val' => 0,
  254. 'flag' => 1,
  255. 'option_arr' => $pr_arr,
  256. ),$info);
  257. $style = $_POST['more_flag'] == 1 ? '' : 'display:none';
  258. $search_show_more .= '<div id="tipslis_1" style="'.$style.'">'.stlang('limit_baidu').' '.seoOutput::input(
  259. array(
  260. 'name' => 'baidu',
  261. 'length' => 3,
  262. 'info' => $search_info,
  263. 'int_val' => '',
  264. ),$info);
  265. $search_show_more .= ' '.stlang('limit_google').' '.seoOutput::input(
  266. array(
  267. 'name' => 'google',
  268. 'length' => 3,
  269. 'info' => $search_info,
  270. 'int_val' => '',
  271. ),$info);
  272. $search_show_more .= ' '.stlang('baidusnap').' '.seoOutput::select(
  273. array('option_arr' => $baidusnap_arr,
  274. 'name' => 'baidusnap',
  275. 'info' => $search_info,
  276. 'int_val' => 10,
  277. 'flag' => 2,
  278. ),$info)."</div>";
  279. $search_show .= ' '.stlang('link_type').' '.seoOutput::select(
  280. array('option_arr' => $link_type_arr,
  281. 'name' => 'link_type',
  282. 'info' => $search_info,
  283. 'int_val' => 10,
  284. 'flag' => 2,
  285. ),$info);
  286. $search_show .= ' '.stlang('order').' '.seoOutput::select(
  287. array('option_arr' => array('0' => stlang('default'), 'baidu' => stlang('baidu_count'), 'google' => stlang('google_count'), 'pr' => 'PR', 'baidusnap' => stlang('baidusnap'), 'modify_dateline' => stlang('modify_dateline'), 'score' => stlang('scoree_total')),
  288. 'name' => 'order_by',
  289. 'info' => $search_info,
  290. 'int_val' => 10,
  291. 'flag' => 2,
  292. ),$info);
  293. $search_show .= seoOutput::select(
  294. array('option_arr' => array('DESC' => stlang('desc'), 'ASC' => stlang('asc')),
  295. 'name' => 'order',
  296. 'info' => $search_info,
  297. 'int_val' => 10,
  298. 'flag' => 2,
  299. ),$info);
  300. $checked = $search_info['only_list_my'] ? 'checked="checked"' : '';
  301. $search_show .= ' <input '.$checked.' class="checkbox" type="checkbox" value="1" id="only_list_my" name="only_list_my"><label for="only_list_my">'.stlang('list_match').'</label> ';
  302. $set['page'] = $_GET['page'] ? intval($_GET['page']) : 1;
  303. $info = flink_online_list($set);
  304. $info['client'] = get_client_info();
  305. $host_info = GetHostInfo($_G['siteurl']);
  306. $info['client']['host'] = $host_info['host'];
  307. $info['search_show'] = $search_show;
  308. $info['tpl'] = 'flink_onlie';
  309. $info['show_title'] = stlang('flink_onlie_');
  310. $info['cat_site_arr'] = $cat_site_arr;
  311. $info['link_type_arr'] = $link_type_arr;
  312. $flink_set = tool_common_get('flink');
  313. $seo_info = get_site_seoinfo();
  314. if($seo_info['status'] < 1) $info['evn_msg'] = $seo_info['msg'];
  315. $seo_info['show_baidusnap'] = $seo_info['baidusnap'] ? date('Y-m-d', strtotime($seo_info['baidusnap'])) : stlang('no_have');
  316. $seo_info['show_modify_dateline'] = $seo_info['modify_dateline'] ? dgmdate($seo_info['modify_dateline'], 'u') : '';
  317. $seo_info['catname'] = $cat_site_arr[$seo_info['site_catid']];
  318. $info['user_info'] = $seo_info;
  319. $flink_set['limit_site_catid'] = dunserialize($flink_set['limit_site_catid']);
  320. $flink_set['limit_site_catid'] = array_filter($flink_set['limit_site_catid']);
  321. $info['search_show_more'] = $search_show_more;
  322. $info['flink_set'] = $flink_set;
  323. $info['more_flag'] = $_POST['more_flag'];
  324. return $info;
  325. }
  326. function update_info(){
  327. $flink_set = tool_common_get('flink');
  328. if($flink_set['is_open'] != 1) cpmsg_error(stlang('update_flink__info_err'));
  329. get_site_seoinfo(24*3600, 1);
  330. cpmsg(stlang('op_success'), PLUGIN_GO."flink&myac=flink_onlie", 'succeed');
  331. }
  332. function get_site_seoinfo($cache_time = 86400, $flag = 0){
  333. global $_G;
  334. $key_data = get_site_key();
  335. $cache_key = md5($key_data['domain']);
  336. if($flag == 0 && $cache_time > 0 && $data = st_load_cache($cache_key)){
  337. return $data;
  338. }else{
  339. $st_rpcClient = st_rpcClient();
  340. $key_data['siteurl'] = $_G['siteurl'];
  341. $data = $st_rpcClient->RPC_user_info($key_data, $flag);//flag==1时,服务器强制刷新信息
  342. if(is_object($data)){
  343. if($data->Message || $data->Number == 0) {
  344. return array('status' => -1, 'msg' => stlang('phprpc_error', array('msg' => $data->Message)) );
  345. }
  346. }
  347. $data = list_data_format($data, array('sitename', 'link_keyword', 'site_desc'));
  348. if($data && is_array($data)) st_cache_data($cache_key, $data, $cache_time);
  349. if($data < 0) {
  350. del_key_cache();
  351. cpmsg_error(stlang('key_error'));
  352. }
  353. return $data;
  354. }
  355. }
  356. function flink_ask_to(){
  357. $data['uid'] = intval($_GET['uid']);
  358. $data['remark'] = st_format_url($_GET['remark']);
  359. if(!$data['uid']) return 'error:1';
  360. $key_data = get_site_key();
  361. if(!$key_data['key_code']) return 'error:2';
  362. $data = st_rpcClient()->RPC_flink_ask_to($data, $key_data, CHARSET);
  363. if(is_object($data)){
  364. if($data->Message || $data->Number == 0) {
  365. return stlang('phprpc_error', array('msg' => $data->Message));
  366. }
  367. }
  368. $error_msg = stlang('send_flink_err');
  369. $msg_arr = array( '-3' => stlang('send_flink_err1'), '-5' => stlang('send_flink_err2'));
  370. if($data < 0){
  371. $error = $msg_arr[$data] ? $msg_arr[$data] : $error_msg;
  372. return $error;
  373. }
  374. return 1;
  375. }
  376. function flink_online_list($args){
  377. $st_rpcClient = st_rpcClient();
  378. $client_info = get_client_info();
  379. $flink_set = $args['only_list_my'] ? tool_common_get('flink') : array();
  380. unset($flink_set['site_desc']);
  381. $url_args = get_args_str($args);
  382. $args['mpurl'] = '?'.PLUGIN_GO.'flink&myac=flink_onlie'.$url_args;
  383. $data = $st_rpcClient->RPC_flink_online_list($args, $flink_set, $client_info);
  384. if(is_object($data)){
  385. if($data->Message || $data->Number == 0) {
  386. $info['evn_msg'] = stlang('phprpc_error', array('msg' => $data->Message));
  387. return $info;
  388. }
  389. }
  390. if($data == 'rpclimit') cpmsg_error(stlang('rpclimit'));
  391. $data['list'] = list_data_format($data['list'], array('sitename'));
  392. $info['list'] = $data['list'];
  393. $info['count'] = $data['count'];
  394. $info['flink_success'] = $data['flink_success'];
  395. $info['multipage'] = $data['multipage'];
  396. if($args['sitename']){
  397. $info['show_result'] = stlang('search_num', array('n' => $info['count'] ? $info['count'] : 0));
  398. }
  399. return $info;
  400. }
  401. function flink_list($args){
  402. $st_rpcClient = st_rpcClient();
  403. $key_data = get_site_key();
  404. $data = $st_rpcClient->RPC_flink_list($args, $key_data);
  405. if(is_object($data)){
  406. if($data->Message || $data->Number == 0) {
  407. $info['evn_msg'] = stlang('phprpc_error', array('msg' => $data->Message));
  408. return $info;
  409. }
  410. }
  411. if($data == 'rpclimit') cpmsg_error(stlang('rpclimit'));
  412. $data['list'] = list_data_format($data['list'], array('sitename', 'remark'));
  413. $info['list'] = $data['list'];
  414. $info['count'] = $data['count'];
  415. if($args['sitename']){
  416. $info['show_result'] = stlang('search_num', array('n' => $info['count'] ? $info['count'] : 0));
  417. }
  418. return $info;
  419. }
  420. function check_flink_match($data, $flink_set, $my_info){
  421. global $_G;
  422. if($_G['siteurl'] == $data['siteurl']) return -9;
  423. if($flink_set['limit_baidu'] && $data['baidu'] < $flink_set['limit_baidu']) return -1;
  424. if($data['limit_baidu'] && $my_info['baidu'] < $data['limit_baidu']) return -2;
  425. if($flink_set['limit_google'] && $data['google'] < $flink_set['limit_google']) return -3;
  426. if($data['limit_google'] && $my_info['google'] < $data['limit_google']) return -4;
  427. if($flink_set['limit_pr'] && $data['pr'] < $flink_set['limit_pr']) return -5;
  428. if($data['limit_pr'] && $my_info['pr'] < $data['limit_pr']) return -6;
  429. $data['limit_site_catid'] = explode(',', $data['limit_site_catid']);
  430. $data['limit_site_catid'] = array_filter($data['limit_site_catid']);
  431. if($flink_set['limit_site_catid'] && !in_array($data['site_catid'],$flink_set['limit_site_catid'])) return -7;
  432. if($data['limit_site_catid'] && !in_array($my_info['site_catid'],$data['limit_site_catid'])) return -8;
  433. return 1;
  434. }
  435. function add_online_flink($set){
  436. $key_data = get_site_key();
  437. if(!$key_data) exit('error:201');
  438. $st_rpcClient = st_rpcClient();
  439. $client_info = get_client_info();
  440. $set['sitename'] = $client_info['sitename'];
  441. $set['siteurl'] = $client_info['siteurl'];
  442. $data = $st_rpcClient->RPC_flink_add_online($set, $key_data, CHARSET);
  443. st_check_rpc_data($data);
  444. if((int)$data < 0 || !$data) {
  445. del_key_cache();
  446. cpmsg_error(stlang('add_online_flink_err', array('c' => $data)));
  447. }
  448. st_cache_del(md5($key_data['domain']));
  449. return 1;
  450. }
  451. function del_key_cache(){
  452. $cachefile = DISCUZ_ROOT.'./data/cache/milu_seotool_key.php';
  453. @unlink($cachefile);
  454. }
  455. //status 0等待 1成功 -1拒绝
  456. function show_flink_op($id, $type, $status){
  457. $detail_str = '<a href="javascript:void(0)" onclick="flink_ask_detail('.$id.','.$type.');">'.stlang('detail').'</a>';
  458. $msg_arr_to = array(0 => '<a href="javascript:void(0)" onclick="flink_ask_op('.$id.', 3);">'.stlang('_cancel').'</a>', 1 => $detail_str);
  459. $msg_arr_get = array(0 => '<a href="javascript:void(0)" onclick="flink_ask_op('.$id.', 1);">'.stlang('accept').'</a>', 1 => '<a href="javascript:void(0)" onclick="flink_ask_op('.$id.', \'-1\');">'.stlang('refuse').'</a>', 2 => $detail_str);
  460. if($status == 0){
  461. $str = $type == 1 ? implode(' ',$msg_arr_get) : implode(' ',$msg_arr_to);
  462. }else if($status > 0){
  463. $str = $type == 1 ? $msg_arr_get[2] : $msg_arr_to[1];
  464. }else{
  465. $str = $type == 1 ? $msg_arr_get[0].' '.$msg_arr_to[1] : $msg_arr_to[1];
  466. }
  467. return $str;
  468. }
  469. //type 0 发出的 1 收到的
  470. function flink_ask_detail(){
  471. global $flink_status_arr,$link_type_arr;
  472. $cat_arr = get_site_category();
  473. $id = intval($_GET['id']);
  474. $type = intval($_GET['type']);
  475. $key_data = get_site_key();
  476. $data = st_rpcClient()->RPC_flink_ask_detail($id, $type, $key_data);
  477. $data['user_info'] = list_data_format($data['user_info'], array('site_desc', 'sitename'));
  478. $data['flink_info'] = list_data_format($data['flink_info'], array('remark'));
  479. if(($rpc_error = st_get_rpc_error($data))) return $rpc_error;
  480. $site_info = $data['user_info'];
  481. $site_info['baidu_count'] = $site_info['baidu'];
  482. unset($site_info['baidu']);
  483. $site_info['siteurl'] = '<a target="_blank" href="'.$site_info['siteurl'].'">'.cutstr($site_info['siteurl'], 57).'</a> ';
  484. $site_info['logo_url'] = '<a target="_blank" href="'.$site_info['logo_url'].'">'.cutstr($site_info['logo_url'], 57).'</a> ';
  485. $site_info['link_type'] = $link_type_arr[$site_info['link_type']];
  486. $site_info['site_catid'] = $cat_arr[$site_info['site_catid']];
  487. $site_info['qq'] = seoOutput::show_qq($site_info['qq']);
  488. $site_info['baidusnap'] = $site_info['baidusnap'] ? date('Y-m-d', strtotime($site_info['baidusnap'])) : '';
  489. unset($site_info['uid']);
  490. $flink_info = $data['flink_info'];
  491. $html = '<ul class="show_tips"><li><h1>'.stlang('site_info').':</h1></li>';
  492. foreach($site_info as $k => $v){
  493. $html .= '<li>'.stlang($k).' : '.$v.'</li>';
  494. }
  495. $html .= '<li><h1>'.stlang('op_info').':</h1></li>';
  496. $flink_info['ask_dateline'] = $flink_info['dateline'] ? dgmdate($flink_info['dateline'], 'u') : '';
  497. $flink_info['accept_dateline'] = $flink_info['accept_dateline'] ? dgmdate($flink_info['accept_dateline'], 'u') : '';
  498. unset($flink_info['dateline']);
  499. unset($flink_info['id'], $flink_info['to_uid'], $flink_info['uid']);
  500. $flink_info['status'] = $flink_status_arr[$flink_info['status']];
  501. foreach($flink_info as $k => $v){
  502. $html .= '<li>'.stlang($k).' : '.$v.'</li>';
  503. }
  504. $html .= '</ul>';
  505. show_seotool_window(stlang('detail'), $html, array('w' => 550, 'h' => 450, 'f' => 1));
  506. }
  507. //1接受 -1拒绝 3撤销
  508. function flink_ask_op(){
  509. $id = intval($_GET['id']);
  510. $status = intval($_GET['status']);
  511. $key_data = get_site_key();
  512. if(!$key_data) return stlang('key_error');
  513. $data = st_rpcClient()->RPC_flink_ask_op($id, $status, $key_data);
  514. if(($rpc_error = st_get_rpc_error($data))) return $rpc_error;
  515. if($data == -1) return stlang('key_error');
  516. if($data == -4) return stlang('flink_op_err1');
  517. if($data < 0) return 'error:'.$data;
  518. add_flink(array(
  519. 'name' => $data['link_keyword'],
  520. 'url' => $data['siteurl'],
  521. 'logo' => $data['logo_url'],
  522. 'description' => $data['site_desc'],
  523. ));
  524. return 1;
  525. }
  526. function add_flink($set){
  527. global $default_link_displayorder;
  528. $set = list_data_format($set, array('name', 'description'));
  529. $set = dstripslashes($set);
  530. $set = st_addslashes($set);
  531. if(!$set['name'] || !$set['url']) return;
  532. $flink_set = tool_common_get('flink');
  533. $link_type = $flink_set['link_type'];
  534. if($link_type == 2) unset($set['logo']);//文字链接
  535. $check = DB::result(DB::query("SELECT COUNT(*) FROM ".DB::table('common_friendlink')." WHERE name='$set[name]' AND url='$set[url]'"), 0);
  536. if($check) return;
  537. $max_displayorder =DB::result(DB::query("SELECT MAX(displayorder) FROM ".DB::table('common_friendlink')), 0);
  538. $set['displayorder'] = $max_displayorder;
  539. $set['type'] = $default_link_displayorder;//默认的分组
  540. $insert_id = DB::insert('common_friendlink', $set);
  541. return $insert_id;
  542. }
  543. function flink_ask_api(){
  544. global $_G;
  545. $key = $_GET['key'];
  546. $status = intval($_GET['status']);
  547. $set['name'] = urldecode($_GET['sitename']);
  548. $set['url'] = urldecode($_GET['siteurl']);
  549. $set['description'] = urldecode($_GET['site_desc']);
  550. $set['logo'] = urldecode($_GET['logo_url']);
  551. $key_data = get_site_key();
  552. if($key != $key_data['key_code']) exit('-1');
  553. add_flink($set);
  554. exit('1');
  555. }
  556. ?>