1.7 HelloWorld 添加视图

模型: 管理数据

控制器:执行任务,设置或者获取模型的状态,请求视图显示

视图:显示被控件选中的内容

(1)Setting the controller

JController是一个管理控制器的类, 在site/helloworld.php添加如下代码。


<?php// No direct access to this file
defined(‘_JEXEC‘) or die(‘Restricted access‘);

// import joomla controller library
jimport(‘joomla.application.component.controller‘);

// Get an instance of the controller prefixed by HelloWorld
$controller= JControllerLegacy::getInstance(‘HelloWorld‘);

// Perform the Request task
$input= JFactory::getApplication()->input;
$controller->execute($input->getCmd(‘task‘)); 

// Redirect if set by the controlle
r$controller->redirect();

JControllerLegacy::getInstance(‘HelloWorld‘);(注意3.x版本使用的是JControllerLegacy,如果看官网上使用的是JController)

创建一个名为HelloWorldController的控制器类,Joomla将会在controller.php中查找这个类的声明。
 
所以在site/controller.php文件中写入下面代码:

<?php
// No direct access to this file
defined(‘_JEXEC‘) or die(‘Restricted access‘);

// import Joomla controller library
jimport(‘joomla.application.component.controller‘);

/**
 * Hello World Component Controller
 */
class HelloWorldController extends JControllerLegacy (注意3.x要继承JControllerLegacy)
{}

当没有指定task的值时,默认task将会被执行,默认task任务是display,所以在HelloWorldController中创建display方法。

(2)Setting the view
当JController想去展示一个view的时候,他将会从目录component/com_helloworld/views/helloworld/目录下查找
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  extendsJViewLegacy(注意3.x要继承JViewLegacy){
    // Overwriting JView display method
    function display($tpl=null){
    // Assign data to the view
    $this->msg=‘Hello World‘;

    // Display the view
    parent::display($tpl);
}}

JView类的display方法会被JController类的task方法调用,在这个例子中display方法将会显示tmpl/default.php文件。
 
 
site/views/helloworld/tmpl/default.php

<?php
// No direct access to this file
defined(‘_JEXEC‘) or die(‘Restricted access‘);
?>
<h1><?phpecho$this->msg;?></h1>

这个模板文件将会被JView类包含,所以$this指的是HelloWorldViewHelloWorld类。

 
 

helloworld.xml


<?xmlversion="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>[email protected]</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.2</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><schemapathtype="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 -->
<filesfolder="site"><filename>index.html</filename>
<filename>helloworld.php</filename>
<filename>controller.php</filename>
<folder>views</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 -->
    <filesfolder="admin">
        <!-- Admin Main File Copy Section -->
        <filename>index.html</filename>
        <filename>helloworld.php</filename>
        <!-- SQL files section -->
        <folder>sql</folder>
    </files>
</administration>

</extension>






				
时间: 2024-10-06 21:10:29

1.7 HelloWorld 添加视图的相关文章

Asp.net MVC]Asp.net MVC5系列——添加视图

