CommonITILObject::post_addItem PHP Метод

post_addItem() публичный Метод

public post_addItem ( )
    function post_addItem()
    {
        // Add document if needed, without notification
        $this->addFiles(0, 1);
        // Add default document if set in template
        if (isset($this->input['_documents_id']) && is_array($this->input['_documents_id']) && count($this->input['_documents_id'])) {
            $docitem = new Document_Item();
            foreach ($this->input['_documents_id'] as $docID) {
                if ($docitem->add(array('documents_id' => $docID, '_do_notif' => false, 'itemtype' => $this->getType(), 'items_id' => $this->fields['id']))) {
                }
            }
        }
        $useractors = NULL;
        // Add user groups linked to ITIL objects
        if (!empty($this->userlinkclass)) {
            $useractors = new $this->userlinkclass();
        }
        $groupactors = NULL;
        if (!empty($this->grouplinkclass)) {
            $groupactors = new $this->grouplinkclass();
        }
        $supplieractors = NULL;
        if (!empty($this->supplierlinkclass)) {
            $supplieractors = new $this->supplierlinkclass();
        }
        if (!is_null($useractors)) {
            if (isset($this->input["_users_id_requester"])) {
                if (is_array($this->input["_users_id_requester"])) {
                    $tab_requester = $this->input["_users_id_requester"];
                } else {
                    $tab_requester = array();
                    $tab_requester[] = $this->input["_users_id_requester"];
                }
                $requesterToAdd = array();
                foreach ($tab_requester as $key_requester => $requester) {
                    if (in_array($requester, $requesterToAdd)) {
                        // This requester ID is already added;
                        continue;
                    }
                    $input2 = array($useractors->getItilObjectForeignKey() => $this->fields['id'], 'users_id' => $requester, 'type' => CommonITILActor::REQUESTER);
                    if (isset($this->input["_users_id_requester_notif"])) {
                        foreach ($this->input["_users_id_requester_notif"] as $key => $val) {
                            if (isset($val[$key_requester])) {
                                $input2[$key] = $val[$key_requester];
                            }
                        }
                    }
                    //empty actor
                    if ($input2['users_id'] == 0 && (!isset($input2['alternative_email']) || empty($input2['alternative_email']))) {
                        continue;
                    } else {
                        if ($requester != 0) {
                            $requesterToAdd[] = $requester;
                        }
                    }
                    $input2['_from_object'] = true;
                    $useractors->add($input2);
                }
            }
            if (isset($this->input["_users_id_observer"])) {
                if (is_array($this->input["_users_id_observer"])) {
                    $tab_observer = $this->input["_users_id_observer"];
                } else {
                    $tab_observer = array();
                    $tab_observer[] = $this->input["_users_id_observer"];
                }
                $observerToAdd = array();
                foreach ($tab_observer as $key_observer => $observer) {
                    if (in_array($observer, $observerToAdd)) {
                        // This observer ID is already added;
                        continue;
                    }
                    $input2 = array($useractors->getItilObjectForeignKey() => $this->fields['id'], 'users_id' => $observer, 'type' => CommonITILActor::OBSERVER);
                    if (isset($this->input["_users_id_observer_notif"])) {
                        foreach ($this->input["_users_id_observer_notif"] as $key => $val) {
                            if (isset($val[$key_observer])) {
                                $input2[$key] = $val[$key_observer];
                            }
                        }
                    }
                    //empty actor
                    if ($input2['users_id'] == 0 && (!isset($input2['alternative_email']) || empty($input2['alternative_email']))) {
                        continue;
                    } else {
                        if ($observer != 0) {
                            $observerToAdd[] = $observer;
                        }
                    }
                    $input2['_from_object'] = true;
                    $useractors->add($input2);
                }
            }
            if (isset($this->input["_users_id_assign"])) {
                if (is_array($this->input["_users_id_assign"])) {
                    $tab_assign = $this->input["_users_id_assign"];
                } else {
                    $tab_assign = array();
                    $tab_assign[] = $this->input["_users_id_assign"];
                }
                $assignToAdd = array();
                foreach ($tab_assign as $key_assign => $assign) {
                    if (in_array($assign, $assignToAdd)) {
                        // This assigned user ID is already added;
                        continue;
                    }
                    $input2 = array($useractors->getItilObjectForeignKey() => $this->fields['id'], 'users_id' => $assign, 'type' => CommonITILActor::ASSIGN);
                    if (isset($this->input["_users_id_assign_notif"])) {
                        foreach ($this->input["_users_id_assign_notif"] as $key => $val) {
                            if (isset($val[$key_assign])) {
                                $input2[$key] = $val[$key_assign];
                            }
                        }
                    }
                    //empty actor
                    if ($input2['users_id'] == 0 && (!isset($input2['alternative_email']) || empty($input2['alternative_email']))) {
                        continue;
                    } else {
                        if ($assign != 0) {
                            $assignToAdd[] = $assign;
                        }
                    }
                    $input2['_from_object'] = true;
                    $useractors->add($input2);
                }
            }
        }
        if (!is_null($groupactors)) {
            if (isset($this->input["_groups_id_requester"])) {
                $groups_id_requester = $this->input["_groups_id_requester"];
                if (!is_array($this->input["_groups_id_requester"])) {
                    $groups_id_requester = array($this->input["_groups_id_requester"]);
                } else {
                    $groups_id_requester = $this->input["_groups_id_requester"];
                }
                foreach ($groups_id_requester as $groups_id) {
                    if ($groups_id > 0) {
                        $groupactors->add(array($groupactors->getItilObjectForeignKey() => $this->fields['id'], 'groups_id' => $groups_id, 'type' => CommonITILActor::REQUESTER, '_from_object' => true));
                    }
                }
            }
            if (isset($this->input["_groups_id_assign"])) {
                if (!is_array($this->input["_groups_id_assign"])) {
                    $groups_id_assign = array($this->input["_groups_id_assign"]);
                } else {
                    $groups_id_assign = $this->input["_groups_id_assign"];
                }
                foreach ($groups_id_assign as $groups_id) {
                    if ($groups_id > 0) {
                        $groupactors->add(array($groupactors->getItilObjectForeignKey() => $this->fields['id'], 'groups_id' => $groups_id, 'type' => CommonITILActor::ASSIGN, '_from_object' => true));
                    }
                }
            }
            if (isset($this->input["_groups_id_observer"])) {
                if (!is_array($this->input["_groups_id_observer"])) {
                    $groups_id_observer = array($this->input["_groups_id_observer"]);
                } else {
                    $groups_id_observer = $this->input["_groups_id_observer"];
                }
                foreach ($groups_id_observer as $groups_id) {
                    if ($groups_id > 0) {
                        $groupactors->add(array($groupactors->getItilObjectForeignKey() => $this->fields['id'], 'groups_id' => $groups_id, 'type' => CommonITILActor::OBSERVER, '_from_object' => true));
                    }
                }
            }
        }
        if (!is_null($supplieractors)) {
            if (isset($this->input["_suppliers_id_assign"]) && $this->input["_suppliers_id_assign"] > 0) {
                if (is_array($this->input["_suppliers_id_assign"])) {
                    $tab_assign = $this->input["_suppliers_id_assign"];
                } else {
                    $tab_assign = array();
                    $tab_assign[] = $this->input["_suppliers_id_assign"];
                }
                $supplierToAdd = array();
                foreach ($tab_assign as $key_assign => $assign) {
                    if (in_array($assign, $supplierToAdd)) {
                        // This assigned supplier ID is already added;
                        continue;
                    }
                    $input3 = array($supplieractors->getItilObjectForeignKey() => $this->fields['id'], 'suppliers_id' => $assign, 'type' => CommonITILActor::ASSIGN);
                    if (isset($this->input["_suppliers_id_assign_notif"])) {
                        foreach ($this->input["_suppliers_id_assign_notif"] as $key => $val) {
                            $input3[$key] = $val[$key_assign];
                        }
                    }
                    //empty supplier
                    if ($input3['suppliers_id'] == 0 && (!isset($input3['alternative_email']) || empty($input3['alternative_email']))) {
                        continue;
                    } else {
                        if ($assign != 0) {
                            $supplierToAdd[] = $assign;
                        }
                    }
                    $input3['_from_object'] = true;
                    $supplieractors->add($input3);
                }
            }
        }
        // Additional actors
        $this->addAdditionalActors($this->input);
    }

