美工统筹SEO,为企业电子商务营销助力!
joomla组件开辟入门教程
一佰互联网站建造(www.taishanly.com) 颁布发表日期 2020-04-27 10:44:12 阅读数: 143
本文报告了joomla组件开辟常识点。分享给大师供大师参考,详细以下:
在你停止编码之前,有一些文件和文件夹须要成立和一些查问语句须要运转。你岂但能够或许成立组件并且不必额定的设置装备摆设便能够或许测验考试差别的特征。你也能够或许看到Joomla!构造和拜候组件体例的概略。最初,你会像别的组件一样插手东西栏。
Joomla!组件的布局
Joomla!的一切组件都遵照指定的定名商定。每一个体系组件都有独一的名字,名字不要包罗空格。代码分红两个文件夹,文件夹以com_开首,紧接着便是组件的名字。是以,你要成立两个不异名字的com_reviews文件夹,一个放到前端components下,另外一个放到后端administrator/components 下。当组件被前端加载的时辰,Joomla!将会查找以组件独一定名并以 .php扩大名竣事的文件。在components/com_reviews 下成立review.php文件。近似地,在后端成立的文件须要在前面加上admin. ,在administrator/components/com_reviews 下成立 admin.reviews.php。
履行组件
Joomla!前端一切的要求都颠末根目次的 index.php 文件,加载差别的组件是经由过程设置 URL GET 的option 变量。假定你本地的joomla!站点地点是 http://localhost/joomla/index.php,那末你加载的组件的地点应当是 http://localhost/joomla/index.php?option=reviews,翻开reviews.php 文件并插手以下代码:
<?php defined( "_JEXEC" ) or die( "Restricted access" ); echo "<div class="componentheading">Restaurant Reviews</div>"; ?>
你会看到近似的页面:
临时不供给图片显现,请参考《Joomla! extension development》
你能够或许想晓得一起头挪用 defined() 函数的目标是甚么,这是为了确保避免代码被间接经由过程 components/com_reviews/reviews.php 来拜候。
在后真个administrator/components/com_reviews/admin.reviews.php 文件加上以下代码:
<?php defined( "_JEXEC" ) or die( "Restricted access" ); echo "Restaurant Reviews"; ?>
阅读地点:
http://localhost/joomla/administrator/index.php?option=com_reviews ,比拟页面的输入:
临时不供给图片显现,请参考《Joomla! extension development》
Joomla!前后真个分手
Joomla!的一切组件,它们的代码使得后端局部与前端局部的代码很好地分手,在某些环境下,比方数据库表类,后端会利用前真个某些文件,但它们是自力的。当你不让后真个函数混入前真个代码那末宁静性就增强了。这是后端和前真个布局近似的同时的一个很主要的特征。以下显现了Joomla!的根目次和administrator 文件夹睁开的图表:
临时不供给图片显现,请参考《Joomla! extension development》
要注重的是 administrator 文件夹与根目次有近似的布局。辨别它们俩是很主要的,不然你能够或许会将你的代码放错地位了而履行失利,除非是将它们放回准确的地位。
在数据库注册组件
你此刻晓得怎样样拜候前端和后真个组件,虽然每次你都能够或许经由过程手工输入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_reviews", "option=com_reviews", "Manage Reviews", "com_reviews", "js/ThemeOffice/component.png", "");
这里申明了组件的称号,能够或许包罗空格和标点,能够或许指定前端和后真个链接,能够或许指定后端组件菜单的图标。当你成立了根基的目次并插手了文件,有的组件已筹办好被履行了,而不须要写任何的SQL语句。如许你就在后端插手了组件的链接,也能够或许在前端恰当的地位插手链接而不须要硬编码URL。革新你后真个页面,下拉组件菜单,你会看到你的组件的子菜单项:
临时不供给图片显现,请参考《Joomla! extension development》
既然组件已注册了,你便能够或许在前端成立链接,去到
“菜单” | “主菜单”,而后单击“新建”按钮,从该页面中挑选“Restaurant Reviews”,输入链接称号后,以下:
临时不供给图片显现,请参考《Joomla! extension development》
点击“保管”,而后去到前端,你应当看到“Reviews”链接:
临时不供给图片显现,请参考《Joomla! extension development》
你能够或许筹办你的PHP技能起头编写组件了。还要确保一切的前端要求都要经由过程 http://localhost/joomla/index.php?option=com_views,后真个要求经由过程 http://localhost/joomla/administrator/index.php?option=com_reviews。
Joomla!是很是矫捷的,能够或许让你做你喜好做的任务。咱们这个例子中,会教你从头建一个组件起头,而后设想东西栏、用户、数据库类和库等,一旦你懂得了它们的任务道理,这些元素将会省下你大批的时辰。
成立东西栏
在Joomla!的后端,一切的焦点组件都完成不异的保管、删除、编辑和颁布发表名目等按钮,你能够或许在你的组件中利用这些按钮以便办理员会有不缝的休会。起首,在administartor/components/com_reviews 文件夹下成立 toolbar.reviews.html.php文件,并输入一下代码:
<?php defined( "_JEXEC" ) or die( "Restricted access" ); class TOOLBAR_reviews { function _NEW() { JToolBarHelper::save(); JToolBarHelper::apply(); JToolBarHelper::cancel(); } function _DEFAULT() { JToolBarHelper::title( JText::_( "Restaurant Reviews" ), "generic.png" ); JToolBarHelper::publishList(); JToolBarHelper::unpublishList(); JToolBarHelper::editList(); JToolBarHelper::deleteList(); JToolBarHelper::addNew(); } } ?>
包罗输入代码的文件凡是会构造成类,像这里的TOOLBAR_reviews。每一个成员函数城市显现差别的东西栏。JtoolBarHelper类包罗了一切成立东西栏HTML元素的函数,你也能够或许插手自界说的HTML。你须要大白的是东西栏是有HTML表格构建的,你能够或许想在你的导航上插手<td> 标签。
东西栏此刻被界说,但你须要插手一些代码来决议显现哪些按钮。Joomla!会主动加载以组件名起头,以 .reviews.php 竣事的文件。插手以下的代码到administrator/components/com_reviews 下的 toolbar.reviews.php 文件:
<?php defined( "_JEXEC" ) or die( "Restricted access" ); require_once( JApplicationHelper::getPath( "toolbar_html" ) ); switch($task) { case "edit": case "add": TOOLBAR_reviews::_NEW(); break; default: TOOLBAR_reviews::_DEFAULT(); break; } ?>
这行包罗 require_once(),利用 JapplicationHelper 类的成员函数 getPath() 来获得toolbar.reviews.php 文件的途径,而不必包罗组件的称号,即便你转变了组件的称号,你不须要点窜代码仍是能够或许一般加载文件。
申明:
你能够或许想晓得为甚么一起头就成立 toolbar.reviews.php 和 toolbar.reviews.html.php 这两个文件。组件开辟职员首选的编码气概是让处置逻辑与输入完全分手,如许今后插手特征和与别人分享代码就很是轻易了。
toolbar.reviews.php 用输入类加载文件后,你须要要决议显现哪一个东西栏。要求的变量 $task会主动注册成为全局变量并有来导向组件的逻辑流。此刻革新后真个页面,进入 Restaurant Reviews组件,而后你应当能看到以下的东西栏:
临时不供给图片显现,请参考《Joomla! extension development》
要看别的的东西栏,在URL前面加上 &task=add ,从头加载页面,你应当看到以下的东西栏:
临时不供给图片显现,请参考《Joomla! extension development》
当你的用户要利用你的组件的时辰,他们固然不想本身手动地在URL后增加 task 变量,那末他们怎样能力利用第二个东西栏呢?每一个东西栏都对应着差别的 task ,当一个按钮被点击,相干的 task 就会插手到表单中并主动提交。
一旦合适的表单在合适的地位时,单击“新建”按钮会看到第二个东西栏,既然咱们不任何的表单在后端,这些东西栏按钮是不会任务的。下一章将会教你怎样让这些按钮失效。
有用的东西栏按钮
Joomla!许可你利用本身的 task 和 label 笼盖任何的按钮,别离传入第一个和第二个参数来笼盖。以下是Joomla!规范版本供给的有用的按钮:
临时不供给图片显现,请参考《Joomla! extension development》
申明:
若是你想成立想焦点按钮一样的自界说按钮,能够或许利用 JtoolBarHelper 的成员函数 custom() ,并通报 task、icon、mouse-over 图片和文本描写作为参数。
更多对于joomla相干内容感乐趣的读者可检查本站专题:《Yii框架入门及经常利用技能总结》、《php优异开辟框架总结》、《smarty模板入门根本教程》、《ThinkPHP经常利用体例总结》、《php面向东西法式设想入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操纵入门教程》及《php罕见数据库操纵技能汇总》
但愿本文所述对大师基于joomla法式设想有所赞助。