目录 概述 添加视图 总结 系列文章 [Asp.net MVC]Asp.net MVC5系列--第一个项目 概述 在这一部分我们添加一个新的控制器HelloWorldController类,以便使用视图来向客户端展示HTML格式的响应结果. 我们将使用Razor视图引擎创建一个视图.Razor视图模板以.cshtml扩展名结尾,它提供了一种简洁的方式来创建HTML输出流.Razor视图大大减少了在书写视图模板文件时所需要输入的字符,提供了一个最快捷,最简便的编码方式. (注意:之前版本的asp.

007.Adding a view to an ASP.NET Core MVC app -- 【在asp.net core mvc中添加视图】

Adding a view to an ASP.NET Core MVC app 在asp.net core mvc中添加视图 2017-3-4 7 分钟阅读时长 本文内容 1.Changing views and layout pages 修改视图和布局页 2.Change the title and menu link in the layout file 在布局文件中修改标题与菜单 3.Passing Data from the Controller to the View 从控制器向视图

ASP.NET MVC4 新手入门教程之三 ---3.添加视图

在这一节你要修改HelloWorldController类要使用的视图模板文件来干净封装生成 HTML 响应到客户端的过程. 您将创建一个使用Razor 视图引擎介绍 ASP.NET MVC 3 的视图模板文件.剃刀基于视图模板具有.cshtml文件扩展名,并提供优雅的方式来创建 HTML 输出使用 C#.剃刀将字符和击键时编写一个视图模板所需的数量降至最低,并使快速流畅的编码工作流. 目前Index方法返回一条消息,是在控制器类中硬编码的字符串.更改Index方法,以返回View对象,如下面的

学习ASP .NET MVC5官方教程总结(三)添加视图

学习ASP .NET MVC5官方教程总结(三)添加视图 在上一章中我们讲了MVC中的"C",控制器Controllers,这一章我们来讲"V",视图Views的知识. 首先,打开我们的项目,打开我们的HelloWorldController,并修改Index(): <span style="font-size:14px;">public ActionResult Index() { return View(); }</span

Eclipse插件开发学习笔记【3】--- 添加视图和透视图

一.添加视图 视图是Eclipse插件开发中一个重要的扩展点,我们需要做的是在Eclipse插件项目中插入一个视图. 首先,新建一个插件项目,命名为addView,选择Hello Word模板,其他默认设置. 包结构如图所示: 双击plugin.xml文件,选择扩展选项卡,点击添加org.eclipse.ui.views扩展点. 右键新建一个category和view属性如图所示: 右键src添加类,输入类名FirstView,继承超类ViewPart,包addperspective.views

MVC中添加视图

可以在视图文件夹中手动创建一个视图文件,一般都是在控制器中的操作方法中鼠标右键,然后选择添加视图或者转到视图,如果选择添加视图的话就会创建一个跟当前操作方法一样名字的视图,如图: 模板中有一些,模板可以选择,会根据选择的模型自动生成一些相关的HTML代码,其实也没什么用.下方三个选择框,第一个是说明创建的是一个部门视图,跟部分类差不多的道理.如果选择了引用脚本库的话,IDE会自动的帮你在页面中引用的三方的类库等样式文件,如果选择的是使用布局页,说明此页面是否引用布局,还是成为一个完全独立的视图.

添加视图后在屏幕上看不到或点击无响应的原因浅析

添加视图后不可见: 1.创建视图后没有添加到父视图上 2.视图没有设置背景颜色,颜色为clearColor 3.创建视图时没有设置frame 4.创建视图的过程写在方法中,但是没有调用 5.添加到的父视图为nil,父视图不存在,所以添加不上 添加视图后不能响应交互 1.查找视图的层级关系,是否当前视图的上面还有其他视图,而颜色设置为clearColor 2.视图超出父视图的管理范围,超出部分无法响应交互 3.视图的用户交互(userInteractionEnabled)可能没有打开或者不小心关闭

Xamarin iOS开发实战上册-----2.2.2 使用代码添加视图

Xamarin iOS开发实战上册-----2.2.2  使用代码添加视图 如果开发者想要使用代码为主视图添加视图,该怎么办呢.以下将为开发者解决这一问题.要使用代码为主视图添加视图需要实现3个步骤. 1.实例化视图对象 每一个视图都是一个特定的类.在C#中,经常会说,类是一个抽象的概念,而非具体的事物,所以要将类进行实例化.实例化一个视图对象的具体语法如下: 视图类 对象名=new 视图类(); 以我们接触的第一个视图View为例,它的实例化对象如下: UIView vv=new UIView

iOS 11开发教程(十四)iOS11应用代码添加视图

iOS 11开发教程(十四)iOS11应用代码添加视图 如果开发者想要使用代码为主视图添加视图,该怎么办呢.以下将为开发者解决这一问题.要使用代码为主视图添加视图需要实现3个步骤. (1)实例化视图对象 每一个视图都是一个特定的类.在Swift中,经常会说,类是一个抽象的概念,而非具体的事物,所以要将类进行实例化.实例化一个视图对象的具体语法如下: let/var 对象名=视图类() 以我们接触的第一个视图View为例,它的实例化对象如下: let newView=UIView() 其中,UIV