Esempio n. 1
0
 /**
  * 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}>";
 }
Esempio n. 2
0
 /**
  * _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);
 }
Esempio n. 3
0
 /**
  * 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;
 }