Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private static function _getGraphCommunityDatas($options, $dataTypes = array(), $group = null)
- {
- if (Sys::isNull($em = DB::getEm())) {
- return false;
- }
- if (Sys::notArray($colors = Sys::getElt($options, "colors"))) {
- $colors = self::$arrayColors;
- }
- if (isset($dataTypes['in'])) {
- $dataTypes['in'] = array_map(array($dbConn, 'quote'), $dataTypes['in']);
- $sqlAdd1 = "AND dt1.uik in ('". implode("', '", $dataTypes['in']) ."') ";
- $sqlAdd2 = "AND dt2.uik in ('". implode("', '", $dataTypes['in']) ."') ";
- }elseif (isset($dataTypes['out'])) {
- $dataTypes['out'] = array_map(array($dbConn, 'quote'), $dataTypes['out']);
- $sqlAdd1 = "AND dt1.uik not in ('". implode("', '", $dataTypes['out']) ."') ";
- $sqlAdd2 = "AND dt2.uik not in ('". implode("', '", $dataTypes['out']) ."') ";
- }elseif (isset($group)) {
- $sqlAddGroup = "AND r.record_source = 'group' AND r.idrecord_source !=" . $group;
- $sqlAdd1 = $sqlAdd2 = '';
- }else{
- $sqlAdd1 = $sqlAdd2 = $sqlAddGroup = '';
- }
- //Ticket_30531 : AND u.no_logs <> 1
- $sql = '
- SELECT
- l.iduser,
- u.firstname,
- u.lastname ,
- l.type_log as typeLog,
- COUNT(l.type_log) as countLog
- FROM
- logs l
- INNER JOIN
- users u ON u.iduser = l.iduser
- AND u.iduser_delete is null
- AND u.type != \'sadmin\'
- AND u.type != \'dev\'
- AND u.`is_yoomap` is null
- AND u.no_logs <> 1
- LEFT JOIN
- relations r ON r.idrecord_destination = u.iduser
- AND r.`iduser_delete` is null
- LEFT JOIN
- datas d ON d.`iddata` = l.`idrecord`
- AND l.`type_record` = \'data\'
- AND d.`iduser_delete` is null
- LEFT JOIN datas_types dt1 ON dt1.iddata_type = d.`iddata_type`
- ' . $sqlAdd1 . '
- AND dt1.`iduser_delete` is null
- LEFT JOIN
- discussions dis ON dis.iddiscussion = l.idrecord
- AND l.type_record = \'discussion\'
- AND dis.type_record = \'data\'
- AND dis.`iduser_delete` is null
- LEFT JOIN
- datas ds ON dis.idrecord = ds.iddata
- AND ds.`iduser_delete` is null
- LEFT JOIN datas_types dt2 ON dt2.iddata_type = ds.`iddata_type`
- ' . $sqlAdd2 . '
- AND dt2.`iduser_delete` is null
- WHERE
- l.type_log IN (\'login\', \'consult-data\', \'create-discussion\', \'post-comment\', \'create-data\', \'update-data\', \'like-data\', \'like-discussion\')
- AND
- CASE WHEN
- l.`type_log` in (\'consult-data\', \'create-data\', \'update-data\', \'like-data\', \'like-discussion\')
- THEN
- dt1.`iddata_type` IS NOT NULL
- ELSE
- CASE WHEN
- l.`type_log` in (\'create-discussion\', \'post-comment\')
- THEN
- dt2.`iddata_type` IS NOT NULL
- ELSE
- d.iddata is null AND ds.iddata is null
- END
- END ' . $sqlAddGroup . '
- GROUP BY
- l.iduser, u.firstname, u.lastname, l.type_log
- ORDER BY
- l.iduser ASC;';
- $results = $em->getConnection()->fetchAll($sql);
- $tmp1 = $tmp2 = array();
- foreach ($results as $row) {
- $iduser = $row["iduser"];
- $typeLog = $row["typeLog"];
- $countLog = $row["countLog"];
- if ($typeLog=="post-comment") {
- $typeLog = "create-discussion";
- }
- if ($typeLog=="like-discussion") {
- $typeLog = "like-data";
- }
- if (!isset($tmp2[$typeLog])) {
- $color = $colors[count($tmp2) % count($colors)];
- $tmp2[$typeLog] = array("typeLog"=>$typeLog, "title"=>self::_getLogTitle($typeLog), "color"=>$color);
- }
- if (isset($tmp1[$iduser])) {
- if (isset($tmp1[$iduser][$typeLog])) {
- $tmp1[$iduser][$typeLog]+=$countLog;
- $tmp1[$iduser]["count"]+=$countLog;
- } else {
- $tmp1[$iduser][$typeLog] = $countLog;
- $tmp1[$iduser]["count"]+=$countLog;
- }
- } else {
- $tmp1[$iduser] = array("category"=>$row["firstname"]." ".$row["lastname"], $typeLog=>$countLog, "count"=>$countLog);
- }
- }
- $datas = $graphs = array();
- foreach (Sys::asort($tmp1, "count", true) as $element) {
- $datas[] = $element;
- }
- foreach ($tmp2 as $element) {
- $graphs[] = array(
- "type"=>"column",
- "title"=>Sys::getElt($element, "title"),
- "balloonText"=>"[[value]] x [[title]]",
- "labelText"=>"[[value]]",
- "color"=>"#000000",
- "valueField"=>Sys::getElt($element, "typeLog"),
- "lineAlpha"=>0.5,
- "lineColor"=>"#ffffff",
- "fillAlphas"=>1,
- "fillColors"=>array(Sys::getElt($element, "color"))
- );
- }
- return array($datas, $graphs);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement