------------------------------------------------------------
revno: 901
committer: Roger Martin <[email protected]>
branch nick: aikiframework
timestamp: Wed 2011-10-05 23:27:43 +0200
message:
extensions can be filtered
modified:
src/libs/aiki.php
--
lp:aikiframework
https://code.launchpad.net/~aikiframework-devel/aikiframework/trunk
Your team Aiki Framework Developers is subscribed to branch lp:aikiframework.
To unsubscribe from this branch go to
https://code.launchpad.net/~aikiframework-devel/aikiframework/trunk/+edit-subscription
=== modified file 'src/libs/aiki.php'
--- src/libs/aiki.php 2011-10-04 19:45:24 +0000
+++ src/libs/aiki.php 2011-10-05 21:27:43 +0000
@@ -45,11 +45,11 @@
$this->pretty_url = isset($_GET["pretty"]) ? $_GET["pretty"] : "" ;
}
-
+
/**
- * return pretty url (path of url request)
- * Example www.foo.com/bar/something bar/something is the pretty url.
- * @return string
+ * magic method that allowed on demand libs and extensions
+ *
+ * @return object loaded class or false
*/
public function __get ($what) {
@@ -69,7 +69,6 @@
public function load($class) {
global $AIKI_ROOT_DIR;
-
if (isset($this->$class))
return $this->$class;
@@ -77,12 +76,26 @@
// assets/extension/$class/$class.php
if (file_exists($AIKI_ROOT_DIR.'/libs/'.$class.'.php')) {
require_once($AIKI_ROOT_DIR.'/libs/'.$class.'.php');
- } elseif(file_exists($AIKI_ROOT_DIR.'/assets/extensions/'.$class.'.php')) {
- require_once($AIKI_ROOT_DIR.'/assets/extensions/'.$class.'.php');
- } elseif(file_exists( $AIKI_ROOT_DIR.'/assets/extensions/'.$class.'/'.$class.'.php')) {
- require_once($AIKI_ROOT_DIR.'/assets/extensions/'.$class.'/'.$class.'.php');
} else {
- return false;
+
+ // filter extensions..
+ $allowed = ",". $this->config->get("extensions-allowed","ALL").",";
+ // a tip..be sure "web" doesn't match "web2date".
+
+ if ( $allowed != ",ALL,"){
+ if ($allowed ==",NONE," or strpos($allowed,$class)===false){
+ return false;
+ }
+ }
+
+ if(file_exists($AIKI_ROOT_DIR."/assets/extensions/{$class}.php")) {
+ require_once($AIKI_ROOT_DIR."/assets/extensions/{$class}.php");
+ } elseif (file_exists( $AIKI_ROOT_DIR.'/assets/extensions/{$class}/{$class}.php')) {
+ require_once($AIKI_ROOT_DIR."/assets/extensions/{$class}/{$class}.php");
+ } else {
+ return false;
+ }
+
}
$object = new $class();
_______________________________________________
Mailing list: https://launchpad.net/~aikiframework-devel
Post to : [email protected]
Unsubscribe : https://launchpad.net/~aikiframework-devel
More help : https://help.launchpad.net/ListHelp