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