(.+)#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');
?>