Changeset 1765

Show
Ignore:
Timestamp:
03/26/06 17:36:02 (1 year ago)
Author:
demian
Message:

refactored code so da_navigation correctly used service locator

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/0.6-bugfix/etc/sglBridge.php

    r1606 r1765  
    1717        $conf = $c->getAll(); 
    1818 
    19         //  resolve value for $_SERVER['PHP_SELF'] based in host 
    20         SGL_URL::resolveServerVars($conf); 
     19        //  assign request to registry 
     20        $input = &SGL_Registry::singleton(); 
     21        $req = SGL_Request::singleton(); 
    2122 
    22         //  get current url object 
    23         $urlHandler = $conf['site']['outputUrlHandler']; 
    24         $url = new SGL_URL($_SERVER['PHP_SELF'], true, new $urlHandler()); 
    25  
    26         //  assign to registry 
    27         $input = &SGL_Registry::singleton(); 
    28         $input->setCurrentUrl($url); 
    29         $input->setRequest($req = SGL_Request::singleton()); 
     23        if (PEAR::isError($req)) { 
     24            //  stop with error page 
     25            SGL::displayStaticPage($req->getMessage()); 
     26        } 
     27        $input->setRequest($req); 
    3028 
    3129        $process =  new SGL_Process_Init( 
  • branches/0.6-bugfix/lib/SGL/DB.php

    r1652 r1765  
    105105        $c = &SGL_Config::singleton(); 
    106106        $conf = $c->getAll(); 
     107 
     108        $locator = &SGL_ServiceLocator::singleton(); 
     109        $dbh = $locator->get('DB'); 
     110        if ($dbh && count($dbh->dsn)) { 
     111            $locatorDsn = $dbh->dsn; 
     112            $conf['db']['user'] = $locatorDsn['username']; 
     113            $conf['db']['pass'] = $locatorDsn['password']; 
     114            $conf['db']['protocol'] = $locatorDsn['protocol']; 
     115            $conf['db']['socket'] = $locatorDsn['socket']; 
     116            $conf['db']['host'] = $locatorDsn['hostspec']; 
     117            $conf['db']['port'] = $locatorDsn['port']; 
     118            $conf['db']['name'] = $locatorDsn['database']; 
     119        } 
    107120 
    108121        //  override default mysql driver to allow for all sequence IDs to 
  • branches/0.6-bugfix/lib/SGL/NestedSet.php

    r1645 r1765  
    9090        SGL::logMessage(null, PEAR_LOG_DEBUG); 
    9191 
    92         $this->dbh                =& SGL_DB::singleton(); 
     92        $this->dbh                = $this->_getDb(); 
    9393        $this->_params            = $params; 
    9494        $this->_tableName         = $params['tableName']; 
    9595        $this->_fieldsInternal    = array_flip($params['tableStructure']); 
    9696        $this->_fieldListExternal = $this->_tableName . '.' . implode(",$this->_tableName.",$this->_fieldsInternal); 
     97    } 
     98 
     99    function &_getDb() 
     100    { 
     101        $locator = &SGL_ServiceLocator::singleton(); 
     102        $dbh = $locator->get('DB'); 
     103        if (!$dbh) { 
     104            $dbh = & SGL_DB::singleton(); 
     105            $locator->register('DB', $dbh); 
     106        } 
     107        return $dbh; 
    97108    } 
    98109 
     
    177188                    SGL::raiseError('SQL problem', SGL_ERROR_DBFAILURE); 
    178189                    return; 
    179                 }                 
     190                } 
    180191                while ($result->fetchInto($row, DB_FETCHMODE_ASSOC)){ 
    181192                    $r[$row[$this->_fieldsInternal['id']]] = $row; 
     
    216227            SGL::raiseError('SQL problem', SGL_ERROR_DBFAILURE); 
    217228            return; 
    218         }         
     229        } 
    219230        while ($result->fetchInto($row, DB_FETCHMODE_ASSOC)){ 
    220231            $r[$row[$this->_fieldsInternal['id']]] = $row; 
     
    255266            SGL::raiseError('SQL problem', SGL_ERROR_DBFAILURE); 
    256267            return; 
    257         }         
     268        } 
    258269        $r = ''; 
    259270        while ($result->fetchInto($row, DB_FETCHMODE_ASSOC)){ 
     
    294305            SGL::raiseError('SQL problem', SGL_ERROR_DBFAILURE); 
    295306            return; 
    296         }         
     307        } 
    297308        $r = array(); 
    298309        while ($result->fetchInto($row, DB_FETCHMODE_ASSOC)) { 
     
    402413            SGL::raiseError('SQL problem', SGL_ERROR_DBFAILURE); 
    403414            return; 
    404         }         
     415        } 
    405416        $r = array(); 
    406417        while ($result->fetchInto($row, DB_FETCHMODE_ASSOC)){ 
     
    508519            SGL::raiseError('SQL problem', SGL_ERROR_DBFAILURE); 
    509520            return; 
    510         }         
     521        } 
    511522        return $result; 
    512523    } 
     
    563574     * 
    564575     * @author  Andy Crain <andy@newslogic.com> 
    565      * @version 1.0 
    566      * @since   PHP 4.0 
    567576     */ 
    568577    function _getNestedSet() 
     
    599608    { 
    600609        $this->_cleanMemoryCache($id); 
    601          
     610 
    602611        $ns = $this->_getNestedSet(); 
    603612        return $ns->createSubNode($id, $values); 
     
    607616    { 
    608617        $this->_cleanMemoryCache(); 
    609          
     618 
    610619        $ns = $this->_getNestedSet(); 
    611620        return $ns->moveTree($id, $targetid, $pos, $copy); 
     
    615624    { 
    616625        $this->_cleanMemoryCache($id); 
    617          
     626 
    618627        $ns = $this->_getNestedSet(); 
    619628        return $ns->deleteNode($id); 
    620629    } 
    621      
     630 
    622631    /** 
    623632     * Clean nodes stored in memory 
  • branches/0.6-bugfix/modules/navigation/classes/DA_Navigation.php

    r1759 r1765  
    100100     * @return  DA_Navigation reference to DA_Navigation object 
    101101     */ 
    102     function &singleton(
     102    function &singleton($forceNew = false
    103103    { 
    104104        static $instance; 
    105105 
    106106        // If the instance is not there, create one 
    107         if (!isset($instance)) { 
     107        if (!isset($instance) || $forceNew) { 
    108108            $instance = new DA_Navigation(); 
    109109        } 
  • branches/0.6-bugfix/modules/navigation/tests/DA_NavigationTest.wdd.php

    r1758 r1765  
    1818    function setup() 
    1919    { 
    20         $this->da = & DA_Navigation::singleton(); 
     20        $this->da = & DA_Navigation::singleton($forceNew = true); 
    2121    } 
    2222 
     
    6868    } 
    6969} 
    70 define('SGL_NODE_ADMIN', 4); 
    71 define('SGL_NODE_GROUP', 1); 
     70//define('SGL_NODE_ADMIN', 4); 
     71//define('SGL_NODE_GROUP', 1); 
    7272 
    7373/* 
  • branches/0.6-bugfix/tests/test.conf.ini-dist

    r1367 r1765  
    2525file2               = modules/default/data/schema.my.sql 
    2626file3               = modules/user/data/schema.my.sql 
    27 file4               = modules/block/data/schema.my.sql 
     27file4               = modules/navigation/data/schema.my.sql 
     28file5               = modules/block/data/schema.my.sql 
    2829 
    2930[dataFiles] 
    3031file1               = modules/default/data/data.default.my.sql 
    3132file2               = modules/user/data/data.default.my.sql 
    32 file3               = modules/block/data/data.default.my.sql 
     33file3               = modules/navigation/data/data.default.my.sql 
     34file4               = modules/block/data/data.default.my.sql