2012-08-14 105 views
0

我releatively新PHP和看了前面的回答這個問題,我完全糊塗了..類「數據庫」未找到(在這裏需要一些幫助)

我最近搬到一箇舊的網站到一個新的服務器主機和嘗試加載頁面時,我得到

PHP Fatal error: Class 'database' not found in /home4/courseso/public_html/plugins/system/legacy.php on line 147 

我來這是什麼意思,或者闖民宅也很困惑,我所有我的網頁上看到的是一個空白的背景,那就是它... legacy.php文件如下。

<?php 
/** 
* @version  $Id: legacy.php 11299 2008-11-22 01:40:44Z ian $ 
* @package  Joomla 
* @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. 
* @license  GNU/GPL, see LICENSE.php 
* Joomla! is free software. 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. 
* See COPYRIGHT.php for copyright notices and details. 
*/ 

// no direct access 
defined('_JEXEC') or die('Restricted access'); 

jimport('joomla.plugin.plugin'); 

/** 
* Joomla! Debug plugin 
* 
* @package  Joomla 
* @subpackage System 
*/ 
class plgSystemLegacy extends JPlugin 
{ 
    /** 
    * 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.0 
    */ 
    function plgSystemLegacy(& $subject, $config) 
    { 
     parent::__construct($subject, $config); 

     global $mainframe; 

     // Define the 1.0 legacy mode constant 
     define('_JLEGACY', '1.0'); 

     // Set global configuration var for legacy mode 
     $config = &JFactory::getConfig(); 
     $config->setValue('config.legacy', 0); 

     // Import library dependencies 
     require_once(dirname(__FILE__).DS.'legacy'.DS.'classes.php'); 
     require_once(dirname(__FILE__).DS.'legacy'.DS.'functions.php'); 

     // Register legacy classes for autoloading 
     JLoader::register('mosAdminMenus' , dirname(__FILE__).DS.'legacy'.DS.'adminmenus.php'); 
     JLoader::register('mosCache'  , dirname(__FILE__).DS.'legacy'.DS.'cache.php'); 
     JLoader::register('mosCategory'  , dirname(__FILE__).DS.'legacy'.DS.'category.php'); 
     JLoader::register('mosCommonHTML' , dirname(__FILE__).DS.'legacy'.DS.'commonhtml.php'); 
     JLoader::register('mosComponent' , dirname(__FILE__).DS.'legacy'.DS.'component.php'); 
     JLoader::register('mosContent'  , dirname(__FILE__).DS.'legacy'.DS.'content.php'); 
     JLoader::register('mosDBTable'  , dirname(__FILE__).DS.'legacy'.DS.'dbtable.php'); 
     JLoader::register('mosHTML'   , dirname(__FILE__).DS.'legacy'.DS.'html.php'); 
     JLoader::register('mosInstaller' , dirname(__FILE__).DS.'legacy'.DS.'installer.php'); 
     JLoader::register('mosMainFrame' , dirname(__FILE__).DS.'legacy'.DS.'mainframe.php'); 
     JLoader::register('mosMambot'  , dirname(__FILE__).DS.'legacy'.DS.'mambot.php'); 
     JLoader::register('mosMambotHandler', dirname(__FILE__).DS.'legacy'.DS.'mambothandler.php'); 
     JLoader::register('mosMenu'   , dirname(__FILE__).DS.'legacy'.DS.'menu.php'); 
     JLoader::register('mosMenuBar'  , dirname(__FILE__).DS.'legacy'.DS.'menubar.php'); 
     JLoader::register('mosModule'  , dirname(__FILE__).DS.'legacy'.DS.'module.php'); 
     //JLoader::register('mosPageNav' , dirname(__FILE__).DS.'legacy'.DS.'pagination.php'); 
     JLoader::register('mosParameters' , dirname(__FILE__).DS.'legacy'.DS.'parameters.php'); 
     JLoader::register('patFactory'  , dirname(__FILE__).DS.'legacy'.DS.'patfactory.php'); 
     JLoader::register('mosProfiler'  , dirname(__FILE__).DS.'legacy'.DS.'profiler.php'); 
     JLoader::register('mosSection'  , dirname(__FILE__).DS.'legacy'.DS.'section.php'); 
     JLoader::register('mosSession'  , dirname(__FILE__).DS.'legacy'.DS.'session.php'); 
     JLoader::register('mosToolbar'  , dirname(__FILE__).DS.'legacy'.DS.'toolbar.php'); 
     JLoader::register('mosUser'   , dirname(__FILE__).DS.'legacy'.DS.'user.php'); 

     // Register class for the database, depends on which db type has been selected for use 
     $dbtype = $config->getValue('config.dbtype', 'mysql'); 
     JLoader::register('database'  , dirname(__FILE__).DS.'legacy'.DS.$dbtype.'.php'); 

     /** 
     * Legacy define, _ISO define not used anymore. All output is forced as utf-8. 
     * @deprecated As of version 1.5 
     */ 
     define('_ISO','charset=utf-8'); 

     /** 
     * Legacy constant, use _JEXEC instead 
     * @deprecated As of version 1.5 
     */ 
     define('_VALID_MOS', 1); 

     /** 
     * Legacy constant, use _JEXEC instead 
     * @deprecated As of version 1.5 
     */ 
     define('_MOS_MAMBO_INCLUDED', 1); 

     /** 
     * Legacy constant, use DATE_FORMAT_LC instead 
     * @deprecated As of version 1.5 
     */ 
     DEFINE('_DATE_FORMAT_LC', JText::_('DATE_FORMAT_LC1')); //Uses PHP's strftime Command Format 

     /** 
     * Legacy constant, use DATE_FORMAT_LC2 instead 
     * @deprecated As of version 1.5 
     */ 
     DEFINE('_DATE_FORMAT_LC2', JText::_('DATE_FORMAT_LC2')); 

     /** 
     * Legacy constant, use JFilterInput instead 
     * @deprecated As of version 1.5 
     */ 
     DEFINE("_MOS_NOTRIM", 0x0001); 

     /** 
     * Legacy constant, use JFilterInput instead 
     * @deprecated As of version 1.5 
     */ 
     DEFINE("_MOS_ALLOWHTML", 0x0002); 

     /** 
     * Legacy constant, use JFilterInput instead 
     * @deprecated As of version 1.5 
     */ 
     DEFINE("_MOS_ALLOWRAW", 0x0004); 

     /** 
     * Legacy global, use JVersion->getLongVersion() instead 
     * @name $_VERSION 
     * @deprecated As of version 1.5 
     */ 
     $GLOBALS['_VERSION'] = new JVersion(); 
     $version    = $GLOBALS['_VERSION']->getLongVersion(); 

     /** 
     * Legacy global, use JFactory::getDBO() instead 
     * @name $database 
     * @deprecated As of version 1.5 
     */ 
     $conf =& JFactory::getConfig(); 
     $GLOBALS['database'] = new database($conf->getValue('config.host'), $conf->getValue('config.user'), $conf->getValue('config.password'), $conf->getValue('config.db'), $conf->getValue('config.dbprefix')); 
     $GLOBALS['database']->debug($conf->getValue('config.debug')); 

     /** 
     * Legacy global, use JFactory::getUser() [JUser object] instead 
     * @name $my 
     * @deprecated As of version 1.5 
     */ 
     $user =& JFactory::getUser(); 

     $GLOBALS['my']  = (object)$user->getProperties(); 
     $GLOBALS['my']->gid = $user->get('aid', 0); 

     /** 
     * Insert configuration values into global scope (for backwards compatibility) 
     * @deprecated As of version 1.5 
     */ 

     $temp = new JConfig; 
     foreach (get_object_vars($temp) as $k => $v) { 
      $name = 'mosConfig_'.$k; 
      $GLOBALS[$name] = $v; 
     } 

     $GLOBALS['mosConfig_live_site']  = substr_replace(JURI::root(), '', -1, 1); 
     $GLOBALS['mosConfig_absolute_path'] = JPATH_SITE; 
     $GLOBALS['mosConfig_cachepath'] = JPATH_BASE.DS.'cache'; 

     $GLOBALS['mosConfig_offset_user'] = 0; 

     $lang =& JFactory::getLanguage(); 
     $GLOBALS['mosConfig_lang']   = $lang->getBackwardLang(); 

     $config->setValue('config.live_site',  $GLOBALS['mosConfig_live_site']); 
     $config->setValue('config.absolute_path', $GLOBALS['mosConfig_absolute_path']); 
     $config->setValue('config.lang',   $GLOBALS['mosConfig_lang']); 

     /** 
     * Legacy global, use JFactory::getUser() instead 
     * @name $acl 
     * @deprecated As of version 1.5 
     */ 
     $acl =& JFactory::getACL(); 

     // Legacy ACL's for backward compat 
     $acl->addACL('administration', 'edit', 'users', 'super administrator', 'components', 'all'); 
     $acl->addACL('administration', 'edit', 'users', 'administrator', 'components', 'all'); 
     $acl->addACL('administration', 'edit', 'users', 'super administrator', 'user properties', 'block_user'); 
     $acl->addACL('administration', 'manage', 'users', 'super administrator', 'components', 'com_users'); 
     $acl->addACL('administration', 'manage', 'users', 'administrator', 'components', 'com_users'); 
     $acl->addACL('administration', 'config', 'users', 'super administrator'); 
     //$acl->addACL('administration', 'config', 'users', 'administrator'); 

     $acl->addACL('action', 'add', 'users', 'author', 'content', 'all'); 
     $acl->addACL('action', 'add', 'users', 'editor', 'content', 'all'); 
     $acl->addACL('action', 'add', 'users', 'publisher', 'content', 'all'); 
     $acl->addACL('action', 'edit', 'users', 'author', 'content', 'own'); 
     $acl->addACL('action', 'edit', 'users', 'editor', 'content', 'all'); 
     $acl->addACL('action', 'edit', 'users', 'publisher', 'content', 'all'); 
     $acl->addACL('action', 'publish', 'users', 'publisher', 'content', 'all'); 

     $acl->addACL('action', 'add', 'users', 'manager', 'content', 'all'); 
     $acl->addACL('action', 'edit', 'users', 'manager', 'content', 'all'); 
     $acl->addACL('action', 'publish', 'users', 'manager', 'content', 'all'); 

     $acl->addACL('action', 'add', 'users', 'administrator', 'content', 'all'); 
     $acl->addACL('action', 'edit', 'users', 'administrator', 'content', 'all'); 
     $acl->addACL('action', 'publish', 'users', 'administrator', 'content', 'all'); 

     $acl->addACL('action', 'add', 'users', 'super administrator', 'content', 'all'); 
     $acl->addACL('action', 'edit', 'users', 'super administrator', 'content', 'all'); 
     $acl->addACL('action', 'publish', 'users', 'super administrator', 'content', 'all'); 

     $acl->addACL('com_syndicate', 'manage', 'users', 'super administrator'); 
     $acl->addACL('com_syndicate', 'manage', 'users', 'administrator'); 
     $acl->addACL('com_syndicate', 'manage', 'users', 'manager'); 

     $GLOBALS['acl'] =& $acl; 

     /** 
     * Legacy global 
     * @name $task 
     * @deprecated As of version 1.5 
     */ 
     $GLOBALS['task'] = JRequest::getString('task'); 

     /** 
     * Load the site language file (the old way - to be deprecated) 
     * @deprecated As of version 1.5 
     */ 
     global $mosConfig_lang; 
     $mosConfig_lang = JFilterInput::clean($mosConfig_lang, 'cmd'); 
     $file = JPATH_SITE.DS.'language'.DS.$mosConfig_lang.'.php'; 
     if (file_exists($file)) { 
      require_once($file); 
     } else { 
      $file = JPATH_SITE.DS.'language'.DS.'english.php'; 
      if (file_exists($file)) { 
       require_once($file); 
      } 
     } 

     /** 
     * Legacy global 
     * use JApplicaiton->registerEvent and JApplication->triggerEvent for event handling 
     * use JPlugingHelper::importPlugin to load bot code 
     * @deprecated As of version 1.5 
     */ 
     $GLOBALS['_MAMBOTS'] = new mosMambotHandler(); 

     $mosmsg = JRequest::getVar('mosmsg'); 
     $mainframe->enqueueMessage($mosmsg); 
    } 

