[ Index ]

PHP Cross Reference of DokuWiki

title

Body

[close]

/vendor/openpsa/universalfeedcreator/lib/Element/ -> FeedHtmlField.php (source)

   1  <?php
   2  
   3  /**
   4   * A FeedHtmlField describes and generates
   5   * a feed, item or image html field (probably a description). Output is
   6   * generated based on $truncSize, $syndicateHtml properties.
   7   *
   8   * @author  Pascal Van Hecke <feedcreator.class.php@vanhecke.info>
   9   * @version 1.6
  10   */
  11  class FeedHtmlField
  12  {
  13      /**
  14       * Mandatory attributes of a FeedHtmlField.
  15       */
  16      protected $rawFieldContent;
  17  
  18      /**
  19       * Optional attributes of a FeedHtmlField.
  20       */
  21      public $truncSize, $syndicateHtml;
  22  
  23      /**
  24       * Creates a new instance of FeedHtmlField.
  25       *
  26       * @param string $parFieldContent if given, sets the rawFieldContent property
  27       */
  28      public function __construct($parFieldContent)
  29      {
  30          if ($parFieldContent) {
  31              $this->rawFieldContent = $parFieldContent;
  32          }
  33      }
  34  
  35      /**
  36       * Creates the right output, depending on $truncSize, $syndicateHtml properties.
  37       *
  38       * @return string the formatted field
  39       */
  40      public function output()
  41      {
  42          // when field available and syndicated in html we assume
  43          // - valid html in $rawFieldContent and we enclose in CDATA tags
  44          // - no truncation (truncating risks producing invalid html)
  45          if (!$this->rawFieldContent) {
  46              $result = "";
  47          } elseif ($this->syndicateHtml) {
  48              $result = "<![CDATA[".$this->rawFieldContent."]]>";
  49          } else {
  50              if ($this->truncSize and is_int($this->truncSize)) {
  51                  $result = FeedCreator::iTrunc(htmlspecialchars($this->rawFieldContent), $this->truncSize);
  52              } else {
  53                  $result = htmlspecialchars($this->rawFieldContent);
  54              }
  55          }
  56  
  57          return $result;
  58      }
  59  }