b2evolution

Multilingual multiuser multiblog engine

b2evolution Technical Documentation (0.9.x) [ class tree: evocore ] [ index: evocore ] [ all elements ]

Source for file _class_renderer.php

Documentation is available at _class_renderer.php

  1. <?php
  2. /**
  3.  * This file implements the renderer (EXPERIMENTAL)
  4.  * 
  5.  * b2evolution - {@link http://b2evolution.net/}
  6.  * Released under GNU GPL License - {@link http://b2evolution.net/about/license.html}
  7.  * @copyright (c)2003-2005 by Francois PLANQUE - {@link http://fplanque.net/}
  8.  *
  9.  * @package evocore
  10.  */
  11. if!defined('DB_USER') ) die'Please, do not access this page directly.' );
  12.  
  13. /**
  14.  * Includes:
  15.  */
  16. require_once dirname(__FILE__).'/_class_plug.php';
  17.  
  18. /**
  19.  * Renderer Class
  20.  *
  21.  * @package evocore
  22.  */
  23. class Renderer extends Plug
  24. {
  25.     /**
  26.      * Constructor
  27.      *
  28.      * {@internal Renderer::Renderer(-)}}
  29.      *
  30.      */
  31.     function Renderer()
  32.     {
  33.         // Call parent constructor:
  34.         parent::Plug'renderer' );
  35.     }    
  36.     
  37.     
  38.     /**
  39.      * Validate renderer list
  40.      *
  41.      * {@internal Renderer::validate_list(-)}}
  42.      *
  43.      * @param array renderer codes
  44.      * @return array validated array
  45.      */
  46.     function validate_list$renderers array('default') )
  47.     {
  48.         $this->init();    // Init if not done yet.
  49.         
  50.         $this->restart()// Just in case.
  51.         
  52.         $validated_renderers array();
  53.         
  54.         while$loop_RendererPlugin $this->get_next() )
  55.         // Go through whole list of renders
  56.             // echo ' ',$loop_RendererPlugin->code;
  57.  
  58.             switch$loop_RendererPlugin->apply_when )
  59.             {
  60.                 case 'stealth':
  61.                 case 'always':
  62.                     // echo 'FORCED';
  63.                     $validated_renderers[$loop_RendererPlugin->code;
  64.                     break;
  65.                  
  66.                 case 'opt-out':
  67.                     ifin_array$loop_RendererPlugin->code$renderers // Option is activated
  68.                         || in_array'default'$renderers ) ) // OR we're asking for default renderer set
  69.                     {
  70.                         // echo 'OPT';
  71.                         $validated_renderers[$loop_RendererPlugin->code;
  72.                     }
  73.                     // else echo 'NO';
  74.                     break;
  75.  
  76.                 case 'opt-in':
  77.                 case 'lazy':
  78.                     ifin_array$loop_RendererPlugin->code$renderers ) ) // Option is activated
  79.                     {
  80.                         // echo 'OPT';
  81.                         $validated_renderers[$loop_RendererPlugin->code;
  82.                     }
  83.                     // else echo 'NO';
  84.                     break;
  85.                                      
  86.                 case 'never':
  87.                     // echo 'NEVER';
  88.                     continue;    // STOP, don't render, go to next renderer
  89.             }        
  90.         }
  91.         // echo count( $validated_renderers );
  92.         return $validated_renderers
  93.     }    
  94.  
  95.  
  96.     /**
  97.      * Render the content
  98.      *
  99.      * {@internal Renderer::render(-)}}
  100.      *
  101.      * @param string content to render
  102.      * @param array renderer codes
  103.      * @param string Output format, see {@link format_to_output()}
  104.      * @return string rendered content
  105.      */
  106.     function render$content$renderers$format )
  107.     {
  108.         $this->init();    // Init if not done yet.
  109.         
  110.         $this->restart()// Just in case.
  111.         
  112.         // echo implode(',',$renderers);
  113.         
  114.         while$loop_RendererPlugin $this->get_next() )
  115.         // Go through whole list of renders
  116.             //echo ' ',$loop_RendererPlugin->code, ':';
  117.  
  118.             switch$loop_RendererPlugin->apply_when )
  119.             {
  120.                  case 'stealth':
  121.                  case 'always':
  122.                     // echo 'FORCED ';
  123.                     $loop_RendererPlugin->render$content$format );
  124.                     break;
  125.                  
  126.                  case 'opt-out':
  127.                  case 'opt-in':
  128.                  case 'lazy':
  129.                     ifin_array$loop_RendererPlugin->code$renderers ) )
  130.                     {    // Option is activated
  131.                         // echo 'OPT ';
  132.                         $loop_RendererPlugin->render$content$format );
  133.                     }
  134.                     // else echo 'NOOPT ';
  135.                     break;
  136.                                      
  137.                  case 'never':
  138.                     // echo 'NEVER ';
  139.                     break;    // STOP, don't render, go to next renderer
  140.             }        
  141.         }
  142.  
  143.         return $content
  144.     }    
  145.     
  146. }
  147. ?>

Documentation generated on Tue, 20 May 2008 01:53:31 +0200 by phpDocumentor 1.4.2