zoukankan      html  css  js  c++  java
  • 1.9 Hello World添加model

    (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>

    最后打包安装。

  • 相关阅读:
    Spring MVC常用注解
    SQL预处理
    浅析用链表实现的队列
    logrotate自动切割某一服务模板
    3种安装nginx的方法以及相关的配置文件
    一键部署NFS服务端脚本
    rsync排错
    NFS排错
    nfs客户端 一键切换 nfs高可用主机脚本
    实时监控nfs服务端是否宕机
  • 原文地址:https://www.cnblogs.com/codergma/p/4769734.html
Copyright © 2011-2022 走看看