Ошибка установки компонента: JInstaller: :Install: Файл не существует

Я создал компонент, просто следуя этому видео. Я создал свой компонент с именем admin.zip. Я получаю следующее предупреждение при установке в joomla 3.0.

Предупреждение

JInstaller: :Install: Файл не существует C:\wamp\www\Content\tmp\install_52009de34a2c1\site\language\en-GB.com_helloworld.ini

JInstaller: :Install: Файл не существует C:\wamp\www\Content\tmp\install_52009de34a2c1\admin\language\en-GB.com_helloworld.ini

Я получаю компонент helloworld в меню компонентов. но когда я нажимаю на него, выдает ошибку. Он должен показать мне Hello world, как показано на видео.

моя версия wamppserver 2.4 и использование joomla 3.0.

как я могу исправить эту проблему

Ошибка при нажатии на компонент hello world выглядит следующим образом

мой файл helloworld.xml содержит этот код

<?xml version="1.0" encoding="utf-8"?>
<extension type="component" version="2.5.0" method="upgrade">

    <name>com_helloworld</name>
    <creationDate>November 2009</creationDate>
    <author>David Thorn</author>
    <authorEmail>[email protected]</authorEmail>
    <authorUrl>http://www.example.org</authorUrl>
    <copyright>Copyright Info</copyright>
    <license>License Info</license>
    <version>1.0.0.1</version>
    <description>Description of the Hello World component ...</description>
    <files folder="site">
            <filename>index.html</filename>
            <filename>helloworld.php</filename>
            <filename>controller.php</filename>
            <folder>css</folder>
            <folder>js</folder>
            <folder>views</folder>
            <folder>models</folder>
            <folder>controllers</folder>
            <folder>helpers</folder>
            <folder>language</folder>
        </files>
        <languages folder="site">
                        <language tag="en-GB">language/en-GB.com_helloworld.ini</language>
                        <language tag="en-GB">language/en-GB.com_helloworld.sys.ini</language>
        </languages>    
    <administration>
            <menu>com_helloworld</menu>
            <files folder="admin">
                <filename>index.html</filename>
                <filename>helloworld.php</filename>
                <filename>controller.php</filename>
                <folder>css</folder>
                <folder>js</folder>
                <folder>views</folder>
                <folder>models</folder>
                <folder>controllers</folder>
                <folder>helpers</folder>
                <folder>language</folder>
            </files>
            <languages folder="admin">
                        <language tag="en-GB">language/en-GB.com_helloworld.ini</language>
                        <language tag="en-GB">language/en-GB.com_helloworld.sys.ini</language>
            </languages>            
    </administration>

 </extension>

В моем 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 = JController::getInstance('Helloworld');

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

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

Обновить

Я сделал это успешно в joomla 2.5, но это не работает в последней версии joomla. Что мне сделать, чтобы он работал в joomla 3.0?


person insanity    schedule 06.08.2013    source источник
comment
Пишет, что файл отсутствует. Создайте файл.   -  person    schedule 06.08.2013
comment
У меня уже есть этот файл php в указанном месте. После установки моего компонента эти файлы создаются в этих каталогах.   -  person insanity    schedule 06.08.2013
comment
проверьте свой XML-файл, некоторые файлы не являются extis, также следуйте правильному руководству из Joomla docs.joomla .org/Developing_a_Model-View-Controller_Component/   -  person Jobin    schedule 06.08.2013
comment
Я отредактировал свой вопрос и показал свой файл helloworld.xml. Подскажите, пожалуйста, как его отредактировать.   -  person insanity    schedule 07.08.2013


Ответы (2)


проверьте, добавили ли вы этот код в свой XML:

<languages>
        <language tag="en-GB" client="site">language/en-GB/en-GB.com_helloworld.ini</language>
        <language tag="en-GB" client="site">language/en-GB/en-GB.com_helloworldt.sys.ini</language>
</languages>

и:

<administration>
... 
    <languages>
            <language tag="en-GB" client="site">language/en-GB/en-GB.com_helloworld.ini</language>
            <language tag="en-GB" client="site">language/en-GB/en-GB.com_helloworld.sys.ini</language>
    </languages>
...
</administration>

и проверьте, включены ли файлы в ваш установочный ZIP - в нужную папку, например:

язык/en-GB/ ...

Имейте в виду, путь к файлу может отличаться для вашего расширения.

