. * --------------------------------------------------------------------- */ if (!defined('GLPI_ROOT')) { die("Sorry. You can't access this file directly"); } /// Class SoftwareCategory class SoftwareCategory extends CommonTreeDropdown { public $can_be_translated = true; static function getTypeName($nb = 0) { return _n('Software category', 'Software categories', $nb); } function cleanDBonPurge() { Rule::cleanForItemAction($this); } function cleanRelationData() { parent::cleanRelationData(); if ($this->isUsedAsCategoryOnSoftwareDeletion()) { $newval = (isset($this->input['_replace_by']) ? $this->input['_replace_by'] : 0); Config::setConfigurationValues( 'core', [ 'softwarecategories_id_ondelete' => $newval, ] ); } } function isUsed() { if (parent::isUsed()) { return true; } return $this->isUsedAsCategoryOnSoftwareDeletion(); } /** * Check if type is used as category for softwares deleted by rules. * * @return boolean */ private function isUsedAsCategoryOnSoftwareDeletion() { $config_values = Config::getConfigurationValues('core', ['softwarecategories_id_ondelete']); return array_key_exists('softwarecategories_id_ondelete', $config_values) && $config_values['softwarecategories_id_ondelete'] == $this->fields['id']; } }