Приветствую! Установил компонент для CMS Joomla. Установка компонента прошла успешно, но при открытии одной из страниц компонента на сайте появляется ошибка: Код из файла компонента: Код (Text): <?php /** * @version SVN: $Id$ * @package gxjomsocialpoints * @subpackage Base * @author EasyJoomla {@link http://www.easy-joomla.org Easy-Joomla.org} * @author Socialables Studios {@link http://www.Socialables.com} * @author Created on 15-Feb-2010 * @copyright Copyright (C) 2005 - 2010 Socialables.com All rights reserved. * @license GNU/GPL, see LICENSE.php * This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. */ //-- No direct access defined('_JEXEC') or die('=;)'); jimport('joomla.plugin.plugin'); /** * Example User Plugin * * @package gxjomsocialpoints * @subpackage Plugin */ class plgGiftExchangeGxJomsocialBank extends JPlugin { var $_user = null; /** * Constructor * * For php4 compatability we must not use the __constructor as a constructor for plugins * because func_get_args ( void ) returns a copy of all passed arguments NOT references. * This causes problems with cross-referencing necessary for the observer design pattern. * * @param object $subject The object to observe * @param array $config An array that holds the plugin configuration * @since 1.5 */ function plgGiftExchangeGxJomsocialBank(& $subject, $config) { parent::__construct($subject, $config); $this->_user =& JFactory::getUser(); }//function /** * Do something onAfterDispatch */ function onAfterGxTransaction($uid = 0, $flow = 0, $amount = null) { if (!$uid)$uid = $this->_user->id; if ($uid > 0) { $db = &JFactory::getDBO(); if (!$amount) { $query="SELECT ". $db->nameQuote( 'points' ) . " FROM ". $db->nameQuote( '#__community_users' ) . " WHERE ". $db->nameQuote( 'userid' ) . " = " . $uid; $db->setQuery($query); $points = $db->loadResult(); } else { $points = $amount; } //@todo add open account feature //this is an unneeded routine and will eventually be replaced with an Open account feature $query="SELECT ". $db->nameQuote( 'id' ) . " FROM ". $db->nameQuote( '#__gx_bank' ) . " WHERE ". $db->nameQuote( 'uid' ) . " = " . $uid; $db->setQuery($query); $id = $db->loadResult(); $query="SELECT ". $db->nameQuote( 'id' ) . " FROM ". $db->nameQuote( '#__users' ) . " WHERE ". $db->nameQuote( 'id' ) . " = " . $uid; $db->setQuery($query); $exists = $db->loadResult(); if ($id) { $query="SELECT ". $db->nameQuote( 'balance_changed' ) . " FROM ". $db->nameQuote( '#__gx_bank' ) . " WHERE ". $db->nameQuote( 'uid' ) . " = " . $uid; $db->setQuery($query); $balance_changed = $db->loadResult(); if ($balance_changed || $flow) { $query="SELECT ". $db->nameQuote( 'balance' ) . " FROM ". $db->nameQuote( '#__gx_bank' ) . " WHERE ". $db->nameQuote( 'uid' ) . " = " . $uid; $db->setQuery($query); $balance = $db->loadResult(); $query="UPDATE ". $db->nameQuote( '#__community_users' ) . " SET " . $db->nameQuote( 'points' ) . " = " . $balance . " WHERE " . $db->nameQuote( 'userid' ) . " = " . $uid; $db->setQuery($query); if (!$db->query()) { $this->setError($db->getErrorMsg()); //return false; } $query="UPDATE ". $db->nameQuote( '#__gx_bank' ) . " SET " . $db->nameQuote( 'balance_changed' ) . " = 0 WHERE " . $db->nameQuote( 'uid' ) . " = " . $uid; $db->setQuery($query); if (!$db->query()) { $this->setError($db->getErrorMsg()); //return false; } return 'Jomsocial balance updated'; } else { $query="UPDATE ". $db->nameQuote( '#__gx_bank' ) . " SET " . $db->nameQuote( 'balance' ) . " = " . $points . " WHERE " . $db->nameQuote( 'uid' ) . " = " . $uid; $db->setQuery($query); if (!$db->query()) { $this->setError($db->getErrorMsg()); //return false; } } return 'GX balance updated'; } elseif ($exists) { $query="INSERT INTO ". $db->nameQuote( '#__gx_bank' ) . "(uid, ledger, balance) VALUES ($uid, 0, 0 )"; $db->setQuery($query); if (!$db->query()) { $this->setError($db->getErrorMsg()); //return false; } return 'New GX Account Created'; } } } }//class Подскажите, пожалуйста, как можно исправить ошибку.
Если удалить файл gxjomsocialbank.php, то появляется такая же ошибка, но в другом файле: а если удалить файл gxjomsocialstream.php затем появляется другая ошибка и тоже в другом файле: Ошибка в компоненте пропадает после удаления этих файлов gxjomsocialbank.php, gxjomsocialstream.php и gxjomsocialnotify.php или удалив полностью папку /home/sergei/public_html/plugins/giftexchange но нужно чтобы данные файлы были все-таки подключены. И еще эти ошибки появляются только на хостинге. На локальном сервере таких ошибок нет.
Не хватает скобки или точки с запятой именно в этих файлах gxjomsocialbank.php, gxjomsocialstream.php и gxjomsocialnotify.php или в любых файлах компонента?
в любых файлах которые в этот момент задействованы видимо. вы везучий. используйте IDE с подсветкой синтаксиса. она будет ругаться на такие моменты и вы их увидите.
Конкретную IDE, которая вычисляет ошибки так и не нашел. Проверял код на ошибки онлайн сервисом http://phpcodechecker.com/ Ошибка, как я понял в лишней скобки: До После но если эти скобки в файлах удалить, то ошибка не пропадает и тоже самое показывает и т.д....
Сами вы тоже не в состоянии решить проблему. А дебажить джумлу по фотографии всем форумом просто так никто не будет.
die('='); - если это не часть кода (а выглядит как-то совершенно не по-PHPшному) и не вставляется ни в какой exec, не к ночи будь помянут, то нет совершенно никакой разницы, есть там внутри кавычек скобка или нет. И так, и так помрет.
Код (PHP): <?php // ... $alignbutton ? $alignbutton: $alignbutton = ''; // ... !$showprofile ? $caching = 0 : $caching; шедевр