activitystrea.ms) syntax to your Atom-Feed
Author: Matthias Pfefferle
Version: 0.7
Author URI: http://notizblog.org
*/
add_action('atom_ns', array('ActivityExtension', 'addActivityNamespace'));
add_action('atom_entry', array('ActivityExtension', 'addActivityObject'));
add_action('atom_head', array('ActivityExtension', 'addActivityProvider'));
add_action('comment_atom_ns', array('ActivityExtension', 'addActivityNamespace'));
add_action('comment_atom_entry', array('ActivityExtension', 'addCommentActivityObject'));
add_action('comments_atom_head', array('ActivityExtension', 'addActivityProvider'));
add_action('wp_head', array('ActivityExtension', 'addHtmlHeader'), 5);
add_filter('query_vars', array('ActivityExtension', 'queryVars'));
// add 'json' as feed
add_action('do_feed_json', array('ActivityExtension', 'doFeedJson'));
add_action('init', array('ActivityExtension', 'init'));
// push json feed
add_filter('pshb_feed_urls', array('ActivityExtension', 'publishToHub'));
register_activation_hook(__FILE__, array('ActivityExtension', 'flushRewriteRules'));
register_deactivation_hook(__FILE__, array('ActivityExtension', 'flushRewriteRules'));
add_action('do_feed_atom', array('ActivityExtension', 'startAtomLinkTag'), 9); // run before output
add_action('do_feed_atom', array('ActivityExtension', 'endAtomLinkTag'), 11); // run after output
/**
* ActivityStream Extension
*
* @author Matthias Pfefferle
*/
class ActivityExtension {
/**
* init function
*/
function init() {
add_feed('json', array('ActivityExtension', 'doFeedJson'));
}
/**
* reset rewrite rules
*/
function flushRewriteRules() {
global $wp_rewrite;
$wp_rewrite->flush_rules();
}
/**
* echos the activitystream namespace
*/
function addActivityNamespace() {
echo 'xmlns:activity="http://activitystrea.ms/spec/1.0/"'." \n";
echo 'xmlns:media="http://purl.org/syndication/atommedia"'." \n";
echo 'xmlns:poco="http://portablecontacts.net/spec/1.0"'." \n";
}
/**
* echos autodiscovery links
*/
function addHtmlHeader() {
echo ''."\n";
echo ''."\n";
}
/**
* echos the activity verb and object for the wordpress entries
*/
function addActivityObject() {
?>
http://activitystrea.ms/schema/1.0/post
http://activitystrea.ms/schema/1.0/article
]]>
]]>
user_email));
?>
http://activitystrea.ms/schema/1.0/person
ID, $user->user_nicename); ?>
display_name; ?>s stream
user_nicename; ?>
display_name; ?>
http://activitystrea.ms/schema/1.0/post
http://activitystrea.ms/schema/1.0/comment
]]>
http://activitystrea.ms/schema/1.0/article
]]>
]]>
user_email));
$feed = ob_get_clean();
$pattern = '/<\/author>/i';
$replacement = "http://activitystrea.ms/schema/1.0/person\n";
$replacement .= "\n";
$replacement .= "\n";
$replacement .= "\n";
$replacement .= "\n";
$replacement .= "\n";
$replacement .= "".$user->user_nicename."\n";
$replacement .= "".$user->display_name."\n";
if ($description = $user->user_description) {
$replacement .= "\n";
}
$replacement .= "\n";
echo preg_replace($pattern, $replacement, $feed, 1);
}
}
}