admin_app.php 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370
  1. <?php if(!defined('UC_ROOT')) exit('Access Denied');?>
  2. <?php include $this->gettpl('header');?>
  3. <script src="js/common.js" type="text/javascript"></script>
  4. <script type="text/javascript">
  5. var apps = new Array();
  6. var run = 0;
  7. function testlink() {
  8. if(apps[run]) {
  9. $('status_' + apps[run]).innerHTML = '正在连接...';
  10. $('link_' + apps[run]).src = $('link_' + apps[run]).getAttribute('testlink') + '&sid=<?php echo $sid;?>';
  11. }
  12. run++;
  13. }
  14. window.onload = testlink;
  15. </script>
  16. <div class="container">
  17. <?php if($a == 'ls') { ?>
  18. <h3 class="marginbot">应用列表<a href="admin.php?m=app&a=add" class="sgbtn">添加新应用</a></h3>
  19. <?php if(!$status) { ?>
  20. <div class="note fixwidthdec">
  21. <p class="i">如果出现“通信失败”,请点击“编辑”尝试设置应用域名对应的 IP。</p>
  22. </div>
  23. <?php } elseif($status == '2') { ?>
  24. <div class="correctmsg"><p>应用列表成功更新。</p></div>
  25. <?php } ?>
  26. <div class="mainbox">
  27. <?php if($applist) { ?>
  28. <form action="admin.php?m=app&a=ls" method="post">
  29. <input type="hidden" name="formhash" value="<?php echo FORMHASH;?>">
  30. <table class="datalist fixwidth" onmouseover="addMouseEvent(this);">
  31. <tr>
  32. <th nowrap="nowrap"><input type="checkbox" name="chkall" id="chkall" onclick="checkall('delete[]')" class="checkbox" /><label for="chkall">删除</label></th>
  33. <th nowrap="nowrap">ID</th>
  34. <th nowrap="nowrap">应用名称</th>
  35. <th nowrap="nowrap">应用的主 URL</th>
  36. <th nowrap="nowrap">通信情况</th>
  37. <th nowrap="nowrap">详情</th>
  38. </tr>
  39. <?php $i = 0;?>
  40. <?php foreach((array)$applist as $app) {?>
  41. <tr>
  42. <td width="50"><input type="checkbox" name="delete[]" value="<?php echo $app['appid'];?>" class="checkbox" /></td>
  43. <td width="35"><?php echo $app['appid'];?></td>
  44. <td><a href="admin.php?m=app&a=detail&appid=<?php echo $app['appid'];?>"><strong><?php echo $app['name'];?></strong></a></td>
  45. <td><a href="<?php echo $app['url'];?>" target="_blank"><?php echo $app['url'];?></a></td>
  46. <td width="90"><div id="status_<?php echo $app['appid'];?>"></div><script id="link_<?php echo $app['appid'];?>" testlink="admin.php?m=app&a=ping&inajax=1&url=<?php echo urlencode($app['url']);?>&ip=<?php echo urlencode($app['ip']);?>&appid=<?php echo $app['appid'];?>&random=<?php echo rand()?>"></script><script>apps[<?php echo $i;?>] = '<?php echo $app['appid'];?>';</script></td>
  47. <td width="40"><a href="admin.php?m=app&a=detail&appid=<?php echo $app['appid'];?>">编辑</a></td>
  48. </tr>
  49. <?php $i++?>
  50. <?php } ?>
  51. <tr class="nobg">
  52. <td colspan="9"><input type="submit" value="提 交" class="btn" /></td>
  53. </tr>
  54. </table>
  55. <div class="margintop"></div>
  56. </form>
  57. <?php } else { ?>
  58. <div class="note">
  59. <p class="i">目前没有相关记录!</p>
  60. </div>
  61. <?php } ?>
  62. </div>
  63. <?php } elseif($a == 'add') { ?>
  64. <h3 class="marginbot">添加新应用<a href="admin.php?m=app&a=ls" class="sgbtn">返回应用列表</a></h3>
  65. <div class="mainbox">
  66. <table class="opt">
  67. <tr>
  68. <th>选择安装方式:</th>
  69. </tr>
  70. <tr>
  71. <td>
  72. <input type="radio" name="installtype" class="radio" checked="checked" onclick="$('url').style.display='none';$('custom').style.display='';" />自定义安装
  73. <input type="radio" name="installtype" class="radio" onclick="$('url').style.display='';$('custom').style.display='none';" />URL 安装 (推荐)
  74. </td>
  75. </tr>
  76. </table>
  77. <div id="url" style="display:none;">
  78. <form method="post" action="" target="_blank" onsubmit="document.appform.action=document.appform.appurl.value;" name="appform">
  79. <table class="opt">
  80. <tr>
  81. <th>应用程序安装地址:</th>
  82. </tr>
  83. <tr>
  84. <td><input type="text" name="appurl" size="50" value="http://domainname/install/index.php" style="width:300px;" /></td>
  85. </tr>
  86. </table>
  87. <div class="opt">
  88. <input type="hidden" name="ucapi" value="<?php echo UC_API;?>" />
  89. <input type="hidden" name="ucfounderpw" value="<?php echo $md5ucfounderpw;?>" />
  90. <input type="submit" name="installsubmit" value=" 安 装 " class="btn" />
  91. </div>
  92. </form>
  93. </div>
  94. <div id="custom">
  95. <form action="admin.php?m=app&a=add" method="post">
  96. <input type="hidden" name="formhash" value="<?php echo FORMHASH;?>">
  97. <table class="opt">
  98. <tr>
  99. <th colspan="2">应用类型:</th>
  100. </tr>
  101. <tr>
  102. <td>
  103. <select name="type">
  104. <?php foreach((array)$typelist as $typeid => $typename) {?>
  105. <option value="<?php echo $typeid;?>"> <?php echo $typename;?> </option>
  106. <?php }?>
  107. </select>
  108. </td>
  109. <td></td>
  110. </tr>
  111. <tr>
  112. <th colspan="2">应用名称:</th>
  113. </tr>
  114. <tr>
  115. <td><input type="text" class="txt" name="name" value="" /></td>
  116. <td>限 20 字节。</td>
  117. </tr>
  118. <tr>
  119. <th colspan="2">应用的主 URL:</th>
  120. </tr>
  121. <tr>
  122. <td><input type="text" class="txt" name="url" value="" /></td>
  123. <td>该应用与 UCenter 通信的接口 URL,结尾请不要加“/” ,应用的通知只发送给主 URL</td>
  124. </tr>
  125. <tr>
  126. <th colspan="2">应用 IP:</th>
  127. </tr>
  128. <tr>
  129. <td><input type="text" class="txt" name="ip" value="" /></td>
  130. <td>正常情况下留空即可。如果由于域名解析问题导致 UCenter 与该应用通信失败,请尝试设置为该应用所在服务器的 IP 地址。</td>
  131. </tr>
  132. <tr>
  133. <th colspan="2">通信密钥:</th>
  134. </tr>
  135. <tr>
  136. <td><input type="text" class="txt" name="authkey" value="" /></td>
  137. <td>只允许使用英文字母及数字,限 64 字节。应用端的通信密钥必须与此设置保持一致,否则该应用将无法与 UCenter 正常通信。</td>
  138. </tr>
  139. <tr>
  140. <th colspan="2">应用的物理路径:</th>
  141. </tr>
  142. <tr>
  143. <td>
  144. <input type="text" class="txt" name="apppath" value="" />
  145. </td>
  146. <td>默认请留空,如果填写的为相对路径(相对于UC),程序会自动转换为绝对路径,如 ../</td>
  147. </tr>
  148. <tr>
  149. <th colspan="2">查看个人资料页面地址:</th>
  150. </tr>
  151. <tr>
  152. <td>
  153. <input type="text" class="txt" name="viewprourl" value="" />
  154. </td>
  155. <td>URL中域名后面的部分,如:/space.php?uid=%s 这里的 %s 代表uid</td>
  156. </tr>
  157. <tr>
  158. <th colspan="2">应用接口文件名称:</th>
  159. </tr>
  160. <tr>
  161. <td>
  162. <input type="text" class="txt" name="apifilename" value="uc.php" />
  163. </td>
  164. <td>应用接口文件名称,不含路径,默认为uc.php</td>
  165. </tr>
  166. <tr>
  167. <th colspan="2">标签单条显示模板:</th>
  168. </tr>
  169. <tr>
  170. <td><textarea class="area" name="tagtemplates"></textarea></td>
  171. <td valign="top">当前应用的标签数据显示在其它应用时的单条数据模板。</td>
  172. </tr>
  173. <tr>
  174. <th colspan="2">标签模板标记说明:</th>
  175. </tr>
  176. <tr>
  177. <td><textarea class="area" name="tagfields"><?php echo $tagtemplates['fields'];?></textarea></td>
  178. <td valign="top">一行一个标记说明条目,用逗号分割标记和说明文字。如:<br />subject,主题标题<br />url,主题地址</td>
  179. </tr>
  180. <tr>
  181. <th colspan="2">是否开启同步登录:</th>
  182. </tr>
  183. <tr>
  184. <td>
  185. <input type="radio" class="radio" id="yes" name="synlogin" value="1" /><label for="yes">是</label>
  186. <input type="radio" class="radio" id="no" name="synlogin" value="0" checked="checked" /><label for="no">否</label>
  187. </td>
  188. <td>开启同步登录后,当用户在登录其他应用时,同时也会登录该应用。</td>
  189. </tr>
  190. <tr>
  191. <th colspan="2">是否接受通知:</th>
  192. </tr>
  193. <tr>
  194. <td>
  195. <input type="radio" class="radio" id="yes" name="recvnote" value="1"/><label for="yes">是</label>
  196. <input type="radio" class="radio" id="no" name="recvnote" value="0" checked="checked" /><label for="no">否</label>
  197. </td>
  198. <td></td>
  199. </tr>
  200. </table>
  201. <div class="opt"><input type="submit" name="submit" value=" 提 交 " class="btn" tabindex="3" /></div>
  202. </form>
  203. </div>
  204. </div>
  205. <?php } else { ?>
  206. <h3 class="marginbot">编辑应用<a href="admin.php?m=app&a=ls" class="sgbtn">返回应用列表</a></h3>
  207. <?php if($updated) { ?>
  208. <div class="correctmsg"><p>更新成功。</p></div>
  209. <?php } elseif($addapp) { ?>
  210. <div class="correctmsg"><p>成功添加应用。</p></div>
  211. <?php } ?>
  212. <div class="mainbox">
  213. <form action="admin.php?m=app&a=detail&appid=<?php echo $appid;?>" method="post">
  214. <input type="hidden" name="formhash" value="<?php echo FORMHASH;?>">
  215. <table class="opt">
  216. <tr>
  217. <th colspan="2">ID: <?php echo $appid;?></th>
  218. </tr>
  219. <tr>
  220. <th colspan="2">应用类型:</th>
  221. </tr>
  222. <tr>
  223. <td>
  224. <select name="type">
  225. <?php foreach((array)$typelist as $typeid => $typename) {?>
  226. <option value="<?php echo $typeid;?>" <?php if($typeid == $type) { ?>selected="selected"<?php } ?>> <?php echo $typename;?> </option>
  227. <?php }?>
  228. </select>
  229. </td>
  230. <td></td>
  231. </tr>
  232. <tr>
  233. <th colspan="2">应用名称:</th>
  234. </tr>
  235. <tr>
  236. <td><input type="text" class="txt" name="name" value="<?php echo $name;?>" /></td>
  237. <td>限 20 字节。</td>
  238. </tr>
  239. <tr>
  240. <th colspan="2">应用的主 URL:</th>
  241. </tr>
  242. <tr>
  243. <td><input type="text" class="txt" name="url" value="<?php echo $url;?>" /></td>
  244. <td>该应用与 UCenter 通信的接口 URL,结尾请不要加“/” ,应用的通知只发送给主 URL</td>
  245. </tr>
  246. <tr>
  247. <th colspan="2">应用的其他 URL:</th>
  248. </tr>
  249. <tr>
  250. <td><textarea name="extraurl" class="area"><?php echo $extraurl;?></textarea></td>
  251. <td>该应用可以访问的其他 URL,结尾请不要加“/” ,每行一个,只有在同步登录是请求该 URL</td>
  252. </tr>
  253. <tr>
  254. <th colspan="2">应用 IP:</th>
  255. </tr>
  256. <tr>
  257. <td><input type="text" class="txt" name="ip" value="<?php echo $ip;?>" /></td>
  258. <td>正常情况下留空即可。如果由于域名解析问题导致 UCenter 与该应用通信失败,请尝试设置为该应用所在服务器的 IP 地址。</td>
  259. </tr>
  260. <tr>
  261. <th colspan="2">通信密钥:</th>
  262. </tr>
  263. <tr>
  264. <td><input type="text" class="txt" name="authkey" value="<?php echo $authkey;?>" /></td>
  265. <td>只允许使用英文字母及数字,限 64 字节。应用端的通信密钥必须与此设置保持一致,否则该应用将无法与 UCenter 正常通信。</td>
  266. </tr>
  267. <tr>
  268. <th colspan="2">应用的物理路径:</th>
  269. </tr>
  270. <tr>
  271. <td>
  272. <input type="text" class="txt" name="apppath" value="<?php echo $apppath;?>" />
  273. </td>
  274. <td>默认请留空,如果填写的为相对路径(相对于UC),程序会自动转换为绝对路径,如 ../</td>
  275. </tr>
  276. <tr>
  277. <th colspan="2">查看个人资料页面地址:</th>
  278. </tr>
  279. <tr>
  280. <td>
  281. <input type="text" class="txt" name="viewprourl" value="<?php echo $viewprourl;?>" />
  282. </td>
  283. <td>URL中域名后面的部分,如:/space.php?uid=%s 这里的 %s 代表uid</td>
  284. </tr>
  285. <tr>
  286. <th colspan="2">应用接口文件名称:</th>
  287. </tr>
  288. <tr>
  289. <td>
  290. <input type="text" class="txt" name="apifilename" value="<?php echo $apifilename;?>" />
  291. </td>
  292. <td>应用接口文件名称,不含路径,默认为uc.php</td>
  293. </tr>
  294. <tr>
  295. <th colspan="2">标签单条显示模板:</th>
  296. </tr>
  297. <tr>
  298. <td><textarea class="area" name="tagtemplates"><?php echo $tagtemplates['template'];?></textarea></td>
  299. <td valign="top">当前应用的标签数据显示在其它应用时的单条数据模板。</td>
  300. </tr>
  301. <tr>
  302. <th colspan="2">标签模板标记说明:</th>
  303. </tr>
  304. <tr>
  305. <td><textarea class="area" name="tagfields"><?php echo $tagtemplates['fields'];?></textarea></td>
  306. <td valign="top">一行一个标记说明条目,用逗号分割标记和说明文字。如:<br />subject,主题标题<br />url,主题地址</td>
  307. </tr>
  308. <tr>
  309. <th colspan="2">是否开启同步登录:</th>
  310. </tr>
  311. <tr>
  312. <td>
  313. <input type="radio" class="radio" id="yes" name="synlogin" value="1" <?php echo $synlogin[1];?> /><label for="yes">是</label>
  314. <input type="radio" class="radio" id="no" name="synlogin" value="0" <?php echo $synlogin[0];?> /><label for="no">否</label>
  315. </td>
  316. <td>开启同步登录后,当用户在登录其他应用时,同时也会登录该应用。</td>
  317. </tr>
  318. <tr>
  319. <th colspan="2">是否接受通知:</th>
  320. </tr>
  321. <tr>
  322. <td>
  323. <input type="radio" class="radio" id="yes" name="recvnote" value="1" <?php echo $recvnotechecked[1];?> /><label for="yes">是</label>
  324. <input type="radio" class="radio" id="no" name="recvnote" value="0" <?php echo $recvnotechecked[0];?> /><label for="no">否</label>
  325. </td>
  326. <td></td>
  327. </tr>
  328. </table>
  329. <div class="opt"><input type="submit" name="submit" value=" 提 交 " class="btn" tabindex="3" /></div>
  330. <?php if($isfounder) { ?>
  331. <table class="opt">
  332. <tr>
  333. <th colspan="2">应用的 UCenter 配置信息:</th>
  334. </tr>
  335. <tr>
  336. <th>
  337. <textarea class="area" onFocus="this.select()">
  338. define('UC_CONNECT', 'mysql');
  339. define('UC_DBHOST', '<?php echo UC_DBHOST;?>');
  340. define('UC_DBUSER', '<?php echo UC_DBUSER;?>');
  341. define('UC_DBPW', '<?php echo UC_DBPW;?>');
  342. define('UC_DBNAME', '<?php echo UC_DBNAME;?>');
  343. define('UC_DBCHARSET', '<?php echo UC_DBCHARSET;?>');
  344. define('UC_DBTABLEPRE', '`<?php echo UC_DBNAME;?>`.<?php echo UC_DBTABLEPRE;?>');
  345. define('UC_DBCONNECT', '0');
  346. define('UC_KEY', '<?php echo $authkey;?>');
  347. define('UC_API', '<?php echo UC_API;?>');
  348. define('UC_CHARSET', '<?php echo UC_CHARSET;?>');
  349. define('UC_IP', '');
  350. define('UC_APPID', '<?php echo $appid;?>');
  351. define('UC_PPP', '20');
  352. </textarea>
  353. </th>
  354. <td>当应用的 UCenter 配置信息丢失时可复制左侧的代码到应用的配置文件中</td>
  355. </tr>
  356. </table>
  357. <?php } ?>
  358. </form>
  359. </div>
  360. <?php } ?>
  361. </div>
  362. <?php include $this->gettpl('footer');?>