예제 #1
0
 static function generateOdt($params)
 {
     global $LANG;
     $config = array('PATH_TO_TMP' => GLPI_DOC_DIR . '/_tmp');
     if (PluginMreportingPreference::atLeastOneTemplateExists()) {
         $template = PluginMreportingPreference::checkPreferenceTemplateValue(Session::getLoginUserID());
         $withdatas = $params[0]["withdata"];
         if ($withdatas == 0) {
             $odf = new odf("../templates/withoutdata.odt", $config);
         } else {
             $odf = new odf("../templates/{$template}", $config);
         }
         $titre = '';
         $short_classname = str_replace('PluginMreporting', '', $params[0]['class']);
         if (isset($LANG['plugin_mreporting'][$short_classname]['title'])) {
             $titre = $LANG['plugin_mreporting'][$short_classname]['title'];
         }
         $odf->setVars('titre', $titre, true, 'UTF-8');
         $newpage = $odf->setSegment('newpage');
         foreach ($params as $result => $page) {
             // Default values of parameters
             $title = "";
             $f_name = "";
             $raw_datas = array();
             foreach ($page as $key => $val) {
                 ${$key} = $val;
             }
             $datas = $raw_datas['datas'];
             $labels2 = array();
             if (isset($raw_datas['labels2'])) {
                 $labels2 = $raw_datas['labels2'];
             }
             $configs = PluginMreportingConfig::initConfigParams($f_name, $class);
             foreach ($configs as $k => $v) {
                 ${$k} = $v;
             }
             if ($unit == '%') {
                 $datas = PluginMreportingCommon::compileDatasForUnit($datas, $unit);
             }
             $newpage->setVars('message', $title, true, 'UTF-8');
             $path = GLPI_PLUGIN_DOC_DIR . "/mreporting/" . $f_name . ".png";
             if ($show_graph) {
                 $newpage->setImage('image', $path);
             } else {
                 $newpage->setVars('image', "", true, 'UTF-8');
             }
             if ($withdatas > 0) {
                 $simpledatas = false;
                 //simple array
                 if (!$labels2) {
                     $labels2 = array();
                     $simpledatas = true;
                 }
                 if ($flip_data == true) {
                     $labels2 = array_flip($labels2);
                 }
                 $types = array();
                 foreach ($datas as $k => $v) {
                     if (is_array($v)) {
                         foreach ($v as $key => $val) {
                             if (isset($labels2[$key])) {
                                 $types[$key][$k] = $val;
                             }
                         }
                     } else {
                         $types[$k] = $v;
                     }
                 }
                 if ($flip_data != true) {
                     $tmp = $datas;
                     $datas = $types;
                     $types = $tmp;
                 }
                 //simple array
                 if ($simpledatas) {
                     $label = $LANG['plugin_mreporting']["export"][1];
                     if ($template == "word.odt") {
                         $newpage->data0->label_0(utf8_decode($label));
                         $newpage->data0->merge();
                     } else {
                         $newpage->csvdata->setVars('TitreCategorie', $label, true, 'UTF-8');
                     }
                     if ($template == "word.odt") {
                         foreach ($types as $label2 => $cols) {
                             $newpage->csvdata->label1->label_1(utf8_decode($label2));
                             $newpage->csvdata->label1->merge();
                             if (!empty($unit)) {
                                 $cols = $cols . " " . $unit;
                             }
                             $newpage->csvdata->data1->data_1($cols);
                             $newpage->csvdata->merge();
                         }
                     } else {
                         foreach ($types as $label2 => $cols) {
                             if (!empty($unit)) {
                                 $cols = $cols . " " . $unit;
                             }
                             $newpage->csvdata->csvdata2->label_1(utf8_decode($label2));
                             $newpage->csvdata->csvdata2->data_1($cols);
                             $newpage->csvdata->csvdata2->merge();
                         }
                         $newpage->csvdata->merge();
                     }
                 } else {
                     if ($template == "word.odt") {
                         foreach ($datas as $label => $val) {
                             $newpage->data0->label_0(utf8_decode($label));
                             $newpage->data0->merge();
                         }
                         foreach ($types as $label2 => $cols) {
                             $newpage->csvdata->label1->label_1(utf8_decode($label2));
                             $newpage->csvdata->label1->merge();
                             foreach ($cols as $date => $nb) {
                                 if (!empty($unit)) {
                                     $nb = $nb . " " . $unit;
                                 }
                                 if (!is_array($nb)) {
                                     $newpage->csvdata->data1->data_1(utf8_decode($nb));
                                 }
                                 $newpage->csvdata->data1->merge();
                             }
                             $newpage->csvdata->merge();
                         }
                     } else {
                         foreach ($types as $label2 => $cols) {
                             foreach ($cols as $label1 => $nb) {
                                 if (!empty($unit)) {
                                     $nb = $nb . " " . $unit;
                                 }
                                 $newpage->csvdata->setVars('TitreCategorie', $label2, true, 'UTF-8');
                                 $newpage->csvdata->csvdata2->setVars('label_1', utf8_decode($label1), true, 'UTF-8');
                                 if (!is_array($nb)) {
                                     $newpage->csvdata->csvdata2->setVars('data_1', utf8_decode($nb), true, 'UTF-8');
                                 }
                                 $newpage->csvdata->csvdata2->merge();
                             }
                             $newpage->csvdata->merge();
                         }
                     }
                 }
             }
             $newpage->merge();
         }
         $odf->mergeSegment($newpage);
         // We export the file
         $odf->exportAsAttachedFile();
         unset($_SESSION['glpi_plugin_mreporting_odtarray']);
     }
 }
