PageRenderTime 57ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 1ms

/databox/public_html/mydata/data.php

https://bitbucket.org/tsuchi/box
PHP | 1454 lines | 1034 code | 262 blank | 158 comment | 89 complexity | 01c7d6664284f638bde8aefb97e6756b MD5 | raw file
Possible License(s): AGPL-1.0
  1. <?php
  2. /* Reminder: always indent with 4 spaces (no tabs). */
  3. // +---------------------------------------------------------------------------+
  4. // | data maintenannce
  5. // +---------------------------------------------------------------------------+
  6. // $Id: data.php
  7. // public_html/databox/mydata/data.php
  8. // 20101208 tsuchitani AT ivywe DOT co DOT jp
  9. // 20120416 fncsave hits
  10. //@@@@@@追加予定 メールにカテゴリ
  11. define ('THIS_SCRIPT', 'databox/mydata/data.php');
  12. //define ('THIS_SCRIPT', 'databox/mydata/test.php');
  13. require_once('databox_functions.php');
  14. require_once( $_CONF['path_system'] . 'lib-admin.php' );
  15. if ($_DATABOX_CONF['allow_data_update']==1 ){
  16. }else{
  17. if (SEC_hasRights ('databox.edit') ){
  18. }else{
  19. COM_accessLog("User {$_USER['username']} tried to data and failed ");
  20. echo COM_refresh($_CONF['site_url'] . '/index.php');
  21. exit;
  22. }
  23. }
  24. // +---------------------------------------------------------------------------+
  25. // | 機能 一覧表示 |
  26. // | 書式 fncList() |
  27. // +---------------------------------------------------------------------------+\
  28. // | 戻値 nomal:一覧 |
  29. // +---------------------------------------------------------------------------+
  30. function fncList(
  31. $template
  32. )
  33. {
  34. global $_CONF;
  35. global $_TABLES;
  36. global $LANG_ADMIN;
  37. global $LANG09;
  38. global $LANG_DATABOX_ADMIN;
  39. global $LANG_DATABOX;
  40. global $_DATABOX_CONF;
  41. $retval = '';
  42. //フィルタ Filter
  43. if (!empty ($_GET['filter_val'])) {
  44. $filter_val = COM_applyFilter($_GET['filter_val']);
  45. } elseif (!empty ($_POST['filter_val'])) {
  46. $filter_val = COM_applyFilter($_POST['filter_val']);
  47. } else {
  48. $filter_val = $LANG09[9];
  49. }
  50. if ($filter_val==$LANG09[9]){
  51. $exclude="";
  52. }else{
  53. $exclude=" AND t.fieldset_id={$filter_val}";
  54. }
  55. $filter = "{$LANG_DATABOX_ADMIN['fieldset']}:";
  56. $filter .="<select name='filter_val' style='width: 125px' onchange='this.form.submit()'>";
  57. $filter .="<option value='{$LANG09[9]}'";
  58. if ($filter_val==$LANG09[9]){
  59. $filter .=" selected='selected'";
  60. }
  61. $filter .=" >{$LANG09[9]}</option>";
  62. $filter .= COM_optionList ($_TABLES['DATABOX_def_fieldset']
  63. , 'fieldset_id,name', $filter_val,0,"fieldset_id<>0");
  64. $filter .="</select>";
  65. //ヘッダ:編集~
  66. $header_arr[]=array('text' => $LANG_DATABOX_ADMIN['orderno'], 'field' => 'orderno', 'sort' => true);
  67. $header_arr[]=array('text' => $LANG_ADMIN['edit'], 'field' => 'editid', 'sort' => false);
  68. if ($_DATABOX_CONF['allow_data_insert']
  69. OR SEC_hasRights('databox.submit')){
  70. $header_arr[]=array('text' => $LANG_ADMIN['copy'], 'field' => 'copy', 'sort' => false);
  71. }
  72. $header_arr[]=array('text' => $LANG_DATABOX_ADMIN['id'], 'field' => 'id', 'sort' => true);
  73. $header_arr[]=array('text' => $LANG_DATABOX_ADMIN['code'], 'field' => 'code', 'sort' => true);
  74. $header_arr[]=array('text' => $LANG_DATABOX_ADMIN['title'], 'field' => 'title', 'sort' => true);
  75. $header_arr[]=array('text' => $LANG_DATABOX_ADMIN['fieldset'], 'field' => 'fieldset_name', 'sort' => true);
  76. $header_arr[]=array('text' => $LANG_DATABOX_ADMIN['remaingdays'], 'field' => 'remaingdays', 'sort' => true);
  77. $header_arr[]=array('text' => $LANG_DATABOX_ADMIN['udatetime'], 'field' => 'udatetime', 'sort' => true);
  78. $header_arr[]=array('text' => $LANG_DATABOX_ADMIN['draft'], 'field' => 'draft_flag', 'sort' => true);
  79. //
  80. $text_arr = array('has_menu' => true,
  81. 'has_extras' => true,
  82. 'form_url' => $_CONF['site_url'] ."/".THIS_SCRIPT);
  83. //Query
  84. $sql = "SELECT ";
  85. $sql .= " id";
  86. $sql .= " ,title";
  87. $sql .= " ,code";
  88. $sql .= " ,draft_flag";
  89. $sql .= " ,modified";
  90. $sql .= " ,UNIX_TIMESTAMP(t.udatetime) AS udatetime";
  91. $sql .= " ,orderno";
  92. $sql .= " ,t2.name AS fieldset_name";
  93. $sql .= " ,t.fieldset_id";
  94. $sql .= " ,(SELECT DATEDIFF(expired , NOW()) ";
  95. $sql .= " FROM {$_TABLES['DATABOX_base']} AS t3 ";
  96. $sql .= " where t.id=t3.id AND DATEDIFF(expired , NOW())>0)";
  97. $sql .= " + 1 AS remaingdays";
  98. $sql .= " ,owner_id";
  99. $sql .= " ,group_id";
  100. $sql .= " ,perm_owner";
  101. $sql .= " ,perm_group";
  102. $sql .= " ,perm_members";
  103. $sql .= " ,perm_anon";
  104. $sql .= " FROM ";
  105. $sql .= " {$_TABLES['DATABOX_base']} AS t";
  106. $sql .= " ,{$_TABLES['DATABOX_def_fieldset']} AS t2";
  107. $sql .= " WHERE ";
  108. $sql .= " t.fieldset_id=t2.fieldset_id";
  109. //編集権のないデータ はのぞく
  110. $sql .= COM_getPermSql('AND',0,3);
  111. $query_arr = array(
  112. 'table' => 'DATABOX_base',
  113. 'sql' => $sql,
  114. 'query_fields' => array('id','title','code','draft_flag','orderno','t2.name'),
  115. 'default_filter' => $exclude);
  116. //デフォルトソート項目:
  117. if ($_DATABOX_CONF["sort_list_by_my"]=="udatetime"){
  118. $defsort_arr = array('field' => 'udatetime', 'direction' => 'DESC');
  119. }else{
  120. $defsort_arr = array('field' => $_DATABOX_CONF["sort_list_by_my"], 'direction' => 'ASC');
  121. }
  122. $form_arr = array('bottom' => '', 'top' => '');
  123. $pagenavurl = '&amp;filter_val=' . $filter_val;
  124. //List 取得
  125. if (COM_versionCompare(VERSION, "2.0.0", '>=')){
  126. $retval .= ADMIN_list(
  127. 'databox'
  128. , "fncGetListField"
  129. , $header_arr
  130. , $text_arr
  131. , $query_arr
  132. , $defsort_arr
  133. , $filter
  134. , '', ''
  135. , $form_arr
  136. , true
  137. , $pagenavurl
  138. );
  139. }else{
  140. $retval .= ADMIN_list(
  141. 'databox'
  142. , "fncGetListField"
  143. , $header_arr
  144. , $text_arr
  145. , $query_arr
  146. , $defsort_arr
  147. , $filter
  148. , '', ''
  149. , $form_arr
  150. , true
  151. );
  152. }
  153. return $retval;
  154. }
  155. // +---------------------------------------------------------------------------+
  156. // | 一覧取得 |
  157. // | 書式 plugin_getListField_databox |
  158. // +---------------------------------------------------------------------------+
  159. function fncGetListField($fieldname, $fieldvalue, $A, $icon_arr)
  160. {
  161. global $_CONF;
  162. global $LANG_ACCESS;
  163. global $_DATABOX_CONF;
  164. global $LANG_DATABOX_ADMIN;
  165. $retval = '';
  166. $template = '';
  167. if (isset ($_REQUEST['template'])) {
  168. $template = COM_applyFilter ($_REQUEST['template']);
  169. }
  170. switch($fieldname) {
  171. //編集アイコン
  172. case 'editid':
  173. $url=$_CONF['site_url'] . "/".THIS_SCRIPT;
  174. $url.="?";
  175. $url.="mode=edit";
  176. $url.="&amp;id=".$A['id'];
  177. if ($template<>""){
  178. $url.="&amp;template=".$template;
  179. }
  180. $retval = COM_createLink($icon_arr['edit'],$url);
  181. break;
  182. case 'copy':
  183. $url=$_CONF['site_url'] . "/".THIS_SCRIPT;
  184. $url.="?";
  185. $url.="mode=copy";
  186. $url.="&amp;id=".$A['id'];
  187. $retval = COM_createLink($icon_arr['copy'],$url);
  188. break;
  189. case 'id':
  190. $name=COM_stripslashes($A['id']);
  191. $url=$_CONF['site_url'] . "/databox/data.php";
  192. $url.="?";
  193. $url.="id=".$A['id'];
  194. $url.="&amp;m=id";
  195. $url = COM_buildUrl( $url );
  196. $retval= COM_createLink($name, $url);
  197. break;
  198. case 'code':
  199. $name=COM_stripslashes($A['code']);
  200. $rt= databox_detail_link(0,$A['code'],$name);
  201. $retval= $rt['link'];
  202. break;
  203. //下書
  204. case 'draft_flag':
  205. if ($A['draft_flag'] == 1) {
  206. $switch = 'checked="checked"';
  207. } else {
  208. $switch = '';
  209. }
  210. $retval = "<form action=\"{$_CONF['site_admin_url']}";
  211. $retval .= "/plugins/".THIS_SCRIPT."\" method=\"post\">";
  212. $retval .= "<input type=\"checkbox\" name=\"drafton\" ";
  213. $retval .= "onclick=\"submit()\" value=\"{$A['draft_flag']}\" $switch disabled>";
  214. $retval .= "<input type=\"hidden\" name=\"draftChange\" ";
  215. $retval .= "value=\"{$A['id']}\">";
  216. $retval .= "</form>";
  217. break;
  218. case 'udatetime':
  219. $curtime = COM_getUserDateTimeFormat($A['udatetime']);
  220. $retval = $curtime[0];
  221. break;
  222. case 'remaingdays':
  223. if ($fieldvalue<>""){
  224. $retval = "<span class=\"databox_admin_{$fieldvalue}\">";
  225. $retval .= "{$fieldvalue}</span>";
  226. }
  227. break;
  228. //各項目
  229. default:
  230. $retval = $fieldvalue;
  231. break;
  232. }
  233. return $retval;
  234. }
  235. // +---------------------------------------------------------------------------+
  236. // | 機能 編集画面表示
  237. // | 書式 fncEdit($id , $edt_flg,$msg,$errmsg,$mode,$fieldset_id,$template)
  238. // +---------------------------------------------------------------------------+
  239. // | 引数 $id:
  240. // | 引数 $edt_flg:
  241. // | 引数 $msg:メッセージ番号
  242. // +---------------------------------------------------------------------------+
  243. // | 戻値 nomal:編集画面 |
  244. // +---------------------------------------------------------------------------+
  245. // update 20101207
  246. function fncEdit(
  247. $id
  248. ,$edt_flg,$msg = ''
  249. ,$errmsg=""
  250. ,$mode="edit"
  251. ,$fieldset_id=0
  252. ,$template=""
  253. ,$old_mode=""
  254. )
  255. {
  256. $pi_name="databox";
  257. global $_CONF;
  258. global $_TABLES;
  259. global $LANG_DATABOX_ADMIN;
  260. global $LANG_ADMIN;
  261. global $MESSAGE;
  262. global $LANG_ACCESS;
  263. global $_DATABOX_CONF;
  264. global $_USER;
  265. global $_SCRIPTS;
  266. $retval = '';
  267. $delflg=false;
  268. $addition_def=DATABOX_getadditiondef();
  269. //メッセージ表示
  270. if (!empty ($msg)) {
  271. $retval .= COM_showMessage ($msg,$pi_name);
  272. $retval .= $errmsg;
  273. // clean 'em up
  274. $code=COM_applyFilter($_POST['code']);
  275. $title = COM_stripslashes($_POST['title']);
  276. $page_title = COM_applyFilter($_POST['page_title']);
  277. $description=$_POST['description'];//COM_applyFilter($_POST['description']);
  278. $draft_flag = COM_applyFilter ($_POST['draft_flag'],true);
  279. $cache_time = COM_applyFilter ($_POST['cache_time'],true);
  280. $language_id = COM_applyFilter ($_POST['language_id']);
  281. $category = $_POST['category'];
  282. $additionfields=$_POST['afield'];
  283. $additionfields_fnm=$_POST['afield_fnm'];//@@@@@
  284. $additionfields_del=$_POST['afield_del'];
  285. $additionfields_date=array();
  286. $additionfields_alt=$_POST['afield_alt'];;
  287. $additionfields=DATABOX_cleanaddtiondatas (
  288. $additionfields
  289. ,$addition_def
  290. ,$additionfields_fnm
  291. ,$additionfields_del
  292. ,$additionfields_date
  293. ,$additionfields_alt
  294. ,false
  295. );
  296. //作成日付
  297. $created = COM_applyFilter ($_POST['created']);
  298. $created_un = COM_applyFilter ($_POST['created_un']);
  299. $orderno = COM_applyFilter ($_POST['orderno']);
  300. $uuid=$_USER['uid'];
  301. $udatetime=COM_applyFilter ($_POST['udatetime']);//"";
  302. $fieldset_id=COM_applyFilter ($_POST['fieldset'],true);//"";
  303. $fieldset_name=COM_applyFilter ($_POST['fieldset_name']);//"";
  304. }else{
  305. if (empty($id)) {
  306. $fieldset_name=DB_getItem($_TABLES['DATABOX_def_fieldset'],"name","fieldset_id=".$fieldset_id);
  307. $fieldset_name=COM_stripslashes($fieldset_name);
  308. $id=0;
  309. $code ="";
  310. $title ="";
  311. $description="";
  312. $language_id="";
  313. $category = "";
  314. $additionfields=array();
  315. $additionfields_fnm=array();//@@@@@
  316. $additionfields_del=array();
  317. $additionfields_date="";
  318. $additionfields = DATABOX_getadditiondatas(0,$pi_name);
  319. //
  320. $draft_flag=$_DATABOX_CONF['user_draft_default'];
  321. $cache_time=$_DATABOX_CONF['default_cache_time'];
  322. //作成日付
  323. $created=0;
  324. $created_un=0;
  325. $uuid=0;
  326. $udatetime="";//"";
  327. $defaulttemplatesdirectory="";
  328. }else{
  329. $sql = "SELECT ";
  330. $sql .= " t.*".LB;
  331. $sql .= " ,t2.name AS fieldset_name".LB;
  332. $sql .= " ,UNIX_TIMESTAMP(t.modified) AS modified_un".LB;
  333. $sql .= " ,UNIX_TIMESTAMP(t.released) AS released_un".LB;
  334. $sql .= " ,UNIX_TIMESTAMP(t.comment_expire) AS comment_expire_un".LB;
  335. $sql .= " ,UNIX_TIMESTAMP(t.expired) AS expired_un".LB;
  336. $sql .= " ,UNIX_TIMESTAMP(t.udatetime) AS udatetime_un".LB;
  337. $sql .= " ,UNIX_TIMESTAMP(t.created) AS created_un".LB;
  338. $sql .= " FROM ";
  339. $sql .= $_TABLES['DATABOX_base'] ." AS t ".LB;
  340. $sql .= ",".$_TABLES['DATABOX_def_fieldset'] ." AS t2 ".LB;
  341. $sql .= " WHERE ".LB;
  342. $sql .= " id = $id".LB;
  343. $sql .= " AND t.fieldset_id = t2.fieldset_id".LB;
  344. //編集権のないデータ はのぞく//@@@@@
  345. $sql .= COM_getPermSql('AND',0,3);
  346. $result = DB_query($sql);
  347. $A = DB_fetchArray($result);
  348. $A = array_map('stripslashes', $A);
  349. $fieldset_id = COM_stripslashes($A['fieldset_id']);
  350. $fieldset_name = COM_stripslashes($A['fieldset_name']);
  351. $code = COM_stripslashes($A['code']);
  352. $title=COM_stripslashes($A['title']);
  353. $page_title=COM_stripslashes($A['page_title']);
  354. $description=COM_stripslashes($A['description']);
  355. $language_id = COM_stripslashes($A['language_id']);
  356. $category = DATABOX_getdatas("category_id",$_TABLES['DATABOX_category'],"id = $id");
  357. //追加項目
  358. $additionfields = DATABOX_getadditiondatas($id,$pi_name);
  359. $additionfields_fnm=array();//@@@@@
  360. $additionfields_del=array();
  361. $additionfields_date="";
  362. $draft_flag=COM_stripslashes($A['draft_flag']);
  363. $cache_time=COM_stripslashes($A['cache_time']);
  364. //編集日
  365. $wary = COM_getUserDateTimeFormat(COM_stripslashes($A['modified_un']));
  366. $modified = $wary[1];
  367. $modified_month = date('m', $modified);
  368. $modified_day = date('d', $modified);
  369. $modified_year = date('Y', $modified);
  370. $modified_hour = date('H', $modified);
  371. $modified_minute = date('i', $modified);
  372. //作成日付
  373. $wary = COM_getUserDateTimeFormat(COM_stripslashes($A['created_un']));
  374. $created = $wary[0];
  375. $created_un = $wary[1];
  376. $orderno=COM_stripslashes($A['orderno']);
  377. $uuid = COM_stripslashes($A['uuid']);
  378. $wary = COM_getUserDateTimeFormat(COM_stripslashes($A['udatetime_un']));
  379. $udatetime = $wary[0];
  380. $defaulttemplatesdirectory=$A['defaulttemplatesdirectory'];
  381. if ($_DATABOX_CONF['allow_data_delete']){
  382. if ($edt_flg==FALSE) {
  383. $delflg=true;
  384. }
  385. }
  386. }
  387. }
  388. if ($mode==="copy"){
  389. $id=0;
  390. $draft_flag=$_DATABOX_CONF['user_draft_default'];
  391. $code="";
  392. //作成日付
  393. $created=0;
  394. $created_un=0;
  395. //公開日
  396. $released_month=$modified_month;
  397. $released_day = $modified_day;
  398. $released_year = $modified_year;
  399. $released_hour = $modified_hour;
  400. $released_minute = $modified_minute;
  401. //公開終了日
  402. $expired_flag=0;
  403. $w = mktime(0, 0, 0, date('m'),
  404. date('d') + $_CONF['article_comment_close_days'], date('Y'));
  405. $expired_year=date('Y', $w);
  406. $expired_month=date('m', $w);
  407. $expired_day=date('d', $w);
  408. $expired_hour=0;
  409. $expired_minute=0;
  410. //
  411. $delflg=false;
  412. $old_mode="copy";
  413. }
  414. $chk_user=DATABOX_chkuser($group_id,$owner_id,"databox.admin");
  415. //template フォルダ
  416. if (is_null($template) or ($template==="")){
  417. $set_defaulttemplatesdirectory=DB_getItem($_TABLES['DATABOX_def_fieldset']
  418. ,"defaulttemplatesdirectory","fieldset_id=".$fieldset_id);
  419. if ($defaulttemplatesdirectory<>""){
  420. $template=$defaulttemplatesdirectory;
  421. }elseif ($set_defaulttemplatesdirectory<>""){
  422. $template=$set_defaulttemplatesdirectory;
  423. }else{
  424. $template="default";
  425. }
  426. }
  427. $tmplfld=DATABOX_templatePath('mydata',$template,'databox');
  428. $templates = new Template($tmplfld);
  429. $templates->set_file('editor',"data_editor.thtml");
  430. $templates->set_file (array (
  431. 'editor' => 'data_editor.thtml',
  432. 'row' => 'row.thtml',
  433. 'col' => "data_col_detail.thtml",
  434. ));
  435. // Loads jQuery UI datepicker geeklog >=2.1.0
  436. $_SCRIPTS->setJavaScriptLibrary('jquery.ui.datepicker');
  437. $_SCRIPTS->setJavaScriptLibrary('jquery-ui-i18n');
  438. $_SCRIPTS->setJavaScriptLibrary('jquery-ui-timepicker-addon');
  439. $_SCRIPTS->setJavaScriptLibrary('jquery-ui-timepicker-addon-i18n');
  440. $_SCRIPTS->setJavaScriptFile('datetimepicker', '/javascript/datetimepicker.js');
  441. $_SCRIPTS->setJavaScriptFile('datepicker', '/javascript/datepicker.js');
  442. $langCode = COM_getLangIso639Code();
  443. $toolTip = $MESSAGE[118];
  444. $imgUrl = $_CONF['site_url'] . '/images/calendar.png';
  445. //--
  446. if (($_CONF['meta_tags'] > 0) && ($_DATABOX_CONF['meta_tags'] > 0)) {
  447. $templates->set_var('hide_meta', '');
  448. } else {
  449. $templates->set_var('hide_meta', ' style="display:none;"');
  450. }
  451. $templates->set_var('maxlength_description', $_DATABOX_CONF['maxlength_description']);
  452. $templates->set_var('about_thispage', $LANG_DATABOX_ADMIN['about_admin_data']);
  453. $templates->set_var('lang_must', $LANG_DATABOX_ADMIN['must']);
  454. $templates->set_var('site_url', $_CONF['site_url']);
  455. $templates->set_var('site_admin_url', $_CONF['site_admin_url']);
  456. $templates->set_var('lang_view', $LANG_DATABOX_ADMIN['view']);
  457. $templates->set_var('dateformat', $_DATABOX_CONF['dateformat']);
  458. $token = SEC_createToken();
  459. $retval .= SEC_getTokenExpiryNotice($token);
  460. $templates->set_var('gltoken_name', CSRF_TOKEN);
  461. $templates->set_var('gltoken', $token);
  462. $templates->set_var ( 'xhtml', XHTML );
  463. $script=THIS_SCRIPT;
  464. $script.="?template=".$template;
  465. $templates->set_var('script', $script);
  466. //
  467. $templates->set_var('lang_link_admin', $LANG_DATABOX_ADMIN['link_admin']);
  468. $templates->set_var('lang_link_admin_top', $LANG_DATABOX_ADMIN['link_admin_top']);
  469. $templates->set_var('lang_link_public', $LANG_DATABOX_ADMIN['link_public']);
  470. $templates->set_var('lang_link_list', $LANG_DATABOX_ADMIN['link_list']);
  471. $templates->set_var('lang_link_detail', $LANG_DATABOX_ADMIN['link_detail']);
  472. //field_id
  473. $templates->set_var('lang_fieldset', $LANG_DATABOX_ADMIN['fieldset']);
  474. $templates->set_var('fieldset_id', $fieldset_id);
  475. $templates->set_var('fieldset_name', $fieldset_name);
  476. //id
  477. $templates->set_var('lang_id', $LANG_DATABOX_ADMIN['id']);
  478. //@@@@@ $templates->set_var('help_id', $LANG_DATABOX_ADMIN['help']);
  479. $templates->set_var('id', $id);
  480. //下書
  481. $templates->set_var('lang_draft', $LANG_DATABOX_ADMIN['draft']);
  482. if ($draft_flag==1) {
  483. $templates->set_var('draft_flag', "checked=checked");
  484. $templates->set_var('draft_msg', $LANG_DATABOX_ADMIN['draft_msg']);
  485. }else{
  486. $templates->set_var('draft_flag', "");
  487. $templates->set_var('draft_msg', "");
  488. }
  489. //
  490. $templates->set_var('lang_field', $LANG_DATABOX_ADMIN['field']);
  491. $templates->set_var('lang_fields', $LANG_DATABOX_ADMIN['fields']);
  492. $templates->set_var('lang_content', $LANG_DATABOX_ADMIN['content']);
  493. $templates->set_var('lang_templatesetvar', $LANG_DATABOX_ADMIN['templatesetvar']);
  494. //基本項目
  495. $templates->set_var('lang_basicfields', $LANG_DATABOX_ADMIN['basicfields']);
  496. //コード&タイトル&説明&テンプレートセット値
  497. $templates->set_var('lang_code', $LANG_DATABOX_ADMIN['code']);
  498. if ($_DATABOX_CONF['datacode']){
  499. $templates->set_var('lang_must_code', $LANG_DATABOX_ADMIN['must']);
  500. }else{
  501. $templates->set_var('lang_must_code', "");
  502. }
  503. $templates->set_var ('code', $code);
  504. $templates->set_var('lang_title', $LANG_DATABOX_ADMIN['title']);
  505. $templates->set_var ('title', $title);
  506. $templates->set_var('lang_page_title', $LANG_DATABOX_ADMIN['page_title']);
  507. $templates->set_var ('page_title', $page_title);
  508. $templates->set_var('lang_description', $LANG_DATABOX_ADMIN['description']);
  509. $templates->set_var ('description', $description);
  510. //language_id
  511. if (is_array($_CONF['languages'])) {
  512. $templates->set_var('hide_language_id', '');
  513. $select_language_id=DATABOX_getoptionlist("language_id",$language_id,0,$pi_name,"",0 );
  514. } else {
  515. $templates->set_var('hide_language_id', ' style="display:none;"');
  516. $select_language_id="";
  517. }
  518. $templates->set_var('lang_language_id', $LANG_DATABOX_ADMIN['language_id']);
  519. $templates->set_var ('language_id', $language_id);
  520. $templates->set_var ('select_language_id', $select_language_id);//@@@@@
  521. //編集日
  522. $templates->set_var ('lang_modified_autoupdate', $LANG_DATABOX_ADMIN['modified_autoupdate']);
  523. $templates->set_var ('lang_modified', $LANG_DATABOX_ADMIN['modified']);
  524. $w=COM_convertDate2Timestamp(
  525. $modified_year."-".$modified_month."-".$modified_day
  526. , $modified_hour.":".$modified_minute."::00"
  527. );
  528. $datetime_modified=DATABOX_datetimeedit($w,"LANG_DATABOX_ADMIN","modified");
  529. $templates->set_var ('datetime_modified', $datetime_modified);
  530. //カテゴリ
  531. $templates->set_var('lang_category', $LANG_DATABOX_ADMIN['category']);
  532. $checklist_category=DATABOX_getcategoriesinp ($category,$fieldset_id,"databox",$chk_user);
  533. $templates->set_var('checklist_category', $checklist_category);
  534. //追加項目
  535. $templates->set_var('lang_additionfields', $LANG_DATABOX_ADMIN['additionfields']);
  536. $rt=DATABOX_getaddtionfieldsEdit(
  537. $additionfields
  538. ,$addition_def
  539. ,$templates
  540. ,$chk_user
  541. ,$pi_name
  542. ,$additionfields_fnm
  543. ,$additionfields_del
  544. ,$fieldset_id
  545. ,$additionfields_date
  546. );
  547. //$rt=DATABOX_getaddtionfieldsJS($additionfields,$addition_def,$chk_user,$pi_name);
  548. //保存日時
  549. $templates->set_var ('lang_udatetime', $LANG_DATABOX_ADMIN['udatetime']);
  550. $templates->set_var ('udatetime', $udatetime);
  551. $templates->set_var ('lang_uuid', $LANG_DATABOX_ADMIN['uuid']);
  552. $templates->set_var ('uuid', $uuid);
  553. //作成日付
  554. $templates->set_var ('lang_created', $LANG_DATABOX_ADMIN['created']);
  555. $templates->set_var ('created', $created);
  556. $templates->set_var ('created_un', $created_un);
  557. // SAVE、CANCEL ボタン
  558. $templates->set_var('lang_save', $LANG_ADMIN['save']);
  559. $templates->set_var('lang_cancel', $LANG_ADMIN['cancel']);
  560. $templates->set_var('lang_preview', $LANG_ADMIN['preview']);
  561. //delete_option
  562. if ($delflg){
  563. $delbutton = '<input type="submit" value="' . $LANG_ADMIN['delete']
  564. . '" name="mode"%s>';
  565. $jsconfirm = ' onclick="return confirm(\'' . $MESSAGE[76] . '\');"';
  566. $templates->set_var ('delete_option',
  567. sprintf ($delbutton, $jsconfirm));
  568. }
  569. $templates->set_var('old_mode', $old_mode);
  570. //
  571. $templates->parse('output', 'editor');
  572. $retval .= $templates->finish($templates->get_var('output'));
  573. return $retval;
  574. }
  575. // +---------------------------------------------------------------------------+
  576. // | 機能 保存 |
  577. // | 書式 fncSave ($edt_flg) |
  578. // +---------------------------------------------------------------------------+
  579. // | 戻値 nomal:戻り画面&メッセージ |
  580. // +---------------------------------------------------------------------------+
  581. //20101207
  582. function fncSave (
  583. $edt_flg
  584. ,$navbarMenu
  585. ,$menuno
  586. ,$template
  587. )
  588. {
  589. $pi_name="databox";
  590. global $_CONF;
  591. global $LANG_DATABOX_ADMIN;
  592. global $_TABLES;
  593. global $_USER;
  594. global $_DATABOX_CONF;
  595. global $LANG_DATABOX_user_menu;
  596. $addition_def=DATABOX_getadditiondef();
  597. $retval = '';
  598. // clean 'em up
  599. $id = COM_applyFilter($_POST['id'],true);
  600. if ($id==0){
  601. $new_flg=true;
  602. }else{
  603. $new_flg=false;
  604. }
  605. $fieldset_id = COM_applyFilter ($_POST['fieldset'],true);
  606. $code = COM_applyFilter($_POST['code']);
  607. $code = addslashes (COM_checkHTML (COM_checkWords ($code)));
  608. $title = COM_stripslashes($_POST['title']);
  609. $title = addslashes (COM_checkHTML (COM_checkWords ($title)));
  610. $page_title = COM_applyFilter($_POST['page_title']);
  611. $page_title = addslashes (COM_checkHTML (COM_checkWords ($page_title)));
  612. $description=$_POST['description'];//COM_applyFilter($_POST['description']);
  613. $description=addslashes (COM_checkHTML (COM_checkWords ($description)));
  614. $language_id=COM_applyFilter($_POST['language_id']);
  615. $language_id=addslashes (COM_checkHTML (COM_checkWords ($language_id)));
  616. $category = $_POST['category'];
  617. //@@@@@
  618. $additionfields=$_POST['afield'];
  619. $additionfields_old=$_POST['afield'];
  620. $additionfields_fnm=$_POST['afield_fnm'];
  621. $additionfields_del=$_POST['afield_del'];
  622. $additionfields_alt=$_POST['afield_alt'];
  623. $additionfields_date=array();
  624. $additionfields=DATABOX_cleanaddtiondatas(
  625. $additionfields
  626. ,$addition_def
  627. ,$additionfields_fnm
  628. ,$additionfields_del
  629. ,$additionfields_date
  630. ,$additionfields_alt
  631. );
  632. // $hits =0;
  633. // $comments=0;
  634. $old_mode=COM_applyFilter($_POST['old_mode']);
  635. $old_mode=addslashes (COM_checkHTML (COM_checkWords ($old_mode)));
  636. //-----
  637. $type=1;
  638. $uuid=$_USER['uid'];
  639. // CHECK はじめ
  640. $err="";
  641. //id
  642. if ($id==0 ){
  643. //$err.=$LANG_DATABOX_ADMIN['err_uid']."<br/>".LB;
  644. }else{
  645. if (!is_numeric($id) ){
  646. $err.=$LANG_DATABOX_ADMIN['err_id']."<br/>".LB;
  647. }
  648. }
  649. //タイトル必須
  650. if (empty($title)){
  651. $err.=$LANG_DATABOX_ADMIN['err_title']."<br/>".LB;
  652. }
  653. //文字数制限チェック
  654. if (mb_strlen($description, 'UTF-8')>$_DATABOX_CONF['maxlength_description']) {
  655. $err.=$LANG_DATABOX_ADMIN['description']
  656. .$_DATABOX_CONF['maxlength_description']
  657. .$LANG_DATABOX_ADMIN['err_maxlength']."<br/>".LB;
  658. }
  659. //----追加項目チェック
  660. $err.=DATABOX_checkaddtiondatas
  661. ($additionfields,$addition_def,$pi_name,$additionfields_fnm
  662. ,$additionfields_del,$additionfields_alt);
  663. //errorのあるとき
  664. if ($err<>"") {
  665. $retval['title']=$LANG_DATABOX_ADMIN['piname'].$LANG_DATABOX_ADMIN['edit'];
  666. $retval['display']= fncEdit($id, $edt_flg,3,$err,"edit",$fieldset_id,$template,$old_mode);
  667. return $retval;
  668. }
  669. // CHECK おわり
  670. //-----
  671. // 新規登録時
  672. if ($new_flg){
  673. $w=DB_getItem($_TABLES['DATABOX_base'],"max(id)","1=1");
  674. if ($w=="") {
  675. $w=0;
  676. }
  677. $id=$w+1;
  678. }
  679. $fields=LB."id";
  680. $values=LB."$id";
  681. if ($new_flg){
  682. if ($_DATABOX_CONF['datacode']){
  683. $code="000000".date(Ymdhis);
  684. }
  685. $created=COM_convertDate2Timestamp(date("Y-m-d"),date("H:i::00"));
  686. $modified=$created;
  687. $released=$created;
  688. $commentcode =$_DATABOX_CONF['commentcode'];
  689. $trackbackcode=$_CONF[trackback_code];;
  690. $comment_expire='0000-00-00 00:00:00';
  691. $expired='0000-00-00 00:00:00';
  692. //
  693. $defaulttemplatesdirectory=null;
  694. $draft_flag =$_DATABOX_CONF['user_draft_default'];
  695. $draft_flag =$_DATABOX_CONF['user_draft_default'];
  696. //---
  697. $meta_description = "";
  698. $meta_keywords = "";
  699. $owner_id =$_USER['uid'];
  700. $group_id =SEC_getFeatureGroup('databox.admin', $_USER['uid']);
  701. $array = array();
  702. SEC_setDefaultPermissions($array, $_DATABOX_CONF['default_permissions']);
  703. $perm_owner = $array['perm_owner'];
  704. $perm_group = $array['perm_group'];
  705. $perm_anon = $array['perm_anon'];
  706. $perm_members = $array['perm_members'];
  707. $draft_flag=$_DATABOX_CONF['user_draft_default'];
  708. $cache_time=$_DATABOX_CONF['default_cache_time'];
  709. //-----
  710. $fields.=",defaulttemplatesdirectory";//
  711. $values.=",'$defaulttemplatesdirectory'";
  712. $fields.=",draft_flag";
  713. $values.=",$draft_flag";
  714. $fields.=",cache_time";
  715. $values.=",$cache_time";
  716. $fields.=",meta_description";//
  717. $values.=",'$meta_description'";
  718. $fields.=",meta_keywords";//
  719. $values.=",'$meta_keywords'";
  720. $fields.=",commentcode";//
  721. $values.=",$commentcode";
  722. $fields.=",trackbackcode";//
  723. $values.=",$trackbackcode";
  724. $fields.=",comment_expire";//
  725. if ($comment_expire=='0000-00-00 00:00:00'){
  726. $values.=",'$comment_expire'";
  727. }else{
  728. $values.=",FROM_UNIXTIME('$comment_expire')";
  729. }
  730. $fields.=",language_id";//
  731. $values.=",'$language_id'";
  732. $fields.=",owner_id";
  733. $values.=",$owner_id";
  734. $fields.=",group_id";
  735. $values.=",$group_id";
  736. $fields.=",perm_owner";
  737. $values.=",$perm_owner";
  738. $fields.=",perm_group";
  739. $values.=",$perm_group";
  740. $fields.=",perm_members";
  741. $values.=",$perm_members";
  742. $fields.=",perm_anon";
  743. $values.=",$perm_anon";
  744. $fields.=",modified";
  745. $values.=",FROM_UNIXTIME('$modified')";
  746. $fields.=",created";
  747. $values.=",FROM_UNIXTIME('$created')";
  748. $fields.=",expired";
  749. if ($expired=='0000-00-00 00:00:00'){
  750. $values.=",'$expired'";
  751. }else{
  752. $values.=",FROM_UNIXTIME('$expired')";
  753. }
  754. $fields.=",released";
  755. $values.=",FROM_UNIXTIME('$released')";
  756. $hits=0;
  757. $comments=0;
  758. $fields.=",code";
  759. $values.=",'$code'";
  760. $fields.=",title";//
  761. $values.=",'$title'";
  762. $fields.=",page_title";//
  763. $values.=",'$page_title'";
  764. $fields.=",description";//
  765. $values.=",'$description'";
  766. // $fields.=",hits";//
  767. // $values.=",$hits";
  768. $fields.=",comments";//
  769. $values.=",$comments";
  770. $fields.=",fieldset_id";//
  771. $values.=",$fieldset_id";
  772. $fields.=",uuid";
  773. $values.=",$uuid";
  774. if ($edt_flg){
  775. $return_page=$_CONF['site_url'] . "/".THIS_SCRIPT;
  776. $return_page.="?id=".$id;
  777. }else{
  778. $return_page=$_CONF['site_url'] . '/'.THIS_SCRIPT.'?msg=1';
  779. }
  780. DB_save($_TABLES['DATABOX_base'],$fields,$values);
  781. }else{
  782. $sql="UPDATE {$_TABLES['DATABOX_base']} set ";
  783. $sql.=" title = '$title'";
  784. $sql.=" ,page_title = '$page_title'";
  785. $sql.=" ,description = '$description'";
  786. $sql.=" ,language_id = '$language_id'";
  787. $sql.=" ,modified = FROM_UNIXTIME('$modified')";
  788. $sql.=",uuid='$uuid' WHERE id=$id";
  789. DB_query($sql);
  790. }
  791. //カテゴリ
  792. //$rt=DATABOX_savedatas("category_id",$_TABLES['DATABOX_category'],$id,$category);
  793. $rt=DATABOX_savecategorydatas($id,$category,'databox','mydata');
  794. //追加項目
  795. if ($old_mode=="copy"){
  796. DATABOX_uploadaddtiondatas_cpy
  797. ($additionfields,$addition_def,$pi_name,$id,$additionfields_fnm
  798. ,$additionfields_del,$additionfields_old,$additionfields_alt);
  799. }else{
  800. DATABOX_uploadaddtiondatas
  801. ($additionfields,$addition_def,$pi_name,$id,$additionfields_fnm
  802. ,$additionfields_del,$additionfields_old,$additionfields_alt);
  803. }
  804. if ($new_flg){
  805. $rt=DATABOX_saveaddtiondatas($id,$additionfields,$addition_def,$pi_name);
  806. }else{
  807. $rt=DATABOX_saveaddtiondatas_update($id,$additionfields,$addition_def,$pi_name);
  808. }
  809. $rt=fncsendmail ('data',$id);
  810. $cacheInstance = 'databox__' . $id . '__' ;
  811. CACHE_remove_instance($cacheInstance);
  812. //exit;//@@@@@debug 用
  813. if ($_DATABOX_CONF['aftersave']==='no'){
  814. $retval['title']=$LANG_DATABOX_ADMIN['piname'].$LANG_DATABOX_ADMIN['edit'];
  815. $retval['display'] .= fncEdit($id, $edt_flg,1,$err,"edit",$fieldset_id,$template);
  816. return $retval;
  817. }else if ($_DATABOX_CONF['aftersave']==='list'
  818. OR $_DATABOX_CONF['aftersave']==='admin' ){
  819. $url = $_CONF['site_url'] . "/databox/mydata/data.php";
  820. $item_url=COM_buildURL($url);
  821. $target='item';
  822. }else{
  823. $url=$_CONF['site_url'] . "/databox/data.php";
  824. $url.="?";
  825. //コード使用の時
  826. if ($_DATABOX_CONF['datacode']){
  827. $url.="code=".$code;
  828. $url.="&amp;m=code";
  829. }else{
  830. $url.="id=".$id;
  831. $url.="&amp;m=id";
  832. }
  833. $item_url = COM_buildUrl( $url );
  834. $target=$_DATABOX_CONF['aftersave_admin'];
  835. }
  836. $return_page = PLG_afterSaveSwitch(
  837. $target
  838. ,$item_url
  839. ,$pi_name
  840. , 1);
  841. echo $return_page;
  842. exit;
  843. }
  844. // +---------------------------------------------------------------------------+
  845. // | 機能 削除 |
  846. // | 書式 fncdelete () |
  847. // +---------------------------------------------------------------------------+
  848. // | 戻値 nomal:戻り画面&メッセージ |
  849. // +---------------------------------------------------------------------------+
  850. function fncdelete (
  851. $template
  852. )
  853. {
  854. global $_CONF;
  855. global $_TABLES;
  856. global $LANG_DATABOX_ADMIN;
  857. $pi_name="databox";
  858. $id = COM_applyFilter($_POST['id'],true);
  859. $title=DB_getItem ($_TABLES['DATABOX_base'], 'title',"id = ".$id);
  860. $addition_def=DATABOX_getadditiondef();//@@@@@
  861. $additionfields=$_POST['afield'];//@@@@@
  862. // CHECK
  863. $err="";
  864. if ($err<>"") {
  865. $page_title=$LANG_DATABOX_ADMIN['err'];
  866. $retval .= DATABOX_siteHeader('DATABOX','_admin',$page_title);
  867. $retval .= COM_startBlock ($LANG_DATABOX_ADMIN['err'], '',
  868. COM_getBlockTemplate ('_msg_block', 'header'));
  869. $retval .= $err;
  870. $retval .= COM_endBlock (COM_getBlockTemplate ('_msg_block', 'footer'));
  871. $retval .= DATABOX_siteFooter('DATABOX','_admin');
  872. return $retval;
  873. }
  874. //
  875. $rt=databox_deletedata ($id);
  876. $rt=fncsendmail ('data_delete',$id,$title);
  877. $cacheInstance = 'databox__' . $id . '__' ;
  878. CACHE_remove_instance($cacheInstance);
  879. //exit;// debug 用
  880. $return_page=$_CONF['site_url'] . '/'.THIS_SCRIPT.'?msg=2';
  881. if ($template<>""){
  882. $return_page.="&amp;template=".$template;
  883. }
  884. return COM_refresh ($return_page);
  885. }
  886. // +---------------------------------------------------------------------------+
  887. // | 機能 メール送信 |
  888. // | 書式 fncsendmail () |
  889. // +---------------------------------------------------------------------------+
  890. // | 戻値 nomal: |
  891. // +---------------------------------------------------------------------------+
  892. function fncsendmail (
  893. $m=""
  894. ,$id=0
  895. ,$title=""
  896. )
  897. {
  898. global $_CONF;
  899. global $_TABLES;
  900. global $LANG_DATABOX_MAIL;
  901. global $LANG_DATABOX_ADMIN;
  902. global $_USER ;
  903. global $_DATABOX_CONF ;
  904. $pi_name="databox";
  905. $retval = '';
  906. $site_name=$_CONF['site_name'];
  907. $subject= sprintf($LANG_DATABOX_MAIL['subject_'.$m],$_USER['username']);
  908. $message=sprintf($LANG_DATABOX_MAIL['message_'.$m],$_USER['username'],$_USER['uid']);
  909. if ($m==="data_delete"){
  910. $msg= $LANG_DATABOX_ADMIN['id'].":".$id.LB;
  911. $msg.= $LANG_DATABOX_ADMIN['title'].":".$title.LB;
  912. //URL
  913. $url=$_CONF['site_url'] . "/databox/data.php";
  914. $url = COM_buildUrl( $url );
  915. $A['draft_flag']=0;
  916. }else{
  917. $sql = "SELECT ";
  918. $sql .= " *";
  919. $sql .= " FROM ";
  920. $sql .= $_TABLES['DATABOX_base'];
  921. $sql .= " WHERE ";
  922. $sql .= " id = $id";
  923. $result = DB_query ($sql);
  924. $numrows = DB_numRows ($result);
  925. if ($numrows > 0) {
  926. $A = DB_fetchArray ($result);
  927. $A = array_map('stripslashes', $A);
  928. //下書
  929. if ($A['draft_flag']==1) {
  930. $msg.=$LANG_DATABOX_ADMIN['draft'].LB;
  931. }
  932. //基本項目
  933. $msg.= $LANG_DATABOX_ADMIN['code'].":".$A['code'].LB;
  934. $msg.= $LANG_DATABOX_ADMIN['title'].":".$A['title'].LB;
  935. $msg.= $LANG_DATABOX_ADMIN['page_title'].":".$A['page_title'].LB;
  936. $msg.= $LANG_DATABOX_ADMIN['description'].":".$A['description'].LB;
  937. //カテゴリ
  938. $msg.=DATABOX_getcategoriesText($id ,0,"DATABOX");
  939. //追加項目
  940. $group_id = stripslashes($A['group_id']);
  941. $owner_id = stripslashes($A['owner_id']);
  942. $chk_user=DATABOX_chkuser($group_id,$owner_id,"databox.admin");
  943. $addition_def=DATABOX_getadditiondef();
  944. $additionfields = DATABOX_getadditiondatas($id);
  945. $msg.=DATABOX_getaddtionfieldsText($additionfields,$addition_def,$chk_user,$pi_name,$A['fieldset_id']);
  946. //タイムスタンプ 更新ユーザ
  947. $msg.= $LANG_DATABOX_ADMIN['udatetime'].":".$A['udatetime'].LB;
  948. $msg.= $LANG_DATABOX_ADMIN['uuid'].":".$A['uuid'].LB;
  949. //URL
  950. $url=$_CONF['site_url'] . "/databox/data.php";
  951. $url.="?";
  952. if ($_DATABOX_CONF['datacode']){
  953. $url.="m=code";
  954. $url.="&code=".$A['code'];
  955. }else{
  956. $url.="m=id";
  957. $url.="&id=".$A['id'];
  958. }
  959. $url = COM_buildUrl( $url );
  960. }
  961. }
  962. if (($_DATABOX_CONF['mail_to_draft']==0) AND ($A['draft_flag']==1)){
  963. }else{
  964. $message.=$msg.LB;
  965. $message.=$url.LB;
  966. $message.=$LANG_DATABOX_MAIL['sig'].LB;
  967. $mail_to=$_DATABOX_CONF['mail_to'];
  968. //--- to owner
  969. if ($_DATABOX_CONF['mail_to_owner']==1){
  970. $owner_email=DB_getItem($_TABLES['users'],"email","uid=".$A['owner_id']);
  971. if (array_search($owner_email,$mail_to)===false){
  972. $to=$owner_email;
  973. COM_mail ($to, $subject, $message);
  974. }
  975. }
  976. //--- mail_to
  977. if (!empty ($mail_to)){
  978. $to=implode($mail_to,",");
  979. COM_mail ($to, $subject, $message);
  980. }
  981. }
  982. return $retval;
  983. }
  984. function fncNew (
  985. $template
  986. )
  987. {
  988. global $_CONF;
  989. global $LANG_DATABOX_ADMIN;
  990. global $LANG_ADMIN;
  991. $pi_name="databox";
  992. $retval = '';
  993. //-----
  994. $tmplfld=DATABOX_templatePath('mydata',$template,$pi_name);
  995. $templates = new Template($tmplfld);
  996. $templates->set_file('editor',"selectset.thtml");
  997. $templates->set_var('site_url', $_CONF['site_url']);
  998. $templates->set_var('site_admin_url', $_CONF['site_admin_url']);
  999. $token = SEC_createToken();
  1000. $retval .= SEC_getTokenExpiryNotice($token);
  1001. $templates->set_var('gltoken_name', CSRF_TOKEN);
  1002. $templates->set_var('gltoken', $token);
  1003. $templates->set_var ( 'xhtml', XHTML );
  1004. $script=THIS_SCRIPT;
  1005. if ($template<>""){
  1006. $script.="?template=".$template;
  1007. }
  1008. $templates->set_var('script', $script);
  1009. //fieldset_id
  1010. $fieldset_id=0;
  1011. $templates->set_var('lang_fieldset', $LANG_DATABOX_ADMIN['fieldset']);
  1012. $list_fieldset=DATABOX_getoptionlist("fieldset",$fieldset_id,0,$pi_name,"",0 );
  1013. $templates->set_var ('list_fieldset', $list_fieldset);
  1014. $templates->set_var ('lang_inst_newdata', $LANG_DATABOX_ADMIN['inst_newdata']);
  1015. $templates->set_var ('lang_new', $LANG_DATABOX_ADMIN['new']);
  1016. $templates->set_var('lang_cancel', $LANG_ADMIN['cancel']);
  1017. $templates->parse('output', 'editor');
  1018. $retval .= $templates->finish($templates->get_var('output'));
  1019. return $retval;
  1020. }
  1021. function fncMenu(
  1022. $pi_name
  1023. )
  1024. // +---------------------------------------------------------------------------+
  1025. // | 機能 menu表示
  1026. // | 書式 fncMenu("databox")
  1027. // +---------------------------------------------------------------------------+
  1028. // | 引数 $pi_name:plugin name 'databox' 'userbox' 'formbox'
  1029. // +---------------------------------------------------------------------------+
  1030. // | 戻値 menu
  1031. // +---------------------------------------------------------------------------+
  1032. {
  1033. global $_CONF;
  1034. global $_DATABOX_CONF;
  1035. global $LANG_ADMIN;
  1036. global $LANG_DATABOX_ADMIN;
  1037. global $LANG_DATABOX;
  1038. $retval = '';
  1039. //MENU1:管理画面
  1040. $url1=$_CONF['site_url'] . '/'.THIS_SCRIPT.'?mode=new';
  1041. if ($template<>""){
  1042. $url1.="&amp;template=".$template;
  1043. }
  1044. $url2=$_CONF['site_url'] . '/databox/list.php';
  1045. if ($_DATABOX_CONF['allow_data_insert']
  1046. OR SEC_hasRights('databox.submit')){
  1047. $menu_arr[]=array('url' => $url1,'text' => $LANG_DATABOX_ADMIN["new"]);
  1048. }
  1049. $menu_arr[]=array('url' => $url2,'text' => $LANG_DATABOX['list']);
  1050. $retval .= ADMIN_createMenu(
  1051. $menu_arr,
  1052. $LANG_DATABOX_ADMIN['instructions'],
  1053. plugin_geticon_databox()
  1054. );
  1055. return $retval;
  1056. }
  1057. // +---------------------------------------------------------------------------+
  1058. // | MAIN |
  1059. // +---------------------------------------------------------------------------+
  1060. //############################
  1061. $pi_name = 'databox';
  1062. //############################
  1063. // 引数
  1064. //public_html/mydata/data.php
  1065. //public_html/mydata/data.php?mode_id=new
  1066. //public_html/mydata/data.php?type_id=aaa
  1067. //public_html/mydata.php?mode_id=edit&id=1
  1068. //public_html/mydata.php?mode_id=edit&id=1&template=yyyy
  1069. if (isset ($_REQUEST['mode'])) {
  1070. $mode = COM_applyFilter ($_REQUEST['mode'], false);
  1071. }
  1072. $msg = '';
  1073. if (isset ($_REQUEST['msg'])) {
  1074. $msg = COM_applyFilter ($_REQUEST['msg'], true);
  1075. }
  1076. $id = '';
  1077. if (isset ($_REQUEST['id'])) {
  1078. $id = COM_applyFilter ($_REQUEST['id'], true);
  1079. }
  1080. $fieldset_id = 0;
  1081. if (isset ($_REQUEST['type_id'])) {
  1082. $fieldset_id = COM_applyFilter ($_REQUEST['type_id'], true);
  1083. }
  1084. $template = '';
  1085. if (isset ($_REQUEST['template'])) {
  1086. $template = COM_applyFilter ($_REQUEST['template']);
  1087. }
  1088. $old_mode="";
  1089. if (isset($_REQUEST['old_mode'])) {
  1090. $old_mode = COM_applyFilter($_REQUEST['old_mode'],false);
  1091. if ($mode==$LANG_ADMIN['cancel']) {
  1092. $mode = $old_mode;
  1093. }
  1094. }
  1095. if (($mode == $LANG_ADMIN['save']) && !empty ($LANG_ADMIN['save'])) { // save
  1096. $mode="save";
  1097. }else if (($mode == $LANG_ADMIN['delete']) && !empty ($LANG_ADMIN['delete'])) {
  1098. $mode="delete";
  1099. }else if (($mode == $LANG_DATABOX_ADMIN['new']) && !empty ($LANG_DATABOX_ADMIN['new'])) {
  1100. $mode="newedit";
  1101. }else if ($fieldset_id <> 0){
  1102. $mode="newedit_type";
  1103. }
  1104. //echo "mode=".$mode."<br>";
  1105. if ($mode=="" OR $mode=="edit" OR $mode=="new" OR $mode=="drafton" OR $mode=="draftoff"
  1106. OR $mode=="export" OR $mode=="import" OR $mode=="copy"
  1107. OR $mode=="newedit_type"
  1108. ) {
  1109. }else{
  1110. if (!SEC_checkToken()){
  1111. // if (SEC_checkToken()){//テスト用
  1112. COM_accessLog("User {$_USER['username']} tried to illegally and failed CSRF checks.");
  1113. echo COM_refresh($_CONF['site_admin_url'] . '/index.php');
  1114. exit;
  1115. }
  1116. }
  1117. //
  1118. $menuno=2;
  1119. $display="";
  1120. $information = array();
  1121. //ログイン要否チェック
  1122. if (COM_isAnonUser()){
  1123. $loginrequired=$_DATABOX_CONF['loginrequired'];
  1124. $loginrequired=$_CONF['loginrequired'];
  1125. if ($loginrequired>0) {
  1126. $display .= DATABOX_siteHeader($pi_name,'',$page_title);
  1127. $display .= SEC_loginRequiredForm();
  1128. $display .= DATABOX_siteFooter($pi_name);
  1129. COM_output($display);
  1130. exit;
  1131. }
  1132. }
  1133. //echo "mode=".$mode."<br>";
  1134. switch ($mode) {
  1135. case 'new':// 新規登録
  1136. if ($_DATABOX_CONF['allow_data_insert']
  1137. OR SEC_hasRights('databox.submit')){
  1138. $information['pagetitle']=$LANG_DATABOX_ADMIN['piname'].$LANG_DATABOX_ADMIN['new'];
  1139. $display .= fncNew($template);
  1140. break;
  1141. }
  1142. case 'newedit':// 新規登録
  1143. $fieldset_id=COM_applyFilter ($_POST['fieldset'],true);
  1144. case 'newedit_type':// 新規登録
  1145. if ($_DATABOX_CONF['allow_data_insert']
  1146. OR SEC_hasRights('databox.submit')){
  1147. $information['pagetitle']=$LANG_DATABOX_ADMIN['piname'].$LANG_DATABOX_ADMIN['new'];
  1148. $display .= fncEdit("", $edt_flg,$msg,"","new",$fieldset_id,$template);
  1149. break;
  1150. }
  1151. case 'save':// 保存
  1152. $retval= fncSave ($edt_flg ,$navbarMenu ,$menuno,$template);
  1153. $information['pagetitle']=$retval['title'];
  1154. $display.=$retval['display'];
  1155. break;
  1156. case 'delete':// 削除
  1157. $display .= fncdelete($template);
  1158. break;
  1159. case 'copy'://コピー
  1160. if ($_DATABOX_CONF['allow_data_insert']
  1161. OR SEC_hasRights('databox.submit')){
  1162. }else{
  1163. $id="";
  1164. $display.=$rt;
  1165. }
  1166. case 'edit':// 編集
  1167. if ($id<>"" ) {
  1168. $information['pagetitle']=$LANG_DATABOX_ADMIN['piname'].$LANG_DATABOX_ADMIN['edit'];
  1169. $rt=databox_chk_loaddata($id);
  1170. if ($rt==="OK"){
  1171. $display .= fncEdit($id, $edt_flg,$msg,"",$mode,$fieldset_id,$template);
  1172. }else{
  1173. $display.=$rt;
  1174. }
  1175. }
  1176. break;
  1177. default:// 初期表示、一覧表示
  1178. $information['pagetitle']=$LANG_DATABOX_ADMIN['piname'];
  1179. if (isset ($msg)) {
  1180. $display .= COM_showMessage ($msg,'databox');
  1181. }
  1182. $display .= fncList($template);
  1183. }
  1184. $display =COM_startBlock($LANG_DATABOX_ADMIN['piname'],''
  1185. ,COM_getBlockTemplate('_admin_block', 'header'))
  1186. .ppNavbarjp($navbarMenu,$LANG_DATABOX_admin_menu[$menuno])
  1187. .fncMenu($pi_name)
  1188. .$display
  1189. .COM_endBlock(COM_getBlockTemplate('_admin_block', 'footer'));
  1190. $display=DATABOX_displaypage($pi_name,'_admin',$display,$information);
  1191. COM_output($display);
  1192. ?>