2013-12-24 2 views
0

Я новичок в joomla. Я создаю компонент в соответствии с этим docs от docs.joomla. Этот компонент успешно устанавливается на joomla 3. Я перехожу к этому компоненту, добавив этот раздел в конец моего URL-адреса моего сайта.создать компонент для joomla 3

index.php?option=com_testup 

, но я получаю ошибку 404. это моя структура файла

com_testup.php 
com_testup.xml 
controller.php 

создать почтовый из файла выше, и установите 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> 

но я не могу получить доступ к этому компоненту из фонового и от конца. В меню компонентов в администраторе joomla я вижу меню «testup». Но когда я нажимаю на него, вы получаете

404 Component not found 

для меня. , пожалуйста, помогите мне.

+1

Вы не думаете, что имя имени com_tesup.php должно быть testup.php. и попробуйте использовать xdebug в netbeans или ecllipse, чтобы узнать, где ваш код вызывает проблему. – arslan

ответ

2
  1. Вы получаете 404, потому что вы действительно не сделали компонент. Это потому, что статья, на которую вы ссылаетесь, касается того, как работают компоненты, и это очень легкое описание, поэтому оно называется «Absolute Basics of How a Component Functions».
  2. 404 и вводящее в заблуждение сообщение генерируется, когда Joomla пытается установить render. В 2.5, если вы установите отладки системы для Yes и установить Error Reporting в Development вы бы увидели call stack, а также сообщение, и он будет выглядеть примерно так:

например

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 

Чтобы сделать полный компонент вам нужно Views и много других битов для каждого раздела Joomla (на самом деле это два приложения для одного /администратора и другие для фронтэнда).

У Joomla есть свой собственный MVC, который вам нужно будет изучить, чтобы начать работу через введение «Developing a MVC Component».

0

У вас нет доступа. Не всем компонентам нужны представления, и не все представления должны быть html (например, они могут быть xml или json), но если вы хотите перейти на страницу и сделать ее рендерингом, вам нужно создать html-документ (посмотрите на ядро расширения, которые имеют view.html.php).

Смежные вопросы