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