예제 #1
0
 function RegisterModules($path)
 {
     if (!FSTUpdater::DBIs16()) {
         return "Not needed for Joomla 1.5";
     }
     $log = "";
     $db = JFactory::getDBO();
     $qry = "SELECT * FROM #__extensions WHERE element = 'mod_fst_support'";
     $db->setQuery($qry);
     $rows = $db->loadObjectList();
     if (count($rows) == 0) {
         $filename = JPATH_SITE . DS . 'modules' . DS . 'mod_fst_support' . DS . 'mod_fst_support.xml';
         if (file_exists($filename)) {
             //echo "<pre>";
             $order = 1;
             $xml = simplexml_load_file($filename);
             $name = $xml->name;
             //echo $name."<br>";
             $qry = "INSERT INTO #__extensions (name, type, element, client_id, enabled, access) VALUES ('" . FSTJ3Helper::getEscaped($db, $name) . "', 'module', 'mod_fst_support', 0, 1, 0)";
             $db->setQuery($qry);
             $db->Query($qry);
             //exit;
             $log .= "Registering module {$name}\n";
             $installer = new JInstaller();
             // Check for a database error.
             if ($db->getErrorNum()) {
                 $log .= JText::sprintf('JLIB_DATABASE_ERROR_FUNCTION_FAILED', $db->getErrorNum(), $db->getErrorMsg()) . '<br />';
                 return $log;
             }
             $id = $db->insertid();
             if (!$installer->refreshManifestCache($id)) {
                 $log .= "ERROR updating manifest for {$id} - {$name} updated ok<br>";
             } else {
                 $log .= "Manifest for {$id} - {$name} updated ok<br>";
             }
         } else {
             $log .= "XML file missing\n";
         }
     } else {
         $log .= "Support module already registered\n";
     }
     return $log;
 }