典型的模板目录结构
Joomla! CMS模板使用目录和文件的结构,但它们可能因模板而异
网站模板(可以更改网站外观的模板)可以在 /templates 目录中找到。例如,如果您的模板称为“mytemplate”,那么它将被放置在文件夹中:
管理员模板(更改站点的管理员部分的模板)可以在 /administrator/templates目录中找到。例如,如果您的管理员模板名为“myadmintemplate”,那么它将被放置在文件夹中:
模板目录
典型的Joomla!模板将包括以下目录:
css - 包含所有的 .css 文件
html - 包含核心输出和模块chrome的模板覆盖文件
images - 包含模板使用的所有图片
language - 包含模板使用的所有语言文件
根据模板设计的复杂行可能还包含:
javascript - 包含支持模板添加功能的Javascript
目录示例
模板的典型路径为 <root>/public_html/domain-name/template/<模板名称>,其中将包含基于您的模板的以下目录和文件。
模板文件
一般模板至少应该包含以下文件:
-
index.php
-
提供用于显示和定位模块和组件的逻辑。
-
component.php
-
提供用于显示打印机友好页面的逻辑,如“E-mail this link to a friend.”等.
-
error.php
-
提供用于处理如404,page not found 错误的方法。
-
favicon.ico
-
favicon 图标文件
-
template.css
-
用于处理模板的显示方面,包括边距,字体,标题,图像边框,列表格式等的规范。 .css文件也可位于 /css 目录中。
-
templateDetails.xml
-
保存与模板相关的元信息,由安装程序和模板管理器使用。
-
template_preview.ext - 使用图片的扩展格式(.jpg,.png,.gif)替换.ext
-
通常,在 模板管理->模板 中点击缩略图显示一个600x400像素的图片,而不是在 模板管理->样式 中。在将模板应用到站点之前给管理员一个弹出窗口。
-
template_thumbnail.ext - 使用图片的扩展格式(.jpg,.png,.gif)替换.ext
-
通常,在 模板管理->模板 中点击缩略图显示一个200x150像素的图片,而不是在 模板管理->样式 中。 这样可以让管理员在将模板应用到站点之前可以浏览模板的缩略图。
-
-
Joomla!模板需要 templateDetail.xml 文件,这个文件可以在任何模板的根目录下找到。这个XML文件包含Joomla!为了在后端显示和提供模板选项所需要的基本元素据。它也包含很多用于提供关于模板,模板作者,定义文件、文件夹的信息。它也定义模板在后端提供的模板语言文件、参数和设置。
templateDetail 文件使用一个相当基本的XML格式和结构。这个XML文件中的数据被分成不同的部分并特别格式化以呈现不同的片段和参数。通过Joomla!核心提供的强大工具读取和解析XML数据。然后渲染以注册模板并创建在模板管理器中看到的显示。这为模板开发人员提供了一种相对简单的方法来创建在模板中使用的任务,设置和参数
The implementation of
templateDetails.xml
will vary from template to template, it can be simple or complex depending on what features the template offers. The default Joomla! 3 Protostar template serves as an excellent example to demonstrate how this file is used. The various sections of this file are explained below.templateDetails.xml的实现将因模板而异,它可以是简单的或复杂的,这取决于模板提供的功能。 以默认的Joomla! 3 Protostar模板作为一个很好的例子来演示如何使用这个文件。 此文件的各个部分解释如下。
XML格式
每个templateDetails.xml文件的顶部两行需要首先定义XML格式和DOCTYPE。
下一行也是必需的,因为它告诉Joomla! 该文件中的数据将用于扩展,在本例中为模板。 所有模板数据都包含在此<extension>标签中,文件通过关闭此标签</extension>结束。
1
|
< extension version="3.1" type="template" client="site"> |
基本详情
第一部分通常是模板开发人员包括关于模板的信息。 诸如名称,日期,联系信息,版权,版本号和基本描述的信息是常见的。 此数据在模板管理器中使用,并显示在可用模板列表中,也可以显示在模板编辑屏幕中。
模板基本详情在 Template Manager > Templates 中可见
模板详情示例
Protostar XML 代码的基本详情:
您可能会注意到,此代码(描述)的最后一行包含语言字符串,而不是实际描述。 这个字符串引用了模板中实际描定义和写入描述的语言文件。这是Joomla中的首选方法,对于为公共使用分配的扩展以适应国际语言支持,但是如果翻译不是一个问题,可以简单地键入描述。 语言文件也在templateDetails.xml文件中的语言部分中定义,本文后面将对此进行更详细的介绍。
模板描述在Protostar编辑器中可见
模板详情示例
目录结构
关于模板安装的所有文件夹都列示于此。所有位于模板根目录的文件和文件夹在安装期间需要被罗列在此。自动包括列出的文件夹中包含的任何文件。每个文件夹包含从模板根目录开始的完整路径信息。 管理员安装程序在安装期间存储文件时使用此信息。
下面是默认Protostar模板的文件和文件夹结构。这是一个相当标准的文件结构为基本的Joomla!模板。
J3 Protostar的文件目录视图
模块位置
可在模板中使用的可用模块位置在此区域中定义。
这些是默认Protostar模板中定义的模块位置:
位置列表包含在<positions>标签中。每个<position>标签创建一个模块位置,该位置可以从模块管理器中的位置列表和Joomla!的其他区域中获得,其中可以选择模块位置。
位置列表的简单格式意味着它可以很容易地定制。 例如,要向列表中添加新的模块位置,只需在<positions>标签中添加一个新的<position>标签,其中使用全部小写字母,且不含空格的唯一名称。 请记住,这只会将位置添加到后端,并且需要在其他模板文件中进行额外开发以在前端渲染新位置。
语言
有的模板也许包括语言文件以便允许模板中的静态文本翻译。请注意语言文件夹已经定义并且还包含其中的两个语言文件。虽然语言文件夹是之前定义的,但这些文件需要自己的定义。这个方法告诉Joomla! 包含模板使用的字符串的语言文件在哪儿。
第一个文件保存用户将要查看的文本的语言文件。带有.sys或system扩展名的第二个文件用于将在管理员区域中查看的文本。
这是默认Protostar模板的语言文件夹和文件结构:
语言字符串在模板和Joomla!中使用,以便利用Joomla!中广泛的国际语言支持功能。此方法为开发人员和用户提供了相对简单的方法来翻译模板和扩展屏幕中使用的任何文本。 Joomla! 将检查所使用的任何语言字符串的语言文件,并以用户选择的语言加载相应的文本代替字符串。 在这种情况下,只有英语文件(en-GB),任何其他语言的文本翻译必须由用户或开发人员提供,然后Joomla!才能使用。
参数
模板可以提供显示选项和管理员可以在模板管理器中选择的其他参数。例如,默认的Protostar模板允许管理员更改各种颜色,字体和添加标志,这些参数位于高级选项卡下,也由XML参数定义和创建。
模板参数包含在<config>标记中,该标记包含具有名称属性为“params”的<fields>标记。在<fields>标签中,定义了参数组和各个参数。 <fieldset>标记用于创建参数组。各个参数使用<field>标签定义。
每个<fieldset>和<fieldset>中的每个<field>参数都需要由name属性定义的唯一名称。此名称定义参数本身,用于将设置传递到前端文件。每个参数还应包含标签属性和描述属性。标签文本随设置屏幕中的参数一起显示,以标识使用的设置,并且可以在说明中包括更详细的信息。
参数字段实际上可以是具有相应选项的任何类型的表单输入,这由类型属性选择。任何必需的选项,如单选按钮或选择选项,都在<option>标签中定义。 CSS类名可以用class属性定义。并且可以使用默认属性定义默认参数设置。
下面是默认Protostar模板中的参数定义。在本示例中,所有标签,描述和选项都使用上一节中定义的语言文件中的语言字符串定义,以及一些来自Joomla!核心,因此它们可以根据需要翻译成不同的语言。
Protostar高级参数屏
Protostar模板说明了XML可以在模板界面中使用的几种不同方式,但还有更多的可能性。 在此示例中,<fieldset name =“advanced”>标记包含所有参数,并使用name属性在界面中创建“高级”选项卡。 在界面中创建另一个选项卡所需要的是另一个具有不同name属性的<fieldset>标记。 考虑到这一点,在模板中创建所需的额外选项卡和参数相对简单。
其他资源
index.php文件是网站的骨架。 Joomla!传递的每一页都是“index.php”从数据库选择内容插入填充的。
模板的index.php文件包含将按原样传递的代码和php代码的混合,在传递之前将对其进行修改。 任何设计了简单的html网页的人都会熟悉这个代码:有两个主要部分 - <head>和<body>。 index.php不同的地方是使用php代码插入从数据库中选择的信息。
这里是一个例子:
传统HTML头部:
Joomla!的做法:
因此,不是在index.php文件上定义这些头部分,而是通过php代码的位从数据库中查找头部分。聪明的部分是这两个脚本将向用户提供相同的代码。如果你看一下joomla网站的代码,所有的<?php blah />将被正常的html代码所取代。
好的模板设计
index.php应该是简洁的,因为它会在每次加载新页面时重新发送。元素(如样式)应在保存在用户缓存中的css文件中提供。这里的教程将介绍创建index.php的技术方面。
为什么是index.php?
Index.htm历史上是给予网站主页的名称。因此,当用户导航到www.example.org时,网络服务器提供www.example.org/index.htm。因为Joomla!是用PHP编写的,index.php是自动提供的文件。更复杂的是,当用户导航到joomla网站时,根目录的index.php重定向到当前默认模板的index.php。
磁盘上分区的容量通常不会在一开始就被合理分配,因此在许多情况下有必要在Windows 10中调整分区大小。例如,一段时间后,你可能会发现某些分区(例如分区C)已满,并继续收到警告“ 磁盘空间不足 ”。再比如,盘开始是有一个分区:分区C,为了方便地管理文件和数据,需要在磁盘上创建更多分区。
在上述情况1下,你需要改变分区大小实现增大C分区。在第二种情况下,你可以缩小分区,得到未分配的空间后,然后在未分配空间之上创建新分区。简而言之,在磁盘使用期间使用靠谱的方式调整分区大小是非常重要的。
如何在Windows 10中扩展或缩小分区大小?
我们知道了在Windows中调整分区大小的必要性,现在就来了解下如何在Windows 10中简单有效地调整分区大小了。这里介绍两个软件,可以帮助你调整分区大小:Windows内置磁盘管理器工具和第三方免费分区工具傲梅分区助手专业版。
✍ 建议: 如何在两个工具中选择:
► 如果磁盘上有连续的未分配空间在你想要扩展的两个分区之间, 可以使用磁盘管理器。
► 如果磁盘上没有连续的非分配空间在两个分区中间,则可以使用傲梅分区助手专业版。
或者想要突破磁盘管理器缩小分区限制,实现无极缩小分区的大小, 可以选择傲梅分区助手专业版。
在没有第三方软件的情况下实现Windows调整分区大小
首先,按Windows + R,输入diskmgmt.msc并按Enter来访问“磁盘管理”界面。
1.右键单击要扩展的分区(这里是系统分区:C分区),然后选择扩展卷。
2.您将进入“ 扩展卷向导”界面,单击“ 下一步”。
3.指定要添加到C分区的可用空间,然后单击“ 下一步”。
4.单击完成,然后等待几秒钟以完成操作。
注意:
- 如果分区后面没有相邻的未分配空间,则选项扩展卷将变为灰色。
- 要在打算扩展的分区后面获得空闲空间,可以删除其后面的相邻的分区以获得未分配空间。但是,这将导致数据丢失。
通过磁盘管理缩小Windows 10中的分区
1. 右键单击要缩小的分区,选择“压缩卷”。
2. 在t窗口中键入的空间量在MB收缩,然后单击“压缩”。
3. 分区缩小后,您会发现分区后有一个新的未分配空间。您可以使用未分配的空间创建新分区。
那么,如何轻松,成功地克隆磁盘?由于Windows缺少克隆功能,我们将不得不使用专业的第三方磁盘克隆软件,但是哪一个足够可靠,可供我们选择?
使用第三方免费分区软件在Windows 10中调整分区大小
傲梅分区助手专业版是一款免费且功能多的分区管理软件,可以实现灵活快速地更改分区的大小。
移动分区功能,可让您移动分区的位置,使要更改的分区后面出现未分配空间。继而实现不删除相邻分区的情况下实现扩大分区。它也可以缩小分区,并且打破磁盘管理调整大小的限制:即使分区具有可用空间也无法缩小分区的情况
在Windows 10中扩大分区大小,不丢失任何数据
步骤1. 点击下方按钮安装并运行软件。在主界面中,确认您需要移动的分区,右键单击该分区,然后选择“ 调整/移动分区”。
步骤2. 将选定的分区拖到右端末,然后单击“确定”
步骤3. 你可以预览与C分区相邻的未分配的空间。右键单击C分区,然后选择“调整/移动分区”
步骤4. 向右拖动C分区以使用未分配的空间放大它,然后单击“确定”。
步骤5. 自动返回到主页界面。您可以预览C分区将被扩展。单击左上方的“提交”以执行挂起的操作。
打破磁盘管理器无法进一步缩小空间的解决方法
在使用磁盘管理器时你可能会发现,在对分区进行压缩时,明明有30GB的数据可以缩小,但是却只能选择15GB来压缩,磁盘管理器无法压缩如何解决这个问题呢?
步骤1. 启动傲梅分区助手专业版。右键单击需要缩小的分区,然后选择“调整分区”。
步骤2. 向左拖动双向箭头以使其收缩。
步骤3. 单击“应用”执行操作。
总结
傲梅分区助手专业版兼容新版win10,同样也支持WindowsXP、7、8、8.1操作系统,除了基本的分区功能外,同样也有磁盘克隆,系统迁移功能等高级功能免费使用!
但是在某些情况下,例如:对网络问题进行故障排除,或者在更改 DNS 解析器之后,你将需要刷新 DNS 缓存。这将清除缓存的 DNS 条目,并根据新配置的 DNS 设置执行后续查找以解析域。
本指南提供有关如何在不同的操作系统和 Web 浏览器上刷新 DNS 缓存的说明。
在 Windows 上清除/刷新 DNS 缓存
对于所有 Windows 版本,清除 DNS 缓存的过程都是相同的。你需要使用管理员权限打开命令提示符并运行 ipconfig /flushdns
。
Windows 10 和 Windows 8
要在 Windows 10 和 Windows 8 中清除 DNS 缓存,请执行以下步骤:
-
在 Windows 搜索栏中键入 cmd 。
-
右键单击 “命令提示符”,然后右击 “以管理员身份运行”。这将打开 “命令提示符” 窗口。
-
在命令行上,键入以下行,然后按回车:
ipconfig /flushdns
成功后,系统将返回以下消息:
Windows IP Configuration
Successfully flushed the DNS Resolver Cache.
Windows 7
要在 Windows 7 中清除 DNS 缓存,请执行以下步骤:
-
单击开始按钮。
-
在开始菜单搜索文本框中键入 cmd。
-
右键单击 “命令提示符”,然后单击 “以管理员身份运行”。这将打开 “命令提示符” 窗口。
-
在命令行上,键入以下行,然后按回车:
ipconfig /flushdns
成功后,系统将返回以下消息:
Windows IP Configuration
Successfully flushed the DNS Resolver Cache.
在 Linux 上清除/刷新 DNS 缓存
在 Linux 上,除非已安装并运行诸如 Systemd-Resolved
,DNSMasq
或 Nscd
之类的缓存服务,否则没有操作系统级 DNS
缓存。根据 Linux 发行版和所使用的缓存服务,清除 DNS 缓存的过程有所不同。
系统化解决
大多数现代 Linux 发行版,例如 Ubuntu 18.04,都使用 systemd 解析的服务来缓存 DNS 条目。
要查找服务是否正在运行,请运行:
$ sudo systemctl is-active systemd-resolved.service
如果该服务正在运行,则将打印命令 active,否则将看到 inactive。
要清除系统解析的 DNS 缓存,你需要键入以下命令。
$ sudo systemd-resolve --flush-caches
成功后,该命令不会返回任何消息。
Dnsmasq
Dnsmasq 是轻量级的 DHCP 和 DNS 缓存名称服务器。
如果你的系统使用 DNSMasq 作为缓存服务器,则要清除 DNS 缓存,需要重新启动 Dnsmasq 服务:
$ sudo systemctl restart dnsmasq.service
也可以使用以下命令
$ sudo service dnsmasq restart
NSCD
NSCD
是一个缓存守护程序,它是大多数基于 RedHat 的发行版的首选 DNS 缓存系统。
如果系统使用 NSCD
来清除 DNS 缓存,则需要重新启动 NSCD
服务:
$ sudo systemctl restart nscd.service
或者
$ sudo service nscd restart
在 MacOS 上清除/刷新 DNS 缓存
根据你所运行的版本,在 MacOS 中刷新缓存的命令略有不同。该命令必须以具有系统管理员特权的用户(sudo 用户)身份运行。
要清除 MacOS 中的 DNS 缓存,请执行以下步骤:
-
打开查找器。
-
转到应用程序>实用程序>终端。这将打开终端窗口。
-
在命令行中,输入以下行,然后按回车:
$ sudo killall -HUP mDNSResponder
输入你的 sudo
密码,然后再次按回车。成功后,系统不会返回任何消息。
对于早期版本的 MacOS,刷新缓存的命令不同。
-
MacOS 版本 10.11 和 10.9
$ sudo dscacheutil -flushcache
$ sudo killall -HUP mDNSResponder
-
MacOS 版本 10.10
$ sudo discoveryutil mdnsflushcache
$ sudo discoveryutil udnsflushcaches
-
MacOS 版本 10.6 和 10.5
$ sudo dscacheutil -flushcache
清除/刷新浏览器 DNS 缓存
大多数现代的 Web 浏览器都有一个内置的 DNS 客户端,以防止每次访问该网站时重复查询。
谷歌浏览器 Chrome
要清除 Google Chrome 的 DNS 缓存,请执行以下步骤:
-
打开一个新标签,然后在地址栏输入
chrome://net-internals/#dnsChrome
。 -
点击 “清除主机缓存” 按钮。
如果那对你不起作用,请尝试清除缓存和 Cookie。
-
按下
CTRL+Shift+Del
以打开 “清除浏览数据” 对话框窗口。 -
选择一个时间范围。选择 “所有时间” 以删除所有内容。
-
选中 “Cookie 和其他站点数据” 和 “缓存的图像和文件” 框。
-
点击 “清除数据” 按钮。
此方法适用于所有基于 Chrome 的浏览器,包括 Chromium,Vivaldi 和 Opera。
火狐 Firefox
要清除 Firefox 的 DNS 缓存,请执行以下步骤:
-
在右上角,单击汉堡包图标 ☰ 以打开 Firefox 的菜单:
-
点击 ⚙ Options (Preferences) 链接。
-
单击左侧的 “隐私和安全性” 或 “隐私” 选项卡。
-
向下滚动到该 History 部分,然后单击 Clear History... 按钮。
-
选择要清除的时间范围。选择 “所有内容” 以删除所有内容。
-
选择所有框,然后单击 “立即清除” 。
如果这对你不起作用,请尝试以下方法并暂时禁用 DNS 缓存。
-
打开一个新标签,然后在 Firefox 的地址栏中输入
about:config
。 -
搜索
network.dnsCacheExpiration
,将值暂时设置为 0,然后单击 “确定”。然后,改回默认值,然后单击 “确定” 。 -
搜索
network.dnsCacheEntries
,将值暂时设置为 0,然后单击 “确定” 。然后,改回默认值,然后单击 “确定”。
结论
至此,你已经了解了如何在 Windows,Linux 和 MacOS 操作系统上清除或刷新 DNS 缓存。
如果还存在问题,Linux 和 MacOS 还可以使用 dig
命令来查询 DNS 并对 DNS 问题进行故障排除。