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

Source for file Url.php

Documentation is available at Url.php

  1. <?php
  2.  
  3.  
  4. class Text_Wiki_Render_Xhtml_Url extends Text_Wiki_Render {
  5.     
  6.     
  7.     var $conf = array(
  8.         'target' => '_blank',
  9.         'images' => true,
  10.         'img_ext' => array('jpg', 'jpeg', 'gif', 'png'),
  11.         'css_inline' => null,
  12.         'css_footnote' => null,
  13.         'css_descr' => null,
  14.         'css_img' => null
  15.     );
  16.     
  17.     /**
  18.     * 
  19.     * Renders a token into text matching the requested format.
  20.     * 
  21.     * @access public
  22.     * 
  23.     * @param array $options The "options" portion of the token (second
  24.     *  element).
  25.     * 
  26.     * @return string The text rendered from the token options.
  27.     * 
  28.     */
  29.     
  30.     function token($options)
  31.     {
  32.         // create local variables from the options array (text,
  33.         // href, type)
  34.         extract($options);
  35.         
  36.         // find the rightmost dot and determine the filename
  37.         // extension.
  38.         $pos = strrpos($href, '.');
  39.         $ext = strtolower(substr($href, $pos + 1));
  40.         $href = htmlspecialchars($href);
  41.         
  42.         // does the filename extension indicate an image file?
  43.         if ($this->getConf('images') &&
  44.             in_array($ext, $this->getConf('img_ext', array()))) {
  45.             
  46.             // create alt text for the image
  47.             if (! isset($text) || $text == '') {
  48.                 $text = basename($href);
  49.                 $text = htmlspecialchars($text);
  50.             }
  51.             
  52.             // generate an image tag
  53.             $css = $this->formatConf(' class="%s"', 'css_img');
  54.             $output = "<img$css src=\"$href\" alt=\"$text\" />";
  55.             
  56.         } else {
  57.             
  58.             // allow for alternative targets on non-anchor HREFs
  59.             if ($href{0} == '#') {
  60.                 $target = '';
  61.             } else {
  62.                 $target = $this->getConf('target');
  63.             }
  64.             
  65.             // generate a regular link (not an image)
  66.             $text = htmlspecialchars($text);
  67.             $css = $this->formatConf(' class="%s"', "css_$type");
  68.             $output = "<a$css href=\"$href\"";
  69.             
  70.             if ($target) {
  71.                 // use a "popup" window.  this is XHTML compliant, suggested by
  72.                 // Aaron Kalin.  uses the $target as the new window name.
  73.                 $target = htmlspecialchars($target);
  74.                 $output .= " onclick=\"window.open(this.href, '$target');";
  75.                 $output .= " return false;\"";
  76.             }
  77.             
  78.             // finish up output
  79.             $output .= ">$text</a>";
  80.             
  81.             // make numbered references look like footnotes when no
  82.             // CSS class specified, make them superscript by default
  83.             if ($type == 'footnote' && ! $css) {
  84.                 $output = '<sup>' . $output . '</sup>';
  85.             }
  86.         }
  87.         
  88.         return $output;
  89.     }
  90. }
  91. ?>

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