    /** 
    * Fixes the $my global if the user was restored by the remember me plugin 
    */ 
    function onAfterInitialise() 
    { 
     $user =& JFactory::getUser(); 
     if ($user->id) { 
      if ($GLOBALS['my']->id === 0) { 
       $GLOBALS['my'] = (object)$user->getProperties(); 
       $GLOBALS['my']->gid = $user->get('aid', 0); 
      } 
     } 

     return true; 
    } 



    function onAfterRoute() 
    { 
     global $mainframe; 
     if ($mainframe->isAdmin()) { 
      return; 
     } 

     switch(JRequest::getCmd('option')) 
     { 
      case 'com_content' : 
       $this->routeContent(); 
       break; 
      case 'com_newsfeeds' : 
       $this->routeNewsfeeds(); 
       break; 
      case 'com_weblinks' : 
       $this->routeWeblinks(); 
       break; 
      case 'com_frontpage' : 
       JRequest::setVar('option', 'com_content'); 
       JRequest::setVar('view', 'frontpage'); 
       break; 
      case 'com_login'  : 
       JRequest::setVar('option', 'com_user'); 
       JRequest::setVar('view', 'login'); 
       break; 
      case 'com_registration'  : 
       JRequest::setVar('option', 'com_user'); 
       JRequest::setVar('view', 'register'); 
       break; 
     } 

     /** 
     * Legacy global, use JApplication::getTemplate() instead 
     * @name $cur_template 
     * @deprecated As of version 1.5 
     */ 
     $GLOBALS['cur_template'] = $mainframe->getTemplate(); 
    } 

