为joomla 3创建一个组件

时间:2013-12-24 07:33:19

标签: php joomla

我是joomla的新手。 我根据来自docs.joomla的这个docs创建了一个组件。这个组件在joomla 3上成功安装。我通过在我网站的url末尾添加此部分来转到此组件。

index.php?option=com_testup

但是我收到了404错误。 这是我的文件结构

com_testup.php
com_testup.xml
controller.php

我从上面的文件创建一个zip,并为此zip文件的名称设置com_testup。 我的com_testup.php的内容是:

<?php
defined('_JEXEC') or die('Restricted access');
require_once(JPATH_COMPONENT .'/controller.php');
// Get an instance of the controller prefixed by <name>
$controller = JControllerLegacy::getInstance('testup');

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

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

我的controller.php的内容是:

<?php
defined ('_JEXT') or die ('Restericted access');
jimport ('joomla.application.component.controller');
class testupControler extents JcontrolerLagecy 
{
function display()
  {
    echo 'displaying';
  }
}
?>

我的com_content.xml的内容是:

<?xml version="1.0" encoding="utf-8"?>
<extension type="component" version="3.1.0">
 <name>testup</name>
 <version>1.01</version>
 <description>test upload</description>

 <filename>com_testup.xml</filename>
 <filename>com_testup.php</filename>
  <filename>controller.php</filename>

 <administration>
  <menu>testup</menu>
 </administration>
</extension>

但我无法从后端和frond-end访问此组件。在joomla管理员的组件菜单中,我看到“testup”菜单。但是当我点击它时出现

404 Component not found
对我来说。 请帮帮我。

2 个答案:

答案 0 :(得分:2)

  1. 你得到一个404,因为你还没有真正制作一个组件。那是因为你引用的文章是关于组件如何运作的,而且它是一个非常轻量级的描述,这就是为什么它被称为“Absolute Basics of How a Component Functions”。
  2. 当Joomla尝试404组件时,会生成render和误导性消息。在2.5中如果您将调试系统设置为Yes并将错误报告设置为Development,您会看到call stack以及消息,它看起来像这样:
  3. e.g。

    Call stack
    # Function  Location
    1 JAdministrator->dispatch() /jdev/administrator/index.php:46
    2 JComponentHelper::renderComponent() /jdev/administrator/includes/application.php:153
    3 JError::raiseError() /jdev/libraries/joomla/application/component/helper.php:337
    4 JError::raise()   /jdev/libraries/joomla/error/error.php:251
    

    要为Joomla的每个部分创建一个完整的组件,您需要Views和许多其他位(实际上它是两个应用程序,一个用于 / administrator ,另一个用于前端)。

    Joomla有自己的MVC,你需要学习,通过“Developing a MVC Component”介绍开始工作。

答案 1 :(得分:0)

你还没有看到。并非所有组件都需要视图,并且并非所有视图都需要是html(例如,它们可以是xml或json),但如果要浏览页面并进行渲染,则需要创建html文档(查看核心)扩展都有view.html.php)。