コード例 #1
0
 /**
  * @param string                     $type
  * @param JInstallerAdapterComponent $parent
  *
  * @return bool
  */
 public function preFlight($type, $parent)
 {
     parent::preFlight($type, $parent);
     /* Uninstall the depracated plugin OSCARootCertificates.
      * The parent method can't be used because the old plugin
      * has a bug that doesn't allow to use the native uninstall method.
      */
     jimport('joomla.filesystem.folder');
     $success = false;
     // Remove the files
     $path = JPATH_SITE . '/plugins/system/oscarootcertificates';
     if (JFolder::exists($path)) {
         $success = JFolder::delete($path);
     }
     // Remove the database row
     $db = JFactory::getDbo();
     $queryWhere = array($db->qn('type') . ' = ' . $db->q('plugin'), $db->qn('element') . ' = ' . $db->q('oscarootcertificates'), $db->qn('folder') . ' = ' . $db->q('system'));
     $query = $db->getQuery(true)->select('COUNT(*)')->from('#__extensions')->where($queryWhere);
     $db->setQuery($query);
     if ((int) $db->loadResult() > 0) {
         $query = $db->getQuery(true)->delete('#__extensions')->where($queryWhere);
         $db->setQuery($query);
         $success = $db->execute();
     }
     // Displays the success message
     if ((bool) $success) {
         $this->setMessage('Uninstalling system plugin OSCARootCertificates was successful');
     }
     return true;
 }