<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>nan.im &#187; Joomla</title>
	<atom:link href="http://nan.im/blog/tags/joomla/feed" rel="self" type="application/rss+xml" />
	<link>http://nan.im/blog</link>
	<description></description>
	<lastBuildDate>Sat, 28 Jan 2012 05:58:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>为 CMS 制作主题模板的 SEO 建议</title>
		<link>http://nan.im/blog/1069</link>
		<comments>http://nan.im/blog/1069#comments</comments>
		<pubDate>Wed, 26 Aug 2009 09:11:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[网站前端]]></category>
		<category><![CDATA[CMS 内容管理系统]]></category>
		<category><![CDATA[Develop 开发]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Joomla]]></category>
		<category><![CDATA[Search Engine Optimization（SEO）搜索引擎优化]]></category>
		<category><![CDATA[Theme Template 主题模板]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[zBlog]]></category>

		<guid isPermaLink="false">http://www.anyliv.com/blog/?p=1069</guid>
		<description><![CDATA[虽然诸如 Drupal Joomla 包括 WordPress zBlog 等在内的很多 CMS 已经在代码上将搜索引擎优化（SEO）做到极致，但如果在主题模板上对于 SEO 稍有松懈，其结果必然惨不忍睹，因为此类 CMS 的前端页面内容及代码结构几乎全部由主题模板（Theme &#38; Template）提供，所以无论哪个 CMS 在程序代码上如何努力，倘若主题开发人员对于模板代码的 SEO 稍有不慎，其后果不言而喻，这里我总结了一些我个人在制作各种 CMS 主题模板时的一些 SEO 心得及建议…… 既然 W3C 致力将网页标准建立在 Presentation（表现层）Structure（结构层）Behavior（行为层） 三层模型基础之上，我这里也将分别从这三个主要方面进行简单描述并在最后针对一些小细节做一些补充： 一、压缩 CSS 样式表及图片修饰：Presentation（表现层） 虽然 Drupal 等优秀的 CMS 可以自动压缩并合并 CSS 文件，但机器和程序也仅仅是从代码层面去压缩，我们何不从一开始就养成简写 CSS 的习惯呢，能使用类继承的属性不要单独写，充分理解 CSS 层叠的含义及最大限度发挥使用 CSS 控制 Presentation 表现层的真正价值；关于图片毋庸置疑的是图片带给人们的视觉冲击非常不错，为你的网站增色不少，但目前国内的网络状况决定我们不能像多数韩国网站那样天花乱坠，与页面内容无关的图片尽量使用 css Sprite 做背景的方法展示，这将不会过多的影响你页面内容的下载时间及大大减少 HTTP 请求次数，图片必须优化后再使用，推荐 Image Optimizer 是我用过最好的图片优化工具，其优化能力和效果大大超越 Photoshop 等软件。 [...]]]></description>
			<content:encoded><![CDATA[<p>虽然诸如 Drupal Joomla 包括 WordPress zBlog 等在内的很多 CMS 已经在代码上将搜索引擎优化（SEO）做到极致，但如果在主题模板上对于 SEO 稍有松懈，其结果必然惨不忍睹，因为此类 CMS 的前端页面内容及代码结构几乎全部由主题模板（Theme &amp; Template）提供，所以无论哪个 CMS 在程序代码上如何努力，倘若主题开发人员对于模板代码的 SEO 稍有不慎，其后果不言而喻，这里我总结了一些我个人在制作各种 CMS 主题模板时的一些 SEO 心得及建议……</p>
<p><span id="more-1069"></span></p>
<p>既然 W3C 致力将网页标准建立在 Presentation（表现层）Structure（结构层）Behavior（行为层） 三层模型基础之上，我这里也将分别从这三个主要方面进行简单描述并在最后针对一些小细节做一些补充：</p>
<h3>一、压缩 CSS 样式表及图片修饰：Presentation（表现层）</h3>
<blockquote><p>虽然 Drupal 等优秀的 CMS 可以自动压缩并合并 CSS 文件，但机器和程序也仅仅是从代码层面去压缩，我们何不从一开始就养成简写 CSS 的习惯呢，能使用类继承的属性不要单独写，充分理解 CSS 层叠的含义及最大限度发挥使用 CSS 控制 Presentation 表现层的真正价值；关于图片毋庸置疑的是图片带给人们的视觉冲击非常不错，为你的网站增色不少，但目前国内的网络状况决定我们不能像多数韩国网站那样天花乱坠，与页面内容无关的图片尽量使用 <a href="http://baike.baidu.com/view/2173476.html">css Sprite</a> 做背景的方法展示，这将不会过多的影响你页面内容的下载时间及大大减少 HTTP 请求次数，图片必须优化后再使用，推荐 <a href="http://xat.com/io/">Image Optimizer</a> 是我用过最好的图片优化工具，其优化能力和效果大大超越 Photoshop 等软件。</p></blockquote>
<h3>二、结构化 (X)HTML 代码：Structure（结构层）</h3>
<blockquote><p>我们知道 XHTML 主要负责网页的 Structure 结构层，如果不是用于大量多栏数据列表输出时请不要使用 table 排版，也就是通常人们说的使用 DIV+CSS 构建页面；另外对于搜索引擎来说，文档流中越先被下载的内容会被认为越重要，所以通常两栏的页面结构无论侧边栏在左边还是右边，在文档流代码上都会优先输出页面的主体部分然后再输出其他内容，之后再利用 CSS 来控制其在页面上的视觉位置。另外最为重要的还是语义部分，虽然多数人叫做 DIV+CSS 重构但并不是说页面里面所有的盒子都使用 DIV 来做，如标题必须使用 h1 &#8211; h6 标签，列表必须使用 li 标签等等，合理的语义标签对于向搜索引擎传达你的页面结构将起到决定作用，最基本的要求就是当你的页面停用 CSS 及图片渲染时也能给用户友好的体验并能醒目的凸现内容层次。</p></blockquote>
<h3>三、使用 JavaScript 脚本：Behavior（行为层）</h3>
<blockquote><p>使用 JavaScript 完全彻底的接管页面 Behavior（行为层）从而放弃在 xhtml 标签中使用诸如 onclick onmouseover 之类的用于判断用户动作行为的属性，使用单独的 js 文件及 getElementById().click() 及 document.createEvent().initEvent() 等方法为标签绑定动作，当然最好是使用 jQuery 等类库来处理用户行为及浏览器兼容性等问题，这会让你事半功倍并兼容这个星球上目前所有的主流浏览器。</p></blockquote>
<h3>四、除了以上三个比较大方面的注意之外当然还有一些小贴士：</h3>
<blockquote><p>尽量少用图片并优化已经使用的图片、为了 SEO 而放弃一些很炫的效果是值得的、尽可能减少隐藏代码和链接以提高页面信息熵、简约的版式往往最有效而且实用、使用无表格并符合 W3C 标准及模型的代码结构、与该 CMS 扩展套件相兼容、为图片及链接使用 alt 属性、善用下划线而不是滥用、列表索引页使用 noindex 标记避免由搜索引擎抓取而造成的重复内容惩罚、所有指向站外的链接如用于讨论的用户链接等尽量添加 rel=”nofollow” 以防止指向恶意代码或网站而被搜索引擎惩罚、使用谷歌 GoogleAPI 服务载入 JS 类库、等等……</p></blockquote>
<p>虽然只是给制作 CMS 模板主题的一些 SEO 建议，但这些建议用在非 CMS 的网站上也是绝对完全有效的，是时候将你的网站前端水平提升到一个新的层面，而这些一个个小的细节则是构成这些层面的基础。</p>
]]></content:encoded>
			<wfw:commentRss>http://nan.im/blog/1069/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【Joomla】优秀的免费开源 CMS Joomla 简介</title>
		<link>http://nan.im/blog/1032</link>
		<comments>http://nan.im/blog/1032#comments</comments>
		<pubDate>Fri, 31 Jul 2009 05:17:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[资源分享]]></category>
		<category><![CDATA[CMS 内容管理系统]]></category>
		<category><![CDATA[Develop 开发]]></category>
		<category><![CDATA[Joomla]]></category>
		<category><![CDATA[Theme Template 主题模板]]></category>

		<guid isPermaLink="false">http://www.anyliv.com/blog/?page_id=1032</guid>
		<description><![CDATA[Joomla（有人称其为逐浪）是一套采用 PHP+MySQL 开发，可跨平台运行的优秀内容管理系统（CMS）他除了具有新闻文章管理，文档图片管理，网站布局设置，模板主题管理等一些基本功能之外，还可通过其开源社区提供的上千个插件进行功能扩展，这里收集了一些对于 Joomla 主题及插件模块开发非常有用的资源分享给大家。 【官方网站】这是 Joomla 的官方网站：这里将提供 Joomla 的最新发行版本下载及介绍，当然还有很多对于 Joomla 非常有用的资源。 【使用教程】Joomla 中的一些概念及名词术语解释：通过对比 Joomla 和另一款优秀的 Drupal 系统中的一些概念差异，以帮助一些使用者在熟悉其中一款 CMS 的同时快速熟悉另一款系统。 【主题开发】Joomla 主题开发中常用的一些函数及技巧代码：收集了一些 Joomla 主题开发中经常使用到的一些函数变量及一些技巧性的代码，如判断首页、根据内容输入 div 等等。 【更多资源】请点击这里浏览本站更多关于 Joomla 的内容]]></description>
			<content:encoded><![CDATA[<p>Joomla（有人称其为逐浪）是一套采用 PHP+MySQL 开发，可跨平台运行的优秀内容管理系统（CMS）他除了具有新闻文章管理，文档图片管理，网站布局设置，模板主题管理等一些基本功能之外，还可通过其开源社区提供的上千个插件进行功能扩展，这里收集了一些对于 Joomla 主题及插件模块开发非常有用的资源分享给大家。<span id="more-1032"></span></p>
<p><a href="http://www.joomla.org/" target="_blank"><strong>【官方网站】这是 Joomla 的官方网站</strong></a>：这里将提供 Joomla 的最新发行版本下载及介绍，当然还有很多对于 Joomla 非常有用的资源。</p>
<p><a href="http://anyliv.com/blog/943.html"><strong>【使用教程】Joomla 中的一些概念及名词术语解释</strong></a>：通过对比 Joomla 和另一款优秀的 Drupal 系统中的一些概念差异，以帮助一些使用者在熟悉其中一款 CMS 的同时快速熟悉另一款系统。</p>
<p><a href="http://anyliv.com/blog/920.html"><strong>【主题开发】Joomla 主题开发中常用的一些函数及技巧代码</strong></a>：收集了一些 Joomla 主题开发中经常使用到的一些函数变量及一些技巧性的代码，如判断首页、根据内容输入 div 等等。</p>
<p><a href="http://anyliv.com/blog/tags/joomla">【更多资源】请点击这里浏览本站更多关于 Joomla 的内容</a></p>
]]></content:encoded>
			<wfw:commentRss>http://nan.im/blog/1032/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>建站系统 Joomla 与 Drupal 概念区别</title>
		<link>http://nan.im/blog/943</link>
		<comments>http://nan.im/blog/943#comments</comments>
		<pubDate>Thu, 23 Apr 2009 03:04:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[网站前端]]></category>
		<category><![CDATA[CMS 内容管理系统]]></category>
		<category><![CDATA[Develop 开发]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Joomla]]></category>

		<guid isPermaLink="false">http://www.anyliv.com/blog/?p=943</guid>
		<description><![CDATA[早就该写这么一篇文章来描述一下 Joomla 和 Drupal 两款优秀的开源 CMS 在一些概念上的细微差异，希望能帮助一部分朋友在熟悉其中一款 CMS 的基础上也更容易熟悉另一款，以下对两个系统的描述都将基于系统自带的插件组件模块及已经安装相应中文包的基础上，所用关键词也是两个中文包里面所用的词汇以方便大家理解，本篇内容仅仅是对一些显而易见的概念差异做一些描述，后续将不断去完善，也希望能起到抛砖引玉的效果让更多 Drupaler 及 Joomlar 加入进来（以下有极少数内容仅适用于 Drupal 6.x 及 Joomla 1.5.x 版本使用）。 关于内容：对于内容的管理是一个 CMS 最最基本的功能，在 Joomla 中被称为“文章(article)”而在 Drupal 中则被称为“节点(node)”； 内容层次：其中 Joomla 的开发者认为三层树形结构已经足够满足需求，其内容层次为“单元(section)-分类(category)-文章(article)”，而 Drupal 则使用更加灵活的基于“术语(term)”的“分类(taxonomy)”，这种结构类似于常见的“标签(tag)”即每个节点可以有任意个分属于不同“词汇表(vocabulary)”的术语，而相同术语的节点可以被成为同一类（这一点非常有用后续将举例说明）； 站点管理：你会发现 Joomla 对于前台后台区分非常明显，后台管理需要通过“/administrator/”路径登陆，而 Drupal 则没有明显区别，只是管理员的导航菜单里面会多一个“管理”菜单； 主题模板：在 Joomla 中被称为“模板(templates)”可在线通过 zip 文件安装，而 Drupal 默认将使用基于 phptemplate 模板引擎的“主题(themes)” 需将主题上传至推荐的“/sites/all/themes/”目录下，虽然大概意思相同，但其模板在覆写机制及定制上有着很多区别 Joomla 倾向于根据页面路径分配不同的主题或者叫版型更为贴切，而 Drupal 更喜欢代码化的主题函数来控制页面； 语言环境：二者均支持多语言界面，其中 Joomla 使用 ini 格式的语言文件，而 [...]]]></description>
			<content:encoded><![CDATA[<p>早就该写这么一篇文章来描述一下 <a href="http://joomla.org/" target="_blank">Joomla</a> 和 <a href="http://drupal.org/" target="_blank">Drupal</a> 两款优秀的开源 CMS 在一些概念上的细微差异，希望能帮助一部分朋友在熟悉其中一款 CMS 的基础上也更容易熟悉另一款，以下对两个系统的描述都将基于系统自带的插件组件模块及已经安装相应中文包的基础上，所用关键词也是两个中文包里面所用的词汇以方便大家理解，本篇内容仅仅是对一些显而易见的概念差异做一些描述，后续将不断去完善，也希望能起到抛砖引玉的效果让更多 Drupaler 及 Joomlar 加入进来（以下有极少数内容仅适用于 Drupal 6.x 及 Joomla 1.5.x 版本使用）。</p>
<p><span id="more-943"></span></p>
<blockquote><p><strong>关于内容</strong>：对于内容的管理是一个 CMS 最最基本的功能，在 Joomla 中被称为“文章(article)”而在 Drupal 中则被称为“节点(node)”；</p>
<p><strong>内容层次</strong>：其中 Joomla 的开发者认为三层树形结构已经足够满足需求，其内容层次为“单元(section)-分类(category)-文章(article)”，而 Drupal 则使用更加灵活的基于“术语(term)”的“分类(taxonomy)”，这种结构类似于常见的“标签(tag)”即每个节点可以有任意个分属于不同“词汇表(vocabulary)”的术语，而相同术语的节点可以被成为同一类（这一点非常有用后续将举例说明）；</p>
<p><strong>站点管理</strong>：你会发现 Joomla 对于前台后台区分非常明显，后台管理需要通过“/administrator/”路径登陆，而 Drupal 则没有明显区别，只是管理员的导航菜单里面会多一个“管理”菜单；</p>
<p><strong>主题模板</strong>：在 Joomla 中被称为“模板(templates)”可在线通过 zip 文件安装，而 Drupal 默认将使用基于 phptemplate 模板引擎的“主题(themes)” 需将主题上传至推荐的“/sites/all/themes/”目录下，虽然大概意思相同，但其模板在覆写机制及定制上有着很多区别 Joomla 倾向于根据页面路径分配不同的主题或者叫版型更为贴切，而 Drupal 更喜欢代码化的主题函数来控制页面；</p>
<p><strong>语言环境</strong>：二者均支持多语言界面，其中 Joomla 使用 ini 格式的语言文件，而 Drupal 则使用基于 po 格式的语言文件并可在线直接翻译；</p>
<p><strong>扩展支持</strong>：在扩展支持上通常是所有 CMS 区别最大的地方，其中 Drupal 所有的扩展功能主要都通过“模块(module)”实现，而 Joomla 的扩展功能主要通过“组件(component)”“模块(module)”“插件(plugin)”三类实现，均可通过在线地址或上传 zip 文件直接安装，需要补充的是 Joomla 的模块扩展其实是指模块类型的扩展；</p>
<p><strong>区域位置</strong>：通常主题模板里会定义一些用于显示一些动态内容的地方，在 Joomla 中被称为“位置(position)”而 Drupal 称之为“区域(region)”其定义方法分别位于相应主题模板内的“templateDetails.xml”文件和“template.php”文件中；</p>
<p><strong>关于模块</strong>：对于 Drupal 来说模块就是安装的扩展功能，模块与模块之间可相互依赖及调用，这点其实有点类似与 Joomla 的组件，但对于 Joomla 来说，模块是几个比较容易混淆的概念之一，在 Joomla 后台安装扩展功能模块之后会在“创建模块”页面出现相应的模块类型，而通过模块类型创建的模块实体也被称之为模块，所以这点很容易混淆；</p>
<p><strong>目录结构</strong>：其中 Joomla 的目录结构“模板(/templates/)”“语言(/language/)”“插件(plugins)”“模块(modules)”“组件(/components/)”无论是系统自带还是第三方开发的各种扩展都按此目录放置，优点是方便安装，即通过在线安装的各种扩展都会自动按以上目录结构分门别类放置，而 Drupal 的主题和模块都有两个目录可供使用即“系统主题(/themes/)”“核心模块(/modules/)”和“其他主题(/sites/all/themes/)”“其他模块(/sites/all/modules/)”主题和模块放置在各自的两个目录内都是可用的，但推荐放于 sites 文件夹内，其实包括“基本配置(/sites/default/settings.php)”文件及“网站文件(/sites/default/files/)”目录均默认被保存于 sites 目录，也就是说备份整个站点或升级站点仅仅需要备份或拷贝 sites 文件夹即可；</p>
<p>待续……</p></blockquote>
<p>以上的一些关于 Drupal 及 Joomla 两款 CMS 在建站过程中的一些概念及关键词区别都是基于两款系统各自的中文包体现出来的，后续将逐渐补充相应的一些使用及在模板主题开发上的区别。</p>
]]></content:encoded>
			<wfw:commentRss>http://nan.im/blog/943/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Joomla 模板常用技巧函数收集（不断更新）</title>
		<link>http://nan.im/blog/920</link>
		<comments>http://nan.im/blog/920#comments</comments>
		<pubDate>Fri, 10 Apr 2009 05:46:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[网站前端]]></category>
		<category><![CDATA[CMS 内容管理系统]]></category>
		<category><![CDATA[CODE 代码]]></category>
		<category><![CDATA[Develop 开发]]></category>
		<category><![CDATA[Joomla]]></category>

		<guid isPermaLink="false">http://www.anyliv.com/blog/?p=920</guid>
		<description><![CDATA[在平时开发 Joomla 模板的时候收集了一些极为常见也非常有用的函数，现列出来方便制作 Joomla 模板时查阅，具体内容将不断更新，需要注意的是该页代码在模板中使用时均需嵌套在 &#60;?php  ?&#62; 标签里面（地球人都知道了）更多完整函数可查阅 Joomla 的官方 API 网站 http://api.joomla.org/ 这里列出来的仅是制作模板主题时经常使用到的： 0、关于 jdoc 的使用： 其中 type 属性为 jdoc 元素中要渲染的内容类型，属性值可以是下列的值： head —— 填充当前页&#60;head&#62;标签里的 style script meta 等元素； message —— 用于在模板显示系统信息或报错信息，发布模板时可以删掉； component —— 用于页面主体内容输出； installation —— 仅用于模板安装，渲染安装步骤中的一个页面主内容，通常不需要； 以上内容类型通常在一个页面应当仅出现一次，并且通常没有其他属性，如 name style 等属性； module —— 渲染由 name 属性指定的单一模块，模块必须是发布的并且当前用户有权访问，另外还可以有 layout 及 controller 属性； modules —— 渲染由模板 xml [...]]]></description>
			<content:encoded><![CDATA[<p>在平时开发 Joomla 模板的时候收集了一些极为常见也非常有用的函数，现列出来方便制作 Joomla 模板时查阅，具体内容将不断更新，需要注意的是该页代码在模板中使用时均需嵌套在 &lt;?php  ?&gt; 标签里面（地球人都知道了）更多完整函数可查阅 Joomla 的官方 API 网站 <a href="http://api.joomla.org/" target="_blank">http://api.joomla.org/</a> 这里列出来的仅是制作模板主题时经常使用到的：</p>
<p><span id="more-920"></span></p>
<p>0、关于 jdoc 的使用：</p>
<pre lang='html4strict' line='1'>
<jdoc:include type="head" />
<jdoc:include type="message" />
<jdoc:include type="component" />
<jdoc:include type="installation" />
<jdoc:include type="module" name="logo" />
<jdoc:include type="module" name="menu" />
<jdoc:include type="modules" name="side" style="xhtml" />
<jdoc:include type="modules" name="main" style="xhtml" />
</pre>
<p>其中 type 属性为 jdoc 元素中要渲染的内容类型，属性值可以是下列的值：</p>
<blockquote><p>
head —— 填充当前页&lt;head&gt;标签里的 style script meta 等元素；</p>
<p>message —— 用于在模板显示系统信息或报错信息，发布模板时可以删掉；</p>
<p>component —— 用于页面主体内容输出；</p>
<p>installation —— 仅用于模板安装，渲染安装步骤中的一个页面主内容，通常不需要；</p>
<p>以上内容类型通常在一个页面应当仅出现一次，并且通常没有其他属性，如 name style 等属性；</p>
<p>module —— 渲染由 name 属性指定的单一模块，模块必须是发布的并且当前用户有权访问，另外还可以有 layout 及 controller 属性；</p>
<p>modules —— 渲染由模板 xml 文件中指定的位置，需要留意的是一个位置可以放置多个模块，这点非常重要，能为你节约很多时间和成本；</p>
<p>style —— 是对于 module 及 modules 类型的一个可选属性，这一属性指定了模块被渲染风格，如果没指定将默认为 none 属性，所有属性在 /templates/system/html/modules.php 中有声明，包括有 table horz xhtml rounded outline 当然模板设计者可以在你自己的模板同样位置对其进行自定义，否则建议使用 xhtml 类型。
</p></blockquote>
<p>1、判断当前页面是否为首页：getActive(); getDefault();</p>
<pre lang='php' line='1'>
$menu = &#038; JSite::getMenu();
if( $menu->getActive() == $menu->getDefault() ){ /* 这里显示首页代码 */ }else{ /* 这里是非首页代码 */ }
</pre>
<p>解释一下：这里使用 getActive 函数获取当前页面并与默认页面对比；</p>
<p>2、根据位置是否存在内容设置一些宽度：countModules();</p>
<pre lang='php' line='1'>
if ($this->countModules('west and east') == 0) { $coreWidth = "100%"; }
if ($this->countModules('west or east') == 1) { $coreWidth = "75%"; }
if ($this->countModules('west and east') == 1) { $coreWidth = "50%"; }
</pre>
<p>解释一下：通常多栏页面在没有其中一栏或多栏内容的情况下需要将其他栏目做宽度调整，这里使用 countModules() 函数判断是否存在一个或多个位置。</p>
<p>示例中展示的是三栏情况下，假使三栏分别为三个 west core east 位置，其中 west 和 east 为左右两个位置内容为可选，而 core 位置为主体位置内容为必须，通过判断得出四种情况即：无 west 栏、无 east 栏、仅 core 栏及同时具有三栏。示例代码第一行为仅有 core 栏即 west 和 east 都不存在的情况时赋 coreWidth 为 100% 宽度；第二行为仅有 west 或 east 栏其中之一时赋 coreWidth 为 75% 宽度；第三行为同时存在三栏时附 coreWidth 为 50% 宽度。取得了 coreWidth 值之后就可以在 html 代码中引用了，例如：</p>
<pre lang='html4strict' line='1'>
<div style="width:<?php echo $coreWidth; ?>;">
    <jdoc:include type="modules" name="core" />
</div>
</pre>
<p>当然，这里省略了 CSS 样式，你需要在 CSS 里面定义 west 和 east 的宽度等参数。</p>
<p>3、根据位置是否有内容控制输出：countModules();</p>
<pre lang='html4strict' line='1'>
<?php if ( $this->countModules('west or core or east') == 1 ) : ?>
<div class="body">
<div id="west"><jdoc:include type="modules" name="west" style="xhtml" /></div>
<div id="core"><jdoc:include type="modules" name="core" style="xhtml" /></div>
<div id="east"><jdoc:include type="modules" name="east" style="xhtml" /></div>
</div>

<?php endif; ?>
</pre>
<p>解释一下：这种使用其实是对上面第 2 点的一个补充，通常在输出位置的时候我们喜欢使用一个 div 包裹输出的位置内容用来做一些效果，但如果该位置没有输出，或是一个大通栏里面包括的三个位置都没有输出，那么这个通栏就没有必要输出了，使用 countModules 同时判断 west core east 位置是否有任意一个位置有内容输出，如果有任一位置有输出便输出 &lt;div class=”body”&gt; &lt;/div&gt; 中间的内容。</p>
<p>4、方便的查看当前模板位置情况：index.php?tp=1</p>
<blockquote><p>示例代码：网站 URL 路径 + index.php?tp=1 （如 http://127.0.0.1/index.php?tp=1 等）</p>
<p>解释一下：这个地址参数用来方便的查看当前页面的模板上的位置情况，及相应的输出模式，其中的 127.0.0.1 需要根据具体地址修改。</p></blockquote>
<p>5、直接在模板调用模块：</p>
<pre lang='php' line='1'>
require_once (JPATH_BASE .DS. 'modules' .DS. 'mod_latestnews' .DS. 'helper.php');
$params = new JParameter(”);
$params -> set('catid',5);
$params -> set('count',3);
$list = modLatestNewsHelper::getList($params);
require(JModuleHelper::getLayoutPath('mod_latestnews'));
</pre>
<p>解释一下：这段代码就是在模板中直接调用 LatestNews 模块，并设置分类 ID 28 显示 3 篇文章。</p>
<p>6、……</p>
]]></content:encoded>
			<wfw:commentRss>http://nan.im/blog/920/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>使用 Drupal 和 Joomla 简单体会</title>
		<link>http://nan.im/blog/74</link>
		<comments>http://nan.im/blog/74#comments</comments>
		<pubDate>Fri, 19 Dec 2008 01:41:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[网站前端]]></category>
		<category><![CDATA[CMS 内容管理系统]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Internet 互联网]]></category>
		<category><![CDATA[Joomla]]></category>

		<guid isPermaLink="false">http://www.anyliv.com/blog/?p=74</guid>
		<description><![CDATA[使用 Drupal 和 Joomla 这两款 CMS 开发有将近一年，目前负责前端的相关开发即主题模板与呈现。没有听说过这两款 CMS 的可以分别访问他们的官方网站：http://drupal.org/ or http://joomla.org/ 他们都非常优秀。 而我今天要说就是个人在这一年多来使用这两款 CMS 的一些体会和收获，以下内容将仅代表我的个人观点： 以上图片摘自 谷歌趋势 其中：蓝线 Joomla; 红线 Drupal. 两款 CMS 均采用 PHP 开发，其中（以下数据截至 Drupal 5.14 or Joomla 1.58 版本）： Drupal：代码约为 1,432 千行；开发时间 410 人工年；大小约 2.21M 字节； Joomla：代码约为 164 千行；开发时间 40 人工年；大小约 16.0M 字节； 我来简单补充一下为什么个别数据差别较大，因为 Drupal 更为良好的开发框架下全世界有更多热心的程序员自愿为其开发；而 Joomla 的庞大体积则来自于大量修饰的图片和 PDF 输出使用的字体等。 对于网站建设敏感的开发者来说，仅仅通过浏览两个 CMS 的官方网站就可以很容易发现两款 [...]]]></description>
			<content:encoded><![CDATA[<p>使用 <a href="http://drupal.org/" target="_blank">Drupal</a> 和 <a href="http://joomla.org/" target="_blank">Joomla</a> 这两款 CMS 开发有将近一年，目前负责前端的相关开发即主题模板与呈现。没有听说过这两款 CMS 的可以分别访问他们的官方网站：<a href="http://drupal.org/" target="_blank">http://drupal.org/</a> or <a href="http://joomla.org/" target="_blank">http://joomla.org/</a> 他们都非常优秀。<span id="more-74"></span></p>
<p>而我今天要说就是个人在这一年多来使用这两款 CMS 的一些体会和收获，以下内容将仅代表我的个人观点：</p>
<p><center><img src="http://www.google.com/trends/viz?q=joomla,drupal&amp;graph=weekly_img&amp;sa=N" alt="" width="450" height="200" /></p>
<h5>以上图片摘自 <a href="http://www.google.com/trends?q=joomla%2Cdrupal" target="_blank">谷歌趋势</a> 其中：蓝线 Joomla; 红线 Drupal.</h5>
<p></center></p>
<p>两款 CMS 均采用 PHP 开发，其中（以下数据截至 Drupal 5.14 or Joomla 1.58 版本）：</p>
<blockquote><p>Drupal：代码约为 1,432 千行；开发时间 410 人工年；大小约 2.21M 字节；</p>
<p>Joomla：代码约为   164 千行；开发时间  40 人工年；大小约 16.0M 字节；</p></blockquote>
<p>我来简单补充一下为什么个别数据差别较大，因为 Drupal 更为良好的开发框架下全世界有更多热心的程序员自愿为其开发；而 Joomla 的庞大体积则来自于大量修饰的图片和 PDF 输出使用的字体等。</p>
<p>对于网站建设敏感的开发者来说，仅仅通过浏览两个 CMS 的官方网站就可以很容易发现两款 CMS 的很多区别，其实并非有些人所描述的“既生瑜何生亮”，我个人认为，Drupal 和 Joomla 各自都很明确自己的方向和优势，其实是 CMS 市场的一个细分，笼统的讲大致也可以认为 Drupal 更适合做 2.0 方向的站，而 Joomla 更适合做 1.0 方向的站（PS：1.0 和 2.0 是互联网的两个方向，并不是 2.0 一定比 1.0 好 ^_^）。</p>
<p>为什么说 Joomla 更适合做 1.0 的网站，首先是非常容易上手，管理界面非常漂亮友好，在内容展示的调整上也非常容易，可以在非常短的时间里建成一个以内容展示为主的“非常漂亮”并且“常用功能齐全”的企业或个人门户网站。所以，强烈推荐给偏向前台技术的开发人员使用。</p>
<p>那 Drupal 适合做 2.0 的网站，虽然界面上会大大输给 J 甚至说根本没有什么后台管理界面，只是管理员会比普通用户多一个“管理网站”的菜单和一些页面，但这却恰恰成为一些优势，使得每个用户有了更为灵活的访问控制(ACL)，每个不同权限的用户都可以很方便的贡献或者编辑网站的内容。</p>
<p>而在开发上，Joomla 要显的相对比较复杂和生硬；而灵活实用的 Drupal API 覆写了 PHP 的大量函数，使其更成为程序员的最爱，如果你的网站需要一些特殊功能，而这些功能又碰巧是全球程序员贡献的上千个扩展模块里面没有的，那么就开始开发吧，这些几乎囊括所有页面功能的 API 将大大帮助你减少开发时间和成本。</p>
<p>看到这里可能会觉得我在偏向 Drupal 其实不是，因为我们对传统内容展示类网站已经有了相当的理解， Joomla 正是快速制作这种网站最好的选择；而 Drupal 则更倾向于用户，倾向于开发。所以这里，我推荐 Joomla 给普通企业个人制作传统宣传类网站，推荐 Drupal 给喜欢挑战的开发人员。进一步详细了解 Drupal 和 Joomla 的一些细节概念差异请浏览《<a href="http://anyLiv.com/blog/943">建站系统 Joomla 和 Drupal 的一些概念差别</a>》文章，相信能带给你不少收获。</p>
]]></content:encoded>
			<wfw:commentRss>http://nan.im/blog/74/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

