60 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
/**
 | 
						|
 * A FeedHtmlField describes and generates
 | 
						|
 * a feed, item or image html field (probably a description). Output is
 | 
						|
 * generated based on $truncSize, $syndicateHtml properties.
 | 
						|
 *
 | 
						|
 * @author  Pascal Van Hecke <feedcreator.class.php@vanhecke.info>
 | 
						|
 * @version 1.6
 | 
						|
 */
 | 
						|
class FeedHtmlField
 | 
						|
{
 | 
						|
    /**
 | 
						|
     * Mandatory attributes of a FeedHtmlField.
 | 
						|
     */
 | 
						|
    protected $rawFieldContent;
 | 
						|
 | 
						|
    /**
 | 
						|
     * Optional attributes of a FeedHtmlField.
 | 
						|
     */
 | 
						|
    public $truncSize, $syndicateHtml;
 | 
						|
 | 
						|
    /**
 | 
						|
     * Creates a new instance of FeedHtmlField.
 | 
						|
     *
 | 
						|
     * @param string $parFieldContent if given, sets the rawFieldContent property
 | 
						|
     */
 | 
						|
    public function __construct($parFieldContent)
 | 
						|
    {
 | 
						|
        if ($parFieldContent) {
 | 
						|
            $this->rawFieldContent = $parFieldContent;
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Creates the right output, depending on $truncSize, $syndicateHtml properties.
 | 
						|
     *
 | 
						|
     * @return string the formatted field
 | 
						|
     */
 | 
						|
    public function output()
 | 
						|
    {
 | 
						|
        // when field available and syndicated in html we assume
 | 
						|
        // - valid html in $rawFieldContent and we enclose in CDATA tags
 | 
						|
        // - no truncation (truncating risks producing invalid html)
 | 
						|
        if (!$this->rawFieldContent) {
 | 
						|
            $result = "";
 | 
						|
        } elseif ($this->syndicateHtml) {
 | 
						|
            $result = "<![CDATA[".$this->rawFieldContent."]]>";
 | 
						|
        } else {
 | 
						|
            if ($this->truncSize and is_int($this->truncSize)) {
 | 
						|
                $result = FeedCreator::iTrunc(htmlspecialchars($this->rawFieldContent), $this->truncSize);
 | 
						|
            } else {
 | 
						|
                $result = htmlspecialchars($this->rawFieldContent);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        return $result;
 | 
						|
    }
 | 
						|
}
 |