需要帮助确定如何改变功能以消除缺失的参数警告

时间:2013-10-14 19:50:33

标签: function joomla components warnings alt

在开发Joomla 2.5 Component时,我使用以下函数加载了图像:

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函数中以清除此错误。我自己尝试了几种变体,但还没有破解代码。有什么想法以简单的方式解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

清除错误的最简单方法是添加一个空字符串作为附加参数:

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

显然,对于图像来说,这不是一个很棒的alt标签,但它不应再出现错误了。

您也可以将它作为参数添加到函数中,但在函数中为它设置一个默认值,这样您可以在将来适当地设置它,但仍然清除函数的所有现有用法的错误,如下所示: / p>

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