Usage Example

Пример #1
0
 function post_addItem()
 {
     global $CFG_GLPI;
     parent::post_addItem();
     if (isset($this->input['_tickets_id'])) {
         $ticket = new Ticket();
         if ($ticket->getFromDB($this->input['_tickets_id'])) {
             $pt = new Change_Ticket();
             $pt->add(array('tickets_id' => $this->input['_tickets_id'], 'changes_id' => $this->fields['id']));
             if (!empty($ticket->fields['itemtype']) && $ticket->fields['items_id'] > 0) {
                 $it = new Change_Item();
                 $it->add(array('changes_id' => $this->fields['id'], 'itemtype' => $ticket->fields['itemtype'], 'items_id' => $ticket->fields['items_id']));
             }
         }
     }
     if (isset($this->input['_problems_id'])) {
         $problem = new Problem();
         if ($problem->getFromDB($this->input['_problems_id'])) {
             $cp = new Change_Problem();
             $cp->add(array('problems_id' => $this->input['_problems_id'], 'changes_id' => $this->fields['id']));
         }
     }
     // Processing Email
     if ($CFG_GLPI["use_mailing"]) {
         // Clean reload of the change
         $this->getFromDB($this->fields['id']);
         $type = "new";
         if (isset($this->fields["status"]) && in_array($this->input["status"], $this->getSolvedStatusArray())) {
             $type = "solved";
         }
         NotificationEvent::raiseEvent($type, $this);
     }
 }
All Usage Examples Of CommonITILObject::post_addItem
CommonITILObject