    function routeContent() 
    { 
     $viewName = JRequest::getCmd('view', 'article'); 
     $layout  = JRequest::getCmd('layout', 'default'); 

     // interceptors to support legacy urls 
     switch(JRequest::getCmd('task')) 
     { 
      //index.php?option=com_content&task=x&id=x&Itemid=x 
      case 'blogsection': 
       $viewName = 'section'; 
       $layout = 'blog'; 
       break; 
      case 'section': 
       $viewName = 'section'; 
       break; 
      case 'category': 
       $viewName = 'category'; 
       break; 
      case 'blogcategory': 
       $viewName = 'category'; 
       $layout = 'blog'; 
       break; 
      case 'archivesection': 
      case 'archivecategory': 
       $viewName = 'archive'; 
       break; 
      case 'frontpage' : 
       $viewName = 'frontpage'; 
       break; 
      case 'view': 
       $viewName = 'article'; 
       break; 
     } 

     JRequest::setVar('layout', $layout); 
     JRequest::setVar('view', $viewName); 
    } 

    function routeNewsfeeds() 
    { 
     $viewName = JRequest::getCmd('view', 'categories'); 

     // interceptors to support legacy urls 
     switch(JRequest::getCmd('task')) 
     { 
      //index.php?option=com_newsfeeds&task=x&catid=xid=x&Itemid=x 
      case 'view': 
       $viewName = 'newsfeed'; 
       break; 

      default: 
      { 
       if(JRequest::getInt('catid') && !JRequest::getCmd('view')) { 
        $viewName = 'category'; 
       } 
      } 
     } 

     JRequest::setVar('view', $viewName); 
    } 

