/**
    * Show items links to a certificate
    *
    * @since version 0.84
    *
    * @param $certificate PluginCertificatesCertificate object
    *
    * @return nothing (HTML display)
    **/
   public static function showForCertificate(PluginCertificatesCertificate $certificate) {
      global $DB,$CFG_GLPI;
      
//      $certif=new PluginCertificatesCertificate();

      $instID = $certificate->fields['id'];
      if (!$certificate->can($instID, READ)){
         return false;
      }
      $canedit=$certificate->can($instID, UPDATE);
      $rand=mt_rand();

      $query = "SELECT DISTINCT `itemtype`
            FROM `glpi_plugin_certificates_certificates_items`
            WHERE `plugin_certificates_certificates_id` = '".$instID."'
            ORDER BY `itemtype`
            LIMIT ".count(PluginCertificatesCertificate::getTypes(true));

      $result = $DB->query($query);
      $number = $DB->numrows($result);

      if (Session::isMultiEntitiesMode()) {
         $colsup=1;
      } else {
         $colsup=0;
      }

      if ($canedit) {
         echo "<div class='firstbloc'>";
         echo "<form method='post' name='certificates_form$rand'
         id='certificates_form$rand'  action='".Toolbox::getItemTypeFormURL("PluginCertificatesCertificate")."'>";

         echo "<table class='tab_cadre_fixe'>";
         echo "<tr class='tab_bg_2'><th colspan='".($canedit?(5+$colsup):(4+$colsup))."'>".
            __('Add an item')."</th></tr>";

         echo "<tr class='tab_bg_1'><td colspan='".(3+$colsup)."' class='center'>";
         Dropdown::showAllItems("items_id",0,0,($certificate->fields['is_recursive']?-1:$certificate->fields['entities_id']),
            PluginCertificatesCertificate::getTypes());
         echo "</td><td colspan='2' class='center' class='tab_bg_1'>";
         echo "<input type='hidden' name='plugin_certificates_certificates_id' value='$instID'>";
         echo "<input type='submit' name='additem' value=\""._sx('button','Add')."\" class='submit'>";
         echo "</td></tr>";
         echo "</table>";
         Html::closeForm();
         echo "</div>" ;
      }

      echo "<div class='spaced'>";
      if ($canedit && $number) {
         Html::openMassiveActionsForm('mass'.__CLASS__.$rand);
         $massiveactionparams = array();
         Html::showMassiveActions($massiveactionparams);
      }
      echo "<table class='tab_cadre_fixe'>";
      echo "<tr>";

      if ($canedit && $number) {
         echo "<th width='10'>".Html::getCheckAllAsCheckbox('mass'.__CLASS__.$rand)."</th>";
      }

      echo "<th>".__('Type')."</th>";
      echo "<th>".__('Name')."</th>";
      if (Session::isMultiEntitiesMode())
         echo "<th>".__('Entity')."</th>";
      echo "<th>".__('Serial number')."</th>";
      echo "<th>".__('Inventory number')."</th>";
      echo "</tr>";

      for ($i=0 ; $i < $number ; $i++) {
         $itemtype=$DB->result($result, $i, "itemtype");

         if (!($item = getItemForItemtype($itemtype))) {
            continue;
         }

         if ($item->canView()) {
            $column="name";

            $itemTable = getTableForItemType($itemtype);
            $query = " SELECT `".$itemTable."`.*,
                              `glpi_plugin_certificates_certificates_items`.`id` AS items_id,
                              `glpi_entities`.id AS entity "
                     ." FROM `glpi_plugin_certificates_certificates_items`, `".$itemTable
                     ."` LEFT JOIN `glpi_entities`
                     ON (`glpi_entities`.`id` = `".$itemTable."`.`entities_id`) "
                     ." WHERE `".$itemTable."`.`id` = `glpi_plugin_certificates_certificates_items`.`items_id`
                     AND `glpi_plugin_certificates_certificates_items`.`itemtype` = '$itemtype'
                     AND `glpi_plugin_certificates_certificates_items`.`plugin_certificates_certificates_id` = '$instID' "
                     . getEntitiesRestrictRequest(" AND ",$itemTable,'','',$item->maybeRecursive());

            if ($item->maybeTemplate()) {
               $query.=" AND ".$itemTable.".is_template='0'";
            }

            $query.=" ORDER BY `glpi_entities`.`completename`, `".$itemTable."`.`$column` ";

            if ($result_linked=$DB->query($query)){
               if ($DB->numrows($result_linked)) {

                  Session::initNavigateListItems($itemtype,PluginCertificatesCertificate::getTypeName(2)." = ".$certificate->fields['name']);

                  while ($data=$DB->fetch_assoc($result_linked)) {

                     $item->getFromDB($data["id"]);

                     Session::addToNavigateListItems($itemtype,$data["id"]);

                     $ID="";

                     if ($_SESSION["glpiis_ids_visible"]||empty($data["name"]))
                        $ID= " (".$data["id"].")";

                     $link=Toolbox::getItemTypeFormURL($itemtype);
                     $name= "<a href=\"".$link."?id=".$data["id"]."\">"
                        .$data["name"]."$ID</a>";

                     echo "<tr class='tab_bg_1'>";

                     if ($canedit) {
                        echo "<td width='10'>";
                        Html::showMassiveActionCheckBox(__CLASS__, $data["items_id"]);
                        echo "</td>";
                     }
                     echo "<td class='center'>".$item->getTypeName(1)."</td>";

                     echo "<td class='center' ".(isset($data['is_deleted'])&&$data['is_deleted']?"class='tab_bg_2_2'":"").
                        ">".$name."</td>";
                     if (Session::isMultiEntitiesMode())
                        echo "<td class='center'>".Dropdown::getDropdownName("glpi_entities",$data['entity'])."</td>";
                     echo "<td class='center'>".(isset($data["serial"])? "".$data["serial"]."" :"-")."</td>";
                     echo "<td class='center'>".(isset($data["otherserial"])? "".$data["otherserial"]."" :"-")."</td>";

                     echo "</tr>";
                  }
               }
            }
         }
      }
      echo "</table>";

      if ($canedit && $number) {
         $paramsma['ontop'] =false;
         Html::showMassiveActions($paramsma);
         Html::closeForm();
      }
      echo "</div>";

   }
Exemple #2
0
function plugin_certificates_MassiveActions($type) {

   if (in_array($type,PluginCertificatesCertificate::getTypes(true))) {
      return array('PluginCertificatesCertificate'.MassiveAction::CLASS_ACTION_SEPARATOR.'plugin_certificates_add_item' =>
                                                              __('Associate to certificate', 'certificates'));
   }
   return array();
}
Exemple #3
0
function plugin_certificates_MassiveActionsDisplay($options = array())
{
    $certif = new PluginCertificatesCertificate();
    if (in_array($options['itemtype'], PluginCertificatesCertificate::getTypes(true))) {
        $certif->dropdownCertificates("plugin_certificates_certificates_id");
        echo "<input type=\"submit\" name=\"massiveaction\" class=\"submit\" value=\"" . __s('Post') . "\" >";
    }
    return "";
}