예제 #1
0
 /**
  * Update the manifest caches
  *
  * @return  void
  */
 protected function updateManifestCaches()
 {
     $extensions = array(array('component', 'com_mailto', '', 0), array('component', 'com_wrapper', '', 0), array('component', 'com_admin', '', 1), array('component', 'com_ajax', '', 1), array('component', 'com_banners', '', 1), array('component', 'com_cache', '', 1), array('component', 'com_categories', '', 1), array('component', 'com_checkin', '', 1), array('component', 'com_contact', '', 1), array('component', 'com_cpanel', '', 1), array('component', 'com_installer', '', 1), array('component', 'com_languages', '', 1), array('component', 'com_login', '', 1), array('component', 'com_media', '', 1), array('component', 'com_menus', '', 1), array('component', 'com_messages', '', 1), array('component', 'com_modules', '', 1), array('component', 'com_newsfeeds', '', 1), array('component', 'com_plugins', '', 1), array('component', 'com_search', '', 1), array('component', 'com_templates', '', 1), array('component', 'com_content', '', 1), array('component', 'com_config', '', 1), array('component', 'com_redirect', '', 1), array('component', 'com_users', '', 1), array('component', 'com_finder', '', 1), array('component', 'com_tags', '', 1), array('component', 'com_contenthistory', '', 1), array('component', 'com_postinstall', '', 1), array('component', 'com_joomlaupdate', '', 1), array('library', 'phputf8', '', 0), array('library', 'joomla', '', 0), array('library', 'idna_convert', '', 0), array('library', 'fof', '', 0), array('library', 'phpass', '', 0), array('module', 'mod_articles_archive', '', 0), array('module', 'mod_articles_latest', '', 0), array('module', 'mod_articles_popular', '', 0), array('module', 'mod_banners', '', 0), array('module', 'mod_breadcrumbs', '', 0), array('module', 'mod_custom', '', 0), array('module', 'mod_feed', '', 0), array('module', 'mod_footer', '', 0), array('module', 'mod_login', '', 0), array('module', 'mod_menu', '', 0), array('module', 'mod_articles_news', '', 0), array('module', 'mod_random_image', '', 0), array('module', 'mod_related_items', '', 0), array('module', 'mod_search', '', 0), array('module', 'mod_stats', '', 0), array('module', 'mod_syndicate', '', 0), array('module', 'mod_users_latest', '', 0), array('module', 'mod_whosonline', '', 0), array('module', 'mod_wrapper', '', 0), array('module', 'mod_articles_category', '', 0), array('module', 'mod_articles_categories', '', 0), array('module', 'mod_languages', '', 0), array('module', 'mod_tags_popular', '', 0), array('module', 'mod_tags_similar', '', 0), array('module', 'mod_custom', '', 1), array('module', 'mod_feed', '', 1), array('module', 'mod_latest', '', 1), array('module', 'mod_logged', '', 1), array('module', 'mod_login', '', 1), array('module', 'mod_menu', '', 1), array('module', 'mod_popular', '', 1), array('module', 'mod_quickicon', '', 1), array('module', 'mod_stats_admin', '', 1), array('module', 'mod_status', '', 1), array('module', 'mod_submenu', '', 1), array('module', 'mod_title', '', 1), array('module', 'mod_toolbar', '', 1), array('module', 'mod_multilangstatus', '', 1), array('plugin', 'gmail', 'authentication', 0), array('plugin', 'joomla', 'authentication', 0), array('plugin', 'ldap', 'authentication', 0), array('plugin', 'contact', 'content', 0), array('plugin', 'emailcloak', 'content', 0), array('plugin', 'loadmodule', 'content', 0), array('plugin', 'pagebreak', 'content', 0), array('plugin', 'pagenavigation', 'content', 0), array('plugin', 'vote', 'content', 0), array('plugin', 'codemirror', 'editors', 0), array('plugin', 'none', 'editors', 0), array('plugin', 'tinymce', 'editors', 0), array('plugin', 'article', 'editors-xtd', 0), array('plugin', 'image', 'editors-xtd', 0), array('plugin', 'pagebreak', 'editors-xtd', 0), array('plugin', 'readmore', 'editors-xtd', 0), array('plugin', 'categories', 'search', 0), array('plugin', 'contacts', 'search', 0), array('plugin', 'content', 'search', 0), array('plugin', 'newsfeeds', 'search', 0), array('plugin', 'tags', 'search', 0), array('plugin', 'languagefilter', 'system', 0), array('plugin', 'p3p', 'system', 0), array('plugin', 'cache', 'system', 0), array('plugin', 'debug', 'system', 0), array('plugin', 'log', 'system', 0), array('plugin', 'redirect', 'system', 0), array('plugin', 'remember', 'system', 0), array('plugin', 'sef', 'system', 0), array('plugin', 'logout', 'system', 0), array('plugin', 'contactcreator', 'user', 0), array('plugin', 'joomla', 'user', 0), array('plugin', 'profile', 'user', 0), array('plugin', 'joomla', 'extension', 0), array('plugin', 'joomla', 'content', 0), array('plugin', 'languagecode', 'system', 0), array('plugin', 'joomlaupdate', 'quickicon', 0), array('plugin', 'extensionupdate', 'quickicon', 0), array('plugin', 'recaptcha', 'captcha', 0), array('plugin', 'categories', 'finder', 0), array('plugin', 'contacts', 'finder', 0), array('plugin', 'content', 'finder', 0), array('plugin', 'newsfeeds', 'finder', 0), array('plugin', 'tags', 'finder', 0), array('plugin', 'totp', 'twofactorauth', 0), array('plugin', 'yubikey', 'twofactorauth', 0), array('plugin', 'updatenotification', 'system', 0), array('plugin', 'module', 'editors-xtd', 0), array('plugin', 'stats', 'system', 0), array('plugin', 'packageinstaller', 'installer', 0), array('plugin', 'folderinstaller', 'installer', 0), array('plugin', 'urlinstaller', 'installer', 0), array('plugin', 'phpversioncheck', 'quickicon', 0), array('plugin', 'menu', 'editors-xtd', 0), array('plugin', 'contact', 'editors-xtd', 0), array('template', 'beez3', '', 0), array('template', 'hathor', '', 1), array('template', 'protostar', '', 0), array('template', 'isis', '', 1), array('language', 'en-GB', '', 0), array('language', 'en-GB', '', 1), array('file', 'joomla', '', 0), array('package', 'pkg_en-GB', '', 0));
     // Attempt to refresh manifest caches
     $db = JFactory::getDbo();
     $query = $db->getQuery(true)->select('*')->from('#__extensions');
     foreach ($extensions as $extension) {
         $query->where('type=' . $db->quote($extension[0]) . ' AND element=' . $db->quote($extension[1]) . ' AND folder=' . $db->quote($extension[2]) . ' AND client_id=' . $extension[3], 'OR');
     }
     $db->setQuery($query);
     try {
         $extensions = $db->loadObjectList();
     } catch (Exception $e) {
         echo JText::sprintf('JLIB_DATABASE_ERROR_FUNCTION_FAILED', $e->getCode(), $e->getMessage()) . '<br />';
         return;
     }
     $installer = new JInstaller();
     foreach ($extensions as $extension) {
         if (!$installer->refreshManifestCache($extension->extension_id)) {
             echo JText::sprintf('FILES_JOOMLA_ERROR_MANIFEST', $extension->type, $extension->element, $extension->name, $extension->client_id) . '<br />';
         }
     }
 }
