Example #1
0
 /**
  * Lists all the available extensions and dumps to the template
  *
  * @param  $src_extension_manager     An instance of the extension manager
  * @return null
  */
 public function list_available_exts(\src\extension\manager $src_extension_manager)
 {
     $uninstalled = array_diff_key($src_extension_manager->all_available(), $src_extension_manager->all_configured());
     $available_extension_meta_data = array();
     foreach ($uninstalled as $name => $location) {
         $md_manager = $src_extension_manager->create_extension_metadata_manager($name, $this->template);
         try {
             $meta = $md_manager->get_metadata('all');
             $available_extension_meta_data[$name] = array('META_DISPLAY_NAME' => $md_manager->get_metadata('display-name'), 'META_VERSION' => $meta['version']);
             $force_update = $this->request->variable('versioncheck_force', false);
             $updates = $this->version_check($md_manager, $force_update, !$force_update);
             $available_extension_meta_data[$name]['S_UP_TO_DATE'] = empty($updates);
             $available_extension_meta_data[$name]['S_VERSIONCHECK'] = true;
             $available_extension_meta_data[$name]['U_VERSIONCHECK_FORCE'] = $this->u_action . '&action=details&versioncheck_force=1&ext_name=' . urlencode($md_manager->get_metadata('name'));
         } catch (\src\extension\exception $e) {
             $this->template->assign_block_vars('disabled', array('META_DISPLAY_NAME' => $this->user->lang('EXTENSION_INVALID_LIST', $name, $e), 'S_VERSIONCHECK' => false));
         } catch (\RuntimeException $e) {
             $available_extension_meta_data[$name]['S_VERSIONCHECK'] = false;
         }
     }
     uasort($available_extension_meta_data, array($this, 'sort_extension_meta_data_table'));
     foreach ($available_extension_meta_data as $name => $block_vars) {
         $block_vars['U_DETAILS'] = $this->u_action . '&action=details&ext_name=' . urlencode($name);
         $this->template->assign_block_vars('disabled', $block_vars);
         $this->output_actions('disabled', array('ENABLE' => $this->u_action . '&action=enable_pre&ext_name=' . urlencode($name)));
     }
 }