예제 #1
0
 /**
  * Installs a discovered extension.
  *
  * @return  void
  *
  * @since   1.6
  */
 public function discover_install()
 {
     $app = JFactory::getApplication();
     $input = $app->input;
     $eid = $input->get('cid', 0, 'array');
     if (is_array($eid) || $eid) {
         if (!is_array($eid)) {
             $eid = array($eid);
         }
         $eid = ArrayHelper::toInteger($eid);
         $failed = false;
         foreach ($eid as $id) {
             $installer = new JInstaller();
             $result = $installer->discover_install($id);
             if (!$result) {
                 $failed = true;
                 $app->enqueueMessage(JText::_('COM_INSTALLER_MSG_DISCOVER_INSTALLFAILED') . ': ' . $id);
             }
         }
         // TODO - We are only receiving the message for the last JInstaller instance
         $this->setState('action', 'remove');
         $this->setState('name', $installer->get('name'));
         $app->setUserState('com_installer.message', $installer->message);
         $app->setUserState('com_installer.extension_message', $installer->get('extension_message'));
         if (!$failed) {
             $app->enqueueMessage(JText::_('COM_INSTALLER_MSG_DISCOVER_INSTALLSUCCESSFUL'));
         }
     } else {
         $app->enqueueMessage(JText::_('COM_INSTALLER_MSG_DISCOVER_NOEXTENSIONSELECTED'));
     }
 }