Component installation error: JInstaller :: Install: File does not exist

I created the component simply by following this video . I created my component called admin.zip. I get the following warning when installing in joomla 3.0.

Warning

JInstaller :: Install: File does not exist C: \ wamp \ www \ Content \ tmp \ install_52009de34a2c1 \ site \ language \ en-GB.com_helloworld.ini

JInstaller :: Install: File does not exist C: \ wamp \ www \ Content \ tmp \ install_52009de34a2c1 \ admin \ language \ en-GB.com_helloworld.ini

I get the helloworld component in the component menu. but when I click on it, it gives me an error. He should show me the world of Hello, as shown in the video.

my version is wamppserver 2.4 and using joomla 3.0.

how can i fix this problem

The error when clicking on the global hello component is as follows

my helloworld.xml file contains this code

<?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> info@thornwebdesign.org </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> 

In my helloworld.php I have this code

 <?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(); ?> 

Update

I did this successfully in joomla 2.5, but it does not work in the latest version of joomla. what should i do to make it work in joomla 3.0

+4
source share
2 answers

check if you added this code to your 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> 

and

 <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> 

and check if the files are included in your ZIP installation - in the right folder, for example:

language / en-GB / ...

Be aware that the file path may be different for your extension.

Jan

0
source

You are missing the declaration of the en-GB subfolder in your xml file path. xml: language / en-GB.com_helloword.sys.ini, while language / en -GB / en-GB.helloworld.sys.ini and path: language / en -GB / en-GB.helloworld.sys. ini the same pattern applies to other language files.

*, since you are making changes and the source code, including the full xml code with corrections (file path and closing extension tag)

`

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

 <name>com_helloworld</name> <creationDate>November 2009</creationDate> <author>David Thorn</author> <authorEmail> info@thornwebdesign.org </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> 

`(cannot include the tag for opening and closing the extension, for some reason it will not be printed, be sure to include them correctly)

for your other problem, in your helloworld.php, you probably need to import the joomla controller library:

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

after

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

and replace this:

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

with this:

 $controller = JControllerLegacy::getInstance('Helloworld'); 
0
source

Source: https://habr.com/ru/post/1495462/


All Articles