Exemplo n.º 1
0
 /**
  * Check for complex potions that include table definitions.
  */
 function verifyPotions()
 {
     require_once WIKI_CLASSES . 'WikiPotion.php';
     // Loop all enabled potions.
     $conf = VoodooIni::load('wiki');
     $tables = array();
     foreach ($conf['potions'] as $p => $enabled) {
         // If the potion is not enabled, we do not care for it.
         if (!$enabled) {
             continue;
         }
         $name = WikiPotionHandler::requirePotion($p);
         if (!$name) {
             continue;
         }
         if (!class_exists($name . 'Setup')) {
             continue;
         }
         $class = $name . 'Setup';
         $s = new $class($this);
         // Merge the output with the already set tables.
         $tables = array_merge($tables, $s->getTables());
     }
     return $tables;
 }
Exemplo n.º 2
0
 /**
  * Create a new WikiPotion object by the name supplied
  * 
  * <p>
  * WikiPotion are enabled in the wiki.ini in the WikiController conf directory
  * 
  * WikiPotions are located in the Potions directory. Each other Controller can have their own 
  * Potions directory. This function check by the name of the potion where to look for it.
  * If the potion cant be found, it triggers a VoodooError
  * 
  * [[WikiLogin]] This potion will be found in the WikiController/Potions directory
  * [[Chat_WikiLurkers]] This potion will be found in the ChatController/Potions directory 
  * </p>
  * 
  * @param WikiFormatter &$formatter
  * @param string $potion
  * @param array $args
  * @return WikiPotion
  */
 function createPotion(&$formatter, $potion, $args = array())
 {
     $p = WikiPotionHandler::requirePotion($potion);
     if (!$p) {
         return new WikiPotion($formatter, $args, sprintf('Error, Potion `%s` (%s) could not be included.', $p, $potion . '.php'));
     }
     return new $p($formatter, $args);
 }