joomla中文模板 title alias 中文好还是英文好

Joomla!的标题当然就是整个文章的标题了,可以是任何中文或者其他的语言,但是Joomla!的别名是和SEF有关系的,其实就是相当于一个网页/文章的文件名,但是Joomla!本来是不支持识别中文名称的别名,会自动把其他非英语系的别名转换成为日期形式或者标题里面的某些英语系文字。看看这个例子:
1.标题是纯中文,别名自动转换成为日期形式!2.标题是中英文混合的,别名自动转换成为标题里面的某些英语系文字!
当然,Joomla!的别名不支持中文语系会产生一些问题,看看这个例子:
1.标题:Joomla 2008 教程,标准的Joomla!别名,joomla-2008,显示形式是(id1)-joomla-20082.标题:Joomla 教程 2008,标准的Joomla!别名,joomla-2008,显示形式是(id2)-joomla-2008
这个时候当然是没有任何问题了,但是如果开启了某些SEF扩展程序功能的时候,(id1)和(id2)是不会出现在URL里面的,所以两个文章在URL里面显示的都是 joomla-2008(.html),这样就会把不同的文章都使用了同一个文件名了,当然是会出错了,所以说Joomla!的标准 别名/Alias 对中文语系的网站支持的不太友好!但是现在已经有两个方法可以让Joomla!的别名更好的支持中文SEF了!1.Joomla!将空的别名自动转换成为汉语拼音形式:hoping的文章:Joomla!在前台添加文章时,是不用输入标题别名的,它会自动的以当前时间做为别名。这样,当开启了SEF时,前台的内容链接看起来不太好看,后面一大堆的数字,当然,这只是针对您的文章的标题为全汉字而言。所以就想着能把空的别名自动转换成为汉语拼音,让它看起来舒服一些。这时候,需要添加一个常见的汉字处理类 Chinese.inc.php 。修改方法:打开 /libraries/joomla/database/table/content.php 并且搜索
if(empty($this-&alias)) {$this-&alias = $this-&}
if(empty($this-&alias)) {include_once(JPATH_ROOT."/includes/Chinese.class.php");$chs = new Chinese('UTF-8', 'PINYIN');$this-&alias = $chs-&convert($this-&title);}
这样,当用户在前台提交文章的时候或者在后台添加文章没有输入别名的时候,会自动把标题里面的所有中文汉字转换成为汉语拼音。另外 Chinese.class.php 文件可以自己下载!
2.Joomla!直接支持中文别名:kochin的文章:Joomla!的连结其实是用 Alias 字段。然而这 Alias 字段并不一定是你输入的文字或由 Title 字段复制过来,它是经过转换的结果,这转换过程会把 Alias 字段变成只有英文、数字与破折号的形式。当你储存一篇文章、单元、分类或选单时,Joomla!会把 Alias 字段(可能是由 Title 字段复制过来)送交给 JFilterOutput::stringURLSafe() 处理。而 stringURLSafe() 函式则把这字符串喂给 JLanguage::transliterate(),在那里用上函式 utf8_decode(),然后 htmlentities()。接下来字符串中所有奇怪的字符(对英文语系的人来说)都以正常的字符取代,中文或日文语系无法通过这些处理过程。回到 stringURLSafe(),所有的空格以及非英文数字符号被以破折号取代或被移除。任何中文或日文字都从字符串里面消失了,并且故事还未结束。因为在经过了这些虐待后字符串极可能只剩下破折号或完全空白,函式 check() (在几个地方出现)在叫用 stringURLSafe() 后,最后把只剩下破折号或完全空白的字符串用时间戳记来取代。如果要使用中文的 别名/Alias/链接 (也就是在 Alias 字段里使用中文),需要修改两个文件。首先修改 /libraries/joomla/filter/filteroutput.php 里面的 stringURLSafe() 函式,搜索
$str = preg_replace(array('/\s+/','/[^A-Za-z0-9\-]/'),array('-',''),$str);
$str = preg_replace(array('/\s+/','/\./'),array('-','_'),$str);
接下来修改 /libraries/joomla/language/language.php 搜索
$string = htmlentities(utf8_decode($string));
$string = htmlentities($string, ENT_COMPAT, 'UTF-8');
ok了,现在Joomla!的别名已经更好的支持中文语系的网站了,kochin和hoping的方法一个是直接使用中文别名,另外的是转换成为拼音别名,喜欢使用哪个方法当然是随便你的喜欢了,最好的方法当然是没有输入别名的情况里面使用拼音别名,在输入中文别名的情况里面使用中文别名。如果都不喜欢的话,转换成为日期的形式也不错,打开 /libraries/joomla/database/table/content.php 并且搜索
$this-&alias = $this-&
$this-&alias = $datenow-&toFormat("%Y%m%d%H%M%S");
现在还不知道 Google/Baidu/Yahoo 等的搜索引擎对哪个方法的SEF支持比较好一些!大家可以尝试一下这些方法
当前位置: Joomla!标题与别名的关系温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
如果一切是梦,那也请让我做完!
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
&&& ·到下载最新版本的K2 &&& ·进入Joomla站点管理后台-&扩展-&安装/卸载 &&& ·点击“浏览”,选择之前下载好的K2压缩包,点击“上传并安装” &&& ·搞定;在“组件”目录中点击“K2”进入首页面板(Dashboard)及全局导航首先展现在我们面前的K2 Dashboard,K2组件首页面板。通过Joomla管理后台中“组件”菜单里面的“K2”进入其首页;我们可以看到,整个首页面板分为两个部分:全局导航菜单和图标形式的常用任务面板,图标又大又好看。如下图所示:
通常情况下,用到最多还是全局导航菜单,毕竟在操作任务转变的过程中不需要回到K2首页再做选择。
&&& ·首页面板链接(Dashboard):一定要回到K2首页的话,猛击这个东东。&&&& ·内容条目(Items):由于可以变相的定制内容类型,K2将所有单篇内容称为item,内容条目;这里就是全部条目的列表了。&&&& ·内容分类(Categories):K2不使用Joomla原生的Section机制,取而代之的是多级可嵌套的分类机制。&&&& ·内容标签(Tags):在K2中,我们可以为内容添加tag标签;点击这个菜单项就可以查看和管理所有用到的标签。&&&& ·评论(Comments):K2内建评论功能,在这里我们可以查看和管理所有评论。&&&& ·用户(Users):查看和管理所有用户,包括普通注册用户和内容协作者等角色。&&&& ·用户组(User Groupds):在这里创建或管理用户组别,并对组别设置不同的权限规则。对Joomla原生的用户管理机制是个不错的弥补。&&&& ·额外属性域(Extra Fields):记得前面一篇文档中提到的那些有关佳能相机的价格、重量、颜色等信息吗?就是它了;K2的卖点之一。&&&& ·额外属性域组(Extra Field Groups):为Extra Fields分组;不同的内容类型也是通过这里创建的组别来绑定对应的Extra Fields的。&&&& ·信息(Information):查看系统信息,包括已安装的K2的组件和插件信息等。以上是K2首页面板及全局导航;接下来我们将通过三篇实例操作演示来学习怎样在K2中创建内容分类、额外属性域以及内容条目。1.创建分类(Categories)为什么从分类开始呢,因为内容需要分类,内容所需的额外属性域同样需要通过分类来绑定给内容。比如我们要写一篇关于佳能EOS Rebel的内容,那么通常我们需要将这篇内容归入“相机”分类中;与Joomla原生的方式不同,K2分类中没有默认的“未分类(Uncategorized)”。
我们眼下的目标,就是打造一个类似K2官方demo中的分类首页这样的页面。
&&& ·点击K2全局导航中的“Categories”进入分类列表页面&&&& ·点击右上角的“New”进入分类创建页面,如下图所示:
对应着页面截图,我们看下创建分类的大致步骤:
&&& ·在“标题(Title)”中输入分类的标题;我们输入“Catalog”。&&&& ·在“标题别名(Title Alias)”中同样输入“catalog”作为SEF URL中的页面名称。&&&& ·“父级分类(Parent category)”和“继承父级分类的参数设置(Inherit parameter options from category)”暂时无视,因为我们正在创建一级分类。&&&& ·“绑定额外属性域组(Associated Extra Fields Group)”同样可以无视,我们还没有进入创建额外属性域的环节。&&&& ·可以在下面的编辑器中为当前分类输入一些描述文字,当然不是必需;在“Image”标签中,可以为该分类上传一张图片作为标识。&&&& ·点击“保存并新建(Save and New)”。&&&& ·创建4个二级分类:“Digital”、“Climbing”、“Bikes”和“Snowboard”。记得在为他们选择“Catalog”作为父级分类。&&&& ·最后点击“保存(Save)”完成分类创建的过程。
K2的范例页面中还有另外两个一级分类,“Blog”和“Magazine”,我们也可以效仿着创建出来;这样,我们就拥有了3个主要的内容类型,其中“Catalog”类还有4个二级分类;如下图所示:
2.创建额外属性域并绑定给指定内容分类内容分类创建完成以后,我们的内容就可以在将来被很好的组织起来了。现在我们可以预先定义一些额外信息来绑定给将要发布的内容。我们仍以佳能EOS相机为例;与博客和杂志页面不同的是,这样的产品页面自然需要一些额外信息,例如价格、颜色一类(可以参考概述中的截图演示)。来看看怎样创建这些额外信息:
&&& ·点击K2全局导航中的“Extra Field Groups”进入额外属性域组列表页面&&&& ·点击右上角的“New”进入额外属性域组创建页面&&&& ·输入“Additional Info”作为组的名称,点击右上方的“保存(Save)”&&&& ·点击K2全局导航中的“Extra Fields”进入额外属性域列表页面&&&& ·点击右上角的“New”进入额外属性域创建页面;局部如下图所示:
现在,效仿K2官方的范例,我们需要创建下面4个属性:
&&& ·价格(Price)&&&& ·重量(Weight)&&&& ·颜色(Color)&&&& ·更多信息的链接(More info) 对应着上面的截图,在Name中输入属性的名称,如价格;记得在Group中选中我们之前创建的“Additional Info”
&&& ·对于价格、重量、颜色,我们可以在Type中选择“文字域(Text Field)”&&&& ·对于更多信息的链接,我们在Type中选择“链接(Link)”,在下面展开的设置选项中,还可以进一步设置新页面将以怎样的形式打开(新窗口、传统Javascript弹出窗口、Lightbox弹出)。&&&& ·创建完成后,回到“Extra Fields”页面,如下图所示:
接下来,我们需要将前面做的这些额外属性与之前创建的“Digital”类别进行绑定;不过实际上我们将要将额外属性域绑定给Digital的父级分类“Catalog”,顺便演示一下有关“继承父级分类的参数设置”的操作。
&&& &&& ·点击K2全局导航中的“Categories”进入分类列表页面&&&& ·点击“Ctalog”进入其编辑设置页面&&&& ·在“绑定额外属性域组(Associated Extra Fields Group)”中选择“Additional Info”,保存修改。&&&& ·进入“Digital”分类的编辑设置页面,在“继承父级分类的参数设置(Inherit parameter options from category)”中选择“Catalog”;通过继承关系的设置,之前绑定给“Catalog”的额外属性域也就同样绑定给了“Digital”分类。&&&& ·我们可以重复这样的操作,使“Climbing”、“Bikes”、“Snowboard”三个分类同样继承“Catalog”的设置。 有关额外属性域的创建及分类绑定,基本就是这样;逻辑很清晰,操作也不难,实际应用中比较重要的倒是我们自己对内容结构的组织、继承关系的规划、附加信息的设计一类,需要多想想先。
3.创建内容条目&&& ·点击K2全局导航中的“Items”进入内容条目列表页面&&&& ·点击右上方的“New”进入内容条目创建页面;局部截图如下
在这里,我们就可以见识K2在组织内容图片、图片集、视频、额外属性域、附件等方面的能力了。仍以相机作为内容范例:
&&& ·在“标题(Title)”中输入“Canon EOS Rebel”。&&&& ·在“分类(Category)”中选择“Digital”。&&&& ·随便添加些不同类型的内容吧:&&&&&&&& ·内容(Content):这里输入正文内容。&&&&&&&& ·图片(Image):上传一张图片作为这篇内容的主要配图。&&&&&&&& ·图片集(Image Gallery):除了主要配图以外还可以创建一系列幻灯片形式的图片;需要安装同样来自JoomlaWorks的Simple Image Gallery插件。&&&&&&&& ·视频(Video):为内容添加视频,需要安装同样来自JoomlaWorks的AllVideos插件。 额外属性域(Extra Fields):通过前面一篇文档教程中的学到的操作,现在我们可以在这里看到“Price”、“Weight”等属性域;为他们输入信息。&&&&&&&& ·附件(Attachments):上传附件供用户下载。&&&& ·点击右上方的“Save”保存内容条目,搞定!&
K2在用户方面的机制在K2中,所有用户都拥有自己的个人资料,如果你的站点是多人协作类型的呢,那么每个作者发表的文章底部都会以预先设置好的格式来显示个人资料,包括头像图片,作者名和介绍一类。看看这个K2官方演示页面中,内容下面的眼镜君:
眼镜君看上去很有才华。K2中的用户有两个类型:
&&& ·管理员(Administrators):拥有管理员或超级管理员权限,他们可以直接在站点后台K2组件的用户管理中上传自己的用户信息。&&&& ·前端用户(Front-end users):通过K2自带的登录模块在网站前台登录并管理自己的用户信息。 目前,K2还无法支持对用户资料的额外属性域自定义,现在可以用到的信息只有:
&&& ·用户名(Name)&&&& ·电子邮箱(Email)&&&& ·性别(Gender)&&&& ·头像(Avatar)&&&& ·个人网站(Website)&&&& ·描述(Description) 管理员可以直接在后台K2组件中创建新用户并填充这些信息,普通前端用户需要走注册流程,具体还要看管理员对注册及个人信息发布的设置。
K2不但支持多人协作进行多分类内容的创作,而且允许将作者按照类别角色分组。
比如说,如果站点中专门有一部分内容作者属于“数码产品通讯员”,他们专门负责报道数码相机方面的新闻,那么我们可以进入K2的用户组(User Group)列表页面,点击右上方的“新建(New)”;创建用户组的页面局部如下图所示:
在这里,我们可以创建新的用户组,为这个组的用户指定操作权限,例如是否允许发表评论,是否允许前台编辑一类;同时还可以将这个用户组绑定给特定的内容分类;按照我们之前举的例子呢,“数码产品通讯员”就可以分配给“Digital”了。
按照操作权限的分配情况,用户可以分为三个类型:
&&& ·内容贡献者(Contributors):可以在指定的内容分类中添加内容。&&&& ·普通编辑(Copy Editors):可以编辑和发布指定分类中的内容。&&&& ·高级编辑(Senior Editors):可以添加、编辑、发布和设置所有分类中的内容。 如果我们启用了“K2 Login”模块,那么拥有发布内容权限的用户在登录之后就可以直接在网站前台发布内容,而无需进入管理后台了。
内容标签(Tag)的创建原生自带标签功能,可以说是K2的一个特色之一,免去了不少麻烦。通过标签,我们可以向用户多提供一条内容索引和分类的途径;如下图:
为内容条目添加条目那也是相当轻松的;从v2.2开始的K2提供了两种添加标签的机制,选取和自由添加。下面是添加标签操作的局部截图:
有关标签就是这些内容,熟练操作起来没想象的那么难。
K2菜单链接
与以往不同,这次不进K2,而是进入Joomla系统的“Menus -& Main Menu -& New”来新建一个K2类型的菜单项;当然未必一定在Main Menu中来做,只是举个例子。K2类型的菜单项共分为如下几个子类型:
&&& ·内容条目(Item):类型对应着通过K2创建的某个单篇内容。&&&& ·分类(Categories):会陈列出通过K2创建的某分类中的内容。&&&& ·标签(Tag):用来显示通过K2创建的包含某tag标签的全部内容。&&&& ·用户页面(User Page blog):用来显示某用户的个人页面,内容将以blog的形式输出。&&&& ·最新内容条目(Latest items):来自某用户或从属于某个分类的最新内容条目。&在中,我们可以看到一个比较典型的K2菜单项:
&&& ·Product为“Item”类型的菜单项&&&& ·Blog Entry为“Item”类型的菜单项&&&& ·Category Layout和Product Categories为“Categories”类型的菜单项&&&& ·Latest Items为“Latest items”类型的菜单项 &关于K2,也就是这些功能,我们的教程也至此结束,希望可以对正在应用摸索或正想用K2的人提供帮助!&
阅读(6162)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_',
blogTitle:'Joomla K2内容管理系统中文教程',
blogAbstract:'
&&& 为什么使用K2? Joomla原生的内容机制允许我们输入文章的标题与正文,而K2带来了更大的灵活性,我们可以为单篇内容添加更多的信息(通过Extra Fields,额外属性域)。举个简单的例子吧,假设有一篇关于佳能EOS相机的介绍文章,除了标题与正文之外,我们可以使用K2为内容添加类似下面截图中所示的附加信息:
blogTag:'k2,joomla,gantry',
blogUrl:'blog/static/38',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:4,
permalink:'blog/static/38',
commentCount:1,
mainCommentCount:1,
recommendCount:2,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'如果一切是梦,那也请让我做完!',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}Joomla 3.x Sql注入漏洞分析 -
| 关注黑客与极客
Joomla 3.x Sql注入漏洞分析
共235743人围观
,发现 7 个不明物体
Joomla是一套获得过多个奖项的内容管理系统(Content Management System,CMS),它采用PHP+MySQL数据库开发,可以运行在Linux、Windows、MacOSX、Solaris等多种平台上。除了具有新闻/文章管理、文档/图片管理、网站布局设置、模板/主题管理等一些基本功能外,还可以通过其提供的上千个插件进行功能扩展。同时它还支持多种语言,由于它的功能非常强大,语言支持强,因此在全世界范围内都有很广泛的应用。&
一、漏洞分析
漏洞触发的代码位于:/administrator/components/com_contenthistory/models/history.php, getListQuery()函数内:
通过SQL及报错信息,可以知道我们的注入payload被插入到了红色框部分内。跟进getState()函数,位于ibraries/legacy/model/legacy.php文件内,代码如下:
从函数参数和官方注释,可以知道,getState()函数功能是获取一个model的属性及属性对应的值,getState()函数在model的属性未设置时,会执行$this-&populateState()来对model的一些属性进行赋值操作。
我们跟进populateState()函数看下做了什么操作,代码位于:/administrator/components/com_contenthistory/models/history.php 内:
该函数从用户输入中取出item_id,type_id,type_alias,等几个变量,对当前model的属性进行赋值,可控变量均强制为integer类型,无法利用。顺着最后一行代码:parent::populateState('h.save_date', 'DESC'),继续跟到父类中看父类populateState()函数的定义,代码位于:libraries/legacy/model/list.php,482行附近:
getUserStateFromRequest()函数用于将GET/POST中得list[]变量取回到$list中,并在第三个参数中指定该变量类型为array(),继续跟进:
代码对取到的list[]数组进行了遍历,并做相应的过滤、拆分,可以看到list[select]没有处理逻辑,会进入default的case,后续$this-&setState('list.' . $name, $value)代码执行后,导致请求中list[select]变量没有任何变量被直接赋值给Model属性,继续回头看文章最开始的注入位置,此时我们可以控制$this-&getState('list.select')的返回值,构造SQL注入。
确认了输入可控的位置,构造有效的payload,还需要解决几个小问题。构造POC:index.php?option=com_contenthistory&view=history&item_id=1&type_id=1&list[select]=(exp(~(select * from(select md5(1))x)))
会发现出现错误提示:Unknown column 'Array':
需要增加list[ordering]=将原SQL中的order by字段值清空。
最终可执行POC:
/index.php?option=com_contenthistory&view=history&item_id=1&list[ordering]=&type_id=1&list[select]=(exp(~(select * from(select md5(1))x)))
执行会返回:
此带回显POC成功执行需要一个前提条件,就是传入的item_id 可以在Joomla_ucm_history表中查询到,否则会返回“500 – Layout default not found.”的提示。根据原文描述,可以暴力猜解item_id或使用time_based payload,不再赘述。&
二、漏洞影响
joomla3.2-3.4.4版本&
三、修复方案
目前Joomla官方已经跟新3.4.5版本,用户可登陆后台进行更新。
或下载官方升级包升级,下载地址:
四、参考链接
*作者/阿里安全(企业账号),转载请注明来自FreeBuf黑客与极客()
感谢翻译。
感谢翻译。
必须您当前尚未登录。
必须(保密)
阿里巴巴集团安全应急响应中心
关注我们 分享每日精选文章Joomla别名(alias)的作用和中文别名 - 来杯咖啡,随便聊聊。 - ITeye技术网站
博客分类:
关键字:SEO(搜索引擎优化),SEF(搜索引擎友好),Joomla,alias,别名
Joomla的文章别名(alias),默认是不能使用中文的,默认它会自动过滤到中文只剩下英文和数字;如果别名什么都不写,Joomla默认用时间作为别名。这些都不是我们想要的,因为我们在利用SEF生成url时候,还是很想让url中带有中文的,这时候我们就需要手动去修改Joomla的某些文件了。
这里需要说明的是Joomla为什么一篇文章需要有名称和别名,因为文章的名称会在浏览器中默认显示为标题,而别名是用来做SEF的,如下图,我们利用别名生成url。
如果要使用中文的 别名/Alias/链接 (也就是在 Alias 字段里使用中文),需要修改两个文件。首先修改 /libraries/joomla/filter/filteroutput.php 里面的 stringURLSafe() 函式,搜索
$str = preg_replace(array('/\s+/','/[^A-Za-z0-9\-]/'),array('-',''),$str);
替换为
$str = preg_replace(array('/\s+/','/\./'),array('-','_'),$str);
接下来修改 /libraries/joomla/language/language.php 搜索
$string = htmlentities(utf8_decode($string));
替换为
$string = htmlentities($string, ENT_COMPAT, 'UTF-8');
ok了,现在Joomla的别名已经更好的支持中文语系的网站了。这里需要注意的是,如果你使用了SEF,请注意里面有一个选项就是url支持UTF-8格式,这项需要选中,否则SEF不能生成中文连接。如下图(以ARTIO JoomSEF 举例):
有人可能会为为什么别名中文这么重要,其实这个主要是针对搜索引擎优化用的,因为在url中包含关键字,被搜索引擎找到的概率更大一些,排名更前一些,所以这点还是蛮重要的,尤其是针对中文网站,中文别名还是很重要的。不过话说回来了Joomla让别名默认就支持UTF-8格式的不更好?省的手动去修改了。
文章地址:
浏览: 2097554 次
来自: 北京
感谢提供jar!
谢谢,学习了
虽然免费,但是相当不好用,还是用专业的产品吧,推荐用PageO ...Joomla建站常见的十大设计错误<转载>
其实以下这些错误不仅仅出现在 Joomla! 建站过程中,几乎所有的网站设计过程都有可能出现。当然并非每个人都会犯这些错误,有经验的 Web Designer 绝对没有这些错误。我写这篇文章主要针对完全没有经验的、想要借助 Joomla! CMS 来 DIY 一个网站的用户。常见错误也绝不止 10 种,Jakob Nielsen 在撰写他的 Alertbox 系列时,有多个版本的&Top Ten Mistakes in Web Design&。本文就是归纳了他的文章内容翻译而成。这些看似不起眼的错误往往对你网站影响很大,因此我会尽量介绍详细一些,强烈建议各位 Joomlar 在进行 Joomla! 建站时作为参考。有一种说法虽然未经科学验证,但是我觉得凭常识也知道是正确的:大多数访客在打开网页后 3 秒钟之内就作出判断他是否喜欢你的网站。因此,以下这些错误就一定要避免:1、糟糕的站内搜索(Bad Search)尽管 Joomla! 自带了搜索组件和搜索模块,但是默认的搜索范围只是自带的那些组件,如文章系统(单元、类别、文章)、Weblinks、联系人及 Newsfeeds,并不包括论坛、下载栏目、网上商店、图库、产品展示等。试想一下,你记得曾经在 Joomla! 中文论坛 上见过某个帖子讨论 RocketTheme 的 MediaMogul 模板安装方法,一段时间后想通过网站首页的搜索框找出这个帖子,却发现搜不出来 && 因为站长放置的系统搜索框不能搜索论坛内容,你岂不是很恼火?!不过,本站长没有犯这个错误,因此你可以在本站任何一个页面的顶部搜索框里面输入 MediaMogul 这个词找到那个帖子。尽管某些第三方组件可能自带了搜索框,例如下载栏目的 Remository 自带&搜索下载文件库&,SMF 论坛也自带了搜索功能,但是分散在站内各处的这些搜索框肯定不是访客所喜欢的。因此,你必须确保你的&搜索&输入框能够搜出站内任何一个角落的内容。用 Joomla! 建站时实现这一点很容易:你只需安装针对其它组件的 searchbot 即可。这些 searchbot 的功能就是将该组件的内容纳入 Joomla! 的全站搜索范围。对于内容较多的网站,很多访客没有耐心自己去寻找某个特定内容,因此你必须提供方便的、全面的站内搜索。上一步已经实现了&全面&,要做到&方便 &,就要将搜索框放置在每一个页面上。最常见的方式是:将搜索框放在每一个页面的左上角或者右上角。也就是说,你必须在模板的这个位置给搜索模块留下发布位置,同时在后台&模块管理&中,要将 search 这个模块发布到&所有页面&。2、嵌入到文章页面的 PDF 文档(PDF Files for Online Reading)前些天还有人在论坛询问 如何在 Joomla! 文章内容中直接展示 PDF 文档,而实际上这种做法很不好。据说当页面中嵌入展示 PDF 文件时,浏览器对该页的打印或保存命令就无法正常工作。而且,大多数情况下这些嵌入的 PDF 文件都是在页面中开一个小&窗口&(wrapper)来展示,访客不得不拖动滚动条才能阅读 && 你喜欢吗?因此,强烈建议将 PDF 文件作为文章的附件让访客下载(用 Attachments 组件很容易做到)。如果你想展示其中内容,那么不要偷懒,请将 PDF 文档的内容复制出来,做成标准的 HTML 网页给读者,同时也提供一份 PDF 格式下载。3、访问过的链接颜色没有改变(Not Changing the Color of Visited Links)如果访客能方便地知道自己已经浏览过哪些链接,就有助于访客作出决定下一步点击哪个链接。在明确了&哪些路已经走过&之后,就不会走冤枉路。当然,如果访客突然想再次阅读某个已经看过的内容,也有助于他迅速找到那个链接。因此,用不同的颜色标记出已经点击过的链接是很重要的。很多模板设计者忽略了这一点,他们过分关注色彩的协调而忘记了这一点。例如本站所用的 JA Mercury 模板,其默认设计就是点击过的链接仍然跟没有点击过的链接是同一个颜色和样式。当我了解到这一条信息之后,我就立即通过修改 CSS 文件中的 a:visited 条目改变了这个设计。4、没有层次的文字堆砌(Non-Scannable Text)很多人写文章几乎没有段落,洋洋数万言一笔写就。乍一看就是满屏文字(Text Wall),密密麻麻,让人喘不过气来。这样的版面不仅给人一种心理压力,而且在阅读时很容易&盯不住&,往往在换行时就看错行了。谁还乐意继续看下去?为了吸引读者并给他们提供最愉快的阅读体验,就必须使用以下技巧:& & * 灵活使用小标题(粗体,大号)& & * 多个排列语句使用有序列表或无序列表& & * 重点关键词高亮显示& & * 及时分段,每个段落不要多于 7 行& && && && && & +& && && && &&&利用&缩进&功能来增加更多层次& & * 页面外观要&耐看&,不要花花绿绿刺激眼球& & * 不同的超级链接不要靠得太近,某些访客使用触摸板而不是鼠标,这种情况下就很难准确点击到想要的那个链接& & * 用词恰当而简单,不要像90后的脑残人士连写120个汉字也没有标点符号而且句子里面充满了各种火星文字和无人知晓的历史典故例如将马勒戈壁这种脏话说成是爱好和平的息站之举在中文版式中还有一种习惯就是每个段落开头&滴两个字&,英文排版也是在段首留出 1cm 空白,这种阅读习惯最好在 web 页面上也体现出来。有人使用空格,有人使用无色透明图像来占位,有人用HTML 的 Pre 元素来实现,这些方法都不可取。其实完全可以通过修改 CSS 来实现段首空两个字。5、 固定文字大小(Fixed Font Size)通过 CSS 可以很方便地定义全站的文字大小,但是有些人错误地使用了&固定尺寸&而不是&相对尺寸&,造成页面上的文字大小是固定的。大多数情况下,是固定在了一个比较小的字号上,这就使得很多视力不太好的访客很难阅读,或者在某些分辨率较高的显示器上(例如
的高分屏)看起来很小。访客不得不通过浏览器菜单来手动调整字体大小,这就给他们增加了麻烦。因此,请在 CSS 中尽量使用相对值来定义文字大小。例如 em、ex(x-height)、px、% 这些就是相对单位,而 pt(point)、pc(=12px)、in、cm、mm 这些就是绝对单位。详细介绍请参看有关 CSS 教程。6、没有意义的页面标题(Page Titles With Low Search Engine Visibility)页面标题(Page Title)是指显示在浏览器标题栏(Titlebar,窗口标题)上的文字,它与文章标题(Content Title)的定义是不同的。由于搜索引擎搜索结果页面(SERP)上展示的链接就是 PageTitle,因此如果页面标题不能表达出吸引人的内容,就会被搜索者忽略。另外,当访客将某个页面添加到浏览器的收藏夹时,PageTitle 也被用来作为收藏夹中的标题。如果这个标题含糊不清,将来访客查看收藏夹时就根本不知道该页面是关于什么的。在过去,很多人用 FrontPage2000 或者 DreamWeaver 来做网页时,经常出现网页的 PageTitle 是&Untitled&,如果用的是中文版软件,就是&无标题&。这样的 PageTitle 简直糟糕透了。在 Joomla! 中,一般都会自动提取文章标题作为页面标题。所以这种错误少多了。但是,有些人在 Joomla! 建站时选择了使用&副标题&(Title Alias)作为 PageTitle,却忘记了设置恰当的副标题,也会不利于搜索引擎排名。Joomla! Team 犯的另一个错误是,所有用 Joomla! 建设的网站首页默认 PageTitle 都是&Welcome to frontpage&,这有什么意义?因此,你在安装完 Joomla! 之后,第一件事情就是修改 Welcome to frontpage 为你网站的名称或公司名称。对于二级页面,最好是这样的格式:文章标题 - 几个关键词 - 网站名称Joomla! 自身没有灵活的 PageTitle 设置机制,你可以借助一些插件,如 Title Manager 页面标题插件 或者 Website Name 页面标题插件 来获得更有意义的页面标题。7、内容外观像广告(Anything That Looks Like an Advertisement)经常上网的人已经养成一种习惯:看到广告就会跳过去。如果你的页面上某些内容外观很像广告,例如:& & * 480*60 尺寸的条幅图片 如果你要插图,就做得像插图一样,而不要像旗帜广告(banners)& & * 闪动的彩色文字和动画 频繁跳跃、滚动、闪烁的文字或动画非常令人讨厌,大多数访客都选择视而不见。& & * 弹出小窗口 很多人根本不看弹出小窗口的内容,甚至在它的内容没有完全载入之前就关闭了。这些样式给人的第一印象就是&可恶的广告&。就像一个良家妇女,穿得花枝招展,涂得五颜六色,露得若隐若现,没人当她是孔雀,别人不用看第二眼就认定是只鸡,而且是山寨版的。8、违反设计常规(Violating Design Conventions)&一致性&是非常重要的易用性原则。当某些事物经常用同一种行为来表达相同的意思,那么别人就不用猜测下一步发生什么,而是能够根据规律预测到将要发生什么。就好像看到乌云就知道快下雨一样。如果用户的这种预测能够得到证实,他们就感觉到自己融入了这个系统,并且会喜欢上它。如果用户的预测总是错误,他们就会受到打击,最后讨厌这种设计。例如,大家对文件下载的预测是看到一个&下载&或者&Download&链接/按钮,而有些人偏偏要写成&Get it here&;大家都知道蓝色带下划线的文字肯定是可点击的链接,而有些人偏偏将链接做成其它颜色且没有下划线;大家预测软件作者会将语言文件与安装包都发布到&下载栏目&,而有些人偏偏只在下载页面上发布软件程序,而将语言文件的下载链接放到 FAQ 页面上;大家都已习惯英文数字式的验证码方式,而有些人偏偏搞一些阿猫阿狗来让你辨认哪知猫嘴巴是闭着的;&&用户的这些习惯是从大量的网络体验中得到的,也就是说,这是一种&常规&,如果你非要做另类,只会伤害访客的感情。如果你的网站内容庞大,你就必须力争全站保持某些统一的&常规&来方便访客迅速适应你的网站,这样他们就会更加喜欢这个网站:例如用红色字体显示& 警告信息&,用绿色按钮提醒&下载文件&,用黄色感叹号图标表示&注意事项&,文章的附件都放在文章末尾;&联系我们&页面上有全面的地址、电话、 email 等资料;等等。顺便提一下,你可以借助 XTypo Plugin 预设 CSS 样式插件 来使网站看起来更专业。9、不能提供用户所需信息(Not Answering Users' Questions)别人访问你的网站都是有目的的,是为了寻找某种&信息&,而不是闲转。他可能想了解你们的产品,或者想知道你们的联系方式,或者想咨询某个专业问题,总之,他带着&我应该能在这个网站上找到答案&的这种期望来访问你的网站,假如你没有提供这种信息,或者提供的信息不够充足,访客自然会失望。或者你的产品介绍隐藏太深,无法从首页轻松点击链接而访问到,那么访客就误以为你没有这种信息。假如这时你的竞争对手没有犯这个错误,你就更惨了。对于网站首页的设计,更要注意:一定要在首页上显眼位置用一句话(Tagline)概括你的公司/网站/团队的主要特色或者产品或者服务或者宗旨或者使命。这样让访客很快有了一个轮廓上的认识。如果你觉得一句话还说不清楚,完全可以在首页开辟某个区域,用一段话来介绍。这在 Joomla! 建站时很容易做到&& 新建一个自定义模块即可。一个不可忽视的现实是,大多数访客期望通过点击&About Us&(关于我们)这个菜单来了解你的网站/公司。因此,如果你觉得上面的两种方式还不能够完整描述,就要创建专门的页面来详细介绍,并创建这样一个菜单项目 && 最好不要更改&About Us&这个说法,因为我们习惯了。很多公司网站在介绍产品信息时,对&价格&一项却讳莫如深。然而很多访客很想知道&到底卖多少钱&。于是很多公司就再设置一个&询价&页面,或者写上&欢迎来电询价&,这会让关心这个产品的买家转身离去,到生产同类产品的其它网站寻找价格。另外必须考虑的一种情况是:客户可能需要其它的替代选项,即&你们提供了这个,而我想要那个,行不行?&。例如,国外很多网站在支付方式上要求提供 信用卡信息,但是却忽略了客户可能没有信用卡,而是想要通过 Paypal 来付款;国内的网上商店可能提供了&支付宝&接口,但是有些买家希望通过邮局汇款。在这些情况下,最好在网站上醒目标出&我们是否接受 Paypal 付款&及&本站接受邮局汇款,汇款地址如下&这样的信息。否则,客户为了这一点疑问好要发邮件、打电话,将大大削弱客户对网站的满意度,从而影响到客户对公司形象的看法。如果你是一个 IT 公司,那么请说清楚你们的技术优势,软件特色,甚至与同类软件或竞争对手的比较;如果你是一个服务网站,请说清楚服务范围、服务时间、特殊要求等等;&& 总之,一定要提供访客想知道的内容。10、水平滚动页面(Horizontal Scrolling)有些人在设计 Joomla! 模板时固定了页面宽度,导致在某些分辨率较低的屏幕上出现水平滚动条。大多数访客对于这种需要水平滚动才能阅读的超宽页面非常讨厌。但是大家对于长度超过一屏而需要向下拖动垂直滚动条早已习惯。因此,请在选择 Joomla! 模板时放弃固定宽度的,除非该宽度小于绝大多数屏幕宽度;最好是模板自带宽度自适应或手动调整功能。还有些页面因为插入了太大的图片而撑破页面,从而出现水平滚动条。这种情况下就要 使用自动生成缩略图的插件来处理文章中的大图。顺便说一下:使用 Multithumb 这样的插件不仅避免了页面被撑破,而且产生了较小的缩略图,有助于快速打开页面。11、超长的网址(URL & 75 Characters)如果页面网址太长,大多数人记不住。如果 URL 长度超过了浏览器地址栏的容量,很多人就不知道怎样选择并复制这个 URL。因此,如果你希望你的访客记住某些 URL,或者希望他们能够不费劲地将你的网址准确推荐给他们的朋友,就保持你的网页 URL 容易理解且简短。实施 SEF 是一个不错的主意。虽然 Joomla! 1.5 已经改进了自带的 SEF 功能,但生成的网址仍然不够友好。我推荐使用 sh404SEF 友好网址管理组件。12、出乎意料的 E-mail 链接(Mailto Links in Unexpected Locations)要避免的错误是:不要将人名作为 email 链接。在网民的常识中,&用户名&或&姓名&都是指向&个人资料&的,而不是点击之后弹出 Outlook Express 的窗口来让你撰写邮件。建议直接使用 E-mail 地址作为链接,或者你可以将&点击此处发送邮件&这样的提示消息做成 email 链接。Joomla! 已经内置了 Email Cloaking 插件来加密页面中的 email 地址以防止机器人偷盗。你也可以通过安装 josBWrewi 插件将文字式的 email 地址变成图片式,或者用 Mailhide reCAPTCHA for Joomla 1.5 插件 来增强 email 保护功能,这样就更安全了。13、大量的 Flash 或图片替代文字内容曾经有人在论坛提问:Flash 会不会影响搜索引擎的收录。这是毫无疑问的:搜索引擎从一开始就是为了搜索&文本内容&而诞生。尽管有人指出 Google 可以索引一些 Flash,但是那需要在设计 Flash 时借助一些特殊技术。我相信不管到任何时候,即使将来搜索引擎拥有了强大的 OCR 能力,甚至视频识别能力,也没有识别、索引文字信息更方便。并不是说 Flash 一无是处,你只能用 Flash 来添加一些点缀,绝不能用 Flash 来传递重要内容。图片也是如此,不管是静态图片还是 GIF 动画,都只能作为一种点缀、补充,不可以用来替代文字信息。用 Flash 或图片做导航菜单更是大错特错,这样的菜单无法被搜索引擎正确索引,从而影响了 Joomla SEO 的效果。因此,在使用 Joomla! 建站时,要抛弃这种&超酷全 Flash 网站&的幼稚想法,时刻牢记网站的头等责任是&提供信息&,即俗称&内容为王&。
&&最后修改于
请各位遵纪守法并注意语言文明}

我要回帖

更多关于 joomla 免费中文模板 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信