Ян

person Phoca    schedule 06.08.2013
comment
в моем XML-файле у меня есть ‹папка языков=сайт› ‹тег языка=en-GB›language/en-GB.com_helloworld.ini‹/language› ‹тег языка=en-GB›language/en-GB.com_helloworld.sys .ini‹/language› ‹/languages›, а также ‹languages ​​folder=admin› ‹language tag=en-GB›language/en-GB.com_helloworld.ini‹/language› ‹language tag=en-GB›language/en -GB.com_helloworld.sys.ini‹/language› ‹/languages› - person insanity; 06.08.2013

Вам не хватает объявления подпапки en-GB в вашем пути к файлу xml. xml: language/en-GB.com_helloword.sys.ini, тогда как это должен быть language/en-GB/en-GB.helloworld.sys.ini и путь: language/en-GB/en-GB.helloworld.sys.ini то же самое, конечно, относится и к другим языковым файлам.

* с момента вашего редактирования и включения исходного кода, включая ваш полный xml-код с исправлениями (путь к файлу и закрывающий тег расширения)

`

<?xml version="1.0" encoding="utf-8"?>

<name>com_helloworld</name>
<creationDate>November 2009</creationDate>
<author>David Thorn</author>
<authorEmail>[email protected]</authorEmail>
<authorUrl>http://www.example.org</authorUrl>
<copyright>Copyright Info</copyright>
<license>License Info</license>
<version>1.0.0.1</version>
<description>Description of the Hello World component ...</description>
<files folder="site">
        <filename>index.html</filename>
        <filename>helloworld.php</filename>
        <filename>controller.php</filename>
        <folder>css</folder>
        <folder>js</folder>
        <folder>views</folder>
        <folder>models</folder>
        <folder>controllers</folder>
        <folder>helpers</folder>
        <folder>language</folder>
    </files>
    <languages folder="site">
                    <language tag="en-GB">language/en-GB/en-GB.com_helloworld.ini</language>
                    <language tag="en-GB">language/en-GB/en-GB.com_helloworld.sys.ini</language>
    </languages>    
<administration>
        <menu>com_helloworld</menu>
        <files folder="admin">
            <filename>index.html</filename>
            <filename>helloworld.php</filename>
            <filename>controller.php</filename>
            <folder>css</folder>
            <folder>js</folder>
            <folder>views</folder>
            <folder>models</folder>
            <folder>controllers</folder>
            <folder>helpers</folder>
            <folder>language</folder>
        </files>
        <languages folder="admin">
                    <language tag="en-GB">language/en-GB/en-GB.com_helloworld.ini</language>
                    <language tag="en-GB">language/en-GB/en-GB.com_helloworld.sys.ini</language>
        </languages>            
</administration>

` (can not include the extension opening and closing tag, for some reason it wont be printed, please make sure to include them correctly)

для другой вашей проблемы в вашем helloworld.php вам, вероятно, нужно импортировать библиотеку контроллера joomla:

jimport('joomla.application.component.controller');

после

defined('_JEXEC') or die('Restricted access');

и замените это:

$controller = JController::getInstance('Helloworld');

с этим:

$controller = JControllerLegacy::getInstance('Helloworld');
person angelo bodas    schedule 06.08.2013
comment
У меня есть папка en-GB, в которой есть два файла /en-GB.helloworld.sys.ini и en-GB.com_helloworld.ini. также я отредактировал свой вопрос и показал свой файл helloworld.php, в который я импортировал библиотеку управления joomla. - person insanity; 07.08.2013
comment
По ошибке я не скопировал последнюю строку helloworld.xml. Закрывающий тег расширения находится в конце строки. Без тега расширения я получаю сообщение об ошибке при установке пакета. пишет JInstaller: :Install: Не удается найти установочный XML-файл Joomla. Кроме того, я хотел бы спросить, просто добавление JControllerLegacy на мою php-страницу будет работать в Joomla 3.0, или мне также нужно внести некоторые другие изменения. - person insanity; 07.08.2013
comment
это работает, если вы скопируете / вставите код, который я предоставил, и включите теги «расширение»? что касается JControllerLegacy, вы можете попробовать его и сообщить нам, пожалуйста. Если необходимы какие-либо изменения, вы можете обратиться к этому docs.joomla.org/ - person angelo bodas; 07.08.2013