summaryrefslogtreecommitdiff
path: root/platform/www/vendor/openpsa/universalfeedcreator/lib/Element/FeedHtmlField.php
diff options
context:
space:
mode:
Diffstat (limited to 'platform/www/vendor/openpsa/universalfeedcreator/lib/Element/FeedHtmlField.php')
-rw-r--r--platform/www/vendor/openpsa/universalfeedcreator/lib/Element/FeedHtmlField.php59
1 files changed, 59 insertions, 0 deletions
diff --git a/platform/www/vendor/openpsa/universalfeedcreator/lib/Element/FeedHtmlField.php b/platform/www/vendor/openpsa/universalfeedcreator/lib/Element/FeedHtmlField.php
new file mode 100644
index 0000000..84f0ac4
--- /dev/null
+++ b/platform/www/vendor/openpsa/universalfeedcreator/lib/Element/FeedHtmlField.php
@@ -0,0 +1,59 @@
+<?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;
+ }
+}