Joomla组件错误 - 致命错误

时间:2014-02-20 17:46:10

标签: arrays joomla

我在Joomla网站上安装了一个故障单模块,提交故障单时出现以下错误

致命错误:在第300行的/home/xboxfifa/public_html/HD/components/com_jtaghelpdesk/controller.php中调用未定义的方法JRegistry :: getValue()

function mailme($formData){
$version = new JVersion();
    $body = "A new inquiry has been recieved: <br /> Name : ". $formData['inqName']. "<br /> Email ID : ". $formData['inqEmail']. "<br/> Message : ".$formData['inqMessage'] ;
    $mailer =& JFactory::getMailer();
    $config =& JFactory::getConfig();
if($version->RELEASE==3.0)
{
    $recipient = array( 
    $config->get('mailfrom'),
    $config->get('fromname'));
}else
{
  $recipient = array( 
    $config->getValue( 'config.mailfrom' ),
    $config->getValue( 'config.fromname' ));
}
   $mailer->addRecipient($recipient);
   $subject=$formData['inqSubject']; 
   $mailer->setSubject($subject);
   $mailer->isHTML(true);
   $mailer->Encoding = 'base64';
   $mailer->setBody($body);
   $send =& $mailer->Send();  

   if ( $send !==true ) 
   {      $msg = 'Reply not Sent!';

   } else 
   {
       $msg = 'Reply Sent Successfully!';

   }

  }

如果有人能帮助我,我会很感激。

2 个答案:

答案 0 :(得分:3)

在Joomla 3.x中删除了

JRegistry::getvalue(),因此请确保使用JRegistry::get()代替。

至于你的版本比较,你应该使用这个:

if (version_compare(JVERSION, '3.0.0', 'ge')){
    // code here
}

答案 1 :(得分:1)

编辑此答案,因为我意识到问题是另一回事。这里的问题是你正在做的$ version检查发现是完全== 3.0。什么时候你真的希望get()方法用于3.0及以上。您应该将if语句更改为:

if($version->RELEASE >= 3.0)
{ ... }

因为您使用的是3.2.1,所以将使用该版本的正确方法获取。