Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖

强烈要求DZ开发人员检查“下载名单”那个插件的可移植性

[复制链接]
习明 发表于 2007-6-2 20:52:44 | 显示全部楼层
下载名单的插件确实对兼容性有影响 但愿作者可以修改吧

关于你提出的问题:
函数是有封闭性的 也就是说 在函数内修改的变量 如果不是修改传址调用的参数或使用函数返回值返回的话 是无法在函数外使用的
你所修改的函数 function parseattach($attachpids, $attachtags, &$postlist, $showimages = 1)
最终没有任何返回值 因为我标志红色的那个参数$postlist 是一个传址调用 也就是说 在函数内通过改变这个参数的值来达到修改函数外变量的目的 函数中有这样一句
  1. $postlist[$attach['pid']]['attachments'][$attach['aid']] = $attach;
复制代码
也就是将前边处理过的$attach传递给$postlist 换句话说 在此时已经将附件的相关内容交给外部的变量了 你所增加的处理操作恰恰是在这个过程之后 也就是你所处理的内容无法传递出去
之所以使用viewthread_attachlist.htm模版的时候可以读取到数据 是因为这个 parseattach函数在结束前对viewthread_attachlist.htm模版进行引用 并根据当前函数中的关于附件的变量 对模版中的变量模型进行了替换 然后将替换结果作为$postlist[$attach['pid']]['attachlist']传递给$postlist 这样相当于$postlist中包括一个变量 它的值是根据模版生成好的一组html代码
如果你也想绕开viewthread_attachlist.htm模版 直接在viewthread.htm中输出数据 可以试试将你加入parseattach函数的代码改在
  1. $postlist[$attach['pid']]['attachments'][$attach['aid']] = $attach;
复制代码
之前
呵呵 讲了这么多 不知道能不能看懂
回复

使用道具 举报

 楼主| wjmwaq 发表于 2007-6-3 12:18:05 | 显示全部楼层
谢谢,你写的很详细。
有个问题:我现在是在模版引用include_once template('viewthread_attachlist');前判断参数的(考虑到程序的可读性,要不改动地方太多了),如果在include前增加attach['filesizes']参数,在参数赋值之后,再使用$postlist[$attach['pid']]['attachments'][$attach['aid']attach['filesizes']] = $attach; 这样的话是不是就能在 viewthread.htm 中得到attach['filesizes']的值呢?

也不知道写的对不对,请指教
回复

使用道具 举报

习明 发表于 2007-6-3 14:00:44 | 显示全部楼层
你是想模仿attachlist的赋值方法是吧 需要写成这样
  1. $postlist[$attach['pid']]['attachments'][$attach['aid']]['filesizes'] = $attach['filesizes'];
复制代码

我的建议是 如果你需要在viewthread.htm里调用 最好是将你所增加的内容加在
  1. $postlist[$attach['pid']]['attachments'][$attach['aid']] = $attach;
复制代码

之前
因为即使从程序可读性上来讲 预处理后一次性赋值会比二次对某个元素单独赋值更好 而且 这样更符合逻辑 而且改动会比你的少(从原版的角度讲)
回复

使用道具 举报

ycfbjx 发表于 2007-6-3 14:04:23 | 显示全部楼层
不错,不错!!!
回复

使用道具 举报

 楼主| wjmwaq 发表于 2007-6-3 14:40:59 | 显示全部楼层
懂拉,谢谢。。。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-6-30 02:30 , Processed in 0.104491 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表