/** * Hook_tag function for htmLawed * * Cleanup and htmLawed text cleaning * * @param object $element Param * @param array $attribute_array Param * * @return string */ public static function hookTagCleaning($element, $attribute_array = array()) { static $empty_elements = array('area' => 1, 'br' => 1, 'col' => 1, 'embed' => 1, 'hr' => 1, 'img' => 1, 'input' => 1, 'isindex' => 1, 'param' => 1); // It's a closing tag if (!array_key_exists($element, $empty_elements)) { if (array_key_exists($element, self::$open_tag) && self::$open_tag[$element]) { self::$open_tag[$element] = false; return "</{$element}>"; } self::$open_tag[$element] = true; } if (self::$hasHookTags) { foreach ($attribute_array as $k => $v) { $key = $element . '-' . $k; if (array_key_exists($key, self::$tags_attrs) && strpos($v, self::$tags_attrs[$key]) === 0) { if (self::$whitemode) { // It's ok, proceed break; } else { // Blacklisted! return ''; } } } } $params = FeedProcessorHelper::getParams(); $link_target = $params->get('link_target', 0); if ($element == 'a' && $link_target) { $attribute_array['target'] = $link_target; } $string = ''; foreach ($attribute_array as $k => $v) { $string .= " {$k}=\"{$v}\""; } return "<{$element}{$string}>"; }
/** * _getTagsToStrip * * @return array */ private function _getTagsToStrip() { $s = self::$_params->get('strip_list'); $w = ''; if (strpos($s, '+') === 0) { $s = FeedTextHelper::str_replace_first('+', '', $s); $w = '+'; } $ts = TextUtil::listToArray($s); $ht = array(); foreach ($ts as $k => $t) { if (JString::strpos($t, '=')) { $ht[] = $t; unset($ts[$k]); } } list($tags, $hook_tag) = array($w . implode(',', $ts), $w . implode(',', $ht)); if ($tags) { if (strpos($tags, '+') !== false) { $tags = str_replace('+', '', $tags); } else { $tags = str_replace(' ', '', $tags); $tags = '*-' . str_replace(',', ' -', $tags); } } self::$_tags = $tags; self::$_hook_tag = $hook_tag; return array($tags, $hook_tag); }
/** * importFeed * * @param object &$feed Params * * @return array */ public function importFeed(&$feed) { $noresult = new StdClass(); $noresult->added_items = 0; $feedImporterHelper = new FeedImporterHelper(); $feedProcessorHelper = new FeedProcessorHelper(); $feedGeneratorHelper = new FeedGeneratorHelper(); $loadResult = $feedImporterHelper->import($feed); if (!isset($loadResult->items) || count($loadResult->items) == 0) { return $noresult; } $contents = $feedProcessorHelper->process($feed, $loadResult); if (count($contents) == 0) { return $noresult; } // Simple check for duplicates in feed contents $feedGeneratorHelper->removeDuplicates($contents); if (count($contents) == 0) { return $noresult; } $feedGeneratorHelper->execute($contents, $feed->xtform); $loadResult->added_items = $feedGeneratorHelper->save($contents, $feed->xtform); return $loadResult; }