我是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
对我来说。
请帮帮我。
答案 0 :(得分:2)
404
,因为你还没有真正制作一个组件。那是因为你引用的文章是关于组件如何运作的,而且它是一个非常轻量级的描述,这就是为什么它被称为“Absolute Basics of How a Component Functions”。404
组件时,会生成render
和误导性消息。在2.5中如果您将调试系统设置为Yes
并将错误报告设置为Development
,您会看到call stack
以及消息,它看起来像这样: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)。