0

Joomla 2.5 コンポーネントを開発するとき、次の関数を使用してイメージをロードしました。

public function iconButton( $link, $image ) {

    $lang    = &JFactory::getLanguage();
    $button = '';
    if ($lang->isRTL()) {
        $button .= '';
    } else {
        $button .= '';
    }
    $button .=    ''
               .'<a href="'.$link.'" target="_blank">'
               .JHTML::_('image', 'administrator/components/com_mycomponent/assets/images/'.$image )
               .'</a>'
               .'';
    $button .= '';

    return $button;
}

現在、ライブ サイトでこのイメージをテストしていますが、次のエラー メッセージが表示されます。

Warning: Missing argument 2 for JHtml::image() in ../public_html/libraries/joomla/html/html.php on line 474

警告からのパスを調査したところ、474行目に次のことがわかりました。

public static function image($file, $alt, $attribs = null, $relative = false, $path_only = false)

警告を作成しているビューの呼び出しは次のとおりです。

echo MyComponentHelper:: iconButton( $link, 'myimage.png' );

$altこれにより、このエラーを解消するには、カスタムiconButton関数に変数を追加する必要があると思われます。私はこれのいくつかのバリエーションを自分で試しましたが、まだコードをクラックしていません。これをクリアする簡単な方法について何か考えはありますか?

4

1 に答える 1

0

エラーを解消する最も簡単な方法は、追加のパラメーターとして空の文字列を追加することです。

.JHTML::_('image', 'administrator/components/com_mycomponent/assets/images/'.$image, '')

明らかに、これは画像に付ける alt タグとしては適切ではありませんが、もうエラーになることはありません。

関数にパラメーターとして追加することもできますが、関数にデフォルト値を設定することもできます。そのため、将来的には適切に設定できますが、関数の既存のすべての使用についてエラーをクリアすることもできます。

public function iconButton( $link, $image, $alt='' ) {

    $lang    = &JFactory::getLanguage();
    $button = '';
    if ($lang->isRTL()) {
        $button .= '';
    } else {
        $button .= '';
    }
    $button .=    ''
               .'<a href="'.$link.'" target="_blank">'
               .JHTML::_('image', 'administrator/components/com_mycomponent/assets/images/'.$image, $alt )
               .'</a>'
               .'';
    $button .= '';

    return $button;
}
于 2013-10-14T20:06:18.070 に答える