From 95b534c5cee56602dffcc11121908c0f518cab6d Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 15 Sep 2010 14:09:23 -0700 Subject: Move standalone plugin files into subdirectories so they can have locale data, etc added to them at leisure. --- plugins/WikiHashtags/WikiHashtagsPlugin.php | 113 ++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 plugins/WikiHashtags/WikiHashtagsPlugin.php (limited to 'plugins/WikiHashtags/WikiHashtagsPlugin.php') diff --git a/plugins/WikiHashtags/WikiHashtagsPlugin.php b/plugins/WikiHashtags/WikiHashtagsPlugin.php new file mode 100644 index 000000000..c6c976b8f --- /dev/null +++ b/plugins/WikiHashtags/WikiHashtagsPlugin.php @@ -0,0 +1,113 @@ +. + * + * @category Plugin + * @package StatusNet + * @author Evan Prodromou + * @copyright 2008 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * Plugin to use WikiHashtags + * + * @category Plugin + * @package StatusNet + * @author Evan Prodromou + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + * + * @see Event + */ + +class WikiHashtagsPlugin extends Plugin +{ + const VERSION = '0.1'; + + function __construct($code=null) + { + parent::__construct(); + } + + function onStartShowSections($action) + { + $name = $action->trimmed('action'); + + if ($name == 'tag') { + + $taginput = $action->trimmed('tag'); + $tag = common_canonical_tag($taginput); + + if (!empty($tag)) { + + $url = sprintf('http://hashtags.wikia.com/index.php?title=%s&action=render', + urlencode($tag)); + $editurl = sprintf('http://hashtags.wikia.com/index.php?title=%s&action=edit', + urlencode($tag)); + + $request = HTTPClient::start(); + $response = $request->get($url); + $html = $response->getBody(); + + $action->elementStart('div', array('id' => 'wikihashtags', 'class' => 'section')); + + if ($response->isOk() && !empty($html)) { + $action->element('style', null, + "span.editsection { display: none }\n". + "table.toc { display: none }"); + $action->raw($html); + $action->elementStart('p'); + $action->element('a', array('href' => $editurl, + 'title' => sprintf(_('Edit the article for #%s on WikiHashtags'), $tag)), + _('Edit')); + $action->element('a', array('href' => 'http://www.gnu.org/copyleft/fdl.html', + 'title' => _('Shared under the terms of the GNU Free Documentation License'), + 'rel' => 'license'), + 'GNU FDL'); + $action->elementEnd('p'); + } else { + $action->element('a', array('href' => $editurl), + sprintf(_('Start the article for #%s on WikiHashtags'), $tag)); + } + + $action->elementEnd('div'); + } + } + + return true; + } + + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'WikiHashtags', + 'version' => self::VERSION, + 'author' => 'Evan Prodromou', + 'homepage' => 'http://status.net/wiki/Plugin:WikiHashtags', + 'rawdescription' => + _m('Gets hashtag descriptions from WikiHashtags.')); + return true; + } +} -- cgit v1.2.3-54-g00ecf