/**
  * Return all available modules
  *
  * @param void
  * @return array
  */
 function getModules()
 {
     if ($this->modules === false) {
         $this->modules = Modules::findAll();
     }
     // if
     return $this->modules;
 }
 /**
  * Show modules administration index page
  *
  * @param void
  * @return null
  */
 function index()
 {
     $this->smarty->assign(array('modules' => Modules::findAll(), 'available_modules' => Modules::findNotInstalled()));
 }
 /**
  * Return all available dictionary files
  *
  * @param void
  * @return array
  */
 function getAvailableDictionaries()
 {
     if ($this->available_dictionaries === false) {
         $dictionaries = array();
         $translations = $this->getTranslationFiles();
         if (!is_array($translations)) {
             $translations = array();
         }
         // if
         $modules = Modules::findAll();
         if (is_foreachable($modules)) {
             foreach ($modules as $module) {
                 if (!in_array($module->getName(), $translations) && is_file($module->getPath() . '/dictionary.php')) {
                     $dictionaries[] = $module->getName();
                 }
                 // if
             }
             // foreach
         }
         // if
         $this->available_dictionaries = count($dictionaries) ? $dictionaries : null;
     }
     // if
     return $this->available_dictionaries;
 }