4

このビデオに従うだけでコンポーネントを作成できました。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>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>

私の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で動作させるにはどうすればよいですか

4

2 に答える 2

1

xml ファイル パスに en-GB サブフォルダー宣言がありません。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>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>

` (拡張子の開始タグと終了タグを含めることはできません。何らかの理由で印刷されません。正しく含めるようにしてください)

他の問題については、helloworld.php で、おそらく joomla コントローラー ライブラリをインポートする必要があります。

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

後に

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

これを置き換えます:

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

これで:

$controller = JControllerLegacy::getInstance('Helloworld');
于 2013-08-06T12:54:24.450 に答える
1

このコードを 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 に含まれているかどうかを確認します。

language/en-GB/ ...

ファイルへのパスは、拡張機能によって異なる場合があることに注意してください。

1月

于 2013-08-06T09:53:55.670 に答える