立即注册 登录
彼岸网 返回首页

牛肉炖土豆的个人空间 http://www.bian-wang.com/discuz/?10744 [收藏] [复制] [分享] [RSS]

日志

给GIF图片添加播放暂停按钮

热度 1已有 219 次阅读2017-12-30 09:39 PM |个人分类:建站笔记

<div>效果图http://demo.htmleaf.com/1503/201503071802/index.html</div>JQ有个插件gifplayer<div>它可控制GIF动画图片播的放和暂停,效果很好,<div>可以先用一张预备图显示出来,再由用户控制是否加载播放,这样一来能够有效缓解带宽流量和页面卡顿问题。</div><div>在添加这个插件的时候,遇到一个问题,那就是要首先要判断附件的图片类型是不是.gif扩展名格式。</div><div>请问有没有办法在PHP文件里加一个变量,判断附件后缀扩展名,能够在模板里调用到这个变量来做判断用呢</div><div>PS,经天香公主指点已实现该功能,效果图</div><div><br></div><div><p><a href="data/attachment/album/201712/31/082805kfzfb0bdtf4all0t.jpg" target="_blank"><img src="data/attachment/album/201712/31/082805kfzfb0bdtf4all0t.jpg"></a></p></div><div><br></div></div>

路过

鸡蛋

鲜花

握手

雷人

发表评论 评论 (20 个评论)

回复 牛肉炖土豆 2018-1-2 08:29 PM
天香公主: 好,我的建议指遵守Discuz的惯例,将DB::fetch_all之类的使用限制在source/class/table里的各个类的定义内,而Discuz系统里其余代码通过这些类里的函数来和数据 ...
明白了,谢谢。
回复 天香公主 2018-1-2 02:41 PM
牛肉炖土豆:    解决了,不知为何,每次问你之后,就会出现解决方法,谢谢。
但是有一点不太明白,为何不建议DB查询数据库呢? ...
好,我的建议指遵守Discuz的惯例,将DB::fetch_all之类的使用限制在source/class/table里的各个类的定义内,而Discuz系统里其余代码通过这些类里的函数来和数据库联系。
回复 牛肉炖土豆 2018-1-2 11:58 AM
天香公主: 我不清楚你后面给我的那段含DB::fetch_all的代码是干什么用的。建议和前面给我的含$attach的那段整合,而且建议不用那种方式取数据。

至于整合后如何在模板文件 ...
   解决了,不知为何,每次问你之后,就会出现解决方法,谢谢。
但是有一点不太明白,为何不建议DB查询数据库呢?
回复 天香公主 2018-1-2 10:57 AM
牛肉炖土豆: 哦哦,就是这个<!--{if $attach['ext'] == 'gif'}-->就是这个不起作用==》源起!还请指教...我已经没办法了...
我不清楚你后面给我的那段含DB::fetch_all的代码是干什么用的。建议和前面给我的含$attach的那段整合,而且建议不用那种方式取数据。

至于整合后如何在模板文件里使用$attach,见我之前的建议。
回复 牛肉炖土豆 2018-1-2 10:46 AM
天香公主: $attach在模板里没用上?那怎么你给的模板loop里有<!--{if $attach['ext'] == 'gif'}-->
哦哦,就是这个<!--{if $attach['ext'] == 'gif'}-->就是这个不起作用==》源起!还请指教...我已经没办法了...
回复 天香公主 2018-1-2 10:43 AM
牛肉炖土豆: 是这样的,$attach这个我在模板里不用它,模板里输出的附件是另一套查询语句,直接输出在模板里面了,过程如下

在forum_forumdisplay.php添加查询语句
$table=' ...
$attach在模板里没用上?那怎么你给的模板loop里有<!--{if $attach['ext'] == 'gif'}-->
回复 牛肉炖土豆 2018-1-2 10:31 AM
天香公主: 我试了下,这些代码每个句子本身没问题,但是你在for loop里定义的$attach怎么能在模版文件里使用呢?它们得和$thread建立联系,比如你加个$list变量,在loop里 ...
是这样的,$attach这个我在模板里不用它,模板里输出的附件是另一套查询语句,直接输出在模板里面了,过程如下

