Text_Wiki
[ class tree: Text_Wiki ] [ index: Text_Wiki ] [ all elements ]

Source for file Render.php

Documentation is available at Render.php

  1. <?php
  2.  
  3. class Text_Wiki_Render {
  4.     
  5.     
  6.     /**
  7.     * 
  8.     * Configuration options for this render rule.
  9.     * 
  10.     * @access public
  11.     * 
  12.     * @var string 
  13.     * 
  14.     */
  15.     
  16.     var $conf = array();
  17.     
  18.     
  19.     /**
  20.     * 
  21.     * The name of this rule's format.
  22.     * 
  23.     * @access public
  24.     * 
  25.     * @var string 
  26.     * 
  27.     */
  28.     
  29.     var $format = null;
  30.     
  31.     
  32.     /**
  33.     * 
  34.     * The name of this rule's token array elements.
  35.     * 
  36.     * @access public
  37.     * 
  38.     * @var string 
  39.     * 
  40.     */
  41.     
  42.     var $rule = null;
  43.     
  44.     
  45.     /**
  46.     * 
  47.     * A reference to the calling Text_Wiki object.
  48.     * 
  49.     * This is needed so that each rule has access to the same source
  50.     * text, token set, URLs, interwiki maps, page names, etc.
  51.     * 
  52.     * @access public
  53.     * 
  54.     * @var object 
  55.     */
  56.     
  57.     var $wiki = null;
  58.     
  59.     
  60.     /**
  61.     * 
  62.     * Constructor for this render format or rule.
  63.     * 
  64.     * @access public
  65.     * 
  66.     * @param object &$obj The calling "parent" Text_Wiki object.
  67.     * 
  68.     */
  69.     
  70.     function Text_Wiki_Render(&$obj)
  71.     {
  72.         // keep a reference to the calling Text_Wiki object
  73.         $this->wiki =$obj;
  74.         
  75.         // get the config-key-name for this object,
  76.         // strip the Text_Wiki_Render_ part
  77.         //           01234567890123456
  78.         $tmp get_class($this);
  79.         $tmp substr($tmp17);
  80.         
  81.         // split into pieces at the _ mark.
  82.         // first part is format, second part is rule.
  83.         $part   explode('_'$tmp);
  84.         $this->format = isset($part[0]ucwords(strtolower($part[0])) : null;
  85.         $this->rule   = isset($part[1]ucwords(strtolower($part[1])) : null;
  86.         
  87.         // is there a format but no rule?
  88.         // then this is the "main" render object, with
  89.         // pre() and post() methods.
  90.         if ($this->format && $this->rule &&
  91.             isset($this->wiki->formatConf[$this->format]&&
  92.             is_array($this->wiki->formatConf[$this->format])) {
  93.             
  94.             // this is a format render object
  95.             $this->conf array_merge(
  96.                 $this->conf,
  97.                 $this->wiki->formatConf[$this->format]
  98.             );
  99.         
  100.         }
  101.         
  102.         // is there a format and a rule?
  103.         if ($this->format && $this->rule &&
  104.             isset($this->wiki->renderConf[$this->format][$this->rule]&&
  105.             is_array($this->wiki->renderConf[$this->format][$this->rule])) {
  106.             
  107.             // this is a rule render object
  108.             $this->conf array_merge(
  109.                 $this->conf,
  110.                 $this->wiki->renderConf[$this->format][$this->rule]
  111.             );
  112.         }
  113.     }
  114.     
  115.     
  116.     /**
  117.     * 
  118.     * Simple method to safely get configuration key values.
  119.     * 
  120.     * @access public
  121.     * 
  122.     * @param string $key The configuration key.
  123.     * 
  124.     * @param mixed $default If the key does not exist, return this value
  125.     *  instead.
  126.     * 
  127.     * @return mixed The configuration key value (if it exists) or the
  128.     *  default value (if not).
  129.     * 
  130.     */
  131.     
  132.     function getConf($key$default = null)
  133.     {
  134.         if (isset($this->conf[$key])) {
  135.             return $this->conf[$key];
  136.         else {
  137.             return $default;
  138.         }
  139.     }
  140.     
  141.     
  142.     /**
  143.     * 
  144.     * Simple method to wrap a configuration in an sprintf() format.
  145.     * 
  146.     * @access public
  147.     * 
  148.     * @param string $key The configuration key.
  149.     * 
  150.     * @param string $format The sprintf() format string.
  151.     * 
  152.     * @return mixed The formatted configuration key value (if it exists)
  153.     *  or null (if it does not).
  154.     * 
  155.     */
  156.     
  157.     function formatConf($format$key)
  158.     {
  159.         if (isset($this->conf[$key])) {
  160.             return sprintf($format$this->conf[$key]);
  161.         else {
  162.             return null;
  163.         }
  164.     }
  165.     
  166. }
  167. ?>

Documentation generated on Mon, 11 Mar 2019 13:56:11 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.