/** * Collects and renders user per group report data */ public function user_per_group() { $myConfig = $this->getConfig(); $oDb = oxDb::getDb(); global $aTitles; $aDataX = array(); $aDataY = array(); $sSQL = "SELECT oxgroups.oxtitle,\n count(oxuser.oxid)\n FROM oxobject2group,\n oxuser,\n oxgroups\n WHERE oxobject2group.oxobjectid = oxuser.oxid AND\n oxobject2group.oxgroupsid = oxgroups.oxid\n GROUP BY oxobject2group.oxgroupsid\n ORDER BY oxobject2group.oxgroupsid"; $rs = $oDb->execute($sSQL); if ($rs != false && $rs->recordCount() > 0) { while (!$rs->EOF) { if ($rs->fields[1]) { $aDataX[] = $rs->fields[1]; $aDataY[] = $rs->fields[0]; } $rs->moveNext(); } } header("Content-type: image/png"); // New graph with a drop shadow if (count($aDataX) > 10) { $graph = new PieGraph(800, 830); } else { $graph = new PieGraph(600, 600); } $graph->setBackgroundImage($myConfig->getImageDir(true) . "/reportbgrnd.jpg", BGIMG_FILLFRAME); $graph->setShadow(); // Set title and subtitle //$graph->title->set($this->aTitles[$myConfig->getConfigParam( 'iAdminLanguage' ) ]); $graph->title->set($this->aTitles[oxRegistry::getLang()->getObjectTplLanguage()]); // Use built in font $graph->title->setFont(FF_FONT1, FS_BOLD); // Create the bar plot $bplot = new PiePlot3D($aDataX); $bplot->setSize(0.4); $bplot->setCenter(0.5, 0.32); // explodes all chunks of Pie from center point $bplot->explodeAll(10); $iUserCount = 0; foreach ($aDataX as $iVal) { $iUserCount += $iVal; } for ($iCtr = 0; $iCtr < count($aDataX); $iCtr++) { $iSLeng = strlen($aDataY[$iCtr]); if ($iSLeng > 20) { if ($iSLeng > 23) { $aDataY[$iCtr] = trim(substr($aDataY[$iCtr], 0, 20)) . "..."; } } $aDataY[$iCtr] .= " - " . $aDataX[$iCtr] . " Kund."; } $bplot->setLegends($aDataY); if (count($aDataX) > 10) { $graph->legend->pos(0.49, 0.66, 'center'); $graph->legend->setFont(FF_FONT0, FS_NORMAL); $graph->legend->setColumns(4); } else { $graph->legend->pos(0.49, 0.7, 'center'); $graph->legend->setFont(FF_FONT1, FS_NORMAL); $graph->legend->setColumns(2); } $graph->add($bplot); // Finally output the image $graph->stroke(); }