在forum_forumdisplay.php添加查询语句
$table='forum_attachment_'.substr($thread['tid'], -1);
$thread['attachmentatt'] = DB::fetch_all("SELECT * FROM ".DB::table($table)." WHERE tid='$thread[tid]' AND isimage!='0'");

模板loop如下
<!--{loop $thread['attachmentatt'] $keyimg $valimg}-->
<!--{if $attach['ext'] == 'gif'}-->
<img src="data/attachment/forum/$valimg['attachment']" />GIF图片
<!--{else}-->
<img src="data/attachment/forum/$valimg['attachment']" />JPG图片
<!--{/if}-->
回复 天香公主 2018-1-2 10:23 AM
牛肉炖土豆: source\module\forum\forum_forumdisplay.php
插在$threadids[$threadindex] = $thread['tid'];后面了,是新添加的
我试了下,这些代码每个句子本身没问题,但是你在for loop里定义的$attach怎么能在模版文件里使用呢?它们得和$thread建立联系,比如你加个$list变量,在loop里把每个$attach加到$list里去,然后再让$list和$thread建立关系:$thread[‘alist’]=$list
回复 牛肉炖土豆 2018-1-2 09:42 AM
天香公主: 你这段话每一句都是新添的?那它们插在了那个文件的哪个部位呢?

我查了下你的第一句话在这个文件里只出现过一次,如果你是要将这段话加在那里的话应该不行,因 ...
source\module\forum\forum_forumdisplay.php
插在$threadids[$threadindex] = $thread['tid'];后面了,是新添加的
回复 天香公主 2018-1-2 09:39 AM
牛肉炖土豆: 我在这里加的\forum_forumdisplay.php

