From ea7c1bab2e9b17ab6101f4143fcee02d93357930 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Fri, 12 Mar 2010 11:13:05 -0500 Subject: [PATCH] Plugin to open up rel="external" links on a new window or tab --- .../OpenExternalLinkTargetPlugin.php | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 plugins/OpenExternalLinkTarget/OpenExternalLinkTargetPlugin.php diff --git a/plugins/OpenExternalLinkTarget/OpenExternalLinkTargetPlugin.php b/plugins/OpenExternalLinkTarget/OpenExternalLinkTargetPlugin.php new file mode 100644 index 0000000000..ebb0189e03 --- /dev/null +++ b/plugins/OpenExternalLinkTarget/OpenExternalLinkTargetPlugin.php @@ -0,0 +1,64 @@ +. + * + * @category Action + * @package StatusNet + * @author Sarven Capadisli + * @copyright 2010 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') && !defined('LACONICA')) { + exit(1); +} + +/** + * Opens links with rel=external on a new window or tab + * + * @category Plugin + * @package StatusNet + * @author Sarven Capadisli + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +class OpenExternalLinkTargetPlugin extends Plugin +{ + function onEndShowScripts($action) + { + $action->inlineScript('$("a[rel~=external]").click(function(){ window.open(this.href); return false; });'); + + return true; + } + + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'OpenExternalLinkTarget', + 'version' => STATUSNET_VERSION, + 'author' => 'Sarven Capadisli', + 'homepage' => 'http://status.net/wiki/Plugin:OpenExternalLinkTarget', + 'rawdescription' => + _m('Opens external links (i.e., with rel=external) on a new window or tab')); + return true; + } +} +