/**
  * Triggers the "real" creation of the report and wraps the code inline into a xml-structure
  *
  * @return string
  * @permissions view
  */
 protected function actionGetReport()
 {
     $strPlugin = $this->getParam("plugin");
     $strReturn = "";
     $objPluginManager = new class_pluginmanager(class_module_stats_admin::$STR_PLUGIN_EXTENSION_POINT, "/admin/statsreports");
     $objPlugin = null;
     foreach ($objPluginManager->getPlugins(array(class_carrier::getInstance()->getObjDB(), $this->objToolkit, $this->getObjLang())) as $objOneReport) {
         if (uniStrReplace("class_stats_report_", "", get_class($objOneReport)) == $strPlugin) {
             $objPlugin = $objOneReport;
             break;
         }
     }
     if ($objPlugin !== null && $objPlugin instanceof interface_admin_statsreports) {
         //get date-params as ints
         $intStartDate = mktime(0, 0, 0, $this->objDateStart->getIntMonth(), $this->objDateStart->getIntDay(), $this->objDateStart->getIntYear());
         $intEndDate = mktime(0, 0, 0, $this->objDateEnd->getIntMonth(), $this->objDateEnd->getIntDay(), $this->objDateEnd->getIntYear());
         $objPlugin->setEndDate($intEndDate);
         $objPlugin->setStartDate($intStartDate);
         $objPlugin->setInterval($this->intInterval);
         $arrImage = $objPlugin->getReportGraph();
         if (!is_array($arrImage)) {
             $arrImage = array($arrImage);
         }
         foreach ($arrImage as $strImage) {
             if ($strImage != "") {
                 $strReturn .= $this->objToolkit->getGraphContainer($strImage);
             }
         }
         $strReturn .= $objPlugin->getReport();
         $strReturn = "<content><![CDATA[" . $strReturn . "]]></content>";
     }
     return $strReturn;
 }
 /**
  * @return interface_admin_statsreports[]
  */
 private function getArrReports()
 {
     if (self::$arrReports == null) {
         self::$arrReports = $this->objPluginManager->getPlugins(array(class_carrier::getInstance()->getObjDB(), $this->objToolkit, $this->getObjLang()));
     }
     uasort(self::$arrReports, function (interface_admin_statsreports $objA, interface_admin_statsreports $objB) {
         return strcmp($objA->getTitle(), $objB->getTitle());
     });
     return self::$arrReports;
 }
 /**
  * Generates a xml-based set of information about the current system and evironment
  * Returned structure:
  * <info>
  *    <infoset name="xx">
  *      <entry>
  *        <key></key>
  *        <value></value>
  *      </entry>
  *    </infoset>
  * </info>
  *
  * @return string
  * @permissions edit
  */
 protected function actionSystemInfo()
 {
     $strReturn = "<info>";
     $objPluginmanager = new class_pluginmanager(interface_systeminfo::STR_EXTENSION_POINT);
     /** @var interface_systeminfo[] $arrPlugins */
     $arrPlugins = $objPluginmanager->getPlugins();
     foreach ($arrPlugins as $objOnePlugin) {
         $strReturn .= "<infoset name=\"" . $objOnePlugin->getStrTitle() . "\">";
         foreach ($objOnePlugin->getArrContent() as $arrValue) {
             $strReturn .= "<entry>";
             $strReturn .= "<key>" . xmlSafeString($arrValue[0]) . "</key>";
             $strReturn .= "<value>" . xmlSafeString($arrValue[1]) . "</value>";
             $strReturn .= "</entry>";
         }
         $strReturn .= "</infoset>";
     }
     $strReturn .= "</info>";
     return $strReturn;
 }
 public function testNegativeSearch()
 {
     $objManager = new class_pluginmanager("core.pluginmanager.nonexisting");
     $arrInstances = $objManager->getPlugins();
     $this->assertEquals(count($arrInstances), 0);
 }
 /**
  * Shows information about the current system
  *
  * @return string
  * @permissions edit
  */
 protected function actionSystemInfo()
 {
     $strReturn = "";
     $objPluginmanager = new class_pluginmanager(interface_systeminfo::STR_EXTENSION_POINT);
     /** @var interface_systeminfo[] $arrPlugins */
     $arrPlugins = $objPluginmanager->getPlugins();
     foreach ($arrPlugins as $objOnePlugin) {
         $strContent = $this->objToolkit->dataTable(null, $objOnePlugin->getArrContent());
         $strReturn .= $this->objToolkit->getFieldset($objOnePlugin->getStrTitle(), $strContent);
     }
     return $strReturn;
 }