/**
  * Registers a module with the modules database table
  * @param string $module
  */
 public static function register_module($module)
 {
     $mod = new Modules();
     $mod->getModuleByName($module);
     if ($mod->count() == 0) {
         // load the installer file
         $file = "modules/{$module}/{$module}.install.php";
         if (file_exists('sites/' . FabriqStack::site() . "/{$file}")) {
             require_once 'sites/' . FabriqStack::site() . "/{$file}";
         } else {
             if (file_exists($file)) {
                 require_once $file;
             } else {
                 throw new Exception("Module {$module} could not be found");
             }
         }
         eval('$installer = new ' . $module . '_install();');
         $info = $installer->info();
         $mod->module = $module;
         $mod->enabled = 0;
         $mod->installed = 0;
         $mod->hasconfigs = 0;
         $mod->description = $info['description'];
         $mod->versioninstalled = $info['version'];
         if (isset($info['dependsOn'])) {
             $mod->dependson = implode(',', $info['dependsOn']);
         }
         $mod->id = $mod->create();
         // register configs if available
         if (isset($info['configs'])) {
             foreach ($info['configs'] as $con) {
                 $config = new ModuleConfigs();
                 $config->module = $mod->id;
                 $config->var = $con;
                 if (isset($info['configDefaults']) && array_key_exists($con, $info['configDefaults'])) {
                     $config->val = $info['configDefaults'][$con];
                 } else {
                     $config->val = '';
                 }
                 $config->create();
             }
             $mod->hasconfigs = 1;
             $mod->update();
         }
     }
     return $mod->id;
 }
Exemplo n.º 2
0
/**
 * Returns true if module $name is installed and loaded
 *
 * @param string $name
 * @return boolean
 */
function module_loaded($name)
{
    static $cache = array();
    if (!isset($cache[$name])) {
        $cache[$name] = (bool) Modules::count(array('name = ?', $name));
    }
    // if
    return $cache[$name];
}
Exemplo n.º 3
0
 /**
  * Return paginated set of modules
  *
  * @param array $arguments
  * @param itneger $page
  * @param integer $per_page
  * @return array
  */
 function paginate($arguments = null, $page = 1, $per_page = 10)
 {
     if (!is_array($arguments)) {
         $arguments = array();
     }
     // if
     $arguments['limit'] = $per_page;
     $arguments['offset'] = ($page - 1) * $per_page;
     $modules = Modules::findBySQL(DataManager::prepareSelectFromArguments($arguments, TABLE_PREFIX . 'modules'), null, array_var($arguments, 'one'));
     $total_modules = Modules::count(array_var($arguments, 'conditions'));
     return array($modules, new Pager($page, $total_modules, $per_page));
 }
Exemplo n.º 4
0
 /**
  * Returns true if this module installed
  *
  * @param void
  * @return boolean
  */
 function isInstalled()
 {
     return (bool) Modules::count(array('name = ?', $this->name));
 }