教你如何实现帖子详情页附件隐藏,仅登录后可见
linshenme 9月前

效果如下:

此方法可以强制用户必须登录注册才可以看到上传的附件内容。

方法如下:

首先找到我们要修改的文件,路径如下

xiunobbs\model\post.func.php

到286行,有一个post_file_list_html()方法,将下面代码复制替换后清空缓存即可

// 公用的附件模板,采用函数,效率比 include 高。
function post_file_list_html($filelist, $include_delete = FALSE) {
    global $gid;
    if(empty($filelist)) return '';
	
	// hook model_post_file_list_html_start.php
	
	$s = '<fieldset class="fieldset">'."\r\n";
	$s .= '<legend>上传的附件:</legend>'."\r\n";
	$s .= '<ul class="attachlist">'."\r\n";
    if($gid === 0) {
        $s .= '<li>附件已隐藏,请登录后查看!</li>';
    }else{
        foreach ($filelist as &$attach) {
            $s .= '<li aid="'.$attach['aid'].'">'."\r\n";
            $s .= '		<a href="'.url("attach-download-$attach[aid]").'" target="_blank">'."\r\n";
            $s .= '			<i class="icon filetype '.$attach['filetype'].'"></i>'."\r\n";
            $s .= '			'.$attach['orgfilename']."\r\n";
            $s .= '		</a>'."\r\n";
            // hook model_post_file_list_html_delete_before.php
            $include_delete AND $s .= '		<a href="javascript:void(0)" class="delete ml-3"><i class="icon-remove"></i> '.lang('delete').'</a>'."\r\n";
            // hook model_post_file_list_html_delete_after.php
            $s .= '</li>'."\r\n";
        };
    }
	$s .= '</ul>'."\r\n";
	$s .= '</fieldset>'."\r\n";
	
	// hook model_post_file_list_html_end.php
	
	return $s;
}

 

最新回复 (6)
全部楼主
  • oliolo 版主
    9月前 2
    0
    要改程序实现,不推荐此方式。这个隐藏没意义吧,下载都是必需登录的。
  • aixiu
    9月前 3
    0
    难道适合不安装同类插件的方案?
  • sgujag
    9月前 4
    0
    你就是我心中的那首忐忑,总是让我惊心动魄。 
  • yexiuhhd
    9月前 5
    0
    不错不错
  • sgujag
    9月前 6
    0
    非常棒!!!
  • beifox
    8月前 7
    0
    面对如此强贴,论遇到多大阻力,只要我一息上尚存,就绝不会让它沉沦下去,这一点请楼主放心。 
返回