01

JS获取当前地址中参数值的方法与取得的值乱码解决方法

JS传递链接时为确保在接收链接时不乱码,需要使用encodeURI()来传递链接,形式如下:

self.location = encodeURI('http://mrdede.com/?info=织梦先生' );

那么跳转后,在浏览器地址栏中显示的链接为:http://mrdede.com/?info=%E7%BB%87%E6%A2%A6%E5%85%88%E7%94%9F

那么需要使用JS接收参数值时,可使用下面GetQueryString函数,调用方法GetQueryString(参数名加引号)

总结知识点:

一、JS获取当前链接中的参数值。

二、JS编码传递链接和参数并解码的使用实例

encodeURIComponent传递参数时需要使用,这样组合的url才不会被#等特殊字符截断。

encodeURI链接跳转时可以整体使用

decodeURI接收链接并把编码的字符解码

01

简单实用:JS判断是否为移动设备(android、iphone、ipod等)

根据需求使用,不需要跳转的注释掉location.href…这一行,使用isMobile做其它判断,如:

if(isMobile==true){alert("您正在使用移动设备")}else{alert("您没有使用移动设备")}

30

Discuz触摸屏版 贴子列表页修改方法(调用帖子内容及附件、点赞、分享、收藏)

DZ触摸屏版 贴子列表页修改方法
模板文件位置/template/default/touch/forum/forumdisplay.htm
如果使用得不是默认模板,位置为/template/自定义模板名文件夹名/touch/forum/forumdisplay.htm

修改参看DZ数据表字典
discuz列表页调用帖子内容(正文)
实际使用下面实例时,去掉代码中双正斜杠“//”的注释内容。

DZ触摸屏版贴子列表页调用一张附件图片

如果有则调用,如果没有则不调用

DZ触摸屏版贴子列表页调用所有(多张)附件图片

解释如下:
表pre_forum_thread中字段attachment,附件类型,0无附件 1普通附件 2有图片附件
{if $thread['attachment'] == 2} //如果此贴字段attachment等于2时
$table等于forum_attachment_2
查询数据表pre_forum_attachment_2得到$thread['aid']的新值(调用单张图片的实例中使用的)
查询数据表pre_forum_attachment_2得到数组$thread['attachmentimg']
循环输出数据$thread['attachmentimg']的键和值($keyimg和$valimg,都为数组)
数据表pre_forum_attachment_2中字段attachment即为图片附件路径
所以图片附件路径为$valimg['attachment']
注:DB::fetch_all很好的东东

DZ触摸屏版贴子列表页调用点击收藏

DZ触摸屏版贴子列表页调用点赞(顶、支持)

开启DZ顶踩功能的方法:网站后台>>全局>>站点功能>>主题评价>>启用议题评价是(是)

DZ触摸屏版贴子列表页点击分享、调用分享数

前提条件:开启QQ互联功能插件
此没有完全测试,但我感觉这个分享还是直接使用其它分享插件,如百度分享等

