返信する: d3diaryサポート板


オプション

参照

Re: attachfileの表示について
投稿者: なーお 投稿日時: 2011/4/9 9:06

添付数とpopupリンクをアサインするプラグインを書いてみました。

プラグイン「function.attachfile_attach_download_r.php」

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?php /* * Smarty plugin * ------------------------------------------------------------- * Type:     function * Name:     attach_download_r * Version:  1.0 * Date:     2011/04/09 * Author:   naao * Purpose:   * Input:     *  * Example1: {attachfile_attach_download item=attached item2=attach_link module_dirname=$mydirname dirname=attachfile target_id=$post.id} * ------------------------------------------------------------- */function smarty_function_attachfile_attach_download_r( $params, &$smarty ){    $mydirname = isset( $params['dirname'] ) ? $params['dirname'] : @$GLOBALS['xoopsModuleConfig']['attachfile_attach_dirname'] ;     if( ! preg_match( '/^[0-9a-zA-Z_-]+$/' , $mydirname ) || ! file_exists( XOOPS_TRUST_PATH.'/modules/attachfile/include/attach_smarty_functions.php' ) ) {        echo "<p>attach_download does not set properly.</p>" ;    } else {        require_once( XOOPS_TRUST_PATH.'/modules/attachfile/include/attach_smarty_functions.php' ) ;         // 'isactive'/'module_read' check and include language        // If the check failed, this function does nothing (not error).        if( ! attachfile_process_instead_of_common( $mydirname ) ) {            return ;        }         //$module_dirname = $xoopsModule->getVar('dirname') ;        $module_dirname = $params['module_dirname'] ;        $target_id = intval( $params['target_id'] ) ;        $item = !empty($params['item']) ? $params['item'] : "attached" ;        $item2 = !empty($params['item2']) ? $params['item2'] : "attach_link" ;         // check download permission(= check num permission)        $error_msg = attachfile_check_download_permission( $mydirname , $module_dirname , $target_id ) ;        if ( isset( $error_msg ) ) {            echo $error_msg ;        }         $xoopsDB =& Database::getInstance() ;         // transaction and view        $sql = "SELECT COUNT(*) FROM ".$xoopsDB->prefix( $mydirname."_attach" )." WHERE module_dirname='$module_dirname' AND target_id=$target_id" ;        if( ! $result = $xoopsDB->query( $sql ) ) die( "DB ERROR in num popup" ) ;        $row = $xoopsDB->fetchRow( $result ) ;        $rtn = attachfile_display_popup_link_r( $mydirname , $module_dirname , $target_id , 'dpop' , _MD_ATTACHFILE_DOWNLOAD_POPUP , $row[0] );        $smarty->assign( $item , $row[0] ) ;        $smarty->assign( $item2 , $rtn ) ;    }} function attachfile_display_popup_link_r( $mydirname , $module_dirname , $target_id , $mode , $title , $count ){    return '<a href="java script:void(0)" onclick="window.open(\''.XOOPS_URL.'/modules/'.$mydirname.'/index.php?mode='.$mode.'&module_dirname='.$module_dirname.'&target_id='.$target_id.'\', \'attachfile_popup\', \'width=400,height=200,toolbar=no,menubar=no,scrollbars=yes,location=yes,status=yes,resizable=yes\')">'.$title.'(<span id="'.$mydirname.'_COUNT_'.$module_dirname.'_'.$target_id.'">'.$count.'</span>)</a>' ; } ?>

テンプレート内の記述 (diary)_detail.html

Everything is expanded.Everything is shortened.
1
2
3
4
 
 
 
 
<{attachfile_attach_download_r item=attached item2=attach_link module_dirname=$mydirname dirname=attachfile target_id=$yd_data.bid}>
<{if $attached >0}>
<{$attach_link}>&nbsp;|&nbsp;
<{/if}>

テンプレート内の記述 (diary)_index.html

Everything is expanded.Everything is shortened.
1
2
3
4
 
 
 
 
<{attachfile_attach_download_r item=attached item2=attach_link module_dirname=$mydirname dirname=attachfile target_id=$entry.bid}>
<{if $attached >0}>
<{$attach_link}>&nbsp;|&nbsp;
<{/if}>
ログイン

メインメニュー

テーマ選択
Cube