/databox/lib/databox_functions.inc
PHP | 6042 lines | 4490 code | 704 blank | 848 comment | 503 complexity | d1c88d862136135df058d0f9d1a966d4 MD5 | raw file
Possible License(s): AGPL-1.0
Large files files are truncated, but you can click here to view the full file
- <?php
- /* Reminder: always indent with 4 spaces (no tabs). */
- // +---------------------------------------------------------------------------+
- // | DataBox プラグイン function.inc からrequire
- // | Box シリーズ共通
- // +---------------------------------------------------------------------------+
- // $Id: plugins/databox/lib/databox_functions.inc
- //20100818 tsuchitani AT ivywe DOT co DOT jp http://www.ivywe.co.jp/
- if (strpos ($_SERVER['PHP_SELF'], 'databox_functions.inc') !== false) {
- die ('This file can not be used on its own.');
- }
- //==============================================================================
- function DATABOX_nl2br (
- $text
- )
- // +---------------------------------------------------------------------------+
- // | 機能 改行をBRに変換
- // | 書式 DATABOX_nl2br ($text)
- // +---------------------------------------------------------------------------+
- // | 引数 $text:文字列
- // +---------------------------------------------------------------------------+
- // | 戻値 nomal:改行をBRに変換後の文字列
- // +---------------------------------------------------------------------------+
- // copy20100803 from "hiroron - 改行をBRに変換"
- {
- return PLG_replacetags ( str_replace(array("\r\n","\r","\n"), '<br'.XHTML.'>', $text) );
- }
- function DATABOX_autolink (
- $text
- )
- // +---------------------------------------------------------------------------+
- // | 機能 urlをリンク変換
- // | 書式 DATABOX_autolink($text)
- // +---------------------------------------------------------------------------+
- // | 引数 $text :文字列 |
- // +---------------------------------------------------------------------------+
- // | 戻値 nomal:urlをリンク変換後の文字列 |
- // +---------------------------------------------------------------------------+
- // copy20100803 from "hiroron - 自動リンクを
- {
- $patterns = array("/(https?|ftp)(:\/\/[[:alnum:]\+\$\;\?\.%,!#~*\/:@&=_-]+)/i");
- $replacements = array("<a href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>");
- return preg_replace($patterns, $replacements, $text);
- }
- function DATABOX_codetoid(
- $code
- ,$table
- ,$idname = "id"
- ,$codename = "code"
- )
- // +---------------------------------------------------------------------------+
- // | 機能 コードをidに変換
- // | 書式 DATABOX_codetoid($code,'DATABOX_base')
- // | 書式 DATABOX_codetoid($code,'users',"uid","username")
- // +---------------------------------------------------------------------------+
- // | 引数 $code:コード
- // | 引数 $table
- // | 引数 $idname
- // | 引数 $codename
- // +---------------------------------------------------------------------------+
- // | 戻値 nomal:id
- // +---------------------------------------------------------------------------+
- //update20101125
- {
- global $_TABLES;
- $retval=DB_getItem( $_TABLES[$table] ,$idname,$codename."='{$code}'");
- if (empty($retval)){
- $retval=0;
- }
- return $retval;
- }
- function DATABOX_swichlang(
- $code
- )
- // +---------------------------------------------------------------------------+
- // | 機能 コード多言語対応変換
- // | 書式 DATABOX_swichlang($code)
- // | xxxx_(言語id) 多言語モードの時に必要があれば言語idを現在の言語idに変換
- // +---------------------------------------------------------------------------+
- // | 引数 $code:コード
- // +---------------------------------------------------------------------------+
- // | 戻値 nomal:変換後のコード
- // +---------------------------------------------------------------------------+
- {
-
- global $_CONF;
- $newlanguageid = COM_getLanguageId();
- if ($newlanguageid<>""){
- if ($code<>""){
- $lang_len = strlen($newlanguageid);
- $oldlanguageid=substr($code,-($lang_len));
- if (array_key_exists($oldlanguageid, $_CONF['language_files'])){
- $code = substr_replace($code, $newlanguageid, -$lang_len);
- }
- }
- }
- return $code;
- }
- function DATABOX_templatePath (
- $kind = 'data'
- ,$template ='default'
- ,$pi_name= 'databox'
- )
- // +---------------------------------------------------------------------------+
- // | 機能 テンプレートフォルダパスを取得
- // | 書式 DATABOX_templatePath('data','default','databox')
- // | 書式 DATABOX_templatePath($kind,$template,$pi_name)
- // +---------------------------------------------------------------------------+
- // | 引数 $kind:'data' 'category' ''newlist' 'admin'
- // | 引数 $template: 'default'
- // | 引数 $pi_name: 'databox' 'userbox' 'formbox'
- // +---------------------------------------------------------------------------+
- // | 戻値 :テンプレートフォルダパス
- // +---------------------------------------------------------------------------+
- // 20101115
- {
- global $_CONF;
- if (is_null($template) OR ($template==="")){
- $template="default";
- }
- $box_conf="_".strtoupper($pi_name)."_CONF";
- global $$box_conf;
- $box_conf=$$box_conf;
- if ($kind==="admin"){
- $conf_templates=$box_conf["templates_admin"];
- }else{
- $conf_templates=$box_conf["templates"];
- }
- //"standard";//標準テンプレートを使用する
- //"custom";//カスタムテンプレートを使用する
- //"theme";//テーマテンプレートを使用する
- if ($conf_templates==="theme"){
- $tmplfld=$_CONF['path_layout'] .$box_conf['themespath'].$kind;
- if ($kind<>"admin"){
- $tmplfld.="/".$template;
- }
- if (is_dir($tmplfld)) {
- }else{
- COM_handle404();
- exit;
- }
- }else if ($conf_templates==="custom"){
- $tmplfld=$_CONF['path'] .'plugins/'.$pi_name.'/custom/templates/'.$kind;
- if ($kind<>"admin"){
- $tmplfld.="/".$template;
- }
- if (is_dir($tmplfld)){
- }else{
- COM_handle404();
- exit;
- }
- }else{
- $tmplfld=$_CONF['path'] .'plugins/'.$pi_name.'/templates/'.$kind;
- if ($kind<>"admin"){
- $tmplfld.="/default";
- }
- }
- return $tmplfld;
- }
- function DATABOX_siteHeader (
- $pi_name= 'databox'
- ,$kind = ''
- ,$page_title = ''
- ,$headercode = ''
- )
- // +---------------------------------------------------------------------------+
- // | 機能 ヘッダを編集
- // | 書式 DATABOX_siteHeader($pi_name,'_admin',$page_title,$headercode)
- // | 書式 DATABOX_siteHeader($pi_name,'_admin',$page_title)
- // +---------------------------------------------------------------------------+
- // | 引数 $pi_name: 'databox' 'userbox' 'formbox'
- // | 引数 $kind:'' '_admin'
- // | 引数 $pagetitle:
- // | 引数 $headercode:
- // +---------------------------------------------------------------------------+
- // | 戻値 :ヘッダ
- // +---------------------------------------------------------------------------+
- // 20120910
- {
- global $_CONF;
- $box_conf="_".strtoupper($pi_name)."_CONF";
- global $$box_conf;
- $box_conf=$$box_conf;
- $display="";
-
- if ($kind=="_admin" OR $kind==""){
- $layout=$box_conf['layout'.$kind];
- }else{
- $layout=$kind;
- }
- switch ($layout) {
- // ヘッダ・フッタ・左ブロックあり(右ブロックはテーマ設定による)
- case 'standard':
- //ヘッダ・フッタ・左右ブロックあり
- case 'leftrightblocks':
- //ヘッダ・フッタ・左ブロックあり(右ブロックなし)
- case 'leftblocks':
- $display=COM_siteHeader ('menu', $page_title,$headercode);
- break;
- //ヘッダ・フッタ・右ブロックあり(左ブロックなし)
- case 'rightblocks':
- //ヘッダ・フッタあり(ブロックなし)
- case 'noblocks':
- $display=COM_siteHeader ('none', $page_title,$headercode);
- break;
- //全画面表示(ヘッダ・フッタ・ブロックなし)
- case 'blankpage':
- break;
- default:
- }
- return $display;
- }
- function DATABOX_siteFooter (
- $pi_name= 'databox'
- ,$kind = ''
- ,$custom=''
- )
- // +---------------------------------------------------------------------------+
- // | 機能 フッタを編集
- // | 書式 DATABOX_siteFooter($pi_name,'_admin',$custom)
- // | 書式 DATABOX_siteFooter($pi_name)
- // +---------------------------------------------------------------------------+
- // | 引数 $pi_name: 'databox' 'userbox' 'formbox'
- // | 引数 $kind:'' '_admin'
- // | 引数 $custom:
- // +---------------------------------------------------------------------------+
- // | 戻値 : フッタ
- // +---------------------------------------------------------------------------+
- // 20110119
- {
- global $_CONF;
- if (is_null($pi_name)){
- $pi_name="databox";
- }
- $box_conf="_".strtoupper($pi_name)."_CONF";
- global $$box_conf;
- $box_conf=$$box_conf;
- $display="";
- $layout=$box_conf['layout'.$kind];
- switch ($layout) {
- // ヘッダ・フッタ・左ブロックあり(右ブロックはテーマ設定による)
- case 'standard':
- $display .= COM_siteFooter(false,$custom);
- break;
- //ヘッダ・フッタ・左右ブロックあり
- case 'leftrightblocks':
- //ヘッダ・フッタ・右ブロックあり(左ブロックなし)
- case 'rightblocks':
- $display .= COM_siteFooter(true,$custom);
- break;
- //ヘッダ・フッタ・左ブロックあり(右ブロックなし)
- case 'leftblocks':
- //ヘッダ・フッタあり(ブロックなし)
- // 右ブロックを常時表示する設定であっても右ブロックを表示させない
- case 'noblocks':
- $_CONF['show_right_blocks']=0;
- $_CONF['left_blocks_in_footer']=0;
- $display .= COM_siteFooter(false,$custom);
- break;
- //全画面表示(ヘッダ・フッタ・ブロックなし)
- case 'blankpage':
- break;
- default:
- }
- return $display;
- }
- //$retval = SP_returnStaticpage($page, $display_mode, $comment_order, $comment_mode, $comment_page, $msg, $query);
- function DATABOX_displaypage (
- $pi_name= 'databox'
- ,$kind = ''
- ,$display = ''
- ,$information = ''
- )
- //$information
- // 'what' 'none' no left blocks are returned
- // 'menu' (default) right blocks are returned
- // 'pagetitle' Optional content for the page's <title>
- // 'breadcrumbs' Optional content for the page's <title>
- // 'headercode' Optional code to go into the page's <head>
- // 'rightblock' 右ブロックを表示するかどうか default is no (-1)
- // 'custom' An array defining custom function to be used to
- {
- global $_CONF;
- $box_conf="_".strtoupper($pi_name)."_CONF";
- global $$box_conf;
- $box_conf=$$box_conf;
- if ($kind=="_admin" OR $kind==""){
- $layout=$box_conf['layout'.$kind];
- }else{
- $layout=$kind;
- }
-
- //全画面表示(ヘッダ・フッタ・ブロックなし)
- if ($layout=='blankpage'){
-
- }else{
- switch ($layout) {
- // ヘッダ・フッタ・左ブロックあり(右ブロックはテーマ設定による)
- case 'standard':
- //$display=COM_siteHeader ('menu', $page_title,$headercode);
- //$display .= COM_siteFooter(false,$custom);
- $information['what']='menu';
- $information['rightblock']=false;
- break;
- //ヘッダ・フッタ・左右ブロックあり
- case 'leftrightblocks':
- //$display=COM_siteHeader ('menu', $page_title,$headercode);
- //$display .= COM_siteFooter(true,$custom);
- $information['what']='menu';
- $information['rightblock']=true;
- break;
- //ヘッダ・フッタ・左ブロックあり(右ブロックなし)
- case 'leftblocks':
- //$display=COM_siteHeader ('menu', $page_title,$headercode);
- $information['what']='menu';
- $_CONF['show_right_blocks']=0;
- $_CONF['left_blocks_in_footer']=0;
- //$display .= COM_siteFooter(false,$custom);
- $information['rightblock']=false;
- break;
- //ヘッダ・フッタ・右ブロックあり(左ブロックなし)
- case 'rightblocks':
- //$display=COM_siteHeader ('none', $page_title,$headercode);
- $information['what']='none';
- //$display .= COM_siteFooter(true,$custom);
- $information['rightblock']=true;
- break;
- //ヘッダ・フッタあり(ブロックなし)
- case 'noblocks':
- //$display=COM_siteHeader ('none', $page_title,$headercode);
- $information['what']='none';
- $_CONF['show_right_blocks']=0;
- $_CONF['left_blocks_in_footer']=0;
- //$display .= COM_siteFooter(false,$custom);
- $information['rightblock']=false;
- break;
- }
-
- //FOR GL2.0.0
- if (COM_versionCompare(VERSION, "2.0.0", '>=')){
- $display = COM_createHTMLDocument($display,$information);
- }else{
- $display = COM_siteHeader ($information['what'], $information['pagetitle']).$display;
- $display .= COM_siteFooter($information['rightblock']);
- }
- }
- return $display;
- }
- function DATABOX_getcheckList(
- $kind
- ,$selected
- ,$pi_name
- ,$group_id=""
- ,$fname=""
- )
- // +---------------------------------------------------------------------------+
- // | 機能 チェックリスト作成
- // | 書式 DATABOX_getcheckList($kind,$selected = "")
- // | 書式 $checklist=DATABOX_getcheckList ("fieldset","",$pi_name)
- // | 書式 $checklist=DATABOX_getcheckList ("categorygroup","",$pi_name,1,"ch1")
- // +---------------------------------------------------------------------------+
- // | 引数 $kind:fieldset
- // | 引数 $selected:選択値
- // | 引数 $pi_name:plugin name 'databox' 'userbox' 'formbox'
- // | 引数 $group_id マスターの時既定リスト名
- // | 引数 $fname フィールド名
- // +---------------------------------------------------------------------------+
- // | 戻値 nomal:チェックリスト
- // +---------------------------------------------------------------------------+
- //20101116
- // カテゴリ以外で使っているか確認のこと --> category は DATABOX_getcategoriesinp
- //20140624 fieldset 追加
- {
- global $_TABLES;
-
- if ($fname==""){
- $fname=$kind;
- }
- $table_def_category=$_TABLES[strtoupper($pi_name).'_def_category'];
- $table_def_group=$_TABLES[strtoupper($pi_name).'_def_group'];
- $table_mst=$_TABLES[strtoupper($pi_name).'_mst'];
- $table_def_fieldset=$_TABLES[strtoupper($pi_name).'_def_fieldset'];
- $retval = '';
- if ($kind=="categorygroup"){
- $sql = "SELECT ";
- $sql .= " m1.category_id".LB;
- $sql .= ",m1.name".LB;
- $sql .= ",m1.orderno".LB;
- $sql .= ",m2.group_id".LB;
- $sql .= ",m2.name AS group_name".LB;
- $sql .= " FROM {$table_def_category} AS m1".LB;
- $sql .= " , {$table_def_group} AS m2".LB;
- $sql .= " WHERE ".LB;
- $sql .= " m1.allow_display<2 ".LB;
- $sql .= " AND m1.categorygroup_id =".$group_id.LB;
- $sql .= " AND m2.group_id = m1.categorygroup_id".LB;
- $sql .= " ORDER BY m1.orderno".LB;
- }else if ($kind=="fieldset"){
- $sql = "SELECT ";
- $sql .= " fieldset_id".LB;
- $sql .= ",name".LB;
- $sql .= ",'1' AS group_id".LB;
- $sql .= " FROM {$table_def_fieldset} ".LB;
- $sql .= " ORDER BY fieldset_id".LB;
- }else{
- $sql = "SELECT ".LB;
- $sql .= " no".LB;
- $sql .= ",value".LB;
- $sql .= ",orderno".LB;
- $sql .= ",'1' AS group_id".LB;
- $sql .= " FROM {$table_mst}".LB;
- $sql .= " WHERE kind='{$kind}'".LB;
- $sql .= " ORDER BY orderno".LB;
- }
- $result = DB_query( $sql );
- $nrows = DB_numRows( $result );
- if (is_array($selected)){
- $S = $selected;
- }else{
- if( !empty( $selected )) {
- $S = explode( ' ', $selected );
- }else {
- $S = array();
- }
- }
- $old_group_id="";
- for( $i = 0; $i < $nrows; $i++ ) {
- $A = DB_fetchArray( $result, true );
- $retval .= '<span style="white-space:nowrap">';
- $retval .= '<input type="checkbox" name="' . $fname . '[]" value="' . $A[0] ;
- $retval .= '"';
- for( $x = 0; $x < sizeof( $S ); $x++ ) {
- if( $A[0] == $S[$x] ) {
- $retval .= ' checked="checked"';
- }
- }
- $retval .= '>' . stripslashes( $A[1] ) . '</span>' . LB;
- }
- return $retval;
- }
- function DATABOX_getdatas(
- $fld
- ,$tbl
- ,$where
- )
- // +---------------------------------------------------------------------------+
- // | 機能 複数データ読込 |
- // | 書式 DATABOX_getdatas($fld,$tbl,$where) |
- // | $rt=DATABOX_getdatas( |
- // | "category_id",$_TABLES['DATABOX_category'],"id=$id"); |
- // +---------------------------------------------------------------------------+
- // | 引数 $fld:項目
- // | 引数 $tbl:テーブル
- // | 引数 $where:条件式
- // +---------------------------------------------------------------------------+
- // | 戻値 nomal:複数データリスト
- // +---------------------------------------------------------------------------+
- //update20100420
- {
- $sql="SELECT {$fld} FROM {$tbl} WHERE {$where}";
- $result = DB_query ($sql);
- $numrows = DB_numRows ($result);
- $selected="";
- for ($i = 0; $i < $numrows; $i++) {
- $A = DB_fetchArray ($result);
- $selected.= $A[$fld]." ";
- }
- $selcted=rtrim($selected," ");
- return $selected;
- }
- function DATABOX_savedatas(
- $fld
- ,$tbl
- ,$id
- ,$fldary=""
- )
- // +---------------------------------------------------------------------------+
- // | 機能 複数データ書込
- // | 書式 DATABOX_savedatas($fld,$tbl,$id,$fldary)
- // +---------------------------------------------------------------------------+
- // | 引数 $fld:項目
- // | 引数 $tbl:テーブル
- // | 引数 $id:
- // | 引数 $fldary:データ配列
- // +---------------------------------------------------------------------------+
- // | 戻値 nomal:
- // +---------------------------------------------------------------------------+
- //update20100420
- {
- global $_TABLES;
- $rt=DB_delete($tbl,"id",$id);
- if (is_array($fldary)){
- for ($i = 1; $i <= count($fldary); $i++) {
- $val=current($fldary);
- $sql="INSERT INTO {$tbl} (";
- $sql.="id, {$fld}";
- $sql.=") VALUES (";
- $sql.="{$id}, {$val}";
- $sql.=")";
- DB_query($sql);
- next($fldary);
- }
- }
- return ;
- }
- function DATABOX_savecategorydatas(
- $id
- ,$fldary
- ,$pi_name=""
- ,$mydata=""
- )
- // +---------------------------------------------------------------------------+
- // | 機能 複数データ書込(カテゴリ)
- // | 書式 DATABOX_savecategorydatas($id,$category,'databox','mydata')
- // +---------------------------------------------------------------------------+
- // | 引数 $id:
- // | 引数 $fldary:データ配列
- // | 引数 $pi_name: 'databox' 'userbox' 'formbox'
- // +---------------------------------------------------------------------------+
- // | 戻値 nomal: |
- // +---------------------------------------------------------------------------+
- //update20100824
- {
- global $_TABLES;
- if ($pi_name==""){
- $table_def_category=$_TABLES['DATABOX_def_category'];
- $table_category=$_TABLES['DATABOX_category'];
- }else{
- $table_def_category=$_TABLES[strtoupper($pi_name).'_def_category'];
- $table_category=$_TABLES[strtoupper($pi_name).'_category'];
- }
-
- if ($mydata==""){
- $rt=DB_delete($table_category,"id",$id);
- }else{
- $categories=COM_applyFilter($_POST['categories']);
- if ($categories=="" ){
- }else{
- $categories=str_replace("|", ',', $categories);
- $sql="DELETE FROM {$table_category} WHERE ";
- $sql .=" id = ".$id ;
- $sql .=" AND category_id IN (".$categories.")";
- DB_query($sql);
- }
- }
-
- if (is_array($fldary)){
- for ($i = 1; $i <= count($fldary); $i++) {
- $val=current($fldary);
- $sql="INSERT INTO {$table_category} (".LB;
- $sql.="id, category_id".LB;
- $sql.=") VALUES (".LB;
- $sql.="{$id}, {$val}".LB;
- $sql.=")".LB;
- DB_query($sql);
- /////parent_id が0になるまでinsert
- $parent_id=DB_getItem( $table_def_category ,"parent_id","category_id={$val}");
- while ($parent_id<>0) {
- $category_id=$parent_id;
- $seq=DB_getItem( $table_category ,"seq","id={$id} AND category_id={$category_id} ");
- if (is_null($seq)) {
- $sql="INSERT INTO {$table_category} (".LB;
- $sql.="id, category_id".LB;
- $sql.=") VALUES (".LB;
- $sql.="{$id}, {$category_id}".LB;
- $sql.=")".LB;
- DB_query($sql);
- }
- $parent_id=DB_getItem( $table_def_category ,"parent_id","category_id={$category_id}");
- }
- /////
- next($fldary);
- }
- }
- return ;
- }
- //==============================================================================
- function DATABOX_chkuser(
- $group_id
- ,$owner_id
- ,$adminrights="databox.admin"
- )
- // +---------------------------------------------------------------------------+
- // | 機能 ユーザチェック
- // | 書式 $chk_user=DATABOX_chkuser($group_id,$owner_id,"databox.admin")
- // +---------------------------------------------------------------------------+
- // | 引数 $group_id
- // | 引数 $owner_id
- // | 引数 $adminrights databox.admin
- // +---------------------------------------------------------------------------+
- // | 戻値
- // | 0 guest
- // | 10 guest and allusers
- // | 1000 user
- // | 1010 group (owner 含む)
- // | 1011 owner
- // | 1100 admin
- // | 1110 group and admin
- // | 1101 owner and admin
- // | 1111 group owner and admin
- // +---------------------------------------------------------------------------+
- //update20101004 group_id
- {
- global $_USER;
- $chk_user=0;
- if (isset($_USER['uid']) && $_USER['uid'] > 1) {
- $chk_user=1000;//ログインユーザ
- }
- if ( SEC_hasRights($adminrights)) {
- $chk_user=$chk_user+100;//admin
- }
- //group に属している人
- $usergroups=SEC_getUserGroups();
- if ( in_array($group_id, $usergroups)){
- $chk_user=$chk_user+10;//group
- }
- if ($owner_id===$_USER['uid']){
- $chk_user=$chk_user+1;//owner
- }
- return $chk_user;
- }
- function DATABOX_getadditiondef(
- $pi_name=""
- )
- // +---------------------------------------------------------------------------+
- // | 機能 追加項目定義読込
- // | 書式 DATABOX_getadditiondef($pi_name)
- // +---------------------------------------------------------------------------+
- // | 引数 $pi_name: 'databox' 'userbox' 'formbox'
- // +---------------------------------------------------------------------------+
- // | 戻値 nomal:追加項目定義
- // +---------------------------------------------------------------------------+
- {
- global $_TABLES;
- global $_CONF;
-
- if ($pi_name==""){
- $table=$_TABLES['DATABOX_def_field'];
- $table2=$_TABLES['DATABOX_mst'];
- }else{
- $table=$_TABLES[strtoupper($pi_name).'_def_field'];
- $table2=$_TABLES[strtoupper($pi_name).'_mst'];
- }
- $rt=array();
- $fieldgroupno_old="";
-
- $sql="SELECT ";
- $sql.= " field_id ";
- $sql.= ",name ";
- $sql.= ",description";
- $sql.= ",type";
- //$sql.= ",fieldgroup_id AS group_id";
- $sql.= ",selection";
- $sql.= ",selectlist";
- $sql.= ",checkrequried";
- $sql.= ",size";
- $sql.= ",maxlength";
- $sql.= ",rows";
- $sql.= ",br";
- $sql.= ",templatesetvar";
- $sql.= ",allow_display";
- $sql.= ",allow_edit";
- $sql.= ",textcheck";
- $sql.= ",textconv";
- $sql.= ",searchtarget";
-
- $sql.= ",initial_value";
- $sql.= ",range_start";
- $sql.= ",range_end";
- $sql.= ",dfid";
- $sql.= ",description2";
- $sql.= ",fieldgroupno";
-
- $sql.=" FROM";
- $sql.=" {$table} AS m";
- $sql.= " ORDER BY orderno,field_id";
- $result = DB_query ($sql);
- $numrows = DB_numRows ($result);
- for ($i = 1; $i <= $numrows; $i++) {
- $A = DB_fetchArray ($result);
- $field_id = COM_stripslashes($A['field_id']);
- $rt[$field_id]['name'] = COM_stripslashes($A['name']);
- $rt[$field_id]['checkrequried'] = COM_stripslashes($A['checkrequried']);
- $rt[$field_id]['description'] = COM_stripslashes($A['description']);
- $rt[$field_id]['allow_display'] = COM_stripslashes($A['allow_display']);
- $rt[$field_id]['allow_edit'] = COM_stripslashes($A['allow_edit']);
- $rt[$field_id]['textcheck'] = COM_stripslashes($A['textcheck']);
- $rt[$field_id]['textconv'] = COM_stripslashes($A['textconv']);
- $rt[$field_id]['searchtarget'] = COM_stripslashes($A['searchtarget']);
-
- $rt[$field_id]['type'] = COM_stripslashes($A['type']);
- //$rt[$field_id]['group_id'] = COM_stripslashes($A['group_id']);
- $rt[$field_id]['selection'] = COM_stripslashes($A['selection']);
- $rt[$field_id]['size'] = COM_stripslashes($A['size']);
- if ($rt[$field_id]['size']==0){
- $rt[$field_id]['size']=60;
- }
- $rt[$field_id]['maxlength'] = COM_stripslashes($A['maxlength']);
- if ($rt[$field_id]['maxlength']==0){
- $rt[$field_id]['maxlength']=160;
- }
- $rt[$field_id]['rows'] = COM_stripslashes($A['rows']);
- if ($rt[$field_id]['rows']==0){
- $rt[$field_id]['rows']=2;
- }
- $rt[$field_id]['br'] = COM_stripslashes($A['br']);
- $rt[$field_id]['selectlist'] = COM_stripslashes($A['selectlist']);
- $rt[$field_id]['templatesetvar'] = COM_stripslashes($A['templatesetvar']);
- $selection= COM_stripslashes($A['selection']);
- $rt[$field_id]['selectionary']=DATABOX_getselectionary($selection);
- $rt[$field_id]['initial_value']= COM_stripslashes($A['initial_value']);
- $rt[$field_id]['range_start']= COM_stripslashes($A['range_start']);
- $rt[$field_id]['range_end']= COM_stripslashes($A['range_end']);
- $dfid= COM_stripslashes($A['dfid']);
- $format = DB_getItem($_TABLES['dateformats'], "format", "dfid = $dfid");
- if( empty( $format )) {
- $rt[$field_id]['format'] = $_CONF['date'];
- }else{
- $rt[$field_id]['format'] = $format;
- }
- $rt[$field_id]['description2']= COM_stripslashes($A['description2']);
- $fieldgroupno=COM_stripslashes($A['fieldgroupno']);
- if ($fieldgroupno_old==$fieldgroupno){
- }else{
- $fieldgroup_name=DB_getItem($table2,"value","kind='fieldgroup' AND no=".$fieldgroupno);
- $fieldgroupno_old=$fieldgroupno;
- }
- $rt[$field_id]['fieldgroup_name']=$fieldgroup_name;
- $rt[$field_id]['fieldgroupno']= $fieldgroupno;
- }
- return $rt;
- }
- function DATABOX_getselectionary(
- $selection
- )
- {
- $selectionary=array();
- $ary=array();
- $ary=split("\r" , $selection);
- $j=0;
- for ($ii = 0; $ii < count($ary); $ii++) {
- if ($ary[$ii]<>""){
- $selectionary[$j]=$ary[$ii];
- $j=$j+1;
- }
- }
- return $selectionary;
- }
- // +---------------------------------------------------------------------------+
- // | 機能 検索用引数作成
- // | 書式 DATABOX_getadditionsearchdef($pi_name)
- // +---------------------------------------------------------------------------+
- // | 引数 $pi_name: 'databox' 'userbox' 'formbox'
- // +---------------------------------------------------------------------------+
- // | 戻値 配列
- // | $rt["sql1"]: ",{$_TABLES['DATABOX_addition']} AS ad1"
- // | $rt["sql2"]: " AND t1.id=ad1.id AND ad1.field_id=1 "
- // | $rt["columns"][]: 'ad1.value '
- // +---------------------------------------------------------------------------+
- function DATABOX_getadditionsearchdef(
- $pi_name=""
- )
- {
- global $_TABLES;
-
- $box_conf="_".strtoupper($pi_name)."_CONF";
- global $$box_conf;
- $box_conf=$$box_conf;
- $table_def_field=$_TABLES[strtoupper($pi_name).'_def_field'];
- $table_addition=$_TABLES[strtoupper($pi_name).'_addition'];
-
- if ($box_conf['additionsearch']==0){
- return;
- }
- $lmt=$box_conf['additionsearch'];
-
- $retval=array();
- $rt=array();
- $sql3="";
- $columns=array();
- $sql=LB;
- $sql.="SELECT ";
- $sql.= " field_id ";
-
- $sql.=" FROM";
- $sql.=" {$table_def_field} AS m";
- // 表示する項目のみ
- $sql.=" WHERE";
- $sql.=" allow_display='0'";
- //0: 一行テキストフィールド
- //1: 複数行テキストフィールド
- //20:HTML 10:TinyMCE 19:CKEditor
- //15:数値 21:通貨
- $sql.=" AND type IN (0,1,10,19,20,15,21)";
-
- //検索対象にする=はい
- $sql.=" AND searchtarget='1'";
-
- $sql.=" ORDER BY orderno,field_id";
- $sql.=" LIMIT 0 ,".$lmt;
- $result = DB_query ($sql);
- $numrows = DB_numRows ($result);
- for ($i = 1; $i <= $numrows; $i++) {
- $A = DB_fetchArray ($result);
- $field_id = COM_stripslashes($A['field_id']);
- $type = COM_stripslashes($A['type']);
- $selection= COM_stripslashes($A['selection']);
- $selectionary=DATABOX_getselectionary($selection);
- $columns[]= "ad{$field_id}.value ";
- $sql3 .= " JOIN {$table_addition} AS ad{$field_id}";
- $sql3 .= " ON t1.id=ad{$field_id}.id ";
- $sql3 .= " AND ad{$field_id}.field_id={$field_id} ".LB;
-
- }
- $rt["sql3"]=$sql3;
- $rt["columns"]=$columns;
-
- return $rt;
- }
- function DATABOX_getadditiondatas(
- $id
- ,$pi_name=""
- )
- // +---------------------------------------------------------------------------+
- // | 機能 追加項目読込
- // | 書式 DATABOX_getadditiondatas($id)
- // | $array=DATABOX_getaddtuindatas($id);
- // +---------------------------------------------------------------------------+
- // | 引数 $id:
- // | 引数 $pi_name:plugin name 'databox' 'userbox' 'formbox'
- // +---------------------------------------------------------------------------+
- // | 戻値 nomal:追加項目リスト |
- // +---------------------------------------------------------------------------+
- {
- global $_TABLES;
- if ($pi_name==""){
- $table_addition=$_TABLES['DATABOX_addition'];
- $table_def_field=$_TABLES['DATABOX_def_field'];
- }else{
- $table_addition=$_TABLES[strtoupper($pi_name).'_addition'];
- $table_def_field=$_TABLES[strtoupper($pi_name).'_def_field'];
- }
- $rt=array();
-
- $sql="SELECT ";
- $sql.=" m.field_id";
- $sql.=" ,m.fieldgroupno";
- if ($id==0){
- $sql.=",initial_value AS value ";
- }else{
- $sql.=", ( SELECT VALUE ";
- $sql.=" FROM";
- $sql.=" {$table_addition} AS t";
- $sql.=" where";
- $sql.=" t.id={$id}";
- $sql.=" AND t.field_id=m.field_id";
- $sql.=" ) AS value ";
- }
- $sql.=" FROM";
- $sql.=" {$table_def_field} AS m";
- $sql.=" order by m.fieldgroupno,m.orderno ,m.field_id";
-
- $result = DB_query ($sql);
- $numrows = DB_numRows ($result);
- for ($i = 1; $i <= $numrows; $i++) {
- $A = DB_fetchArray ($result);
- $field_id=$A['field_id'];
- $value=$A['value'];
- $rt[$field_id]=COM_stripslashes($value);
- }
- return $rt;
- }
- function DATABOX_getaddtionfieldsEdit(
- $fields
- ,$addition_def
- ,$templates
- ,$chk_user
- ,$pi_name=""
- ,$fields_fnm=""
- ,$fields_del=""
- ,$fieldset_id=0
- ,$fields_date=""
- )
- // +---------------------------------------------------------------------------+
- // | 機能 追加項目入力用HTML作成
- // | 書式 DATABOX_getaddtionfieldsEdit
- // ($additionfields,$addition_def,$templates,$chk_user)
- // +---------------------------------------------------------------------------+
- // | 引数 $fields:
- // | 引数 $addition_def:
- // | 引数 $templates:
- // | 引数 $chk_user:
- // | 引数 $pi_name:plugin name 'databox' 'userbox' 'formbox'
- // | 引数 $fields_fnm:
- // | 引数 $fields_del:
- // | 引数 $fieldset_id:
- // +---------------------------------------------------------------------------+
- // | 戻値 nomal:追加項目入力用HTML |
- // +---------------------------------------------------------------------------+
- // 20101206 日付
- {
- global $_TABLES;
- global $_SCRIPTS;
- global $_CONF;
- global $MESSAGE;
-
- if ($pi_name==""){
- $pi_name="databox";
- }
- $lang_admin_x="LANG_".strtoupper($pi_name)."_ADMIN";
- $lang_admin="LANG_".strtoupper($pi_name)."_ADMIN";
- $lang_noyes="LANG_".strtoupper($pi_name)."_NOYES";
- $table_def_field=$_TABLES[strtoupper($pi_name).'_def_field'];
- $box_conf="_".strtoupper($pi_name)."_CONF";
- global $$box_conf;
- $box_conf=$$box_conf;
- global $$lang_admin;
- global $$lang_noyes;
- $lang_admin=$$lang_admin;
- $lang_noyes=$$lang_noyes;
-
- $langCode = COM_getLangIso639Code();
- $toolTip = $MESSAGE[118];
- $imgUrl = $_CONF['site_url'] . '/images/calendar.png';
-
- $fieldsetfields=DATABOX_getfields($pi_name, $fieldset_id);
-
- $retval = '';
- if (is_array($fields)){
- $S = $fields;
- }else{
- if( !empty( $selected )) {
- $S = explode( ' ', $fields );
- }else {
- $S = array();
- }
- }
- $fieldgroup_old="";
- foreach( $S as $fid => $fvalue ){
- $name=$addition_def[$fid]['name'];
- $checkrequried=$addition_def[$fid]['checkrequried'];
- $type=$addition_def[$fid]['type'];
- $selectionary=$addition_def[$fid]['selectionary'];
- $selectlist=$addition_def[$fid]['selectlist'];
- $size=$addition_def[$fid]['size'];
- $maxlength=$addition_def[$fid]['maxlength'];
- $rows=$addition_def[$fid]['rows'];
- $br=$addition_def[$fid]['br'];
- $templatesetvar=$addition_def[$fid]['templatesetvar'];
- $description=$addition_def[$fid]['description'];
- $description2=$addition_def[$fid]['description2'];
- $fieldgroup_name=$addition_def[$fid]['fieldgroup_name'];
- $chk=false;
- $disabled="disabled";
-
- if (in_array($fid,$fieldsetfields )) {
-
- if ($chk_user===9999){
- $chk=true;
- $disabled="";
- }else{
- //編集可能
- if ($addition_def[$fid]['allow_edit']==='0') {
- $chk=true;
- $disabled="";
- //グループとadmin権のある人のみ表示
- }else if ($addition_def[$fid]['allow_edit']==='2'){
- if ($chk_user>=1010) {
- $chk=true;
- $disabled="";
- }
- //所有者とadmin権のある人のみ
- }else if ($addition_def[$fid]['allow_edit']==='3'){
- if ($chk_user>=1011) {
- $chk=true;
- $disabled="";
- }
- //編集不可表示のみ
- }else if ($addition_def[$fid]['allow_edit']==='4'){
- $chk=true;
- }
- }
- }
-
- if ($chk) {
- $fieldhtml="";
- switch ($type) {
- case 12:// 図
- $fvalue_fnm=$fields_fnm[$fid];
- $fvalue_del=$fields_del[$fid];
- $fieldhtml .=DATABOX_figurehtml12
- ($fid,$fvalue,$fvalue_del,$size,$maxlength);
- break;
- case 11:// 図
- $fvalue_fnm=$fields_fnm[$fid];
- $fvalue_del=$fields_del[$fid];
- $fieldhtml .=DATABOX_figurehtml
- ($fid,$fvalue,$fvalue_del);
- break;
- case 13:// 添付ファイル
- $fvalue_fnm=$fields_fnm[$fid];
- $fvalue_del=$fields_del[$fid];
- $fieldhtml .=DATABOX_filehtml
- ($pi_name,$fid,$fvalue,$fvalue_del);
- break;
- case 1:// 複数行テキストフィールド(HTML OK)
- case 10:// 複数行テキストフィールド(HTML NG)
- case 20:// 複数行テキストフィールド(HTML OK TinyMCE)//@@@@@
- case 19:// 複数行テキストフィールド(HTML OK CKEditor)//@@@@@
- if ($disabled===""){
- $cntname="afieldcnt".$fid;
- $fieldhtml .= "<textarea ";
- $fieldhtml .= " name=\"afield[".$fid."]\" ";
- $fieldhtml .= " style=\"width:95%\"";
- $fieldhtml .= " rows=\"".$rows."\"";
- $fieldhtml .= " id=\"DATABOX_afield".$fid."\"";
- $fieldhtml .= " ".$disabled." ";
- $fieldhtml .= " onKeyup=\"var n=".$maxlength;
- $fieldhtml .="-this.value.length;var ";
- $fieldhtml .="s=document.getElementById";
- $fieldhtml .="('".$cntname."');s.innerHTML='('+n+')';\"";
- if ($type==20){
- $fieldhtml .= " class=\"tinymce_enabled\"";
- }
- if ($type==19){
- $fieldhtml .= " class=\"wide\"";
- }
- $fieldhtml .= ">";
- $fieldhtml .= $fvalue;
- $fieldhtml .= "</textarea>";
- $fieldhtml .="<br ".XHTML."><strong>";
- $fieldhtml .="<span id='".$cntname."'></span></strong>";
- }else{
- $fieldhtml .=$fvalue;
- }
- break;
- case 2://いいえ/はい
- if ($disabled===""){
- $fieldhtml=DATABOX_getradiolist
- ($lang_noyes,"afield[".$fid."]",$fvalue,$br ,$disabled);
- }else{
- $fieldhtml= $lang_noyes[$fvalue];
- }
- break;
- case 7://オプションリスト(選択肢)
- case 14://マルチセレクトリスト(選択肢)
- if ($disabled===""){
- $fieldhtml=DATABOX_getoptionlistary($selectionary,"afield[".$fid."]",$fvalue,$pi_name, $disabled,$type,$size);
- }else{
- $selectionary[$fvalue];
- }
- break;
- case 24://チェックボックス(選択肢)
- if ($disabled===""){
- $fieldhtml=DATABOX_getcheckboxary($selectionary,"afield[".$fid."]",$fvalue,$pi_name, $disabled,$type,$size);
-
- }else{
- $selectionary[$fvalue];
- }
- break;
- case 25://チェックボックス(マスター)
- if ($disabled===""){
- $mstary=DATABOX_getAry("selectlist_mst",0,$selectlist,$pi_name);
- $fieldhtml=DATABOX_getcheckboxary($mstary,"afield[".$fid."]",$fvalue,$pi_name, $disabled,$type,$size);
- }else{
- $selectionary[$fvalue];
- }
- break;
- case 9://オプションリスト(マスター)
- if ($disabled===""){
- $fieldhtml=DATABOX_getoptionlist("selectlist_mst",$fvalue,0,$pi_name,"",0,$selectlist,"afield[".$fid."]");
- }else{
- $selectionary[$fvalue];
- }
- break;
- case 8://ラジオボタンリスト(選択肢)
- if ($disabled===""){
- $fieldhtml=DATABOX_getradiolist ($selectionary,"afield[".$fid."]",$fvalue,$br,$disabled,$type);
- }else{
- $selectionary[$fvalue];
- }
- break;
- case 16://ラジオボタンリスト(マスター)//@@@@@
- if ($disabled===""){
- $mstary=DATABOX_getAry("selectlist_mst",0,$selectlist,$pi_name);
- $fieldhtml=DATABOX_getradiolist ($mstary,"afield[".$fid."]",$fvalue,$br,$disabled,$type);
- }else{
- $selectionary[$fvalue];
- }
- break;
- case 18://マルチセレクトリスト(マスター)//@@@@@
- if ($disabled===""){
- $mstary=DATABOX_getAry("selectlist_mst",0,$selectlist,$pi_name);
- $fieldhtml=DATABOX_getoptionlistary($mstary,"afield[".$fid."]",$fvalue,$pi_name, $disabled,$type,$size);
- }else{
- $selectionary[$fvalue];
- }
- break;
- case 3://日付(date picker対応)
- if ($disabled===""){
- //$filedname="afield[".$fid."]";
- $filedname="afield".$fid;
-
- $_SCRIPTS->setJavaScript(
- "jQuery(function () {"
- . " geeklog.datepicker.set('{$filedname}', '{$langCode}', '{$toolTip}', '{$imgUrl}');"
- . "});", TRUE, TRUE
- );
- if (is_array($fields_date)){
- $fieldhtml.=DATABOX_datetimeedit_R($fields_date[$fid],$lang_admin_x,$filedname);
- }else{
- $fieldhtml.=DATABOX_datetimeedit($fvalue,$lang_admin_x,$filedname,"date");
- }
- $wk = " <input ";
- $wk .= " type=\"hidden\"";
- $wk .= " name=\"afield[".$fid."]\" ";
- $wk .= " value=\"".$fvalue."\"";
- $wk .= " ".XHTML.">";
- $fieldhtml.=$wk;
- }else{
- $fieldhtml .=$fvalue;
- }
- break;
- case 4://日時(datetime picker対応)
- if ($disabled===""){
- //$filedname="afield[".$fid."]";
- $filedname="afield".$fid;
-
- $_SCRIPTS->setJavaScript(
- "jQuery(function () {"
- . " geeklog.hour_mode = {$_CONF['hour_mode']};"
- . " geeklog.datetimepicker.set('{$filedname}', '{$langCode}', '{$toolTip}', '{$imgUrl}');"
- . "});", TRUE, TRUE
- );
-
- if (is_array($fields_date)){
- $fieldhtml.=DATABOX_datetimeedit_R($fields_date[$fid],$lang_admin_x,$filedname);
- }else{
- $fieldhtml.=DATABOX_datetimeedit($fvalue,$lang_admin_x,$filedname,"datetime");
- }
- $wk = " <input ";
- $wk .= " type=\"hidden\"";
- $wk .= " name=\"afield[".$fid."]\" ";
- $wk .= " value=\"".$fvalue."\"";
- $wk .= " ".XHTML.">";
- $fieldhtml.=$wk;
- }else{
- $fieldhtml .=$fvalue;
- }
- break;
- case 26://時刻(UI time picker対応)
- if ($disabled===""){
- $fvalue_time=DATABOX_getTimeformat($fvalue);
- $filedname="afield".$fid;
-
- $wk = " <input ";
- $wk .= " type=\"hidden\"";
- $wk .= " name=\"afield[".$fid."]\" ";
- $wk .= " value=\"".$fvalue."\"";
- $wk .= " ".XHTML.">";
- $fieldhtml.=$wk;
- $fieldhtml .= " <input ";
- $fieldhtml .= " data-uk-timepicker=\"{format:'".$_CONF['hour_mode']."h'";
- if ($addition_def[$fid]['range_start']==""){
- }else{
- $fieldhtml .= ",start:".$addition_def[$fid]['range_start'] ;
- }
- if ($addition_def[$fid]['range_end']==""){
- }else{
- $fieldhtml .= ",end:".$addition_def[$fid]['range_end'] ;
- }
- $fieldhtml .= " }\"";
- $fieldhtml .= " class=\"uk-form-width-small\"";
- $fieldhtml .= " type=\"text\"";
- $fieldhtml .= " id=\"afield".$fid."\"";
- $fieldhtml .= " size=\"".$size."\"";
- $fieldhtml .= " maxlength=\"".$maxlength."\" ";
- $fieldhtml .= " name=\"afield[".$fid."]\" ";
- $fieldhtml .= " style=\"max-width:95%\"";
- $fieldhtml .= " value=\"". $fvalue_time."\"";
- $fieldhtml .= " ".XHTML.">";
- }else{
- $fieldhtml .=$fvalue;
- }
- break;
- case 22://日付
- if ($disabled===""){
- if ($fvalue=="") {
- $fvalue_date="";
- }else{
- $fvalue_date=date( $box_conf['dateformat'], $fvalue );
- }
- $filedname="afield".$fid;
- $_SCRIPTS->setJavaScript(
- "$(function() {
- $( \"#afield".$fid."\" ).datepicker();
- });"
- , TRUE, TRUE
- );
- $wk = " <input ";
- $wk .= " type=\"hidden\"";
- $wk .= " name=\"afield[".$fid."]\" ";
- $wk .= " value=\"".$fvalue."\"";
- $wk .= " ".XHTML.">";
- $fieldhtml.=$wk;
-
- $fieldhtml .= " <input ";
- $fieldhtml .= " type=\"text\"";
- $fieldhtml .= " id=\"afield".$fid."\"";
- $fieldhtml .= " size=\"".$size."\"";
- $fieldhtml .= " maxlength=\"".$maxlength."\" ";
- $fieldhtml .= " name=\"afield[".$fid."]\" ";
- $fieldhtml .= " style=\"max-width:95%\"";
- $fieldhtml .= " value=\"".$fvalue_date."\"";
- $fieldhtml .= " ".XHTML.">";
- }else{
- $fieldhtml .=$fvalue;
- }
- break;
- case 23://日付
- if ($disabled===""){
- if ($fvalue=="") {
- $fvalue_date="";
- }else{
- $fvalue_date=date( $box_conf['dateformat'], $fvalue );
- }
- $filedname="afield".$fid;
-
- $wk = " <input ";
- $wk .= " type=\"hidden\"";
- $wk .= " name=\"afield[".$fid."]\" ";
- $wk .= " value=\"".$fvalue."\"";
- $wk .= " ".XHTML.">";
- $fieldhtml.=$wk;
- $fieldhtml .= " <input ";
- $fieldhtml .= " data-uk-datepicker=\"{format:'YYYY/MM/DD'}\"";
- $fieldhtml .= " type=\"text\"";
- $fieldhtml .= " id=\"afield".$fid."\"";
- $fieldhtml .= " size=\"".$size."\"";
- $fieldhtml .= " maxlength=\"".$maxlength."\" ";
- $fieldhtml .= " name=\"afield[".$fid."]\" ";
- $fieldhtml .= " style=\"max-width:95%\"";
- $fieldhtml .= " value=\"". $fvalue_date."\"";
- $fieldhtml .= " ".XHTML.">";
- }else{
- $fieldhtml .=$fvalue;
- }
- break;
- case 17://フ…
Large files files are truncated, but you can click here to view the full file