report_user_per_group.php
Go to the documentation of this file.00001 <?php
00002
00003 if ( !class_exists( "report_user_per_group")) {
00007 class Report_user_per_group extends report_base
00008 {
00014 protected $_sThisTemplate = "report_user_per_group.tpl";
00015
00021 public function drawReport()
00022 {
00023 $sQ = "SELECT 1 FROM oxobject2group, oxuser, oxgroups
00024 WHERE oxobject2group.oxobjectid = oxuser.oxid AND
00025 oxobject2group.oxgroupsid = oxgroups.oxid";
00026 return oxDb::getDb()->getOne( $sQ );
00027 }
00028
00034 public function user_per_group()
00035 {
00036 $myConfig = $this->getConfig();
00037 $oDb = oxDb::getDb();
00038
00039 global $aTitles;
00040
00041 $aDataX = array();
00042 $aDataY = array();
00043
00044 $sSQL = "SELECT oxgroups.oxtitle,
00045 count(oxuser.oxid)
00046 FROM oxobject2group,
00047 oxuser,
00048 oxgroups
00049 WHERE oxobject2group.oxobjectid = oxuser.oxid AND
00050 oxobject2group.oxgroupsid = oxgroups.oxid
00051 GROUP BY oxobject2group.oxgroupsid
00052 ORDER BY oxobject2group.oxgroupsid";
00053
00054 $rs = $oDb->execute( $sSQL);
00055 if ($rs != false && $rs->recordCount() > 0) {
00056 while (!$rs->EOF) {
00057 if ( $rs->fields[1]) {
00058 $aDataX[] = $rs->fields[1];
00059 $aDataY[] = $rs->fields[0];
00060 }
00061 $rs->moveNext();
00062 }
00063 }
00064
00065 header ("Content-type: image/png" );
00066
00067
00068 if (count($aDataX) > 10)
00069 $graph = new PieGraph(800, 830);
00070 else
00071 $graph = new PieGraph(600, 600);
00072
00073 $graph->setBackgroundImage( $myConfig->getAbsAdminImageDir()."/reportbgrnd.jpg", BGIMG_FILLFRAME);
00074 $graph->setShadow();
00075
00076
00077
00078 $graph->title->set($this->aTitles[oxLang::getInstance()->getTplLanguage() ]);
00079
00080
00081 $graph->title->setFont(FF_FONT1, FS_BOLD);
00082
00083
00084 $bplot = new PiePlot3D($aDataX);
00085
00086 $bplot->setSize(0.4);
00087 $bplot->setCenter(0.5, 0.32);
00088
00089
00090 $bplot->explodeAll(10);
00091 $iUserCount = 0;
00092 foreach ($aDataX as $iVal)
00093 $iUserCount += $iVal;
00094 for ($iCtr = 0; $iCtr < count($aDataX); $iCtr++) {
00095 $iSLeng = strlen($aDataY[$iCtr]);
00096 if ($iSLeng > 20) {
00097 if ($iSLeng > 23)
00098 $aDataY[$iCtr] = trim(substr($aDataY[$iCtr], 0, 20))."...";
00099
00100 }
00101 $aDataY[$iCtr] .= " - ".$aDataX[$iCtr]." Kund.";
00102 }
00103 $bplot->setLegends($aDataY);
00104
00105 if (count($aDataX) > 10) {
00106 $graph->legend->pos(0.49, 0.66, 'center');
00107 $graph->legend->setFont(FF_FONT0, FS_NORMAL);
00108 $graph->legend->setColumns(4);
00109 } else {
00110 $graph->legend->pos(0.49, 0.70, 'center');
00111 $graph->legend->setFont(FF_FONT1, FS_NORMAL);
00112 $graph->legend->setColumns(2);
00113 }
00114
00115 $graph->add($bplot);
00116
00117
00118 $graph->stroke();
00119 }
00120 }
00121 }