Author URI: http://candrews.integralblue.com/ */ /* * StatusNet - the distributed open-source microblogging tool * Copyright (C) 2009, StatusNet, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ /** * @package MinifyPlugin * @maintainer Craig Andrews */ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } class MinifyPlugin extends Plugin { /** * Add Minification related paths to the router table * * Hook for RouterInitialized event. * * @return boolean hook return */ function onStartInitializeRouter($m) { $m->connect('main/min', array('action' => 'minify')); return true; } function onAutoload($cls) { switch ($cls) { case 'MinifyAction': require_once(INSTALLDIR.'/plugins/Minify/' . strtolower(mb_substr($cls, 0, -6)) . '.php'); return false; default: return true; } } function onLoginAction($action, &$login) { switch ($action) { case 'minify': $login = true; return false; default: return true; } } function onStartScriptElement($action,&$src,&$type) { $url = parse_url($src); if( empty($url->scheme) && empty($url->host) && empty($url->query) && empty($url->fragment)) { $src = common_path('main/min?f='.$src.'&v=' . STATUSNET_VERSION); } } function onStartCssLinkElement($action,&$src,&$theme,&$media) { $url = parse_url($src); if( empty($url->scheme) && empty($url->host) && empty($url->query) && empty($url->fragment)) { if(file_exists(Theme::file($src,$theme))){ //src is a relative path, so we can do minification if(isset($theme)) { $src = common_path('main/min?f=theme/'.$theme.'/'.$src.'&v=' . STATUSNET_VERSION); } else { $src = common_path('main/min?f=theme/default/'.$src.'&v=' . STATUSNET_VERSION); } } } } }