/databox/functions_autotag.inc
PHP | 3915 lines | 2988 code | 514 blank | 413 comment | 324 complexity | a47b1d5123c60bfba65c9f980a9bd4f9 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
- // | 自動タグおよび DataBox 専用関数
- // +---------------------------------------------------------------------------+
- // $Id: plugins/databox/functions_autotag.inc
- //20101008 tsuchitani AT ivywe DOT co DOT jp http://www.ivywe.co.jp/
- //20120416 databox_category {data_edit}
- if (strpos ($_SERVER['PHP_SELF'], 'functions_autotag.inc') !== false) {
- die ('This file can not be used on its own.');
- }
- //=====自動タグ=================================================================
- function plugin_autotags_databox (
- $op
- , $content = ''
- , $autotag = ''
- )
- // +---------------------------------------------------------------------------+
- // | 自動タグ
- // +---------------------------------------------------------------------------+
- {
- global $_TABLES;
- global $_CONF;
- global $LANG_DATABOX_autotag_desc;
- //Option Display
- if ($op == 'tagname' ) {
- $tagname[]='databox';
- return $tagname;
- } elseif ($op == 'permission' || $op == 'nopermission') {
- if ($op == 'permission') {
- $flag = true;
- } else {
- $flag = false;
- }
- if (isset($_GROUPS['DataBox Admin'])) {
- $group_id = $_GROUPS['DataBox Admin'];
- } else {
- $group_id = DB_getItem($_TABLES['groups'], 'grp_id',
- "grp_name = 'DataBox Admin'");
- }
- $owner_id = SEC_getDefaultRootUser();
- if (COM_getPermTag(
- $owner_id
- , $group_id
- , $_DATABOX_CONF['autotag_permissions_databox'][0]
- , $_DATABOX_CONF['autotag_permissions_databox'][1]
- , $_DATABOX_CONF['autotag_permissions_databox'][2]
- , $_DATABOX_CONF['autotag_permissions_databox'][3]) == $flag) {
- return $tagname;
- }
- } elseif ($op == 'description') {
- return $LANG_DATABOX_autotag_desc;
- } else if ($op == 'parse') {
- //引数チェック
- $p1 = COM_applyFilter ($autotag['parm1']);
- $p2 = COM_applyFilter ($autotag['parm2']);
- $tag = COM_applyFilter ($autotag['tag']);
- $tagstr = COM_applyFilter ($autotag['tagstr']);
-
- $parm2_ary[]="category_id";
- $parm2_ary[]="category_code";
- $parm2_ary[]="mode";
- $parm2_ary[]="rss_file";
- $parm2_ary[]="title_trim_length";
- $parm2_ary[]="intervalday";
- $parm2_ary[]="limitcnt";
- $parm2_ary[]="newmarkday";
- $parm2_ary[]="templatedir";
- $parm2_ary[]="id";
- $parm2_ary[]="code";
- $parm2_ary[]="nohitmsg";
- $parm2_ary[]="perpage";
- $parm2_ary[]="page";
- $parm2_ary[]="order";
- $parm2_ary[]="templatesetvar";
- $parm2_ary[]="value";
- $parm2_ary[]="field_id";
- $parm2_ary[]="expired";
- $parm2_ary[]="type_id";
- $parm2_ary[]="group_id";
- $parm2_ary[]="group_code";
- $parm2_ary[]="iname";
- $parm2_ary[]="without_code";
- $parm2_ary[]="without_id";
- $parm2_ary[]="field_code";
- $parm2_ary[]="option";
- $parm2_ary[]="method";
- $parm2_ary[]="roundprecision";
- $parm2_ary[]="numberformat";
- $parm2_ary[]="permission";
- $p=databox_parm2($p2,$parm2_ary);
- //各処理
- switch( $tag ) {
- case 'databox' :
- switch($p1) {
- case 'count':
- $rt= databox_count(
- $p['category_id']
- ,$p['category_code']
- ,$p['mode']
- ,$p['permission']
- ,$p['numberformat']
- );
- break;
- case 'newlist':
- if ($p['category_id']<>""){
- $m="id";
- $categories=$p['category_id'];
- }elseif ($p['category_code']<>"") {
- $m="code";
- $categories=$p['category_code'];
- }else{
- $m="ALL";
- $categories="";
- }
- $rt= databox_newlist(
- $m
- ,$categories
- ,$p['rss_file']
- ,$p['title_trim_length']
- ,$p['intervalday']
- ,$p['limitcnt']
- ,$p['newmarkday']
- ,$p['templatedir']
- ,$p['permission']
- );
- break;
- case 'data':
- $w= databox_data(
- $p['id']
- ,$p['templatedir']
- ,$p['nohitmsg']
- ,""
- ,$p['code']
- );
- $rt=$w['display'];
- break;
- case 'category':
- $rt= databox_category(
- "autotag"
- ,$p['category_id']
- ,$p['templatedir']
- ,$p['nohitmsg']
- ,$p['perpage']
- ,$p['page']
- ,$p['order']
- ,$p['category_code']
- ,$p['mode']
- ,$p['expired']
- ,$p['without_code']
- ,$p['without_id']
- );
- break;
- case 'attributedatacount':
- $rt=DATABOX_count_each_afield(
- "databox"
- ,$p['templatesetvar']
- ,$p['value']
- ,$p['type_id']
- ,$p['permission']
- ,$p['numberformat']
- );
- break;
- case 'lastmodified':
- $rt= databox_grp(
- "modified"
- ,"max"
- ,"lastmodified"
- ,$p['category_id']
- ,$p['category_code']
- );
- break;
- case 'lastcreated':
- $rt= databox_grp(
- "created"
- ,"max"
- ,"lastcreated"
- ,$p['category_id']
- ,$p['category_code']
- );
- break;
- case 'attribute':
- $rt= databox_field(
- "autotag"
- ,$p['field_id']
- ,$p['value']
- ,$p['templatedir']
- ,$p['nohitmsg']
- ,$p['perpage']
- ,$p['page']
- ,$p['order']
- ,$p['field_code']
- );
- break;
- case 'datalink':
- $rt= databox_datalink(
- $p['id']
- ,$p['code']
- ,$p['lastparm2']
- );
- break;
- case 'mydataentrylink':
- case 'mydataentry':
- $rt= databox_mydataentrylink(
- $p['type_id']
- ,$p['templatedir']
- ,$p['lastparm2']
- );
- break;
- case 'mydata':
- $rt= databox_mydata(
- $p['templatedir']
- ,$p['lastparm2']
- );
- break;
- case 'categorycount':
- $rt= DATABOX_categorycount(
- "databox"
- ,$p['group_id']
- ,$p['group_code']
- ,$p['permission']
- ,$p['numberformat']
- );
- break;
- case 'categorycheck':
- $rt= DATABOX_getcheckList(
- "categorygroup"
- ,""
- ,"databox"
- ,$p['group_id']
- ,$p['iname']
- );
- break;
- case 'mastercheck':
- if ($p['field_id']<>""){
- $kind=COM_applyFilter(
- DB_getItem($_TABLES['DATABOX_def_field']
- ,"selectlist","field_id={$p['field_id']}"));
- if ($kind<>""){
- $rt= DATABOX_getcheckList(
- $kind
- ,""
- ,"databox"
- ,""
- ,$p['iname']
- );
- }
- }
- break;
- case 'search':
- $argary=databox_searcharg("autotag",$p['lastparm2']);
- $rt=databox_search("autotag",$argary);
- break;
- case 'attributevalue':
- $rt=DATABOX_fieldvalue(
- "databox"
- ,$p['id']
- ,$p['code']
- ,$p['field_id']
- ,$p['field_code']
- ,$p['option']
- );
- break;
- case 'math':
- $rt=DATABOX_math(
- "databox"
- ,$p['method']
- ,$p['templatesetvar']
- ,$p['type_id']
- ,$p['category_id']
- ,$p['category_code']
- ,$p['mode']
- ,$p['roundprecision']
- ,$p['numberformat']
- ,$p['permission']
- );
- break;
- }
- $content = str_replace ($autotag['tagstr'], $rt, $content);
- return $content;
- break;
- }
- }
- }
- //第二引数分割
- function databox_parm2 ($p2,$parm2_ary)
- {
- $ary=array();
- $px = explode (' ', trim ($p2));
- if (is_array ($px)) {
- foreach ($px as $part) {
- $a = explode (':', $part);
- if (in_array($a[0],$parm2_ary)){
- $ary["{$a[0]}"]=$a[1];
- $skip++;
- }
- }
-
- if (count ($px) > $skip) {
- for ($i = 0; $i < $skip; $i++) {
- array_shift ($px);
- }
- $ary["lastparm2"] = trim(implode (' ', $px));
- }
- }else{
- $ary["lastparm2"]=trim($p2);
- }
-
- return $ary;
- }
- //=====ブロック関数============================================================
- // +---------------------------------------------------------------------------+
- // | 機能 ブロック用 新着data一覧出力 |
- // | 書式 phpblock_shownewdatabox() |
- // +---------------------------------------------------------------------------+
- function phpblock_shownewdatabox()
- {
- return databox_newlist();
- }
- //=====専用関数============================================================
- //
- function databox_category(
- $autotag
- ,$category_id=null
- ,$template=null
- ,$nohitmsg=""
- ,$perpage =0
- ,$page=null
- ,$order=null
- ,$category_code=null
- ,$mode=''
- ,$expired=''
- ,$without_code=''
- ,$without_id=''
- )
- // +---------------------------------------------------------------------------+
- // | 機能 カテゴリ別一覧表示
- // | 書式 databox_category($id,$template,"yes","page",$perpage)
- // | 書式 databox_category($p['category_id'],$p['thtml'],$p['nohitmsg']
- // | 書式 ,"",$p['perpage'],$p['order'],$p['code']
- // +---------------------------------------------------------------------------+
- // | 引数 $autotag:notautotagの時ヘッダを表示しない
- // | 引数 $category_id:カテゴリid
- // | 引数 $template:使用するテンプレートのフォルダ名
- // | 引数 $nohitmsg :"yes"の時nohitメッセージ表示
- // | 引数 $perpage :1pageあたりの件数、0の時改ページなし
- // | 引数 $page :
- // | 引数 $order :順序
- // | 引数 $category_code :
- // | 引数 $mode :ブランク または AND
- // +---------------------------------------------------------------------------+
- // | public_html/category.php および 自動タグで使用
- // | ヘッダはコンフィギュレーション設定により表示されない場合があります
- // | idもcodeも指定されない場合は、全カテゴリ
- // +---------------------------------------------------------------------------+
- // | 戻値 nomal:category list
- // +---------------------------------------------------------------------------+
- {
- $pi_name="databox";
-
- global $_CONF;
- global $_TABLES;
-
- global $_DATABOX_CONF;
- global $LANG_DATABOX;
- global $LANG_DATABOX_ADMIN;
- global $_IMAGE_TYPE;
- global $LANG_confignames;
- //ログイン要否チェック
- if (COM_isAnonUser()){
- if ($_CONF['loginrequired']
- OR ($_DATABOX_CONF['loginrequired'] >1) ){
- return $LANG_DATABOX['loginrequired'];
- }
- }
- //-----テーブル
- $tbl1=$_TABLES['DATABOX_category'] ;
- $tbl2=$_TABLES['DATABOX_base'] ;
- $tbl3=$_TABLES['DATABOX_addition'] ;
- //
- $tbl5=$_TABLES['DATABOX_def_category'] ;
-
- $tbl6=$_TABLES['DATABOX_stats'];
- //
- $datefield=$_DATABOX_CONF['datefield'];//使用する日付(編集日付、作成日付、公開日)
- $new_img=$_DATABOX_CONF['new_img'];
- if ($new_img==""){
- $new_img="New!";
- }
- $newmarkday=$_DATABOX_CONF['newmarkday'];
- if ($newmarkday==""){
- $newmarkday=3;
- }
- $chkday=strtotime("- $newmarkday days",time());
- //-----引数チェック
- $ids="";
- $idsary=array();
- if (is_null($category_id) OR $category_id==0){
- if (is_null($category_code)){
- }else{
- $w=explode("|",$category_code);
- foreach( $w as $val ){
- if ($ids<>""){
- $ids.=",";
- }
- $w_id=DATABOX_codetoid($val,'DATABOX_def_category',"category_id");
- $idsary[]=$w_id;
- $ids.=$w_id;
- }
- }
- }else{
- $ids=$category_id;
- $idsary[]=$category_id;
- }
-
- //--CATEGORY
- $category_name="";
- $defaulttemplatesdirectory = "";
- if (count($idsary)<>0){
-
- for ($i = 0; $i < count($idsary); $i++) {
- $sql = "SELECT ";
- $sql .= " name ".LB;
- $sql .= " ,code ".LB;
- $sql .= " ,description ".LB;
- $sql .= " ,defaulttemplatesdirectory".LB;
- $sql .= " FROM ".LB;
- $sql .= " {$tbl5} AS t5 ".LB;
- $sql .= " WHERE ".LB;
- $sql .= " t5.category_id =".$idsary[$i].LB;
-
- $result = DB_query ($sql);
- $numrows = DB_numRows ($result);
- if ($numrows > 0) {
- $A = DB_fetchArray ($result);
- $category_name.=COM_applyFilter($A['name'])." ";
- $category_description.=COM_applyFilter($A['description'])." ";
- if ($i==0){
- $defaulttemplatesdirectory=COM_applyFilter($A['defaulttemplatesdirectory']);
- }
- }
- }
- }
- if (is_null($template) or ($template==="")){
- if ($defaulttemplatesdirectory===""){
- $template="default";
- }else{
- $template=$defaulttemplatesdirectory;
- }
- }
-
- //
- if (is_null($page) OR !isset($page) OR $page == 0) {
- $page = 1;
- }
- if ($perpage===0 OR is_null($perpage)){
- $perpage=$_DATABOX_CONF['perpage'];
- }
- //
- $w=databox_orderby($datefield,$order,$orderby,$addfieldorder,$field_id);
- //
- if (is_null($expired) or ($expired==="")){
- $expired="no";
- }
- //-----
- $sql = "SELECT ";
- $sql .= " t2.id ".LB;
- $sql .= " ,t2.title ".LB;
- $sql .= " ,t2.code ".LB;
- $sql .= " ,t2.description ".LB;
- $sql .= " ,t2.released ".LB;
- $sql .= " ,t2.expired ".LB;
- $sql .= " ,t2.".$datefield." AS datefield ".LB;
- $sql .= " ,t2.fieldset_id ".LB;
- $sql .= " ,UNIX_TIMESTAMP(t2.".$datefield.") AS datefield_un ".LB;
- $sql .= " ,UNIX_TIMESTAMP(t2.released ) AS released_un ".LB;
- $sql .= " ,UNIX_TIMESTAMP(t2.expired ) AS expired_un ".LB;
- $sql .= " ,t2.group_id";
- $sql .= " ,t2.owner_id";
- if ($addfieldorder){
- $sql .= " ,t3.value ".LB;
- }
-
- //--FROM
- $sql .= " FROM ".LB;
- $sql .= " {$tbl2} AS t2 ".LB;
- //if ($category_id<>0){
- // $sql .= " ,{$tbl1} AS t1 ".LB;
- //}
- if ($addfieldorder){
- $sql .= " ,{$tbl3} AS t3 ".LB;
- }
-
- //--WHERE
- $sql .= " WHERE ".LB;
-
- if (count($idsary)<>0){
- if (strtoupper($mode)=="AND"){
- $w="";
- foreach( $idsary as $val ){
- if ($w<>""){
- $w.=" AND ";
- }
- $w.=$val." IN (SELECT t1.category_id";
- $w.=" FROM {$tbl1} AS t1 ,{$tbl5} AS t5";
- $w.=" WHERE t2.id = t1.id AND t1.category_id = t5.category_id AND t5.allow_display<2)";
- }
- }else{
- $w= "t2.id IN (SELECT id FROM {$tbl1} AS t1 ,{$tbl5} AS t5 ";
- $w.="WHERE t1.category_id = t5.category_id AND t5.allow_display<2 AND t1.category_id IN ({$ids})) ";
- }
- $sql.=" ({$w})".LB;
- }else{
- $sql.=" 1=1".LB;
- }
-
- if ($addfieldorder){
-
- $sql .= " AND t3.field_id=".$field_id.LB;
- $sql .= " AND t3.id=t2.id".LB;
- }
- //管理者の時,下書データも含む
- //20110529 Del
- //if ( SEC_hasRights('databox.admin')) {
- //}else{
- $sql .= " AND t2.draft_flag=0".LB;
- //}
- //アクセス権のないデータ はのぞく
- $sql .= COM_getPermSql('AND',0,2,"t2");
- //公開日以前のデータはのぞく
- $sql .= " AND (released <= NOW())".LB;
- //公開終了日を過ぎたデータはのぞく
- if (strtoupper($expired)=="NO"){
- $sql .= " AND (expired=0 OR expired > NOW())";
- }
- if ($without_code<>""){
- $sql .= " AND (t2.code<>'$without_code')";
- }
- if ($without_id<>""){
- $sql .= " AND (t2.id<>$without_id)";
- }
-
- //--ORDER
- $sql .= " ORDER BY ".LB;
- $sql .= $orderby.LB;
-
- $result = DB_query ($sql);
- $cnt = DB_numRows ($result);
- $pages = 0;
- if ($perpage > 0) {
- $pages = ceil($cnt / $perpage);
- }
- $offset = ($page - 1) * $perpage;
- $sql .= " LIMIT $offset, $perpage";
- //自動タグでない時 ヘッダ、左ブロック
- if ($autotag==="notautotag"){
- if ($page > 1) {
- $page_title = sprintf ('%s (%d)', $category_name, $page);
- } else {
- $page_title = sprintf ('%s ', $category_name);
- }
-
- // Meta Tags
- $headercode=DATABOX_getheadercode(
- "category"
- ,$template
- ,$pi_name
- ,$category_id
- ,$category_name
- ,$category_description
- ,$category_name
- ,$category_description);
- $retval .= DATABOX_siteHeader($pi_name,'',$page_title,$headercode) ;
- }
-
- $result = DB_query ($sql);
- $numrows = DB_numRows ($result);
- if ($numrows > 0) {
-
- $tmplfld=DATABOX_templatePath('category',$template,$pi_name);
- $templates = new Template($tmplfld);
- $templates->set_file (array (
- 'list' => 'list_detail.thtml',
- 'nav' => 'navigation_detail.thtml',
- 'row' => 'row.thtml',
- 'col' => "col_detail.thtml",
- ));
- $languageid=COM_getLanguageId();
- $language= COM_getLanguage();
- $templates->set_var ('languageid', $languageid);
- $templates->set_var ('language', $language);
- if ($languageid<>"") {
- $templates->set_var ('_languageid', "_".$languageid);
- }else{
- $templates->set_var ('_languageid', "");
- }
- //
- $templates->set_var ('site_url',$_CONF['site_url']);
- $templates->set_var ('this_script',THIS_SCRIPT);
- //bread
- $templates->set_var ('home',$LANG_DATABOX['home']);
-
- $templates->set_var ('lang_category_list_h2',$LANG_DATABOX['category_list_h2']);
- $templates->set_var ('category_name',$category_name);
- $templates->set_var ('category_code',$category_code);
- $templates->set_var ('category_description',$category_description);
- //page
- $templates->set_var ('cnt', $cnt);
- $lin1=$offset+1;
- $lin2=$lin1+$perpage - 1;
- if ($lin2>$cnt){
- $lin2=$cnt;
- }
- //summary navigation
- $templates->set_var ('lang_view', $LANG_DATABOX['view']);
- $templates->set_var ('lin', $lin1."-".($lin2));
- $templates->set_var ('cnt', $cnt);
- //
- $templates->set_var ('lang_title', $LANG_DATABOX_ADMIN['title']);
- $templates->set_var ('lang_code', $LANG_DATABOX_ADMIN['code']);
- $templates->set_var ('lang_id', $LANG_DATABOX_ADMIN['id']);
- $templates->set_var ('lang_description', $LANG_DATABOX_ADMIN['description']);
- $templates->set_var ('lang_date', $LANG_DATABOX_ADMIN[$datefield]);
- $templates->set_var ('lang_released', $LANG_DATABOX_ADMIN['released']);
- $templates->set_var ('lang_expired', $LANG_DATABOX_ADMIN['expired']);
- $templates->set_var ('lang_remaingdays', $LANG_DATABOX_ADMIN['remaingdays']);
- $templates->set_var ('lang_addfield', $addfield_name);
- // 追加項目のヘッダ
- $addition_def=DATABOX_getadditiondef($pi_name);
-
- //
- $templates->set_var('lang_imgfile_frd', $LANG_confignames['databox']['imgfile_frd']);
- $templates->set_var ('imgfile_frd', $_DATABOX_CONF['imgfile_frd']);
- $templates->set_var ('data_img_url', $_CONF['site_url']."/".$_DATABOX_CONF['imgfile_frd']);
- $templates->set_var('lang_imgfile_thumb_frd', $LANG_confignames['databox']['imgfile_thumb_frd']);
- $templates->set_var ('imgfile_thumb_frd', $_DATABOX_CONF['imgfile_thumb_frd']);
- $templates->set_var ('data_thumb_img_url', $_CONF['site_url']."/".$_DATABOX_CONF['imgfile_thumb_frd']);
-
- for ($i = 0; $i < $numrows; $i++) {
- $A = DB_fetchArray ($result);
- $A = array_map('stripslashes', $A);
- $title=$A['title'];
- $description=$A['description'];
- $code=COM_applyFilter($A['code']);
- $id=COM_applyFilter($A['id']);
- $datefield=COM_applyFilter($A['datefield']);
- $released=COM_applyFilter($A['released']);
- $expired=COM_applyFilter($A['expired']);
- $fieldset_id=COM_applyFilter($A['fieldset_id']);
- $datefield_ary = COM_getUserDateTimeFormat($A['datefield_un']);
- $released_ary = COM_getUserDateTimeFormat($A['released_un']);
- if ($expired==="0000-00-00 00:00:00"){
- $expired_ary=array();
- }else{
- $expired_ary = COM_getUserDateTimeFormat($A['expired_un']);
- }
- $curdate_ary = COM_getUserDateTimeFormat();
-
- $value=COM_applyFilter($A['value']);
- $group_id = $A['group_id'];
- $owner_id = $A['owner_id'];
- $rt= databox_detail_link($id,$code,$title);
- $templates->set_var ('data_link', $rt['link']);
- $templates->set_var ('data_title', $title);
- $templates->set_var ('data_code', $code);
- $templates->set_var ('data_description', $description);
- $templates->set_var ('data_id', $id);
- $templates->set_var ('data_url', $rt['url']);
- $templates->set_var ('data_datefield', $datefield_ary[0]);
- $templates->set_var ('data_value', $value);
- $templates->set_var ('data_datefield_shortdate', strftime( $_CONF['shortdate'], $A['datefield_un'] ));
- $templates->set_var ('data_datefield_date', strftime( $_CONF['date'], $A['datefield_un'] ));
- $templates->set_var ('data_datefield_daytime', strftime( $_CONF['daytime'], $A['datefield_un'] ));
- $templates->set_var ('data_datefield_dateonly', strftime( $_CONF['dateonly'], $A['datefield_un'] ));
- $templates->set_var ('data_datefield_timeonly', strftime( $_CONF['timeonly'], $A['datefield_un'] ));
- $templates->set_var ('data_datefield_b', strftime( "%b" , $A['datefield_un']));
- $templates->set_var ('data_datefield_B', strftime( "%B" , $A['datefield_un']));
- $templates->set_var ('data_datefield_d', strftime( "%d" , $A['datefield_un']));
- $templates->set_var ('data_datefield_e', strftime( "%e" , $A['datefield_un']));
-
- $templates->set_var ('data_released', $released_ary[0]);
- $templates->set_var ('data_released_shortdate', strftime( $_CONF['shortdate'], $A['released_un'] ));
- $templates->set_var ('data_released_date', strftime( $_CONF['date'], $A['released_un'] ));
- $templates->set_var ('data_released_daytime', strftime( $_CONF['daytime'], $A['released_un'] ));
- $templates->set_var ('data_released_dateonly', strftime( $_CONF['dateonly'], $A['released_un'] ));
- $templates->set_var ('data_released_timeonly', strftime( $_CONF['timeonly'], $A['released_un'] ));
- $templates->set_var ('data_released_b', strftime( "%b" , $A['released_un']));
- $templates->set_var ('data_released_B', strftime( "%B" , $A['released_un']));
- $templates->set_var ('data_released_d', strftime( "%d" , $A['released_un']));
- $templates->set_var ('data_released_e', strftime( "%e" , $A['released_un']));
- //公開終了日 Expired to publish
- if ($A['expired'] ==="0000-00-00 00:00:00"){
- $templates->set_var ('data_expired', "");
- $templates->set_var ('data_expired_shortdate', "" );
- $templates->set_var ('data_expired_date', "" );
- $templates->set_var ('data_expired_daytime', "" );
- $templates->set_var ('data_expired_dateonly', "" );
- $templates->set_var ('data_expired_timeonly', "" );
- $templates->set_var ('data_expired_b', "" );
- $templates->set_var ('data_expired_B', "" );
- $templates->set_var ('data_expired_d', "" );
- $templates->set_var ('data_expired_e', "" );
- }else{
- $wary = COM_getUserDateTimeFormat($A['expired_un']);
- $templates->set_var ('data_expired', $expired_ary[0]);
- $templates->set_var ('data_expired_shortdate', strftime( $_CONF['shortdate'], $A['expired_un'] ));
- $templates->set_var ('data_expired_date', strftime( $_CONF['date'], $A['expired_un'] ));
- $templates->set_var ('data_expired_daytime', strftime( $_CONF['daytime'], $A['expired_un'] ));
- $templates->set_var ('data_expired_dateonly', strftime( $_CONF['dateonly'], $A['expired_un'] ));
- $templates->set_var ('data_expired_timeonly', strftime( $_CONF['timeonly'], $A['expired_un'] ));
- $templates->set_var ('data_expired_b', strftime( "%b" , $A['expired_un']));
- $templates->set_var ('data_expired_B', strftime( "%B" , $A['expired_un']));
- $templates->set_var ('data_expired_d', strftime( "%d" , $A['expired_un']));
- $templates->set_var ('data_expired_e', strftime( "%e" , $A['expired_un']));
- }
- $remaingdays="";
- if ($expired<>"0000-00-00 00:00:00") {
- if ($expired_ary[1]>=$curdate_ary[1]){
- $remaingdays=COM_dateDiff( "d", $expired_ary[1], $curdate_ary[1] ) + 1;
- }
- }
- $templates->set_var ('data_remaingdays', $remaingdays);//@@@@@@
- if (date("Ymd",strtotime($datefield)) >= date("Ymd",$chkday)){
- $templates->set_var ('new_img', $new_img);
- }else{
- $templates->set_var ('new_img', '');
- }
- $hits=COM_applyFilter(DB_getItem( $tbl6 ,"hits","id={$id}"),true);
- $templates->set_var('lang_hits', $LANG_DATABOX_ADMIN['hits']);
- $templates->set_var('data_hits', $hits);
-
- //カテゴリ@@@@@
- $templates->set_var('lang_category', $LANG_DATABOX_ADMIN['category']);
- DATABOX_getcategoriesDisp($A['id'],$templates,$chk_user,0,$pi_name);
- //追加項目
- $chk_user=DATABOX_chkuser($group_id,$owner_id,"databox.admin");
- $additionfields = DATABOX_getadditiondatas($id,$pi_name);
- DATABOX_getaddtionfieldsDisp($additionfields,$addition_def,$templates,$chk_user,$pi_name,$fieldset_id);
-
- //管理者の時「編集」
- if ( SEC_hasRights('databox.admin')) {
- $icon_url = $_CONF['layout_url'] . '/images/edit.' . $_IMAGE_TYPE;
- $attr = array('title' => $title." ".$LANG_DATABOX_ADMIN['edit']);
- $editiconhtml = COM_createImage($icon_url, $LANG_DATABOX_ADMIN['edit'], $attr);
-
- $attr = array('class' => 'editlink', 'title' => $title." ".$LANG_DATABOX_ADMIN['edit']);
- $url = $_CONF['site_admin_url'];
- $url .= '/plugins/databox/data.php';
- $url .= '?mode=edit';
- $url .= '&'."id={$id}";
- $icon = ' ' ;
- $icon .= COM_createLink( $editiconhtml, $url, $attr );
- $templates->set_var ('data_edit', $icon);
- }else{
- $rt=databox_chk_loaddata($id);
- //編集権限のあるMyData
- if ( $rt==="OK") {
- $icon_url = $_CONF['layout_url'] . '/images/edit.' . $_IMAGE_TYPE;
- $attr = array('title' => $LANG_DATABOX_ADMIN['edit']);
- $editiconhtml = COM_createImage($icon_url, $LANG_DATABOX_ADMIN['edit'], $attr);
- $attr = array('class' => 'editlink', 'title' => $title." ".$LANG_DATABOX_ADMIN['edit']);
- $url = $_CONF['site_url'];
- $url .= '/databox/mydata/data.php';
- $url .= '?mode=edit';
- $url .= '&'."id={$id}";
- $icon = ' ' ;
- $icon .= COM_createLink( $editiconhtml, $url, $attr );
- $templates->set_var ('data_edit', $icon);
- }else{
- $templates->set_var ('data_edit', "");
- }
-
- }
-
- //=====
- $templates->parse ('col_var', 'col', true);
- $templates->parse ('row_var', 'row', true);
- $templates->set_var ('col_var', '');
- }
- // Call to plugins to set template variables in the databox
- PLG_templateSetVars( 'databox', $templates );
- //------------
- //-----navigation
- $url = $_CONF['site_url'] . '/';
- if ($autotag==="notautotag"){
- $url.=THIS_SCRIPT;
- }else{
- $url.="databox/category.php";
- }
- $url.="?";
- if ($category_code<>""){
- $url.="code=".$category_code;
- $url.="&m=code";
- }else{
- $url .= "id=".$category_id;
- $url .= "&m=id";
- }
- $url .= "&template=".$template;
- $url .= "&order=";
-
- //-----order navigation
- databox_order ($url, $templates, $order) ;
- //-----page navigation
- $url .= $order;
- $templates->set_var ('page_navigation',
- COM_printPageNavigation ($url, $page, $pages));
- if ($order==="random"){
- $templates->set_var ( 'pagenavinone', 'style="display:none;"' );
- }else{
- $templates->set_var ( 'pagenavinone', '' );
- }
- //------------
- $templates->parse ('nav_var', 'nav', true);
- $templates->set_var ('msg', "");
- $templates->parse ('output', 'list');
- $content = $templates->finish ($templates->get_var ('output'));
- $retval .=$content;
- }else{
- if ($nohitmsg==="yes"){
- $tmplfld=DATABOX_templatePath('category',$template,$pi_name);
- $templates = new Template($tmplfld);
- $templates->set_file (array (
- 'list' => 'nohit.thtml',
- ));
-
- $templates->set_var ('home',$LANG_DATABOX['home']);
-
- $url=$_CONF['site_url']."/databox/category.php";
- $category_top="<a href='".$url."'>".$LANG_DATABOX['category_top']."</a>";
- $templates->set_var ('category_top',$category_top);
- $templates->set_var ('category_name',$category_name);
- $templates->set_var ('category_code',$category_code);
- $templates->set_var ('category_description',$category_description);
-
-
- $templates->set_var('xhtml', XHTML);
- $templates->set_var('site_url', $_CONF['site_url']);
- $templates->set_var('site_admin_url', $_CONF['site_admin_url']);
- $templates->set_var('layout_url', $_CONF['layout_url']);
-
- $templates->set_var ('lang_nohit', $LANG_DATABOX['nohit']);
- $templates->parse ('output', 'list');
- $content = $templates->finish ($templates->get_var ('output'));
- $retval .=$content;
- }
-
-
-
-
-
- }
- $retval =PLG_replacetags ($retval);
- return $retval;
- }
- function databox_count(
- $category_id =null
- ,$category_code =null
- ,$mode=''
- ,$permission=''
- ,$numberformat=''
- )
- // +---------------------------------------------------------------------------+
- // | 機能 件数表示 |
- // +---------------------------------------------------------------------------+
- // | 書式 databox_count()
- // | 書式 databox_count(1)
- // | 書式 databox_count("japan")
- // +---------------------------------------------------------------------------+
- // | 引数 $category_id:カテゴリid (優先)
- // | 引数 $category_code:カテゴリコード
- // | 引数 $mode :ブランク または AND
- // | 引数 $permission :ブランク または ignore
- // | 引数 $numberformat :ブランク または yes
- // +---------------------------------------------------------------------------+
- // | 戻値 nomal:データ総数、カテゴリ別データ件数
- // +---------------------------------------------------------------------------+
- {
- global $_TABLES;
-
- //-----
- $tbl1=$_TABLES['DATABOX_base'] ;
- $tbl2=$_TABLES['DATABOX_category'] ;
- //カテゴリの指定がなければ全件、あればカテゴリ毎
- $exp="";
- if (is_null($category_id) AND is_null($category_code) ){
- }else{
- $ids="";
- $idsary=array();
- if (is_null($category_id) OR $category_id==0){
- if (is_null($category_code)){
- }else{
- $w=explode("|",$category_code);
- foreach( $w as $val ){
- if ($ids<>""){
- $ids.=",";
- }
- $w_id=DATABOX_codetoid($val,'DATABOX_def_category',"category_id");
- $idsary[]=$w_id;
- $ids.=$w_id;
- }
- }
- }else{
- $ids=$category_id;
- $idsary[]=$category_id;
- }
- if (strtoupper($mode)=="AND"){
- $w="";
- foreach( $idsary as $val ){
- if ($w<>""){
- $w.=" AND ";
- }
- $w.=$val." IN (SELECT category_id";
- $w.=" FROM {$tbl2} AS t2 ";
- $w.=" WHERE t2.id = t1.id)";
- }
- }else{
- $w= "id IN (SELECT id FROM {$tbl2} ";
- $w.="WHERE category_id IN ({$ids})) ";
- }
- $exp=$w.LB;
- }
-
- //-----
- $sql = "SELECT ".LB;
- $sql .= " distinct t1.id ".LB;
- $sql .= " FROM ".LB;
- $sql .= " {$tbl1} AS t1 ".LB;
- $sql .= " WHERE ".LB;
-
- if ($exp<>""){
- $sql .= $exp. " AND ";
- }
- //@@@@@@@@@--------->
- //下書はのぞく
- $sql .= " t1.draft_flag=0".LB;
- //アクセス権のないデータ はのぞく
- if (strtoupper($permission)=="IGNORE"){
- }else{
- $sql .= COM_getPermSql('AND').LB;
- }
- //公開日以前のデータはのぞく
- $sql .= " AND (released <= NOW())".LB;
- //公開終了日を過ぎたデータはのぞく
- $sql .= " AND (expired=0 OR expired > NOW())".LB;
- //@@@@@@@@@<---------
- $result = DB_query ($sql);
- $cnt = DB_numRows ($result);
-
- if (strtoupper($numberformat)=="YES"){
- $rt=COM_NumberFormat($cnt);
- }else{
- $rt=$cnt;
- }
-
- return $rt;
- }
- function databox_field(
- $autotag
- ,$field_id=null
- ,$value=""
- ,$template=null
- ,$nohitmsg=""
- ,$perpage =0
- ,$page=null
- ,$order=null
- ,$field_code=null
- )
- // +---------------------------------------------------------------------------+
- // | 機能 アトリビュート別一覧表示
- // | 書式
- // +---------------------------------------------------------------------------+
- // | 引数 $autotag:notautotagの時ヘッダを表示しない
- // | 引数 $field_id:追加属性id
- // | 引数 $value:表示する項目の値
- // | 引数 $template:使用するテンプレートのフォルダ名
- // | 引数 $nohitmsg :"yes"の時nohitメッセージ表示
- // | 引数 $perpage :1pageあたりの件数、0の時改ページなし
- // | 引数 $page :
- // | 引数 $order :順序
- // | 引数 $field_code :
- // +---------------------------------------------------------------------------+
- // | public_html/attribute.php および 自動タグで使用
- // | ヘッダはコンフィギュレーション設定により表示されない場合があります
- // | idもcodeも指定されない場合は、全カテゴリ
- // +---------------------------------------------------------------------------+
- // | 戻値 nomal:attribute list
- // +---------------------------------------------------------------------------+
- {
- $pi_name="databox";
- global $_CONF;
- global $_TABLES;
- global $_DATABOX_CONF;
- global $LANG_DATABOX;
- global $LANG_DATABOX_ADMIN;
- global $LANG_DATABOX_NOYES;
- global $_IMAGE_TYPE;
- global $LANG_confignames;
- global $_PLUGINS;
- global $_MAPS_CONF;
- //ログイン要否チェック
- if (COM_isAnonUser()){
- if ($_CONF['loginrequired']
- OR ($_DATABOX_CONF['loginrequired'] >1) ){
- return $LANG_DATABOX['loginrequired'];
- }
- }
- //-----table assign
- $tbl1=$_TABLES['DATABOX_addition'] ;
- $tbl2=$_TABLES['DATABOX_base'] ;
- $tbl3=$_TABLES['DATABOX_addition'] ;
- $tbl5=$_TABLES['DATABOX_stats'];
- //日付関連
- $datefield=$_DATABOX_CONF['datefield'];//使用する日付(編集日付、作成日付、公開日)
- $new_img=$_DATABOX_CONF['new_img'];
- if ($new_img==""){
- $new_img="New!";
- }
- $newmarkday=$_DATABOX_CONF['newmarkday'];
- if ($newmarkday==""){
- $newmarkday=3;
- }
- $chkday=strtotime("- $newmarkday days",time());
- //-----引数チェック
- if (is_null($value) OR $value==="") {
- return;
- }
- if (is_null($field_id)){
- if ($field_code===""){
- $field_id=0;
- }else{
- $field_id=DATABOX_codetoid($field_code,'DATABOX_def_field',"field_id","templatesetvar");
- }
- }
- if ($field_id===0) {
- return;
- }
- if ($field_code===""){
- $field_code=DB_getItem( $_TABLES['DATABOX_def_field']
- ,"templatesetvar","field_id={$field_id}");
- }
-
- $field_def=DATABOX_getadditiondef($pi_name);
- $type=$field_def[$field_id]['type'];
- $w = array(0,2,3,4,7,8,9,16);
- if (in_array ($type,$w)){
- }else{
- return;
- }
- $allow_display=$field_def[$field_id]['allow_display'];
- if ($allow_display<2){
- }else{
- return;
- }
- //
- if (is_null($page) OR !isset($page) OR $page == 0) {
- $page = 1;
- }
- if ($perpage===0 OR is_null($perpage)){
- $perpage=$_DATABOX_CONF['perpage'];
- }
-
- $w=databox_orderby($datefield,$order,$orderby,$addfieldorder,$orderfield_id);
-
- $field_def[$field_id]['name'];
- $field_name=$field_def[$field_id]['name'];
- $field_templatesetvar=$field_def[$field_id]['templatesetvar'];
- $field_description=$field_def[$field_id]['description'];
- $fieldvalue=DATABOX_getfieldvalue(
- $value
- ,$field_def[$field_id]['type']
- ,$field_def[$field_id]['selectionary']
- ,$LANG_DATABOX_NOYES
- ,$field_def[$field_id]['selectlist']
- ,$pi_name
- );
- if (is_null($template) or ($template==="")){
- $template="default";
- }
- $sql = "SELECT DISTINCT";
- $sql .= " t2.id ".LB;
- $sql .= " ,t2.title ".LB;
- $sql .= " ,t2.code ".LB;
- $sql .= " ,t2.description ".LB;
- $sql .= " ,t2.".$datefield." AS datefield ".LB;
- $sql .= " ,t2.expired ".LB;
- $sql .= " ,UNIX_TIMESTAMP(t2.".$datefield.") AS datefield_un ".LB;
- $sql .= " ,UNIX_TIMESTAMP(t2.released ) AS released_un ".LB;
- $sql .= " ,UNIX_TIMESTAMP(t2.expired ) AS expired_un ".LB;
- $sql .= " ,t2.group_id";
- $sql .= " ,t2.owner_id";
-
- $sql .= " ,t2.fieldset_id ".LB;
-
- if ($addfieldorder){
- $sql .= " ,t3.value ".LB;
- }
- $sql .= " FROM ".LB;
- $sql .= " {$tbl2} AS t2 ".LB;
- $sql .= " ,{$tbl1} AS t1 ".LB;
- if ($addfieldorder){
- $sql .= " ,{$tbl3} AS t3 ".LB;
- }
- $sql .= " WHERE ".LB;
- $sql .= " t1.field_id = ".$field_id.LB;
- $sql .= " AND t1.id = t2.id ".LB;
- $sql .= " AND t1.value = \"".$value."\"".LB;
- if ($addfieldorder){
- $sql .= " AND t3.field_id=".$orderfield_id.LB;
- $sql .= " AND t3.id=t2.id".LB;
- }
- //管理者の時,下書データも含む
- //if ( SEC_hasRights('databox.admin')) {
- //}else{
- $sql .= " AND t2.draft_flag=0".LB;
- //}
-
- //アクセス権のないデータ はのぞく
- $sql .= COM_getPermSql('AND',0,2,"t2");
- //公開日以前のデータはのぞく
- $sql .= " AND (released <= NOW())".LB;
- //公開終了日を過ぎたデータはのぞく
- $sql .= " AND (expired=0 OR expired > NOW())";
- $sql .= " ORDER BY ".LB;
- $sql .= $orderby.LB;
-
- $result = DB_query ($sql);
- $cnt = DB_numRows ($result);
- $pages = 0;
- if ($perpage > 0) {
- $pages = ceil($cnt / $perpage);
- }
- $offset = ($page - 1) * $perpage;
- $sql .= " LIMIT $offset, $perpage";
- //自動タグでない時 ヘッダ、左ブロック
- if ($autotag==="notautotag"){
- if ($page > 1) {
- $page_title = sprintf ('%s (%d)', $field_name, $page);
- } else {
- $page_title = sprintf ('%s ', $field_name);
- }
- $headercode=DATABOX_getheadercode(
- "attribute"
- ,$template
- ,$pi_name
- ,$field_id
- ,$field_name
- ,$field_description
- ,$field_name
- ,$field_description);
- $retval .= DATABOX_siteHeader($pi_name,'',$page_title,$headercode);
- }
-
- //
- $addition_def=DATABOX_getadditiondef($pi_name);
- //
- $url=$_CONF['site_url']."/databox/attribute.php";
- $attribute_top="<a href='".$url."'>".$LANG_DATABOX['attribute_top']."</a>";
- $url=$_CONF['site_url']."/databox/attribute.php?";
- $url.="m=id&id=".$field_id;
- $field_top="<a href='".$url."'>".$field_name.$LANG_DATABOX['countlist']."</a>";
- $result = DB_query ($sql);
- $numrows = DB_numRows ($result);
- if ($numrows > 0) {
- $tmplfld=DATABOX_templatePath('attribute',$template,$pi_name);
- $templates = new Template($tmplfld);
- $templates->set_file (array (
- 'list' => 'list_detail.thtml',
- 'nav' => 'navigation_detail.thtml',
- 'row' => 'row.thtml',
- 'col' => "col_detail.thtml",
- ));
-
- $languageid=COM_getLanguageId();
- $language= COM_getLanguage();
- $templates->set_var ('languageid', $languageid);
- $templates->set_var ('language', $language);
- if ($languageid<>"") {
- $templates->set_var ('_languageid', "_".$languageid);
- }else{
- $templates->set_var ('_languageid', "");
- }
- //
- $templates->set_var ('site_url',$_CONF['site_url']);
- $templates->set_var ('this_script',THIS_SCRIPT);
- //bread
- $templates->set_var ('home',$LANG_DATABOX['home']);
- $templates->set_var ('attribute_top',$attribute_top);
- $templates->set_var ('field_top',$field_top);
-
- $templates->set_var ('field_name',$field_name);
- $templates->set_var ('field_templatesetvar',$field_templatesetvar);
- $templates->set_var ('field_description',$field_description);
-
- $templates->set_var ('fieldvalue',$fieldvalue);
- $templates->set_var ('addition_name',$additon_name);
- $templates->set_var ('addition_code',$additon_code);
- //page
- $templates->set_var ('cnt', $cnt);
- $lin1=$offset+1;
- $lin2=$lin1+$perpage - 1;
- if ($lin2>$cnt){
- $lin2=$cnt;
- }
- //summary navigation
- $templates->set_var ('lang_view', $LANG_DATABOX['view']);
- $templates->set_var ('lin', $lin1."-".($lin2));
- $templates->set_var ('cnt', $cnt);
- $templates->set_var ('lang_code', $LANG_DATABOX_ADMIN['code']);
- $templates->set_var ('lang_id', $LANG_DATABOX_ADMIN['id']);
- //
- $templates->set_var ('lang_date', $LANG_DATABOX_ADMIN[$datefield]);
- $templates->set_var ('lang_title', $LANG_DATABOX_ADMIN['title']);
- $templates->set_var ('lang_description', $LANG_DATABOX_ADMIN['description']);
- $templates->set_var ('lang_released', $LANG_DATABOX_ADMIN['released']);
- $templates->set_var ('lang_expired', $LANG_DATABOX_ADMIN['expired']);
- $templates->set_var ('lang_remaingdays', $LANG_DATABOX_ADMIN['remaingdays']);
- $templates->set_var ('lang_addfield', $addfield_name);
-
- //$_DATABOX_CONF
- $templates->set_var('lang_imgfile_frd', $LANG_confignames['databox']['imgfile_frd']);
- $templates->set_var ('imgfile_frd', $_DATABOX_CONF['imgfile_frd']);
- $templates->set_var ('data_img_url', $_CONF['site_url']."/".$_DATABOX_CONF['imgfile_frd']);
- $templates->set_var('lang_imgfile_thumb_frd', $LANG_confignames['databox']['imgfile_thumb_frd']);
- $templates->set_var ('imgfile_thumb_frd', $_DATABOX_CONF['imgfile_thumb_frd']);
- $templates->set_var ('data_thumb_img_url', $_CONF['site_url']."/".$_DATABOX_CONF['imgfile_thumb_frd']);
-
- $mkids="";
- for ($i = 0; $i < $numrows; $i++) {
- $A = DB_fetchArray ($result);
- $A = array_map('stripslashes', $A);
- $title=COM_applyFilter($A['title']);
- $description=COM_applyFilter($A['description']);
- $code=COM_applyFilter($A['code']);
- $id=COM_applyFilter($A['id']);
- $datefield=COM_applyFilter($A['datefield']);
- $released=COM_applyFilter($A['released']);
- $expired=COM_applyFilter($A['expired']);
- $datefield_ary = COM_getUserDateTimeFormat($A['datefield_un']);
- $released_ary = COM_getUserDateTimeFormat($A['released_un']);
- if ($expired==="0000-00-00 00:00:00"){
- $expired_ary=array();
- }else{
- $expired_ary = COM_getUserDateTimeFormat($A['expired_un']);
- }
- $curdate_ary = COM_getUserDateTimeFormat();
-
- $sortvalue=COM_applyFilter($A['value']);
- $group_id = $A['group_id'];
- $owner_id …
Large files files are truncated, but you can click here to view the full file