. * * @category Plugin * @package Laconica * @author Evan Prodromou * @copyright 2008 Control Yourself, Inc. * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://laconi.ca/ */ if (!defined('LACONICA')) { exit(1); } define('WIKIHASHTAGSPLUGIN_VERSION', '0.1'); /** * Plugin to use WikiHashtags * * @category Plugin * @package Laconica * @author Evan Prodromou * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://laconi.ca/ * * @see Event */ class WikiHashtagsPlugin extends Plugin { 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)); $context = stream_context_create(array('http' => array('method' => "GET", 'header' => "User-Agent: " . $this->userAgent()))); $html = @file_get_contents($url, false, $context); $action->elementStart('div', array('id' => 'wikihashtags', 'class' => 'section')); if (!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 userAgent() { return 'WikiHashtagsPlugin/'.WIKIHASHTAGSPLUGIN_VERSION . ' Laconica/' . LACONICA_VERSION; } }