    function routeWeblinks() 
    { 
     $viewName = JRequest::getCmd('view', 'categories'); 

     // interceptors to support legacy urls 
     switch(JRequest::getCmd('task')) 
     { 
      //index.php?option=com_weblinks&task=x&catid=xid=x 
      case 'view': 
       $viewName = 'weblink'; 
       break; 

      default: 
      { 
       if(($catid = JRequest::getInt('catid')) && !JRequest::getCmd('view')) { 
        $viewName = 'category'; 
        JRequest::setVar('id', $catid); 
       } 
      } 
     } 

     JRequest::setVar('view', $viewName); 
    } 
} 
+0

你可以發佈147行,也許周圍有一些代碼? StackOverflow不提供行號,我懶得手動計數或篩選大塊代碼。編輯:nvm,我只是將它粘貼到文本編輯器中 – 2012-08-14 00:50:12

+0

$ conf =&JFactory :: getConfig(); ($ config-> getValue('config.ost'),$ conf-> getValue('config.password('config.host'),$ conf-> getValue '),$ conf-> getValue('config.db'),$ conf-> getValue('config.dbprefix')); $ GLOBALS ['database'] - > debug($ conf-> getValue('config.debug')); – Joel 2012-08-14 00:53:24

回答

0

我不是的Joomla專家,但它看起來像你的問題是在線路:

$dbtype = $config->getValue('config.dbtype', 'mysql'); 
JLoader::register('database', dirname(__FILE__).DS.'legacy'.DS.$dbtype.'.php'); 

也許你應該做一個:

echo dirname(__FILE__).DS.'legacy'.DS.$dbtype.'.php'; 

,並調查該文件(請確定它存在等)

+0

當我添加dirname的「echo」infront時,我得到更多錯誤......它甚至沒有處理 – Joel 2012-08-14 01:19:07