Ejemplo n.º 1
0
 /**
  * Helper method that implements common uninstall prerequisites
  *
  * @param \core\plugininfo\base $pluginfo
  * @return bool
  */
 protected function common_uninstall_check(\core\plugininfo\base $pluginfo)
 {
     if (!$pluginfo->is_uninstall_allowed()) {
         // The plugin's plugininfo class declares it should not be uninstalled.
         return false;
     }
     if ($pluginfo->get_status() === static::PLUGIN_STATUS_NEW) {
         // The plugin is not installed. It should be either installed or removed from the disk.
         // Relying on this temporary state may be tricky.
         return false;
     }
     if (method_exists($pluginfo, 'get_uninstall_url') and is_null($pluginfo->get_uninstall_url())) {
         // Backwards compatibility.
         debugging('\\core\\plugininfo\\base subclasses should use is_uninstall_allowed() instead of returning null in get_uninstall_url()', DEBUG_DEVELOPER);
         return false;
     }
     return true;
 }