原创文章,转载请注明出处(http://mrdede.com/?p=662),谢谢!

29

discuz模板中调用数据库的某个字段的方法

discuz模板中调用数据库的某个字段的方法

<!--{eval $slides = DB::fetch_all("    //执行SQL语句
SELECT *                                         //读取全部字段
FROM pre_common_block_item  //数据表 可以自定义 这个是DIY帖子内容表
WHERE bid=15                            //查询条件 BID 是DIY的模块id
ORDER BY displayorder ASC,id DESC //排序条件
LIMIT 0, 10                                      //获取前10条信息
");}-->
< !–{loop $slides $slide}–>    //循环 $slides 数组 使用  $slide[字段名]  获取内容
<a href="$slide[url]" target="_black"><img src="data/attachment/$slide[thumbpath]" width="300" height="450" alt="$slide[title]"/></a>
< !–{/loop}–>

29

Discuz! X3 数据字典 DZ数据表结构

pre_common_admincp_cmenu 后台菜单收藏表

字段名 数据类型 默认值 允许非空 自动递增 备注
id smallint(6) unsigned NO
title varchar(255) NO 菜单名称
url varchar(255) NO 菜单地址
sort tinyint(1) 0 NO 菜单类型,备用
displayorder tinyint(3) NO 显示顺序
clicks smallint(6) unsigned 1 NO 点击数,备用
uid mediumint(8) unsigned NO 添加用户
dateline int(10) unsigned NO 添加时间

pre_common_admincp_group 后台管理组

字段名 数据类型 默认值 允许非空 自动递增 备注
cpgroupid smallint(6) unsigned NO 后台组id
cpgroupname varchar(255) NO 后台组名称

pre_common_admincp_member 后台管理成员

字段名 数据类型 默认值 允许非空 自动递增 备注
uid int(10) unsigned NO 成员uid
cpgroupid int(10) unsigned NO 成员组id
customperm text NO 自定义管理权限

Continue reading

25

discuz列表页调用帖子内容及附件方法

功能:获取主题内容和图片附件

找到文件\source\module\forum\forum_forumdisplay.php

搜索(大约812行)$threadids[$threadindex] = $thread['tid'];

在此代码后增加如下代码:

修改后截图如下:

discuz列表页调用帖子内容及附件方法

调用方法:调用帖子文字内容

调用方法:调用附件图片

说明:

参看\source\function\function_post.php中的getattach_row函数(在文件的第61行)

首页要确定$thread['attachment'] == 2和数组$thread['attachments']['used']为真,才可以运行以下代码。

循环搜索数组$thread['attachments']['used']

在循环内数组$valimg[]可以调用表pre_forum_attachment_2中的键值(参看:Discuz! X3 数据字典 DZ数据表结构

DZ触摸屏版帖子列表页其它修改方法能看http://mrdede.com/?p=662

16

php class中对象属性和方法的可见性定义public,private,protected的区别,以及实例

一,public,private,protected的区别

public:权限是最大的,可以内部调用,实例调用等。

protected: 受保护类型,用于本类和继承类调用。

private: 私有类型,只有在本类中使用。

二,实例

从上面的例子中,我们可以看出,
public:    可以class内部调用,可以实例化调用。
private:   可以class内部调用,实例化调用报错。
protected:  可以class内部调用,实例化调用报错。

从上面的例子中,我们可以看出,
public:    test中的public可以被继承。
private:   test中的private不可以被继承。
protected:  test中的protected可以被继承。
static:        test中的static可以被继承。

唉,对于这些东西,老是不喜欢记着,用的时候,总感觉不对,又要去查,所以写个例子,方便自己查看。

Posted in PHP
09

PHP查找是否含有指定文字的方法

方法不在多,只要简单、有效、实用即可。

十二 23

一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10

在网站开发中不免因为各种兼容问题苦恼,针对兼容问题,其实IE给出了解决方案Google也给出了解决方案百度也应用了这种方案去解决IE的兼容问题

百度源代码如下

可以打开百度,右键查看源码看下!我们可以看下文件头是否存在这样一行代码!

这句话的意思是强制使用IE7模式来解析网页代码!

在这里送上几种IE使用模式!

<meta http-equiv="X-UA-Compatible" content="IE=8">
2. Google Chrome Frame也可以让IE用上Chrome的引擎:

<meta http-equiv="X-UA-Compatible" content="chrome=1" />
3.强制IE8使用IE7模式来解析

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"><!– IE7 mode –>
//或者
<meta http-equiv="X-UA-Compatible" content="IE=7"><!– IE7 mode –>
4.强制IE8使用IE6或IE5模式来解析

<meta http-equiv="X-UA-Compatible" content="IE=6"><!– IE6 mode –>

<meta http-equiv="X-UA-Compatible" content="IE=5"><!– IE5 mode –>
5.如果一个特定版本的IE支持所要求的兼容性模式多于一种,如:

<meta http-equiv="X-UA-Compatible" content="IE=5; IE=8" />
二.设定网站服务器以指定预设兼容性模式

如果服务器是自己的话,可以在服务器上定义一个自订标头来为它们的网站预设一个特定的文件兼容性模式。这个特定的方法取决于你的网站服务器。

录入,下列的 web.config文件使Microsoft Internet Information Services (IIS)能定义一个自订标头以自动使用IE7 mode来编译所有网页。

另外还有一起其他的解决方案,例如google的

ie7 – js中是一个JavaScript库(解决IE与W3C标准的冲突的JS库),使微软的Internet Explorer的行为像一个Web标准兼容的浏览器,支持更多的W3C标准,支持CSS2、CSS3选择器。它修复了许多的HTML和CSS问题,并使 得透明PNG在IE5、IE6下正确显示。

使IE5,IE6兼容到IE7模式(推荐)

使IE5,IE6,IE7兼容到IE8模式

使IE5,IE6,IE7,IE8兼容到IE9模式

解决PNG显示问题

只需将透明png图片命名为*-trans.png

需要注意的是:此方法对背景平铺(background-repeat)和背景(background-position)无法起到任何作用,默认会占满整个容器。
三、<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
创建html5时发现这么一句话,不知其什么意思,百度如下:
这 样写可以达到的效果是如果安装了GCF,则使用GCF来渲染页面,如果没安装GCF,则使用最高版本的IE内核进行渲染。Google Chrome Frame(谷歌内嵌浏览器框架GCF)。这个插件可以让用户的IE浏览器外不变,但用户在浏览网页时,实际上使用的是Google Chrome浏览器内核,而且支持IE6、7、8等多个版本的IE浏览器。