(.+)#Uim',$cont,$matches,PREG_PATTERN_ORDER)) { if (count($matches)) { foreach($matches[1] as $m) { $sm=array(); if(preg_match('#.*href=".*[/?=]([^"?=/]+)/?"#',trim($m),$sm) && count($sm)) { $ret[]= $sm[1]; } } } } return array_unique($ret); } function _at_autoTagConfig() { $cids = rss_plugins_get_option(AT_CONFIG_KEY); if (is_array($cids)) { $cids = array_flip($cids); } if (rss_plugins_is_submit()) { $active = array(); foreach($_REQUEST as $var => $val) { if (preg_match('/^at_c([0-9]+)$/',$var, $matches)) { $active[] = $matches[1]; } } rss_plugins_add_option(AT_CONFIG_KEY, $active, 'array'); return; } echo "\n"; echo "

Auto-tag these feeds:

\n"; $rs = rss_query("select id, title from " . getTable('channels')); echo " " ."

\n"; while (list($cid,$ctitle) = rss_fetch_row($rs)) { echo "" ."
\n"; } echo "

\n"; } function __priv_at_fixTag(&$tag, $key) { $tag= urldecode($tag); } function _at_autoTagItem($data) { static $cids; if ($cids == null) { if (is_array(rss_plugins_get_option(AT_CONFIG_KEY))) { $cids = array_flip(rss_plugins_get_option(AT_CONFIG_KEY)); } } list($iid,$item,$cid) = $data; if (isset($cids[$cid])) { $description = ""; // item content, if any if (array_key_exists('content', $item) && is_array($item['content']) && array_key_exists('encoded', $item['content'])) { $description = $item['content']['encoded']; } elseif (array_key_exists('description', $item)) { $description = $item['description']; } elseif (array_key_exists('atom_content', $item)) { $description = $item['atom_content']; } elseif (array_key_exists('summary', $item)) { $description = $item['summary']; } $tags=__priv_at_relTags($description); if (isset($item['category@term'])) { $tags= array_merge($tags, explode(' ',$item['category@term'])); $tags= array_unique($tags); } if (count($tags)) { array_walk($tags,'__priv_at_fixTag'); __exp__submitTag($iid,implode(' ',$tags)); } } } rss_set_hook('rss.plugins.items.newiid','_at_autoTagItem'); ?>