CommonITILObject::addAdditionalActors PHP Метод

addAdditionalActors() приватный Метод

private addAdditionalActors ( $input )
    private function addAdditionalActors($input)
    {
        $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();
        }
        // Additional groups actors
        if (!is_null($groupactors)) {
            // Requesters
            if (isset($input['_additional_groups_requesters']) && is_array($input['_additional_groups_requesters']) && count($input['_additional_groups_requesters'])) {
                $input2 = array($groupactors->getItilObjectForeignKey() => $this->fields['id'], 'type' => CommonITILActor::REQUESTER);
                foreach ($input['_additional_groups_requesters'] as $tmp) {
                    if ($tmp > 0) {
                        $input2['groups_id'] = $tmp;
                        $input2['_from_object'] = true;
                        $groupactors->add($input2);
                    }
                }
            }
            // Observers
            if (isset($input['_additional_groups_observers']) && is_array($input['_additional_groups_observers']) && count($input['_additional_groups_observers'])) {
                $input2 = array($groupactors->getItilObjectForeignKey() => $this->fields['id'], 'type' => CommonITILActor::OBSERVER);
                foreach ($input['_additional_groups_observers'] as $tmp) {
                    if ($tmp > 0) {
                        $input2['groups_id'] = $tmp;
                        $input2['_from_object'] = true;
                        $groupactors->add($input2);
                    }
                }
            }
            // Assigns
            if (isset($input['_additional_groups_assigns']) && is_array($input['_additional_groups_assigns']) && count($input['_additional_groups_assigns'])) {
                $input2 = array($groupactors->getItilObjectForeignKey() => $this->fields['id'], 'type' => CommonITILActor::ASSIGN);
                foreach ($input['_additional_groups_assigns'] as $tmp) {
                    if ($tmp > 0) {
                        $input2['groups_id'] = $tmp;
                        $input2['_from_object'] = true;
                        $groupactors->add($input2);
                    }
                }
            }
        }
        // Additional suppliers actors
        if (!is_null($supplieractors)) {
            // Assigns
            if (isset($input['_additional_suppliers_assigns']) && is_array($input['_additional_suppliers_assigns']) && count($input['_additional_suppliers_assigns'])) {
                $input2 = array($supplieractors->getItilObjectForeignKey() => $this->fields['id'], 'type' => CommonITILActor::ASSIGN);
                foreach ($input['_additional_suppliers_assigns'] as $tmp) {
                    if ($tmp > 0) {
                        $input2['suppliers_id'] = $tmp;
                        $input2['_from_object'] = true;
                        $supplieractors->add($input2);
                    }
                }
            }
        }
        // Additional actors : using default notification parameters
        if (!is_null($useractors)) {
            // Observers : for mailcollector
            if (isset($input["_additional_observers"]) && is_array($input["_additional_observers"]) && count($input["_additional_observers"])) {
                $input2 = array($useractors->getItilObjectForeignKey() => $this->fields['id'], 'type' => CommonITILActor::OBSERVER, '_from_object' => true);
                foreach ($input["_additional_observers"] as $tmp) {
                    if (isset($tmp['users_id'])) {
                        foreach ($tmp as $key => $val) {
                            $input2[$key] = $val;
                        }
                        $useractors->add($input2);
                    }
                }
            }
            if (isset($input["_additional_assigns"]) && is_array($input["_additional_assigns"]) && count($input["_additional_assigns"])) {
                $input2 = array($useractors->getItilObjectForeignKey() => $this->fields['id'], 'type' => CommonITILActor::ASSIGN, '_from_object' => true);
                foreach ($input["_additional_assigns"] as $tmp) {
                    if (isset($tmp['users_id'])) {
                        foreach ($tmp as $key => $val) {
                            $input2[$key] = $val;
                        }
                        $useractors->add($input2);
                    }
                }
            }
            if (isset($input["_additional_requesters"]) && is_array($input["_additional_requesters"]) && count($input["_additional_requesters"])) {
                $input2 = array($useractors->getItilObjectForeignKey() => $this->fields['id'], 'type' => CommonITILActor::REQUESTER, '_from_object' => true);
                foreach ($input["_additional_requesters"] as $tmp) {
                    if (isset($tmp['users_id'])) {
                        foreach ($tmp as $key => $val) {
                            $input2[$key] = $val;
                        }
                        $useractors->add($input2);
                    }
                }
            }
        }
    }
CommonITILObject