예제 #2
0
                <p>
                    <label for="nom">Nom :</label> 
                    <input type="text" id="nom" name="nom" size="40" value=""/>
                </p>
                <p>
                    <label for="total">Total :</label> 
                    <input type="text" id="total" name="total" size="40" value=""/>
                </p>
                <p>
                <input type="submit" name="submit" />
            </p>
        </form>
</body>
</html>
<?php 
    // sinon on envoie le fichier généré
} else {
    // date du jour
    $odf->setVars('cyb_date', date("d/m/Y"));
    // données du formulaire
    $odf->setVars('cyb_invite', $_POST["invite"]);
    // gestion des accents via cet artifice html_entity_decode(htmlentities(...
    $odf->setVars('cyb_prenom', html_entity_decode(htmlentities($_POST["prenom"], ENT_NOQUOTES, "utf-8")));
    $odf->setVars('cyb_nom', html_entity_decode(htmlentities($_POST["nom"], ENT_NOQUOTES, "utf-8")));
    $odf->setVars('cyb_total', $_POST["total"]);
    // création du fichier
    $odf->exportAsAttachedFile();
}
?>
 
    $end_sql = strftime("%Y-%m-%d ", $EndDate) . $EndTime;
}
if (count($sql_filter) > 0) {
    $req = "SELECT * FROM " . $cfg_syslog["db_table_logs_merge"] . " WHERE datetime > '{$start_sql}' AND datetime <= '{$end_sql}' AND " . $req_sql_filter . " ORDER BY datetime";
} else {
    $req = "SELECT * FROM " . $cfg_syslog["db_table_logs_merge"] . " WHERE datetime > '{$start_sql}' AND datetime <= '{$end_sql}' ORDER BY datetime";
}
$nom = "syslog_events";
$DBRESULT =& $pearSyslogDB->query($req);
if (PEAR::isError($DBRESULT)) {
    print "Mysql Error : " . $DBRESULT->getMessage() . "\n";
}
$odf->setVars('tdatetime', _("Date / Time"), true, 'UTF-8');
$odf->setVars('thost', _("Host"), true, 'UTF-8');
$odf->setVars('tfacility', _("Facility"), true, 'UTF-8');
$odf->setVars('tseverity', _("Severity"), true, 'UTF-8');
$odf->setVars('tprogram', _("Program"), true, 'UTF-8');
$odf->setVars('tmessage', _("Message"));
$resource = $odf->setSegment('s');
while ($DBRESULT->fetchInto($data)) {
    $resource->setVars('datetime', $data["datetime"], true, 'UTF-8');
    $resource->setVars('host', $data["host"], true, 'UTF-8');
    $resource->setVars('facility', $data["facility"], true, 'UTF-8');
    $resource->setVars('severity', $data["priority"], true, 'UTF-8');
    $resource->setVars('program', $data["program"], true, 'UTF-8');
    $resource->setVars('message', utf8_decode($data["msg"]));
    $resource->merge();
}
$odf->mergeSegment($resource);
$odf->exportAsAttachedFile("syslog_events.odt");