Entity::getUsedConfig PHP Method

getUsedConfig() static public method

Retrieve data of current entity or parent entity
static public getUsedConfig ( $fieldref, $entities_id, $fieldval = '', $default_value )
$fieldref string name of the referent field to know if we look at parent entity
$entities_id
$fieldval string name of the field that we want value (default '')
$default_value value to return (default -2)
    static function getUsedConfig($fieldref, $entities_id, $fieldval = '', $default_value = -2)
    {
        // for calendar
        if (empty($fieldval)) {
            $fieldval = $fieldref;
        }
        $entity = new self();
        // Search in entity data of the current entity
        if ($entity->getFromDB($entities_id)) {
            // Value is defined : use it
            if (isset($entity->fields[$fieldref])) {
                // Numerical value
                if (is_numeric($default_value) && $entity->fields[$fieldref] != self::CONFIG_PARENT) {
                    return $entity->fields[$fieldval];
                }
                // String value
                if (!is_numeric($default_value) && $entity->fields[$fieldref]) {
                    return $entity->fields[$fieldval];
                }
            }
        }
        // Entity data not found or not defined : search in parent one
        if ($entities_id > 0) {
            if ($entity->getFromDB($entities_id)) {
                $ret = self::getUsedConfig($fieldref, $entity->fields['entities_id'], $fieldval, $default_value);
                return $ret;
            }
        }
        /*
        switch ($fieldval) {
           case "tickettype" :
              // Default is Incident if not set
              return Ticket::INCIDENT_TYPE;
        }
        */
        return $default_value;
    }

Usage Example

 function post_addItem()
 {
     global $CFG_GLPI;
     if (isset($this->input['_planningrecall'])) {
         $this->input['_planningrecall']['items_id'] = $this->fields['id'];
         PlanningRecall::manageDatas($this->input['_planningrecall']);
     }
     $donotif = $CFG_GLPI["use_mailing"];
     if (isset($this->fields["begin"]) && !empty($this->fields["begin"])) {
         Planning::checkAlreadyPlanned($this->fields["users_id_tech"], $this->fields["begin"], $this->fields["end"], array($this->getType() => array($this->fields["id"])));
         $calendars_id = Entity::getUsedConfig('calendars_id', $this->input["_job"]->fields['entities_id']);
         $calendar = new Calendar();
         // Using calendar
         if ($calendars_id > 0 && $calendar->getFromDB($calendars_id)) {
             if (!$calendar->isAWorkingHour(strtotime($this->fields["begin"]))) {
                 Session::addMessageAfterRedirect(__('Start of the selected timeframe is not a working hour.'), false, ERROR);
             }
             if (!$calendar->isAWorkingHour(strtotime($this->fields["end"]))) {
                 Session::addMessageAfterRedirect(__('End of the selected timeframe is not a working hour.'), false, ERROR);
             }
         }
     }
     $this->input["_job"]->updateDateMod($this->input[$this->input["_job"]->getForeignKeyField()]);
     if (isset($this->input["actiontime"]) && $this->input["actiontime"] > 0) {
         $this->input["_job"]->updateActionTime($this->input[$this->input["_job"]->getForeignKeyField()]);
     }
     //change status only if input change
     if (isset($this->input['_status']) && $this->input['_status'] != $this->input['_job']->fields['status']) {
         $update['status'] = $this->input['_status'];
         $update['id'] = $this->input['_job']->fields['id'];
         $update['_disablenotif'] = true;
         $this->input['_job']->update($update);
     }
     if (!empty($this->fields['begin']) && $this->input["_job"]->isStatusExists(CommonITILObject::PLANNED) && ($this->input["_job"]->fields["status"] == CommonITILObject::INCOMING || $this->input["_job"]->fields["status"] == CommonITILObject::ASSIGNED)) {
         $input2['id'] = $this->input["_job"]->getID();
         $input2['status'] = CommonITILObject::PLANNED;
         $input2['_disablenotif'] = true;
         $this->input["_job"]->update($input2);
     }
     if ($donotif) {
         $options = array('task_id' => $this->fields["id"], 'is_private' => $this->isPrivate());
         NotificationEvent::raiseEvent('add_task', $this->input["_job"], $options);
     }
     // Add log entry in the ITIL object
     $changes[0] = 0;
     $changes[1] = '';
     $changes[2] = $this->fields['id'];
     Log::history($this->getField($this->input["_job"]->getForeignKeyField()), $this->input["_job"]->getTYpe(), $changes, $this->getType(), Log::HISTORY_ADD_SUBITEM);
 }
All Usage Examples Of Entity::getUsedConfig