【问题标题】:Joomla Component error - Fatal errorJoomla 组件错误 - 致命错误
【发布时间】:2014-03-21 20:32:58
【问题描述】:

我在我的 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!';

   }

  }

如果有人可以帮助我,我将不胜感激。

【问题讨论】:

  • 你用的是什么版本的 Joonla?

标签: arrays joomla


【解决方案1】:

JRegistry::getvalue() 已在 Joomla 3.x 中删除,因此请确保您改用 JRegistry::get()

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

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

【讨论】:

    【解决方案2】:

    编辑这个答案是因为我意识到问题是另外一回事。这里的问题是您正在执行的 $version 检查查找版本是否为 EXACTLY == 3.0。当您真的希望将 get() 方法用于 3.0 及更高版本时。您应该将 if 语句更改为:

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

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

    【讨论】:

      猜你喜欢
      • 2013-12-27
      • 1970-01-01
      • 2010-11-14
      • 1970-01-01
      • 2014-03-14
      • 1970-01-01
      • 2013-11-14
      • 2012-12-01
      • 1970-01-01
      相关资源
      最近更新 更多