Document_Item::showAddFormForItem PHP Method

showAddFormForItem() static public method

static public showAddFormForItem ( CommonDBTM $item, $withtemplate = '', $options = [] ) : boolean
$item CommonDBTM
$withtemplate (default '')
$options array
return boolean
    static function showAddFormForItem(CommonDBTM $item, $withtemplate = '', $options = array())
    {
        global $DB, $CFG_GLPI;
        //default options
        $params['rand'] = mt_rand();
        if (is_array($options) && count($options)) {
            foreach ($options as $key => $val) {
                $params[$key] = $val;
            }
        }
        if (!$item->can($item->fields['id'], READ)) {
            return false;
        }
        if (empty($withtemplate)) {
            $withtemplate = 0;
        }
        // find documents already associated to the item
        $doc_item = new self();
        $used_found = $doc_item->find("`items_id` = '" . $item->getID() . "'\n                                    AND `itemtype` = '" . $item->getType() . "'");
        $used = array_keys($used_found);
        $used = array_combine($used, $used);
        if (($item->getType() == 'Ticket' && $item->canAddFollowups() || $item->canAddItem('Document')) && $withtemplate < 2) {
            // Restrict entity for knowbase
            $entities = "";
            $entity = $_SESSION["glpiactive_entity"];
            if ($item->isEntityAssign()) {
                /// Case of personal items : entity = -1 : create on active entity (Reminder case))
                if ($item->getEntityID() >= 0) {
                    $entity = $item->getEntityID();
                }
                if ($item->isRecursive()) {
                    $entities = getSonsOf('glpi_entities', $entity);
                } else {
                    $entities = $entity;
                }
            }
            $limit = getEntitiesRestrictRequest(" AND ", "glpi_documents", '', $entities, true);
            $q = "SELECT COUNT(*)\n               FROM `glpi_documents`\n               WHERE `is_deleted` = '0'\n               {$limit}";
            $result = $DB->query($q);
            $nb = $DB->result($result, 0, 0);
            if ($item->getType() == 'Document') {
                $used[$item->getID()] = $item->getID();
            }
            echo "<div class='firstbloc'>";
            echo "<form name='documentitem_form" . $params['rand'] . "' id='documentitem_form" . $params['rand'] . "' method='post' action='" . Toolbox::getItemTypeFormURL('Document') . "' enctype=\"multipart/form-data\">";
            echo "<table class='tab_cadre_fixe'>";
            echo "<tr class='tab_bg_2'><th colspan='5'>" . __('Add a document') . "</th></tr>";
            echo "<tr class='tab_bg_1'>";
            echo "<td class='center'>";
            _e('Heading');
            echo "</td><td width='20%'>";
            DocumentCategory::dropdown(array('entity' => $entities));
            echo "</td>";
            echo "<td class='right'>";
            echo "<input type='hidden' name='entities_id' value='{$entity}'>";
            echo "<input type='hidden' name='is_recursive' value='" . $item->isRecursive() . "'>";
            echo "<input type='hidden' name='itemtype' value='" . $item->getType() . "'>";
            echo "<input type='hidden' name='items_id' value='" . $item->getID() . "'>";
            if ($item->getType() == 'Ticket') {
                echo "<input type='hidden' name='tickets_id' value='" . $item->getID() . "'>";
            }
            echo Html::file(array('multiple' => true));
            echo "</td><td class='left'>(" . Document::getMaxUploadSize() . ")&nbsp;</td>";
            echo "<td class='center' width='20%'>";
            echo "<input type='submit' name='add' value=\"" . _sx('button', 'Add a new file') . "\"\n                class='submit'>";
            echo "</td></tr>";
            echo "</table>";
            Html::closeForm();
            if (Document::canView() && $nb > count($used)) {
                echo "<form name='document_form" . $params['rand'] . "' id='document_form" . $params['rand'] . "' method='post' action='" . Toolbox::getItemTypeFormURL(__CLASS__) . "'>";
                echo "<table class='tab_cadre_fixe'>";
                echo "<tr class='tab_bg_1'>";
                echo "<td colspan='4' class='center'>";
                echo "<input type='hidden' name='itemtype' value='" . $item->getType() . "'>";
                echo "<input type='hidden' name='items_id' value='" . $item->getID() . "'>";
                if ($item->getType() == 'Ticket') {
                    echo "<input type='hidden' name='tickets_id' value='" . $item->getID() . "'>";
                    echo "<input type='hidden' name='documentcategories_id' value='" . $CFG_GLPI["documentcategories_id_forticket"] . "'>";
                }
                Document::dropdown(array('entity' => $entities, 'used' => $used));
                echo "</td><td class='center' width='20%'>";
                echo "<input type='submit' name='add' value=\"" . _sx('button', 'Associate an existing document') . "\" class='submit'>";
                echo "</td>";
                echo "</tr>";
                echo "</table>";
                Html::closeForm();
            }
            echo "</div>";
        }
    }

Usage Example

Exemplo n.º 1
0
 /**
  * @since version 0.90
  *
  * @param $item
  * @param $id
  * @param $params
  **/
 static function showSubForm(CommonDBTM $item, $id, $params)
 {
     if ($item instanceof Document_Item) {
         Document_Item::showAddFormForItem($params['parent'], '');
     } else {
         if (method_exists($item, "showForm")) {
             $item->showForm($id, $params);
         }
     }
 }
All Usage Examples Of Document_Item::showAddFormForItem