예제 #2
0
 protected function updateManifestCaches()
 {
     // TODO Remove this for 2.5
     if (!JTable::getInstance('Extension')->load(array('element' => 'pkg_joomla', 'type' => 'package'))) {
         // Create the package pkg_joomla
         $db = JFactory::getDbo();
         $query = $db->getQuery(true);
         $query->insert('#__extensions');
         $query->columns(array($db->quoteName('name'), $db->quoteName('type'), $db->quoteName('element'), $db->quoteName('enabled'), $db->quoteName('access'), $db->quoteName('protected')));
         $query->values($db->quote('joomla') . ', ' . $db->quote('package') . ', ' . $db->quote('pkg_joomla') . ', 1, 1, 1');
         $db->setQuery($query);
         $db->query();
         if ($db->getErrorNum()) {
             echo JText::sprintf('JLIB_DATABASE_ERROR_FUNCTION_FAILED', $db->getErrorNum(), $db->getErrorMsg()) . '<br />';
             return;
         }
     }
     // TODO Remove this for 2.5
     $table = JTable::getInstance('Extension');
     if ($table->load(array('element' => 'mod_online', 'type' => 'module', 'client_id' => 1))) {
         if (!file_exists(JPATH_ADMINISTRATOR . '/modules/mod_online')) {
             // Delete this extension
             if (!$table->delete()) {
                 echo $table->getError() . '<br />';
                 return;
             }
         } else {
             // Mark this extension as unprotected
             $table->protected = 0;
             if (!$table->store()) {
                 echo $table->getError() . '<br />';
                 return;
             }
         }
     }
     // TODO Remove this for 2.5
     $table = JTable::getInstance('Extension');
     if ($table->load(array('element' => 'mod_unread', 'type' => 'module', 'client_id' => 1))) {
         if (!file_exists(JPATH_ADMINISTRATOR . '/modules/mod_unread')) {
             // Delete this extension
             if (!$table->delete()) {
                 echo $table->getError() . '<br />';
                 return;
             }
         } else {
             // Mark this extension as unprotected
             $table->protected = 0;
             if (!$table->store()) {
                 echo $table->getError() . '<br />';
                 return;
             }
         }
     }
     $extensions = array();
     // Components
     //`type`, `element`, `folder`, `client_id`
     $extensions[] = array('component', 'com_mailto', '', 0);
     $extensions[] = array('component', 'com_wrapper', '', 0);
     $extensions[] = array('component', 'com_admin', '', 1);
     $extensions[] = array('component', 'com_banners', '', 1);
     $extensions[] = array('component', 'com_cache', '', 1);
     $extensions[] = array('component', 'com_categories', '', 1);
     $extensions[] = array('component', 'com_checkin', '', 1);
     $extensions[] = array('component', 'com_contact', '', 1);
     $extensions[] = array('component', 'com_cpanel', '', 1);
     $extensions[] = array('component', 'com_installer', '', 1);
     $extensions[] = array('component', 'com_languages', '', 1);
     $extensions[] = array('component', 'com_login', '', 1);
     $extensions[] = array('component', 'com_media', '', 1);
     $extensions[] = array('component', 'com_menus', '', 1);
     $extensions[] = array('component', 'com_messages', '', 1);
     $extensions[] = array('component', 'com_modules', '', 1);
     $extensions[] = array('component', 'com_newsfeeds', '', 1);
     $extensions[] = array('component', 'com_plugins', '', 1);
     $extensions[] = array('component', 'com_search', '', 1);
     $extensions[] = array('component', 'com_templates', '', 1);
     $extensions[] = array('component', 'com_weblinks', '', 1);
     $extensions[] = array('component', 'com_content', '', 1);
     $extensions[] = array('component', 'com_config', '', 1);
     $extensions[] = array('component', 'com_redirect', '', 1);
     $extensions[] = array('component', 'com_users', '', 1);
     // Libraries
     $extensions[] = array('library', 'phpmailer', '', 0);
     $extensions[] = array('library', 'simplepie', '', 0);
     $extensions[] = array('library', 'phputf8', '', 0);
     $extensions[] = array('library', 'joomla', '', 0);
     $extensions[] = array('library', 'cms', '', 0);
     // Modules site
     // Site
     $extensions[] = array('module', 'mod_articles_archive', '', 0);
     $extensions[] = array('module', 'mod_articles_latest', '', 0);
     $extensions[] = array('module', 'mod_articles_popular', '', 0);
     $extensions[] = array('module', 'mod_banners', '', 0);
     $extensions[] = array('module', 'mod_breadcrumbs', '', 0);
     $extensions[] = array('module', 'mod_custom', '', 0);
     $extensions[] = array('module', 'mod_feed', '', 0);
     $extensions[] = array('module', 'mod_footer', '', 0);
     $extensions[] = array('module', 'mod_login', '', 0);
     $extensions[] = array('module', 'mod_menu', '', 0);
     $extensions[] = array('module', 'mod_articles_news', '', 0);
     $extensions[] = array('module', 'mod_random_image', '', 0);
     $extensions[] = array('module', 'mod_related_items', '', 0);
     $extensions[] = array('module', 'mod_search', '', 0);
     $extensions[] = array('module', 'mod_stats', '', 0);
     $extensions[] = array('module', 'mod_syndicate', '', 0);
     $extensions[] = array('module', 'mod_users_latest', '', 0);
     $extensions[] = array('module', 'mod_weblinks', '', 0);
     $extensions[] = array('module', 'mod_whosonline', '', 0);
     $extensions[] = array('module', 'mod_wrapper', '', 0);
     $extensions[] = array('module', 'mod_articles_category', '', 0);
     $extensions[] = array('module', 'mod_articles_categories', '', 0);
     $extensions[] = array('module', 'mod_languages', '', 0);
     // Administrator
     $extensions[] = array('module', 'mod_custom', '', 1);
     $extensions[] = array('module', 'mod_feed', '', 1);
     $extensions[] = array('module', 'mod_latest', '', 1);
     $extensions[] = array('module', 'mod_logged', '', 1);
     $extensions[] = array('module', 'mod_login', '', 1);
     $extensions[] = array('module', 'mod_menu', '', 1);
     $extensions[] = array('module', 'mod_popular', '', 1);
     $extensions[] = array('module', 'mod_quickicon', '', 1);
     $extensions[] = array('module', 'mod_status', '', 1);
     $extensions[] = array('module', 'mod_submenu', '', 1);
     $extensions[] = array('module', 'mod_title', '', 1);
     $extensions[] = array('module', 'mod_toolbar', '', 1);
     $extensions[] = array('module', 'mod_multilangstatus', '', 1);
     // Plug-ins
     $extensions[] = array('plugin', 'gmail', 'authentication', 0);
     $extensions[] = array('plugin', 'joomla', 'authentication', 0);
     $extensions[] = array('plugin', 'ldap', 'authentication', 0);
     $extensions[] = array('plugin', 'emailcloak', 'content', 0);
     $extensions[] = array('plugin', 'geshi', 'content', 0);
     $extensions[] = array('plugin', 'loadmodule', 'content', 0);
     $extensions[] = array('plugin', 'pagebreak', 'content', 0);
     $extensions[] = array('plugin', 'pagenavigation', 'content', 0);
     $extensions[] = array('plugin', 'vote', 'content', 0);
     $extensions[] = array('plugin', 'codemirror', 'editors', 0);
     $extensions[] = array('plugin', 'none', 'editors', 0);
     $extensions[] = array('plugin', 'tinymce', 'editors', 0);
     $extensions[] = array('plugin', 'article', 'editors-xtd', 0);
     $extensions[] = array('plugin', 'image', 'editors-xtd', 0);
     $extensions[] = array('plugin', 'pagebreak', 'editors-xtd', 0);
     $extensions[] = array('plugin', 'readmore', 'editors-xtd', 0);
     $extensions[] = array('plugin', 'categories', 'search', 0);
     $extensions[] = array('plugin', 'contacts', 'search', 0);
     $extensions[] = array('plugin', 'content', 'search', 0);
     $extensions[] = array('plugin', 'newsfeeds', 'search', 0);
     $extensions[] = array('plugin', 'weblinks', 'search', 0);
     $extensions[] = array('plugin', 'languagefilter', 'system', 0);
     $extensions[] = array('plugin', 'p3p', 'system', 0);
     $extensions[] = array('plugin', 'cache', 'system', 0);
     $extensions[] = array('plugin', 'debug', 'system', 0);
     $extensions[] = array('plugin', 'log', 'system', 0);
     $extensions[] = array('plugin', 'redirect', 'system', 0);
     $extensions[] = array('plugin', 'remember', 'system', 0);
     $extensions[] = array('plugin', 'sef', 'system', 0);
     $extensions[] = array('plugin', 'logout', 'system', 0);
     $extensions[] = array('plugin', 'contactcreator', 'user', 0);
     $extensions[] = array('plugin', 'joomla', 'user', 0);
     $extensions[] = array('plugin', 'profile', 'user', 0);
     $extensions[] = array('plugin', 'joomla', 'extension', 0);
     $extensions[] = array('plugin', 'joomla', 'content', 0);
     $extensions[] = array('plugin', 'languagecode', 'system', 0);
     $extensions[] = array('plugin', 'joomlaupdate', 'quickicon', 0);
     $extensions[] = array('plugin', 'extensionupdate', 'quickicon', 0);
     $extensions[] = array('plugin', 'recaptcha', 'captcha', 0);
     // Templates
     $extensions[] = array('template', 'atomic', '', 0);
     $extensions[] = array('template', 'bluestork', '', 1);
     $extensions[] = array('template', 'beez_20', '', 0);
     $extensions[] = array('template', 'hathor', '', 1);
     $extensions[] = array('template', 'beez5', '', 0);
     // Languages
     $extensions[] = array('language', 'en-GB', '', 0);
     $extensions[] = array('language', 'en-GB', '', 1);
     // Files
     $extensions[] = array('file', 'joomla', '', 0);
     // Packages
     $extensions[] = array('package', 'pkg_joomla', '', 0);
     // Attempt to refresh manifest caches
     $db = JFactory::getDbo();
     $query = $db->getQuery(true);
     $query->select('*');
     $query->from('#__extensions');
     foreach ($extensions as $extension) {
         $query->where('type=' . $db->quote($extension[0]) . ' AND element=' . $db->quote($extension[1]) . ' AND folder=' . $db->quote($extension[2]) . ' AND client_id=' . $extension[3], 'OR');
     }
     $db->setQuery($query);
     $extensions = $db->loadObjectList();
     $installer = new JInstaller();
     // Check for a database error.
     if ($db->getErrorNum()) {
         echo JText::sprintf('JLIB_DATABASE_ERROR_FUNCTION_FAILED', $db->getErrorNum(), $db->getErrorMsg()) . '<br />';
         return;
     }
     foreach ($extensions as $extension) {
         if (!$installer->refreshManifestCache($extension->extension_id)) {
             echo JText::sprintf('FILES_JOOMLA_ERROR_MANIFEST', $extension->type, $extension->element, $extension->name, $extension->client_id) . '<br />';
         }
     }
 }
