2022年joomla组件教程 .pdf
《2022年joomla组件教程 .pdf》由会员分享,可在线阅读,更多相关《2022年joomla组件教程 .pdf(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Joomla! 扩展开发 引言 .2 第一章 Joomla! 扩展开发:概况.2 为什么扩展 Joomla.2 自定义 VS 扩展 .2 如何扩展 Joomla.2 主题概况 .3 第二章 组件开发入门.4 Joomla! 组件的结构 .4 执行组件 .4 Joomla! 前后端的分离.5 在数据库注册组件.6 创建工具栏 .8 有效的工具栏按钮.10 第三章 后端开发 .11 创建数据表 .12 创建数据表类.12 创建点评表单.13 处理数据 .19 创建列表 .21 编辑记录 .24 删除记录 .27 第四章 前端开发 .27 点评列表 .27 显示一个点评.29 创建搜索引擎友好链接.
2、32 创建 URL 段.33 分析 URL 段.34 添加评论 .34 显示评论 .39Author blog:http:/ - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 40 页 - - - - - - - - - 引言Joomla! 赢得了强大的可扩展的内容管理系统的大奖。使得他很容易让第三方开发人员 扩展 Joomla!的核心功能而不用修改核心的代码。 当一个扩展被开发出来,它能够被打包成ZIP 文件给网站管理员上传和使用。管理基 于 Joomla!网站和想使用扩展的人不需要知
3、道任何的编程知识。 上传了ZIP 文件就可以安装 扩展。 Joomla!这个名字来自斯瓦西里语的单词“jumla” ,意思是“一起”或者“整体” 。所 有的组件真的是“一起的,整体的” 。第一章 Joomla! 扩展开发:概况你以前开发过动态网站但你的朋友告诉你有关 Joomla!的事,所以你决定试一试。从食 物网上那些出名的厨师中得到灵感后,你想建立一个简单的关于餐厅的网站。这个网站的安 装比你期望要建立的内容管理系统要快速和平稳。 当你找到一个精美的模板并添加了一些菜单和一些内容后, 你开始考虑增加一些新的特 性可以给你带来更多的访问量,甚至一些钱。之后,你安装了购物车来买书,一个论坛来收
4、 集意见和一些边栏广告。为什么扩展 JoomlaJoomla!不但能够处理内容文章,而且允许你干净地综合各种复杂的应用。开发者为Joomla!开发各种扩展,如购物车、论坛、职位发布等。所有这些扩展能够运行在单个数据 库、模板和核心。我们开发出来的扩展,界面是完全统一的。 当你正确地开发扩展时,你就不用登录数据库和做其他基本的配置。另外,你也可以分 发你自己开发的扩展给别人和别人分享,不需要另外的编程和数据库操作。自定义 VS 扩展Joomla!的代码是设计成可扩展的而不是直接修改它的核心代码。当有升级版本或者有 补丁的时候, Joomla!会升级它本身的核心代码,而你的扩展你不会被覆盖的。如何
5、扩展 JoomlaJoomla!支持三类扩展,每一类都有特殊的用途。 组件 组件是最基本的,组件就是你所看到的页面的主要部分。Joomla!的设计是来为每个页 面加载和运行一个组件。因此,Joomla!核心的内容管理功能本身也是一个组件。 组件经常会有强大的后端管理。 后端通常用来创建和更新数据库记录。你也可以用它来 允许网站管理员来上传图片或者视频。 模块名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 40 页 - - - - - - - - - 相对组件,一个页面可以
6、有很多的模块。模块一般由边栏的元素或者是内容菜单组成, 模块显示组件的内容,它们不是页面的主要内容。Joomla! 也支持不需要编程的内容模块。 模块后端的控制是有限制的,一般由基本的格式组成。 插件 当网站需要插入一些代码来实现某些逻辑,它可以由插件实现(以前叫做Mambot) 。 插件一般用来格式化页面的组件或者模块的输出。例如有这样的组件,关键字高亮显示、文 章点评表单、基于JavaScript 的 HTML编辑器等。后端的控制与模块相似。主题概况创建工具栏和列表Joomla!的后端提供了一套标准的工具栏按钮。它们使得界面可以保持一致的风格,所 以使用者可以很快地熟悉相应的功能。如果有必
7、要的话,这些按钮可以修改和添加。和标准 的工具栏一样, 数据库记录的列表也有统一的显示风格。这些列表通常会包括编辑单条记录 的链接,改变发布状态的链接和提供自动分页功能。 使用 HTML 函数来维护一致的外观和减少重复的代码 在你的扩展里, 有各种标准的CSS类名可以用来格式化内容和HTML 元素。 另外, Joomla! 包含很多函数可以自动生成复选框、下拉框和其他通用的元素。 访问数据库和管理记录Joomla!提供了一个公用的数据库对象,可以让每个页面的请求只适用一个连接。这个 对象提供了一组函数用来查询数据和返回结果。这些函数是独立数据库的, 他们被设计成支 持一个数据库多Joomla!
8、。 除了一个公用的数据库对象,Joomla!还提供了标准的数据库表类。 使用它核心的函数可以创建、读取、更新和删除记录。也可以添加这样的逻辑,当父记录被 删除,其他表的子记录也会被删除。 安全和获取请求变量的首选方法 既然 Joomla!是一个公开的web 应用,有必要保护他免受攻击。Joomla!提供了只有在 框架里被调用的保险的脚本方法,也不会随便地执行。除非是未明的脚本行为,黑客能故意 地提交数据来访问你的数据库,Joomla!提供了阻止这类攻击的功能。 菜单项控制Joomla!的一个显著的特性是导航与内容分离。然而,如果一个组件创建时没有考虑到 这一点, 网站管理员可能会不能选择他们的
9、模板和模块。为了利用这给系统,有必要在产生 连接时使用既定的菜单项 ID 数字。组件的链接可以有多个选项,允许在前端显示不同的选 择而不用手工去构建长长的 URL 。 控制组件的逻辑流 当某一个组件被加载时同一个文件被调用,但是执行不同的函数。Joomla!使用标准的 变量来决定每个请求要执行的函数。对于比较小的组件,可以用来从数据库和其它处理函数 直接处理输出,比较大的组件会使用controller来处理逻辑流,用model来处理数据访问,用名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - -
10、- 第 3 页,共 40 页 - - - - - - - - - views来控制输出。这样的约定使得维护代码更加容易和帮助组件以更可靠的方式执行。 通过 XML 进行参数配置Joomla!不是通过创建单独的表来处理扩展的配置信息,而是预留了一个字段来处理。 变量通过扩展中的XML 文件定义。 XML 文件也提供了默认值和约束这些参数。而且会自动 地保存和返回这些值,而不需要手写查询语句。 打包和分发 一旦所有的代码都编写完成,它是很容易打包给其他人使用的。所有文件的一个列表会 被加入到 XML 文件中。任何需要建立数据表的查询语句也会包含在里面。所有文件被压缩 成一个文件,然后这个扩展就可以
11、被任何基于Joomla!的网站安装和使用。第二章 组件开发入门在你进行编码之前,有一些文件和文件夹需要创建和一些查询语句需要运行。你不但可 以创建组件而且不用额外的配置就可以尝试不同的特性。你也可以看到 Joomla!组织和访问 组件方法的概况。最后,你会像其它组件一样加入工具栏。Joomla! 组件的结构Joomla!的所有组件都遵守指定的命名约定。每个系统组件都有唯一的名字,名字不要包括 空格。代码分成两个文件夹,文件夹以 com_开头,紧接着就是组件的名字。因此,你要创 建两个相同名字的com_reviews 文件夹,一个放到前端components 下,另一个放到后端administr
12、ator/components 下。当组件被前端加载的时候,Joomla!将会查找以组件唯一命名 并以.php 扩展名结束的文件。 在 components/com_reviews 下建立 review.php 文件。 相似地, 在后端建立的文件需要在前面加上admin. ,在 administrator/components/com_reviews 下建 立 admin.reviews.php。执行组件Joomla!前端所有的请求都经过根目录的index.php 文件,加载不同的组件是通过设置URL GET 的option 变量。假设你本地的joomla! 站点地址是http:/localh
13、ost/joomla/index.php ,那 么你加载的组件的地址应该是http:/localhost/joomla/index.php?option=reviews,打开reviews.php 文件并加入以下代码:?php defined( _JEXEC ) or die( Restricted access )? echo Restaurant Reviews? ?你会看到类似的页面:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 40 页 - - - - - -
14、- - - 你可能想知道一开始调用defined() 函数的目的是什么,这是为了确保避免代码被直接 通过components/com_reviews/reviews.php 来访问。 在后端的 administrator/components/com_reviews/admin.reviews.php 文件加上以下代码:浏览地址http:/localhost/joomla/administrator/index.php?option=com_reviews , 比较页面的输 出:Joomla! 前后端的分离Joomla! 的所有组件,它们的代码使得后端部分与前端部分的代码很好地分离,在某些 情
15、况下,例如数据库表类,后端会使用前端的某些文件,但它们是独立的。当你不让后端的 函数混入前端的代码那么安全性就加强了。 这是后端和前端的结构相似的同时的一个很重要 的特性。以下显示了Joomla! 的根目录和administrator 文件夹展开的图表:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 40 页 - - - - - - - - - 要注意的是administrator 文件夹与根目录有相似的结构。区分它们俩是很重要的,否则你 可能会将你的代码放错位置了而执行
16、失败,除非是将它们放回正确的位置。在数据库注册组件你现在知道怎么样访问前端和后端的组件,尽管每次你都能够通过手工输入 URL 来执 行你的代码,但你的用户你无法接受的。如果你在数据库注册了组件,即在 components 数 据表中加入一条记录,那么你就可以使用导航了。使用以下的 SQL 语句来注册组件:INSERT INTO jos_components (name, link, admin_menu_link, admin_menu_alt, option, admin_menu_img, params) VALUES (Restaurant Reviews, option=com_rev
17、iews, option=com_reviews, Manage Reviews, com_reviews, js/ThemeOffice/component.png, )? 这里声明了组件的名称,可以包括空格和标点,可以指定前端和后端的链接,可以指定 后端组件菜单的图标。 当你建立了基本的目录并加入了文件, 有的组件已经准备好被执行了, 而不需要写任何的 SQL 语句。这样你就在后端加入了组件的链接,也可以在前端适当的位 置加入链接而不需要硬编码URL 。刷新你后端的页面,下拉组件菜单,你会看到你的组件 的子菜单项:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - -
18、 - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 40 页 - - - - - - - - - 既然组件已经注册了,你就可以在前端创建链接,去到 “菜单”| “主菜单”,然后单击 “新建”按钮,从该页面中选择“Restaurant Reviews”,输入链接名称后,如下图: 点击“保存”,然后去到前端,你应该看到“Reviews”链接:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 40 页 - - - - - - - - -
19、 你可以准备你的PHP技巧开始编写组件了。还要确保所有的前端请求都要通过http:/localhost/joomla/index.php?option=com_views,后端的请求通过http:/localhost/joomla/administrator/index.php?option=com_reviews。Joomla!是非常灵活的,可以让你做你喜欢做的事情。我们这个例子中,会教你从新建 一个组件开始,然后设计工具栏、用户、数据库类和库等,一旦你理解了它们的工作原理, 这些元素将会省下你大量的时间。创建工具栏在 Joomla! 的后端,所有的核心组件都实现相同的保存、删除、编辑和发布
20、项目等按钮,你 可 以 在 你 的 组 件 中 使 用 这 些 按 钮 以 便 管 理 员 会 有 无 缝 的 体 验 。 首 先 , 在administartor/components/com_reviews 文件夹下创建toolbar.reviews.html.php 文件,并输入 一下代码: 包括输出代码的文件通常会组织成类,像这里的TOOLBAR_reviews 。每个成员函数都 会显示不同的工具栏。JtoolBarHelper 类包含了所有创建工具栏HTML 元素的函数,你也可 以加入自定义的HTML 。你需要明白的是工具栏是有HTML 表格构建的,你可能想在你的导 航上加入 标签。
21、 工具栏现在被定义,但你需要加入一些代码来决定显示哪些按钮。Joomla!会自动加载 以组件名开始,以.reviews.php 结束的文件。加入以下的代码到administrator/components/com_reviews 下的toolbar.reviews.php 文件:这 行 包 含require_once() , 使 用JapplicationHelper 类 的 成 员 函 数getPath() 来 获 取toolbar.reviews.php 文件的路径,而不用包括组件的名称,即使你改变了组件的名称,你不 需要修改代码还是可以正常加载文件。 说明:你可能想知道为什么一开始就创建
22、toolbar.reviews.php 和 toolbar.reviews.html.php 这 两个文件。 组件开发人员首选的编码风格是让处理逻辑与输出完全分离,这样以后加入特性 和与别人分享代码就非常容易了。toolbar.reviews.php 用输出类加载文件后, 你需要要决定显示哪个工具栏。 请求的变量$task 会自动注册成为全局变量并有来导向组件的逻辑流。现在刷新后端的页面,进入Restaurant Reviews 组件,然后你应该能看到以下的工具栏: 要看其它的工具栏,在URL 后面加上&task=add ,重新加载页面,你应该看到以下的工具 栏:名师资料总结 - - -精品资
23、料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 40 页 - - - - - - - - - 当你的用户要使用你的组件的时候,他们当然不想自己手动地在URL后添加task 变 量,那么他们怎么才能使用第二个工具栏呢?每个工具栏都对应着不同的task ,当一个按 钮被点击,相关的task 就会加入到表单中并自动提交。 一旦适合的表单在适合的位置时,单击“新建”按钮会看到第二个工具栏,既然我们没 有任何的表单在后端, 这些工具栏按钮是不会工作的。 下一章将会教你怎么让这些按钮生效。有效的工具栏按钮Joom
24、la!允许你使用自己的task 和 label 覆盖任何的按钮, 分别传入第一个和第二个参数来 覆盖。以下是 Joomla!标准版本提供的有效的按钮:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 40 页 - - - - - - - - - 说明: 如果你想创建想核心按钮一样的自定义按钮,可以使用JtoolBarHelper 的成员函数custom() ,并传递task、icon、mouse-over 图片和文本描述作为参数。第三章 后端开发名师资料总结 - - -精
25、品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 40 页 - - - - - - - - - 创建和管理点评是我们组件的最大任务。 我们会加入表单和数据库函数,然后就可以添 加点评。创建数据表在建立界面来输入点评前,我们需要创建点评的数据表:CREATE TABLE jos_reviews ( id int(11) NOT NULL auto_increment, name varchar(255) NOT NULL, address varchar(255) NOT NULL, reserva
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年joomla组件教程 2022 joomla 组件 教程
限制150内