标签:
(1)模型是用来管理数据的,他返回数据给调用者,所以第一个必须实现的函数是get.
在这个例子中调用者是HelloWorldViewHelloWorld.
site/models/helloworld.php
<?php // No direct access to this file defined(‘_JEXEC‘) or die(‘Restricted access‘); // import Joomla modelitem library jimport(‘joomla.application.component.modelitem‘); /** * HelloWorld Model */ class HelloWorldModelHelloWorld extends JModelItem { /** * @var string msg */ protected $msg; /** * Get the message * @return string The message to be displayed to the user */ public function getMsg() { if (!isset($this->msg)) { $this->msg = ‘Hello World!‘; } return $this->msg; } }
(2)HelloWorldViewHelloWorld类通过get方法获取数据
site/views/helloworld/view.html.php
<?php // No direct access to this file defined(‘_JEXEC‘) or die(‘Restricted access‘); // import Joomla view library jimport(‘joomla.application.component.view‘); /** * HTML View class for the HelloWorld Component */ class HelloWorldViewHelloWorld extends JView(JViewLegacy) { // Overwriting JView display method function display($tpl = null) { // Assign data to the view $this->msg = $this->get(‘Msg‘); // Check for errors. if (count($errors = $this->get(‘Errors‘))) { JLog::add(implode(‘<br />‘, $errors), JLog::WARNING, ‘jerror‘); return false; } // Display the view parent::display($tpl); } }
$this->get() 是JView ::get (JViewLegacy::get), 它是一个委托,获得默认model类中的对应方法。
(3)修改helloworld.xml 指明使用了模型和视图,并且修改版本号
<?xml version="1.0" encoding="utf-8"?> <extension type="component" version="2.5.0" method="upgrade"> <name>Hello World!</name> <!-- The following elements are optional and free of formatting constraints --> <creationDate>November 2009</creationDate> <author>John Doe</author> <authorEmail>john.doe@example.org</authorEmail> <authorUrl>http://www.example.org</authorUrl> <copyright>Copyright Info</copyright> <license>License Info</license> <!-- The version string is recorded in the components table --> <version>0.0.4</version> <!-- The description is optional and defaults to the name --> <description>Description of the Hello World component ...</description> <update> <!-- Runs on update; New in 2.5 --> <schemas> <schemapath type="mysql">sql/updates/mysql</schemapath> </schemas> </update> <!-- Site Main File Copy Section --> <!-- Note the folder attribute: This attribute describes the folder to copy FROM in the package to install therefore files copied in this section are copied from /site/ in the package --> <files folder="site"> <filename>index.html</filename> <filename>helloworld.php</filename> <filename>controller.php</filename> <folder>views</folder> <folder>models</folder> </files> <administration> <!-- Administration Menu Section --> <menu>Hello World!</menu> <!-- Administration Main File Copy Section --> <!-- Note the folder attribute: This attribute describes the folder to copy FROM in the package to install therefore files copied in this section are copied from /admin/ in the package --> <files folder="admin"> <!-- Admin Main File Copy Section --> <filename>index.html</filename> <filename>helloworld.php</filename> <!-- SQL files section --> <folder>sql</folder> </files> </administration> </extension>
最后打包安装。
标签:
原文地址:http://www.cnblogs.com/codergma/p/4769734.html