include_once libfile('function/post');
include_once libfile('function/attachment');
$thread['post'] = C::t('forum ...
你这段话每一句都是新添的?那它们插在了那个文件的哪个部位呢?

我查了下你的第一句话在这个文件里只出现过一次,如果你是要将这段话加在那里的话应该不行,因为那里没定义$thread
回复 牛肉炖土豆 2018-1-2 09:24 AM
我在这里加的\forum_forumdisplay.php

include_once libfile('function/post');
include_once libfile('function/attachment');
$thread['post'] = C::t('forum_post')->fetch_all_by_tid_position($thread['posttableid'],$thread['tid'],1);
$thread['post'] = array_shift($thread['post']);
$attachments = C::t('forum_attachment_n')->fetch_all_by_id('tid:'.$thread['post']['tid'], 'pid', $thread['post']['pid']);
foreach(C::t('forum_attachment')->fetch_all_by_id('pid', $thread['post']['pid'], 'aid') as $attach) {
$attach = array_merge($attach, $attachments[$attach['aid']]);
$attach['filenametitle'] = $attach['filename'];
$attach['ext'] = fileext($attach['filename']);
}
回复 牛肉炖土豆 2018-1-2 09:21 AM
天香公主: 不太理解你的意思。不知你在forum_forumdisplay.php里的哪里定义$attach还是$attach[‘filename’]没赋值?如果你是要用于主题列表页,那那个网页上每行对应着一 ...
是的,您说的没错,页面右多个主题,主题又有多个附件,
我需要在模版里判断每个主题里面的附件后缀是不是gif,所以要用到php截取后缀名的函数$attach['ext'] = fileext($attach['filename']);来在PHP定义它。
只不过这个$attach['filename']在列表页是空值,其实是有值,但是输出后每个主题每个附件的名字都是一样的。。。
回复 天香公主 2018-1-2 09:10 AM
牛肉炖土豆: 经测试,$attach['ext'] = fileext($attach['filename']);
能在\discuzcode.htm获得后缀名,可是在主题列表却无效了
我试着forum_forumdisplay.php在这里定义也 ...
不太理解你的意思。不知你在forum_forumdisplay.php里的哪里定义$attach还是$attach[‘filename’]没赋值?如果你是要用于主题列表页,那那个网页上每行对应着一个主题,而一个主题里有多个附件,而且一个主题里有多个帖子,每个帖子也能有多个附件,你在那页上要添加什么呢?
回复 牛肉炖土豆 2018-1-2 08:34 AM
天香公主: 对啊,每一行对应了一个aid,在你的图里有些附件是jpg,有些是mp4,你在$attachment['filename']也应该看到同样的内容。

我不知你是怎么检查$attachment['filen ...
经测试,$attach['ext'] = fileext($attach['filename']);
能在\discuzcode.htm获得后缀名,可是在主题列表却无效了
我试着forum_forumdisplay.php在这里定义也不行。然后发现
$attach['filename']这个在主题列表页无效,导致无法获取扩展名,也不知道在哪里定义的...找了一天,被这个卡住了,求助!
回复 牛肉炖土豆 2017-12-31 12:26 AM
天香公主: 对啊,每一行对应了一个aid,在你的图里有些附件是jpg,有些是mp4,你在$attachment['filename']也应该看到同样的内容。

我不知你是怎么检查$attachment['filen ...
不明白,我再研究研究
PS:哦哦,果然输出了文件名.后缀,谢谢,搞定了
回复 天香公主 2017-12-31 12:09 AM
牛肉炖土豆: forum_attachment_1是jpg
forum_attachment_6是mp4,gif,jpg
forum_attachment_9是mp4,jpg,gif如下图
看了下表,基本都是混着的,不是单独的记录哪个后缀,奇怪
...
对啊,每一行对应了一个aid,在你的图里有些附件是jpg,有些是mp4,你在$attachment['filename']也应该看到同样的内容。

我不知你是怎么检查$attachment['filename']的值的,我上了张示意图显示了我检查的结果 http://www.bian-wang.com/discuz/data/attachment/album/201712/31/000104p1614ei6vcij06uf.png
回复 牛肉炖土豆 2017-12-30 11:50 PM
天香公主: 不知道为什么会是这样。可以去数据库里查查在forum_attachment_1之类的数表里的filename表列里的文件后缀都是什么样的 ...
forum_attachment_1是jpg
forum_attachment_6是mp4,gif,jpg
forum_attachment_9是mp4,jpg,gif如下图
看了下表,基本都是混着的,不是单独的记录哪个后缀,奇怪
http://www.bian-wang.com/discuz/data/attachment/album/201712/31/000033si0t1i3pditqzz6t.jpg
回复 天香公主 2017-12-30 11:41 PM
牛肉炖土豆: 这个$attach['filename']在模版里输出的是timg.后缀。无法作为判断后缀使用,

像这种{if $attach['filename']}GIF图片{else}不是GIF{/if} ...
不知道为什么会是这样。可以去数据库里查查在forum_attachment_1之类的数表里的filename表列里的文件后缀都是什么样的
回复 牛肉炖土豆 2017-12-30 11:35 PM
天香公主: 如何得到附件图片的后缀?前两天我们讨论过$attach,$attach['filename']是图片的文件名,包含后缀
这个$attach['filename']在模版里输出的是timg.后缀。无法作为判断后缀使用,

像这种{if $attach['filename']}GIF图片{else}不是GIF{/if}
回复 天香公主 2017-12-30 11:26 PM
如何得到附件图片的后缀?前两天我们讨论过$attach,$attach['filename']是图片的文件名,包含后缀

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

小黑屋|Archiver|彼岸网  

Powered by Discuz! X3.1 © 2001-2014 Comsenz Inc.
GMT-4, 2018-1-19 12:59 PM , Processed in 0.057059 second(s), 8 queries. ,ApcOn

返回顶部