예제 #3
0
 protected function updateManifestCaches()
 {
     $extensions = array();
     // Components
     //`type`, `element`, `folder`, `client_id`
     $extensions[] = array('component', 'com_mailto', '', 0);
     $extensions[] = array('component', 'com_wrapper', '', 0);
     $extensions[] = array('component', 'com_admin', '', 1);
     $extensions[] = array('component', 'com_banners', '', 1);
     $extensions[] = array('component', 'com_cache', '', 1);
     $extensions[] = array('component', 'com_categories', '', 1);
     $extensions[] = array('component', 'com_checkin', '', 1);
     $extensions[] = array('component', 'com_contact', '', 1);
     $extensions[] = array('component', 'com_cpanel', '', 1);
     $extensions[] = array('component', 'com_installer', '', 1);
     $extensions[] = array('component', 'com_languages', '', 1);
     $extensions[] = array('component', 'com_login', '', 1);
     $extensions[] = array('component', 'com_media', '', 1);
     $extensions[] = array('component', 'com_menus', '', 1);
     $extensions[] = array('component', 'com_messages', '', 1);
     $extensions[] = array('component', 'com_modules', '', 1);
     $extensions[] = array('component', 'com_newsfeeds', '', 1);
     $extensions[] = array('component', 'com_plugins', '', 1);
     $extensions[] = array('component', 'com_search', '', 1);
     $extensions[] = array('component', 'com_templates', '', 1);
     $extensions[] = array('component', 'com_weblinks', '', 1);
     $extensions[] = array('component', 'com_content', '', 1);
     $extensions[] = array('component', 'com_config', '', 1);
     $extensions[] = array('component', 'com_redirect', '', 1);
     $extensions[] = array('component', 'com_users', '', 1);
     // Libraries
     $extensions[] = array('library', 'phpmailer', '', 0);
     $extensions[] = array('library', 'simplepie', '', 0);
     $extensions[] = array('library', 'phputf8', '', 0);
     $extensions[] = array('library', 'joomla', '', 0);
     // Modules site
     // Site
     $extensions[] = array('module', 'mod_articles_archive', '', 0);
     $extensions[] = array('module', 'mod_articles_latest', '', 0);
     $extensions[] = array('module', 'mod_articles_popular', '', 0);
     $extensions[] = array('module', 'mod_banners', '', 0);
     $extensions[] = array('module', 'mod_breadcrumbs', '', 0);
     $extensions[] = array('module', 'mod_custom', '', 0);
     $extensions[] = array('module', 'mod_feed', '', 0);
     $extensions[] = array('module', 'mod_footer', '', 0);
     $extensions[] = array('module', 'mod_login', '', 0);
     $extensions[] = array('module', 'mod_menu', '', 0);
     $extensions[] = array('module', 'mod_articles_news', '', 0);
     $extensions[] = array('module', 'mod_random_image', '', 0);
     $extensions[] = array('module', 'mod_related_items', '', 0);
     $extensions[] = array('module', 'mod_search', '', 0);
     $extensions[] = array('module', 'mod_stats', '', 0);
     $extensions[] = array('module', 'mod_syndicate', '', 0);
     $extensions[] = array('module', 'mod_users_latest', '', 0);
     $extensions[] = array('module', 'mod_weblinks', '', 0);
     $extensions[] = array('module', 'mod_whosonline', '', 0);
     $extensions[] = array('module', 'mod_wrapper', '', 0);
     $extensions[] = array('module', 'mod_articles_category', '', 0);
     $extensions[] = array('module', 'mod_articles_categories', '', 0);
     $extensions[] = array('module', 'mod_languages', '', 0);
     // Administrator
     $extensions[] = array('module', 'mod_custom', '', 1);
     $extensions[] = array('module', 'mod_feed', '', 1);
     $extensions[] = array('module', 'mod_latest', '', 1);
     $extensions[] = array('module', 'mod_logged', '', 1);
     $extensions[] = array('module', 'mod_login', '', 1);
     $extensions[] = array('module', 'mod_menu', '', 1);
     $extensions[] = array('module', 'mod_popular', '', 1);
     $extensions[] = array('module', 'mod_quickicon', '', 1);
     $extensions[] = array('module', 'mod_stats_admin', '', 1);
     $extensions[] = array('module', 'mod_status', '', 1);
     $extensions[] = array('module', 'mod_submenu', '', 1);
     $extensions[] = array('module', 'mod_title', '', 1);
     $extensions[] = array('module', 'mod_toolbar', '', 1);
     $extensions[] = array('module', 'mod_multilangstatus', '', 1);
     // Plug-ins
     $extensions[] = array('plugin', 'gmail', 'authentication', 0);
     $extensions[] = array('plugin', 'joomla', 'authentication', 0);
     $extensions[] = array('plugin', 'ldap', 'authentication', 0);
     $extensions[] = array('plugin', 'emailcloak', 'content', 0);
     $extensions[] = array('plugin', 'geshi', 'content', 0);
     $extensions[] = array('plugin', 'loadmodule', 'content', 0);
     $extensions[] = array('plugin', 'pagebreak', 'content', 0);
     $extensions[] = array('plugin', 'pagenavigation', 'content', 0);
     $extensions[] = array('plugin', 'vote', 'content', 0);
     $extensions[] = array('plugin', 'codemirror', 'editors', 0);
     $extensions[] = array('plugin', 'none', 'editors', 0);
     $extensions[] = array('plugin', 'tinymce', 'editors', 0);
     $extensions[] = array('plugin', 'article', 'editors-xtd', 0);
     $extensions[] = array('plugin', 'image', 'editors-xtd', 0);
     $extensions[] = array('plugin', 'pagebreak', 'editors-xtd', 0);
     $extensions[] = array('plugin', 'readmore', 'editors-xtd', 0);
     $extensions[] = array('plugin', 'categories', 'search', 0);
     $extensions[] = array('plugin', 'contacts', 'search', 0);
     $extensions[] = array('plugin', 'content', 'search', 0);
     $extensions[] = array('plugin', 'newsfeeds', 'search', 0);
     $extensions[] = array('plugin', 'weblinks', 'search', 0);
     $extensions[] = array('plugin', 'languagefilter', 'system', 0);
     $extensions[] = array('plugin', 'p3p', 'system', 0);
     $extensions[] = array('plugin', 'cache', 'system', 0);
     $extensions[] = array('plugin', 'debug', 'system', 0);
     $extensions[] = array('plugin', 'log', 'system', 0);
     $extensions[] = array('plugin', 'redirect', 'system', 0);
     $extensions[] = array('plugin', 'remember', 'system', 0);
     $extensions[] = array('plugin', 'sef', 'system', 0);
     $extensions[] = array('plugin', 'logout', 'system', 0);
     $extensions[] = array('plugin', 'contactcreator', 'user', 0);
     $extensions[] = array('plugin', 'joomla', 'user', 0);
     $extensions[] = array('plugin', 'profile', 'user', 0);
     $extensions[] = array('plugin', 'joomla', 'extension', 0);
     $extensions[] = array('plugin', 'joomla', 'content', 0);
     $extensions[] = array('plugin', 'languagecode', 'system', 0);
     $extensions[] = array('plugin', 'joomlaupdate', 'quickicon', 0);
     $extensions[] = array('plugin', 'extensionupdate', 'quickicon', 0);
     $extensions[] = array('plugin', 'recaptcha', 'captcha', 0);
     // Templates
     $extensions[] = array('template', 'beez3', '', 0);
     $extensions[] = array('template', 'hathor', '', 1);
     $extensions[] = array('template', 'protostar', '', 0);
     $extensions[] = array('template', 'isis', '', 1);
     // Languages
     $extensions[] = array('language', 'en-GB', '', 0);
     $extensions[] = array('language', 'en-GB', '', 1);
     // Files
     $extensions[] = array('file', 'joomla', '', 0);
     // Packages
     // None in core at this time
     // Attempt to refresh manifest caches
     $db = JFactory::getDbo();
     $query = $db->getQuery(true);
     $query->select('*');
     $query->from('#__extensions');
     foreach ($extensions as $extension) {
         $query->where('type=' . $db->quote($extension[0]) . ' AND element=' . $db->quote($extension[1]) . ' AND folder=' . $db->quote($extension[2]) . ' AND client_id=' . $extension[3], 'OR');
     }
     $db->setQuery($query);
     $extensions = $db->loadObjectList();
     $installer = new JInstaller();
     // Check for a database error.
     if ($db->getErrorNum()) {
         echo JText::sprintf('JLIB_DATABASE_ERROR_FUNCTION_FAILED', $db->getErrorNum(), $db->getErrorMsg()) . '<br />';
         return;
     }
     foreach ($extensions as $extension) {
         if (!$installer->refreshManifestCache($extension->extension_id)) {
             echo JText::sprintf('FILES_JOOMLA_ERROR_MANIFEST', $extension->type, $extension->element, $extension->name, $extension->client_id) . '<br />';
         }
     }
 }
예제 #4
0
 function RegisterModules($path)
 {
     if (!FSFUpdater::DBIs16()) {
         return "Not needed for Joomla 1.5";
     }
     $log = "";
     $db = JFactory::getDBO();
     $qry = "SELECT * FROM #__extensions WHERE element = 'mod_fsf_support'";
     $db->setQuery($qry);
     $rows = $db->loadObjectList();
     if (count($rows) == 0) {
         $filename = JPATH_SITE . DS . 'modules' . DS . 'mod_fsf_support' . DS . 'mod_fsf_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 ('" . FSFJ3Helper::getEscaped($db, $name) . "', 'module', 'mod_fsf_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;
 }