Changeset 1166

Show
Ignore:
Timestamp:
12/20/07 11:17:29 (8 months ago)
Author:
richi
Message:

enhancement #115: [part II] added template driven generation of service url and added also the class stubRegexFilterDecorator

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/main/php/net/stubbles/ipo/request/filters/stubStringFilter.php

    r1037 r1166  
    88 */ 
    99stubClassLoader::load('net.stubbles.ipo.request.filters.stubAbstractStringFilter'); 
     10stubClassLoader::load('net.stubbles.ipo.request.filters.stubSimpleStringFilter'); 
    1011/** 
    1112 * Class for filtering strings (singe line). 
     
    5960    { 
    6061        if (null != $value) { 
    61             // remove line feeds, HTML and all added slashes from magic_gpc_quote 
    62             $value = str_replace(chr(10), '', str_replace(chr(13), '', stripslashes($value))); 
    63             $value = strip_tags($value); 
     62            $simpleStringFilter = new stubSimpleStringFilter($this->rveFactory); 
     63            $value = $simpleStringFilter->execute($value); 
    6464 
    6565            if ($this->regex->validate($value) == false) { 
  • trunk/src/main/php/net/stubbles/websites/memphis/stubMemphisProcessor.php

    r1141 r1166  
    88 */ 
    99stubClassLoader::load('net.stubbles.ipo.request.stubRequestPrefixDecorator', 
     10                      'net.stubbles.ipo.request.stubRequestValueErrorXJConfFactory', 
     11                      'net.stubbles.ipo.request.filters.stubSimpleStringFilter', 
     12                      'net.stubbles.ipo.request.filters.stubRegexFilterDecorator', 
    1013                      'net.stubbles.lang.stubMode', 
    1114                      'net.stubbles.util.stubRegistry', 
     
    9194            $template->enableCache(); 
    9295        } 
    93          
     96 
    9497        return $template; 
    9598    } 
     
    114117            } 
    115118        } 
    116          
     119 
    117120        $this->template      = $this->createTemplate(); 
    118121        $context['template'] = $this->template; 
     
    124127                $this->cache->store($this->request, $this->response, $pageName); 
    125128            } 
    126              
     129 
    127130            $contents = str_replace('$SID', $this->session->getName() . '=' . $this->session->getId(), $this->response->getData()); 
    128131            $contents = str_replace('$SESSION_NAME', $this->session->getName(), $contents); 
     
    150153            $sslMode = 'yes'; 
    151154        } 
    152          
     155 
    153156        $this->cache->addCacheVar('ssl', $sslMode); 
    154157        foreach ($this->config->getParts() as $part) { 
     
    162165                    return false; 
    163166                } 
    164                  
     167 
    165168                $this->cache->addCacheVars($defaultElement->getCacheVars()); 
    166169                $this->cache->addUsedFiles($defaultElement->getUsedFiles()); 
    167170            } 
    168              
     171 
    169172            foreach ($elements as $name => $element) { 
    170173                $prefixRequest->setPrefix($name); 
     
    175178                    return false; 
    176179                } 
    177                  
     180 
    178181                $this->cache->addCacheVars($element->getCacheVars()); 
    179182                $this->cache->addUsedFiles($element->getUsedFiles()); 
    180183            } 
    181184        } 
    182          
     185 
    183186        return true; 
    184187    } 
     
    202205                    continue; 
    203206                } 
    204                  
     207 
    205208                $content .= $defaultElement->process(); 
    206209                if ($prefixRequest->isCancelled() === true) { 
     
    208211                } 
    209212            } 
    210              
     213 
    211214            foreach ($elements as $name => $element) { 
    212215                $prefixRequest->setPrefix($name); 
     
    215218                    continue; 
    216219                } 
    217                  
     220 
    218221                $content .= $element->process(); 
    219222                if ($prefixRequest->isCancelled() === true) { 
     
    221224                } 
    222225            } 
    223              
     226 
    224227            $this->template->addGlobalVar($part, $content); 
    225228        } 
    226          
     229 
    227230        $this->response->write($this->template->getParsedTemplate('frame')); 
    228231    } 
     
    247250            $frame = $page->getProperty('frame'); 
    248251        } 
    249          
     252 
    250253        if (null == $frame) { 
    251254            return 'default'; 
    252255        } 
    253          
     256 
    254257        return $frame; 
    255258    } 
     
    268271        $this->template->addGlobalVar('PAGE_NAME', $pageName); 
    269272        $this->template->addGlobalVar('VARIANT', $this->session->getValue('net.stubbles.websites.variantmanager.variant', '')); 
     273 
     274        $rve            = new stubRequestValueErrorXJConfFactory(); 
     275        $ssFilter       = new stubSimpleStringFilter($rve); 
     276        $uriRegex       = '/\/.*(?=\?)|\/.*/'; 
     277        $regexDecorator = new stubRegexFilterDecorator($ssFilter, $uriRegex, stubRegexFilterDecorator::STRATEGY_AFTER); 
     278 
     279        $requestUri = $this->request->getFilteredValue($regexDecorator, 'REQUEST_URI', stubRequest::SOURCE_HEADER); 
     280        $serviceUrl = $requestUri . '?processor=jsonrpc'; 
     281        $this->template->addGlobalVar('SERVICE_URL', $serviceUrl); 
     282 
    270283        if (null === $this->cache) { 
    271284            $this->template->addGlobalVar('SID', $this->session->getName() . '=' . $this->session->getId()); 
     
    277290            $this->template->addGlobalVar('SESSION_ID', '$SESSION_ID'); 
    278291        } 
    279          
     292 
    280293        // check for user data 
    281294        if ($this->session->hasValue('_userData') === true) { 
     
    287300            $this->template->addVar('frame', 'META_' . $key, htmlentities($value)); 
    288301        } 
    289          
     302 
    290303        $sslMode = 'no'; 
    291304        if ($this->request->validateValue(new stubEqualValidator(443), 'SERVER_PORT', stubRequest::SOURCE_HEADER) === true) { 
    292305            $sslMode = 'yes'; 
    293306        } 
    294          
     307 
    295308        $this->template->addGlobalVar('SSL_MODE', $sslMode); 
    296309    } 
  • trunk/src/test/php/net/stubbles/ipo/IPOTestSuite.php

    r1037 r1166  
    4646        $this->addTestFile($dir . '/request/filters/stubPassThruFilterTestCase.php'); 
    4747        $this->addTestFile($dir . '/request/filters/stubPasswordFilterTestCase.php'); 
     48        $this->addTestFile($dir . '/request/filters/stubRegexFilterDecoratorTestCase.php'); 
    4849        $this->addTestFile($dir . '/request/filters/stubStringFilterTestCase.php'); 
    4950        $this->addTestFile($dir . '/request/filters/stubTextFilterTestCase.php'); 
  • trunk/src/test/php/net/stubbles/ipo/request/filters/stubStringFilterTestCase.php

    r968 r1166  
    22/** 
    33 * Tests for ipo.request.filters.stubStringFilter 
     4 *         & ipo.request.filters.stubSimpleStringFilter 
    45 * 
    56 * @author      Frank Kleine <frank@kl-s.com> 
     
    1314/** 
    1415 * Tests for ipo.request.filters.stubStringFilter 
     16 *         & ipo.request.filters.stubSimpleStringFilter 
    1517 * 
    1618 * @package     stubbles 
  • trunk/src/test/php/net/stubbles/websites/memphis/stubMemphisProcessorTestCase.php

    r1141 r1166  
    747747        $this->mockMemphisTemplate->expectAt(2, 'addGlobalVar', array('PAGE_NAME', 'baz')); 
    748748        $this->mockMemphisTemplate->expectAt(3, 'addGlobalVar', array('VARIANT', null)); 
    749         $this->mockMemphisTemplate->expectAt(4, 'addGlobalVar', array('SID', 'sessionid=313')); 
    750         $this->mockMemphisTemplate->expectAt(5, 'addGlobalVar', array('SESSION_NAME', 'sessionid')); 
    751         $this->mockMemphisTemplate->expectAt(6, 'addGlobalVar', array('SESSION_ID', 313)); 
    752         $this->mockMemphisTemplate->expectAt(7, 'addGlobalVar', array('SSL_MODE', 'no')); 
     749        $this->mockMemphisTemplate->expectAt(4, 'addGlobalVar', array('SERVICE_URL', '?processor=jsonrpc')); 
     750        $this->mockMemphisTemplate->expectAt(5, 'addGlobalVar', array('SID', 'sessionid=313')); 
     751        $this->mockMemphisTemplate->expectAt(6, 'addGlobalVar', array('SESSION_NAME', 'sessionid')); 
     752        $this->mockMemphisTemplate->expectAt(7, 'addGlobalVar', array('SESSION_ID', 313)); 
     753        $this->mockMemphisTemplate->expectAt(8, 'addGlobalVar', array('SSL_MODE', 'no')); 
    753754        $this->mockMemphisTemplate->expectAt(0, 'addVar', array('frame', 'META_description', 'This is a description.')); 
    754755        $this->mockMemphisTemplate->expectAt(1, 'addVar', array('frame', 'META_keywords', 'keyword1, keyword2')); 
     
    775776        $this->mockMemphisTemplate->expectAt(2, 'addGlobalVar', array('PAGE_NAME', 'baz')); 
    776777        $this->mockMemphisTemplate->expectAt(3, 'addGlobalVar', array('VARIANT', 'variant')); 
    777         $this->mockMemphisTemplate->expectAt(4, 'addGlobalVar', array('SID', '$SID')); 
    778         $this->mockMemphisTemplate->expectAt(5, 'addGlobalVar', array('SESSION_NAME', '$SESSION_NAME')); 
    779         $this->mockMemphisTemplate->expectAt(6, 'addGlobalVar', array('SESSION_ID', '$SESSION_ID')); 
    780         $this->mockMemphisTemplate->expectAt(7, 'addGlobalVar', array('SSL_MODE', 'yes')); 
     778        $this->mockMemphisTemplate->expectAt(4, 'addGlobalVar', array('SERVICE_URL', '?processor=jsonrpc')); 
     779        $this->mockMemphisTemplate->expectAt(5, 'addGlobalVar', array('SID', '$SID')); 
     780        $this->mockMemphisTemplate->expectAt(6, 'addGlobalVar', array('SESSION_NAME', '$SESSION_NAME')); 
     781        $this->mockMemphisTemplate->expectAt(7, 'addGlobalVar', array('SESSION_ID', '$SESSION_ID')); 
     782        $this->mockMemphisTemplate->expectAt(8, 'addGlobalVar', array('SSL_MODE', 'yes')); 
    781783        $this->mockMemphisTemplate->expectNever('addVar'); 
    782784        $this->mockMemphisTemplate->expectOnce('addGlobalVars', array(array('name' => 'mikey'), 'USER_'));