forked from GNUsocial/gnu-social
		
	Merge branch 'master' into 0.9.x
Conflicts: lib/router.php
This commit is contained in:
		| @@ -272,11 +272,7 @@ function main() | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     // Note the order here: arguments from the URL mapper will | ||||
|     // override request params that have been sent. This ensures | ||||
|     // that for instance an action parameter can't be overridden | ||||
|     // with an arbitrary action class. | ||||
|     $args = array_merge($_REQUEST, $args); | ||||
|     $args = array_merge($args, $_REQUEST); | ||||
|  | ||||
|     Event::handle('ArgsInitialize', array(&$args)); | ||||
|  | ||||
|   | ||||
| @@ -128,12 +128,13 @@ class Router | ||||
|     { | ||||
|         if (empty($this->m)) { | ||||
|             $k = self::cacheKey(); | ||||
|             $m = Cache::get($k); | ||||
|             $c = Cache::instance(); | ||||
|             $m = $c->get($k); | ||||
|             if (!empty($m)) { | ||||
|                 $this->m = $m; | ||||
|             } else { | ||||
|                 $this->m = $this->initialize(); | ||||
|                 Cache::set($k, $this->m); | ||||
|                 $c->set($k, $this->m); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| @@ -156,18 +157,18 @@ class Router | ||||
|     static function cacheKey() | ||||
|     { | ||||
|         $plugins     = StatusNet::getActivePlugins(); | ||||
| 	$names       = array(); | ||||
|         $names       = array(); | ||||
| 	 | ||||
| 	foreach ($plugins as $plugin) { | ||||
| 	    $names[] = $plugin[0]; | ||||
| 	} | ||||
|         foreach ($plugins as $plugin) { | ||||
|             $names[] = $plugin[0]; | ||||
|         } | ||||
|  | ||||
| 	$names = array_unique($names); | ||||
| 	asort($names); | ||||
|         $names = array_unique($names); | ||||
|         asort($names); | ||||
|  | ||||
| 	// Unique enough. | ||||
|         // Unique enough. | ||||
| 	 | ||||
| 	$uniq = crc32(implode(',', $names)); | ||||
|         $uniq = crc32(implode(',', $names)); | ||||
| 	 | ||||
|         return Cache::key('router:'.STATUSNET_VERSION.':'.$uniq); | ||||
|     } | ||||
|   | ||||
							
								
								
									
										110
									
								
								plugins/Awesomeness/AwesomenessPlugin.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										110
									
								
								plugins/Awesomeness/AwesomenessPlugin.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,110 @@ | ||||
| <?php | ||||
| /** | ||||
|  * StatusNet, the distributed open-source microblogging tool | ||||
|  * | ||||
|  * Plugin to add adittional awesomenss to StatusNet | ||||
|  * | ||||
|  * PHP version 5 | ||||
|  * | ||||
|  * LICENCE: 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 <http://www.gnu.org/licenses/>. | ||||
|  * | ||||
|  * @category  Plugin | ||||
|  * @package   StatusNet | ||||
|  * @author    Jeroen De Dauw <jeroendedauw@gmail.com> | ||||
|  * @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); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Fun sample plugin: tweaks input data and adds a 'Cornify' widget to sidebar. | ||||
|  * | ||||
|  * @category Plugin | ||||
|  * @package  StatusNet | ||||
|  * @author   Jeroen De Dauw <jeroendedauw@gmail.com> | ||||
|  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 | ||||
|  * @link     http://status.net/ | ||||
|  */ | ||||
|  | ||||
| class AwesomenessPlugin extends Plugin | ||||
| { | ||||
| 	 | ||||
| 	const VERSION = '0.0.42'; | ||||
| 	 | ||||
|     public function onPluginVersion(&$versions) | ||||
|     { | ||||
|         $versions[] = array( | ||||
|             'name' => 'Awesomeness', | ||||
|             'version' => self::VERSION, | ||||
|             'author' => 'Jeroen De Dauw', | ||||
|             'homepage' => 'http://status.net/wiki/Plugin:Awesomeness', | ||||
|             'rawdescription' => _m( | ||||
|                 'The Awesomeness plugin adds adittional awesomeness ' . | ||||
|                 'to your StatusNet install. ' | ||||
|             ) | ||||
|         ); | ||||
|         return true; | ||||
|     } | ||||
|      | ||||
|     /** | ||||
|      * Add the conrnify button | ||||
|      * | ||||
|      * @param Action $action the current action | ||||
|      * | ||||
|      * @return void | ||||
|      */ | ||||
|  | ||||
|     function onEndShowSections(Action $action) | ||||
|     {    | ||||
|         $action->elementStart('div', array('id' => 'cornify_section', | ||||
|                                          'class' => 'section'));    	 | ||||
|     	 | ||||
|     	$action->raw( | ||||
|     	<<<EOT | ||||
|     		<a href="http://www.cornify.com" onclick="cornify_add();return false;"> | ||||
|     		<img src="http://www.cornify.com/assets/cornify.gif" width="61" height="16" border="0" alt="Cornify" /> | ||||
|     		</a> | ||||
|     	<script type="text/javascript">(function() { | ||||
| 	var js = document.createElement('script'); | ||||
| 	js.type = 'text/javascript'; | ||||
| 	js.async = true; | ||||
| 	js.src = 'http://www.cornify.com/js/cornify.js'; | ||||
| 	(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(js); | ||||
| })();</script> | ||||
| EOT | ||||
|     	);     | ||||
|     	 | ||||
|     	$action->elementEnd('div'); | ||||
|     } | ||||
|      | ||||
|     /** | ||||
|      * Hook for new-notice form processing to take our HTML goodies; | ||||
|      * won't affect API posting etc. | ||||
|      *  | ||||
|      * @param NewNoticeAction $action | ||||
|      * @param User $user | ||||
|      * @param string $content | ||||
|      * @param array $options | ||||
|      * @return boolean hook return | ||||
|      */ | ||||
|     function onStartSaveNewNoticeWeb($action, $user, &$content, &$options) | ||||
|     { | ||||
|     	$content = htmlspecialchars($content); | ||||
|     	$options['rendered'] = preg_replace("/(^|\s|-)((?:awesome|awesomeness)[\?!\.\,]?)(\s|$)/i", " <b>$2</b> ", $content); | ||||
|     } | ||||
| 	 | ||||
| } | ||||
		Reference in New Issue
	
	Block a user