Changeset 3122

Show
Ignore:
Timestamp:
06/04/07 15:35:11 (3 weeks ago)
Author:
demian
Message:

bugfix to trunk merge

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/etc/customInstallDefaults.ini.dist

    r2232 r3122  
    1 # Add your custom default settings below 
    2 adminRealName = John Wayne 
     1; Add your customised settings below, and rename this file to customInstallDefaults.ini. 
     2; Then when you run the Seagull installer, these values will be used. 
     3 
     4adminFirstName   = Alouicious 
     5adminLastName    = Bird 
     6siteName         = Your Site Name 
     7adminEmail       = bird@example.com 
     8siteKeywords     = your, keywords, here 
     9siteDesc         = Your description here 
     10siteCookie       = FOO_SESSID 
     11prefix           = foo_ 
     12name             = foo_db ; this is database name 
     13aModuleList      = block,default,user,navigation,publisher 
     14insertSampleData = 1 
     15 
     16; any config key can be overridden, just supply key and group name 
     17; in same format as found in default.conf.dist.ini 
  • trunk/etc/default.conf.dist.ini

    r2487 r3122  
    1010name                    = seagull 
    1111postConnect             = 
     12mysqlCluster            = false 
    1213 
    1314[site] 
    1415outputUrlHandler        = SGL_UrlParser_SefStrategy 
     16inputUrlHandlers        = Classic,Alias,Sef 
    1517name                    = Seagull PHP Framework 
    1618showLogo                = logo.png 
     19description             = Seagull Framework 
     20keywords                = seagull, php, framework, cms, content management 
    1721 
    1822; page compression can only be set in php.ini, however if it is set and 
    1923; you wish to disable it, here is the place. 
    20 compression             = false 
    21 outputBuffering         = false 
    22 banIpEnabled            = false 
    23 denyList                = 
    24 allowList               = 
    25 tidyhtml                = false 
    26 blocksEnabled           = true 
    27 safeDelete              = true 
    28 frontScriptName         = index.php 
    29 defaultModule           = default 
    30 defaultManager          = default 
    31 defaultArticleViewType  = 1 
    32 defaultParams           = 
    33 templateEngine          = flexy 
    34 wysiwygEditor           = tinyfck ;Available: tinyfck, fck, htmlarea, xinha 
    35 extendedLocale          = false 
    36 localeCategory          = 'LC_ALL' 
    37 adminGuiTheme           = default_admin 
    38 defaultTheme            = default 
    39 filterChain             = 
    40 globalJavascriptOnload  = 
     24compression                 = false 
     25outputBuffering             = false 
     26banIpEnabled                = false 
     27denyList                    = 
     28allowList                   = 
     29tidyhtml                    = false 
     30blocksEnabled               = true 
     31safeDelete                  = true 
     32frontScriptName             = index.php 
     33defaultModule               = default 
     34defaultManager              = default 
     35defaultArticleViewType      = 1 
     36defaultParams               = 
     37templateEngine              = flexy 
     38wysiwygEditor               = tinyfck ;Available: tinyfck, fck, htmlarea, xinha 
     39extendedLocale              = false 
     40localeCategory              = 'LC_ALL' 
     41adminGuiTheme               = default_admin 
     42defaultTheme                = default 
     43masterTemplate              = master.html 
     44filterChain                 = 
     45globalJavascriptFiles       = 
     46globalJavascriptOnReadyDom  = 
     47globalJavascriptOnload      = 
     48globalJavascriptOnUnload    = 
     49customOutputClassName       = 
     50customRebuildTasks          = 
    4151 
    4252[path] 
     
    4454moduleDirOverride       = 
    4555uploadDirOverride       = 
     56pathToCustomConfigFile  = 
    4657 
    4758[cookie] 
     
    6374libCacheEnabled         = false 
    6475lifetime                = 86400 ; 24 hrs in secs 
     76; 0 - automatic cache cleaning 
     77; 1 - systematic cache cleaning 
     78; x (integer) > 1 - automatic cleaning randomly 1 times on x cache write 
     79cleaningFactor          = 0 
     80; if enabled, a control key is embeded in cache file and this key is compared 
     81; with the one calculated after the reading 
     82readControl             = true 
     83; Enable write control will lightly slow the cache writing but not the 
     84; cache reading. Write control can detect some corrupt cache files but 
     85; maybe it's not a perfect control. 
     86writeControl            = true 
    6587 
    6688[debug] 
     
    7698showUntranslated        = true 
    7799dataObject              = 0 
     100infoBlock               = 
    78101 
    79102[translation] 
     103tablePrefix             = translation 
    80104addMissingTrans         = false 
    81105fallbackLang            = en_iso_8859_15 
     
    112136;   PEAR_LOG_ALERT would only log alerts and emergencies, but 
    113137;   PEAR_LOG_DEBUG would log everything. 
    114 priority                = PEAR_LOG_DEBUG 
     138priority                = 'PEAR_LOG_DEBUG' 
    115139 
    116140;   What identifier should we use in the logs? 
     
    152176;   choose any of SGL_CENSOR_DISABLE, SGL_CENSOR_EXACT_MATCH, 
    153177;   SGL_CENSOR_WORD_BEGINNING, SGL_CENSOR_WORD_FRAGMENT 
    154 mode                    = SGL_CENSOR_DISABLE 
     178mode                    = 'SGL_CENSOR_DISABLE' 
    155179replaceString           = *censored* 
    156180badWords                = your,bad,words,here 
  • trunk/etc/envRebuild.php

    r2484 r3122  
    4747*/ 
    4848 
     49//  ensure script run as root 
     50$processUser = posix_getpwuid(posix_geteuid()); 
     51if ($processUser['name'] !== 'root') { 
     52    die("\nALERT!! You must run this script as root\n\n"); 
     53} 
     54 
     55//  set initial paths according to install type 
     56$pearTest = '@PHP-DIR@'; 
     57if ($pearTest != '@' . 'PHP-DIR'. '@') { 
     58    define('SGL_PEAR_INSTALLED', true); 
     59    $rootDir = '@PHP-DIR@/Seagull'; 
     60    $varDir = '@DATA-DIR@/Seagull/var'; 
     61} else { 
     62    $rootDir = dirname(__FILE__) . '/..'; 
     63    $varDir = dirname(__FILE__) . '/../var'; 
     64} 
     65 
    4966//  setup seagull environment 
    5067require_once dirname(__FILE__)  . '/../lib/SGL/FrontController.php'; 
    5168require_once dirname(__FILE__)  . '/../lib/SGL/Task/Install.php'; 
     69require_once dirname(__FILE__)  . '/../lib/SGL/Install/Common.php'; 
    5270 
    5371class RebuildController extends SGL_FrontController 
     
    106124        $transContainer = ($conf['translation']['container'] == 'db') ? 1 : 0; 
    107125        $transLanguage  = str_replace('_','-', explode(',', $conf['translation']['installedLanguages'])); 
     126 
     127        //  check for custom modules 
     128        $aDefaultData = SGL_Install_Common::overrideDefaultInstallSettings(); 
     129        $aModules = !empty($aDefaultData['aModuleList']) 
     130            ? $aDefaultData['aModuleList'] 
     131            : SGL_Install_Common::getMinimumModuleList(); 
     132        require_once SGL_MOD_DIR . '/user/classes/UserDAO.php'; 
     133        $oUserDao    = &UserDAO::singleton(); 
     134        $aMasterPrefs= $oUserDao->getMasterPrefs(); 
    108135 
    109136        $data = array( 
     
    115142            'adminLastName' => 'Admin', 
    116143            'adminEmail' => 'demian@phpkitchen.com', 
    117             'aModuleList' => SGL_Install_Common::getMinimumModuleList()
     144            'aModuleList' => $aModules
    118145            'serverName' => isset($_SERVER['argv'][1]) ? $_SERVER['argv'][1] : 'localhost', 
    119146            'installPassword'       => $installPassword, 
    120147            'storeTranslationsInDB' => $transContainer, 
    121148            'installLangs'          => $transLanguage, 
     149            'aPrefs'                => $aMasterPrefs 
    122150            ); 
     151 
     152        if (SGL::moduleIsEnabled('cms')) { 
     153            require_once SGL_MOD_DIR  . '/cms/classes/NavigationDAO.php'; 
     154            require_once SGL_MOD_DIR  . '/cms/init.php'; 
     155            $buildNavTask = 'SGL_Task_BuildNavigation2'; 
     156        } else { 
     157            require_once SGL_MOD_DIR  . '/navigation/classes/NavigationDAO.php'; 
     158            $buildNavTask = 'SGL_Task_BuildNavigation'; 
     159        } 
    123160 
    124161        $runner = new SGL_TaskRunner(); 
    125162        $runner->addData($data); 
    126163        $runner->addTask(new SGL_Task_SetTimeout()); 
     164        $runner->addTask(new SGL_Task_DefineTableAliases()); 
    127165        $runner->addTask(new SGL_Task_DisableForeignKeyChecks()); 
    128166        $runner->addTask(new SGL_Task_DropDatabase()); 
    129167        $runner->addTask(new SGL_Task_CreateDatabase()); 
    130168        $runner->addTask(new SGL_Task_CreateTables()); 
     169        $runner->addTask(new SGL_Task_LoadTranslations()); 
    131170        $runner->addTask(new SGL_Task_LoadDefaultData()); 
     171        $runner->addTask(new SGL_Task_LoadSampleData()); 
     172        $runner->addTask(new SGL_Task_LoadCustomData()); 
    132173        $runner->addTask(new SGL_Task_SyncSequences()); 
    133         $runner->addTask(new SGL_Task_BuildNavigation()); 
     174        $runner->addTask(new $buildNavTask()); 
    134175        $runner->addTask(new SGL_Task_LoadBlockData()); 
    135         $runner->addTask(new SGL_Task_LoadSampleData()); 
    136         $runner->addTask(new SGL_Task_LoadTranslations()); 
    137176        $runner->addTask(new SGL_Task_CreateConstraints()); 
    138177        $runner->addTask(new SGL_Task_SyncSequences()); 
     
    142181        $runner->addTask(new SGL_Task_CreateDataObjectEntities()); 
    143182        $runner->addTask(new SGL_Task_CreateDataObjectLinkFile()); 
     183        $runner->addTask(new SGL_Task_UnLinkWwwData()); 
     184        $runner->addTask(new SGL_Task_SymLinkWwwData()); 
    144185        $runner->addTask(new SGL_Task_CreateAdminUser()); 
    145186        $runner->addTask(new SGL_Task_CreateMemberUser()); 
     187        $runner->addTask(new SGL_Task_EnableDebugBlock()); 
    146188        $runner->addTask(new SGL_Task_InstallerCleanup()); 
    147189 
  • trunk/etc/phpDocCli.sh

    r1877 r3122  
    5757#  * @var               string PATH_PHPDOC 
    5858#  */ 
    59 PATH_PHPDOC=/usr/local/bin/phpdoc 
     59PATH_PHPDOC=/usr/bin/phpdoc 
    6060 
    6161#/** 
  • trunk/etc/release.sh

    r2381 r3122  
    77# | execute from seagull svn repository root                                  | 
    88# +---------------------------------------------------------------------------+ 
    9 # | Usage: ./release.sh revision_num release_name                             | 
     9# | Usage: ./release.sh revision_num release_name [min]                       | 
    1010# +---------------------------------------------------------------------------+ 
    1111 
     
    1515 
    1616# binaries 
    17 SVN=/usr/bin/svn 
     17SVN=/sw/bin/svn 
    1818SCP=/usr/bin/scp 
    1919FTP=/usr/bin/ftp 
    20 PHP=/usr/local/bin/php 
    21 PEAR=/usr/local/bin/pear 
     20PHP=/usr/bin/php 
     21PEAR=/usr/bin/pear 
    2222 
    2323# SF FTP details 
     
    4747      echo "    where \"revision_num\" is the $PROJECT_NAME svn revision number (e.g. 226)" 
    4848      echo "    and \"release_name\" is the release name (e.g. 0.4.5) which gives the full name \"seagull-0.4.5\"" 
    49       echo "    the optional 3 parameter, 'min', will create a minimal install" 
     49      echo "    the optional 3rd parameter, 'min', will create a minimal install" 
    5050} 
    5151 
     
    146146############################## 
    147147# prune developer 
     148# removes GPL  modules 
    148149############################## 
    149150function pruneDeveloper() 
     
    209210    rm -rf $PROJECT_NAME/lib/pear/Validate 
    210211    rm -rf $PROJECT_NAME/lib/SGL/tests 
    211     rm -rf $PROJECT_NAME/modules/blog 
     212    rm -rf $PROJECT_NAME/modules/comment 
    212213    rm -rf $PROJECT_NAME/modules/contactus 
    213214    rm -rf $PROJECT_NAME/modules/documentor 
     
    216217    rm -rf $PROJECT_NAME/modules/gallery2 
    217218    rm -rf $PROJECT_NAME/modules/guestbook 
     219    rm -rf $PROJECT_NAME/modules/googlemaps 
    218220    rm -rf $PROJECT_NAME/modules/messaging 
    219221    rm -rf $PROJECT_NAME/modules/newsletter 
    220222    rm -rf $PROJECT_NAME/modules/publisher 
    221223    rm -rf $PROJECT_NAME/modules/randommsg 
     224    rm -rf $PROJECT_NAME/modules/s9ywrapper 
    222225    rm -rf $PROJECT_NAME/modules/user/tests 
    223226    rm -rf $PROJECT_NAME/tests 
     
    225228    rm -rf $PROJECT_NAME/www/js/jcalc 
    226229    rm -rf $PROJECT_NAME/www/js/jscalendar 
     230    rm -rf $PROJECT_NAME/www/js/lightbox 
    227231    rm -rf $PROJECT_NAME/www/js/overlib 
    228232    rm -rf $PROJECT_NAME/www/js/scriptaculous 
     
    341345function scpApiDocsToSglSite() 
    342346{ 
    343     scp seagullApiDocs-$RELEASE_NAME.tar.gz demian@phpkitchen.com:/var/www/html/seagull_api/ 
     347    scp seagullApiDocs-$RELEASE_NAME.tar.gz demian@phpkitchen.com:/var/www/seagull_api/ 
    344348} 
    345349 
     
    357361 
    358362    # remove all but core modules 
    359 #    rm -rf $PROJECT_NAME-$RELEASE_NAME/modules/block 
    360363#    rm -rf $PROJECT_NAME-$RELEASE_NAME/modules/contactus 
    361364#    rm -rf $PROJECT_NAME-$RELEASE_NAME/modules/documentor 
    362365#    rm -rf $PROJECT_NAME-$RELEASE_NAME/modules/export 
    363366#    rm -rf $PROJECT_NAME-$RELEASE_NAME/modules/faq 
     367#    rm -rf $PROJECT_NAME-$RELEASE_NAME/modules/gallery2 
    364368#    rm -rf $PROJECT_NAME-$RELEASE_NAME/modules/guestbook 
    365369#    rm -rf $PROJECT_NAME-$RELEASE_NAME/modules/messaging 
     
    367371#    rm -rf $PROJECT_NAME-$RELEASE_NAME/modules/publisher 
    368372#    rm -rf $PROJECT_NAME-$RELEASE_NAME/modules/randommsg 
    369  
    370  
    371 #    rm -rf $PROJECT_NAME-$RELEASE_NAME/modules/blog 
    372 #    rm -rf $PROJECT_NAME-$RELEASE_NAME/modules/publisher 
    373 #    rm -rf $PROJECT_NAME-$RELEASE_NAME/modules/gallery2 
     373#    rm -rf $PROJECT_NAME-$RELEASE_NAME/modules/s9ywrapper 
     374 
    374375 
    375376 
     
    417418checkArgs 
    418419 
    419 #checkPreviousVersions 
     420checkPreviousVersions 
    420421 
    421422#tagRelease 
     
    424425cd /tmp 
    425426 
    426 #exportSvn 
     427exportSvn 
    427428 
    428429createMinimalFlag 
     
    436437createTarball 
    437438 
    438 #uploadToSfWholePackage 
    439  
    440 generateApiDocs 
    441  
    442 packageApiDocs 
    443  
    444 uploadToSfApiDocs 
     439uploadToSfWholePackage 
     440 
     441#generateApiDocs 
     442 
     443#packageApiDocs 
     444 
     445#uploadToSfApiDocs 
    445446 
    446447#scpApiDocsToSglSite 
  • trunk/etc/sglBridge.php

    r2319 r3122  
    4848            $dbType = 'mysql_SGL'; 
    4949        } 
     50        if ($dbType == 'mysqli') { 
     51            $dbType = 'mysqli_SGL'; 
     52        } 
    5053        $protocol = isset($conf['database']['protocol']) ? $conf['database']['protocol'] . '+' : ''; 
    5154        $dsn = $dbType . '://' . 
     
    5558            $conf['database']['host']; 
    5659        $dbh = &SGL_DB::singleton($dsn); 
     60        if (PEAR::isError($dbh)) { 
     61            die($dbh->getMessage()); 
     62        } 
    5763 
    5864        $query = 'DROP DATABASE IF EXISTS ' . $conf['database']['name']; 
  • trunk/lib/SGL.php

    r2457 r3122  
    106106            return; 
    107107        } 
    108  
    109108        // Deal with the fact that logMessage may be called using the 
    110109        // deprecated method signature, or the new one 
    111110        if (is_int($file)) { 
    112             $priority =& $file; 
     111            $priority = $file; 
    113112        } 
    114113        // Priority is under logging threshold level 
    115         if ($priority > @constant($conf['log']['priority'])) { 
     114        if ($priority > SGL_String::pseudoConstantToInt($conf['log']['priority'])) { 
    116115            return; 
    117116        } 
     
    129128            $logName = $conf['log']['name']; 
    130129        } 
    131  
    132         require_once 'Log.php'; 
     130        include_once 'Log.php'; 
    133131 
    134132        // Instantiate a logger object based on logging options 
    135         $logger = & Log::singleton( $conf['log']['type'], 
    136                                     $logName, 
    137                                     $conf['log']['ident'], 
    138                                     array(  $conf['log']['paramsUsername'], 
    139                                             $conf['log']['paramsPassword'], 
    140                                             'dsn' => $dsn 
     133        $logger = & Log::singleton($conf['log']['type'], 
     134                                   $logName, 
     135                                   $conf['log']['ident'], 
     136                                   array(  $conf['log']['paramsUsername'], 
     137                                           $conf['log']['paramsPassword'], 
     138                                           'dsn' => $dsn 
    141139                                    )); 
    142140        // If log message is an error object, extract info 
     
    148146                    $userinfo = implode(', ', $userinfo); 
    149147                } 
    150             $message .= ' : ' . $userinfo; 
     148                $message .= ' : ' . $userinfo; 
    151149            } 
    152150        } 
     
    229227    } 
    230228 
    231     function raiseMsg($msg, $getTranslation = true, $msgType = SGL_MESSAGE_ERROR) 
     229    function raiseMsg($messageKey, $getTranslation = true, $messageType = SGL_MESSAGE_ERROR) 
    232230    { 
    233231        //  must not log message here 
    234         if (is_string($msg) && !empty($msg)) { 
    235  
    236             $message = SGL_String::translate($msg); 
     232        if (is_string($messageKey) && !empty($messageKey)) { 
     233 
     234            $message = SGL_String::translate($messageKey); 
    237235 
    238236            //  catch error message that results for 'logout' where trans file is not loaded 
     
    240238                        && $GLOBALS['_SGL']['ERRORS'][0]->code == SGL_ERROR_INVALIDTRANSLATION) 
    241239                        || (!$getTranslation)) { 
    242                 SGL_Session::set('message', $msg); 
     240                SGL_Session::set('message', $messageKey); 
    243241            } else { 
    244242                SGL_Session::set('message', $message); 
    245243            } 
    246             SGL_Session::set('messageType', $msgType); 
     244            SGL_Session::set('messageType', $messageType); 
    247245        } else { 
    248246            SGL::raiseError('supplied message not recognised', SGL_ERROR_INVALIDARGS); 
     
    337335      * @author  Philippe Lhoste <PhiLho(a)GMX.net> 
    338336      */ 
    339     function loadRegionList($fileType) 
    340    
    341         SGL::logMessage(null, PEAR_LOG_DEBUG); 
    342  
    343         if ($fileType != 'countries' && $fileType != 'states' && $fileType != 'counties') { 
    344             SGL::raiseError('Invalid arg', SGL_ERROR_INVALIDARGS); 
    345             return; 
    346        
    347         $lang = SGL::getCurrentLang(); 
    348         $file = SGL_DAT_DIR . "/ary.$fileType.$lang.php"; 
    349         if (!file_exists($file)) { 
    350             $file = SGL_DAT_DIR . "/ary.$fileType.en.php"; 
    351        
    352         require_once $file; 
    353  
    354         $a = $GLOBALS['_SGL'][strtoupper($fileType)] = &${$fileType}; 
    355         if (is_array($a)) { 
     337    function loadRegionList($fileType) 
     338   
     339        SGL::logMessage(null, PEAR_LOG_DEBUG); 
     340 
     341        if ($fileType != 'countries' && $fileType != 'states' && $fileType != 'counties') { 
     342            SGL::raiseError('Invalid arg', SGL_ERROR_INVALIDARGS); 
     343            return; 
     344       
     345        $lang = SGL::getCurrentLang(); 
     346        $file = SGL_DAT_DIR . "/ary.$fileType.$lang.php"; 
     347        if (!file_exists($file)) { 
     348            $file = SGL_DAT_DIR . "/ary.$fileType.en.php"; 
     349       
     350        include_once $file; 
     351 
     352        $a = $GLOBALS['_SGL'][strtoupper($fileType)] = &${$fileType}; 
     353        if (is_array($a)) { 
    356354            asort($a); 
    357        
    358         return $a; 
    359    
    360  
    361     function displayStaticPage($msg) 
    362    
    363         require_once SGL_CORE_DIR . '/Install/Common.php'; 
     355       
     356        return $a; 
     357   
     358 
     359    function displayStaticPage($msg) 
     360   
     361        include_once SGL_CORE_DIR . '/Install/Common.php'; 
    364362        SGL_Install_Common::printHeader('An error has occurred'); 
    365363        if (SGL::runningFromCli()) { 
     
    373371        SGL_Install_Common::printFooter(); 
    374372        exit(); 
    375    
     373   
    376374 
    377375     /** 
     
    381379      * @return boolean 
    382380      */ 
    383     function isMinimalInstall() 
    384    
     381    function isMinimalInstall() 
     382   
    385383        return is_file(SGL_PATH . '/MINIMAL_INSTALL.txt') ? true : false; 
    386    
     384   
    387385 
    388386     /** 
     
    393391      * @return boolean 
    394392      */ 
    395     function moduleIsEnabled($moduleName) 
    396    
     393    function moduleIsEnabled($moduleName) 
     394   
    397395        static $aInstances; 
    398396        if (!isset($aInstances)) { 
     
    412410                SELECT  module_id 
    413411                FROM    {$conf['table']['module']} 
    414                 WHERE   name = '$moduleName'"; 
    415             $aInstances[$moduleName] = $dbh->getOne($query); 
     412                WHERE   name = " .$dbh->quoteSmart($moduleName); 
     413            $ret = $dbh->getOne($query); 
     414            if (PEAR::isError($ret)) { 
     415                return false; 
     416            } else { 
     417                $aInstances[$moduleName] = $ret; 
     418            } 
    416419        } 
    417420        return ! is_null($aInstances[$moduleName]); 
    418    
     421   
    419422} 
    420423 
  • trunk/lib/SGL/HtmlRenderer/FlexyStrategy.php

    r2425 r3122  
    5959        //  initialise template engine 
    6060        $options = &PEAR::getStaticProperty('HTML_Template_Flexy','options'); 
     61        if (!isset($data->theme)) { 
     62            $data->theme = 'default'; 
     63        } 
    6164        $options = array( 
    6265                                   // the current module's templates dir from the custom theme 
  • trunk/lib/data/ary.logLevels.php

    r2425 r3122  
    11<?php 
    22$aLogLevels = array( 
    3     'PEAR_LOG_DEBUG' => 'debug', 
    4     'PEAR_LOG_INFO' => 'info', 
    5     'PEAR_LOG_NOTICE' => 'notice', 
    6     'PEAR_LOG_WARNING' => 'warning', 
    7     'PEAR_LOG_ERR' => 'error', 
    8     'PEAR_LOG_CRIT' => 'critical', 
    9     'PEAR_LOG_ALERT' => 'alert', 
    10     'PEAR_LOG_EMERG' => 'emergency', 
     3    "'PEAR_LOG_DEBUG'" => 'debug', 
     4    "'PEAR_LOG_INFO'" => 'info', 
     5    "'PEAR_LOG_NOTICE'" => 'notice', 
     6    "'PEAR_LOG_WARNING'" => 'warning', 
     7    "'PEAR_LOG_ERR'" => 'error', 
     8    "'PEAR_LOG_CRIT'" => 'critical', 
     9    "'PEAR_LOG_ALERT'" => 'alert', 
     10    "'PEAR_LOG_EMERG'" => 'emergency', 
    1111    ); 
    1212?>