Advertisement
Guest User

Untitled

a guest
Dec 12th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.68 KB | None | 0 0
  1. private static function _getGraphCommunityDatas($options, $dataTypes = array(), $group = null)
  2. {
  3. if (Sys::isNull($em = DB::getEm())) {
  4. return false;
  5. }
  6.  
  7. if (Sys::notArray($colors = Sys::getElt($options, "colors"))) {
  8. $colors = self::$arrayColors;
  9. }
  10.  
  11. if (isset($dataTypes['in'])) {
  12. $dataTypes['in'] = array_map(array($dbConn, 'quote'), $dataTypes['in']);
  13. $sqlAdd1 = "AND dt1.uik in ('". implode("', '", $dataTypes['in']) ."') ";
  14. $sqlAdd2 = "AND dt2.uik in ('". implode("', '", $dataTypes['in']) ."') ";
  15. }elseif (isset($dataTypes['out'])) {
  16. $dataTypes['out'] = array_map(array($dbConn, 'quote'), $dataTypes['out']);
  17. $sqlAdd1 = "AND dt1.uik not in ('". implode("', '", $dataTypes['out']) ."') ";
  18. $sqlAdd2 = "AND dt2.uik not in ('". implode("', '", $dataTypes['out']) ."') ";
  19. }elseif (isset($group)) {
  20. $sqlAddGroup = "AND r.record_source = 'group' AND r.idrecord_source !=" . $group;
  21. $sqlAdd1 = $sqlAdd2 = '';
  22. }else{
  23. $sqlAdd1 = $sqlAdd2 = $sqlAddGroup = '';
  24. }
  25.  
  26. //Ticket_30531 : AND u.no_logs <> 1
  27. $sql = '
  28. SELECT
  29. l.iduser,
  30. u.firstname,
  31. u.lastname ,
  32. l.type_log as typeLog,
  33. COUNT(l.type_log) as countLog
  34. FROM
  35. logs l
  36. INNER JOIN
  37. users u ON u.iduser = l.iduser
  38. AND u.iduser_delete is null
  39. AND u.type != \'sadmin\'
  40. AND u.type != \'dev\'
  41. AND u.`is_yoomap` is null
  42. AND u.no_logs <> 1
  43. LEFT JOIN
  44. relations r ON r.idrecord_destination = u.iduser
  45. AND r.`iduser_delete` is null
  46. LEFT JOIN
  47. datas d ON d.`iddata` = l.`idrecord`
  48. AND l.`type_record` = \'data\'
  49. AND d.`iduser_delete` is null
  50. LEFT JOIN datas_types dt1 ON dt1.iddata_type = d.`iddata_type`
  51. ' . $sqlAdd1 . '
  52. AND dt1.`iduser_delete` is null
  53. LEFT JOIN
  54. discussions dis ON dis.iddiscussion = l.idrecord
  55. AND l.type_record = \'discussion\'
  56. AND dis.type_record = \'data\'
  57. AND dis.`iduser_delete` is null
  58. LEFT JOIN
  59. datas ds ON dis.idrecord = ds.iddata
  60. AND ds.`iduser_delete` is null
  61. LEFT JOIN datas_types dt2 ON dt2.iddata_type = ds.`iddata_type`
  62. ' . $sqlAdd2 . '
  63. AND dt2.`iduser_delete` is null
  64. WHERE
  65. l.type_log IN (\'login\', \'consult-data\', \'create-discussion\', \'post-comment\', \'create-data\', \'update-data\', \'like-data\', \'like-discussion\')
  66. AND
  67. CASE WHEN
  68. l.`type_log` in (\'consult-data\', \'create-data\', \'update-data\', \'like-data\', \'like-discussion\')
  69. THEN
  70. dt1.`iddata_type` IS NOT NULL
  71. ELSE
  72. CASE WHEN
  73. l.`type_log` in (\'create-discussion\', \'post-comment\')
  74. THEN
  75. dt2.`iddata_type` IS NOT NULL
  76. ELSE
  77. d.iddata is null AND ds.iddata is null
  78. END
  79. END ' . $sqlAddGroup . '
  80. GROUP BY
  81. l.iduser, u.firstname, u.lastname, l.type_log
  82. ORDER BY
  83. l.iduser ASC;';
  84.  
  85. $results = $em->getConnection()->fetchAll($sql);
  86.  
  87. $tmp1 = $tmp2 = array();
  88. foreach ($results as $row) {
  89. $iduser = $row["iduser"];
  90. $typeLog = $row["typeLog"];
  91. $countLog = $row["countLog"];
  92. if ($typeLog=="post-comment") {
  93. $typeLog = "create-discussion";
  94. }
  95. if ($typeLog=="like-discussion") {
  96. $typeLog = "like-data";
  97. }
  98.  
  99. if (!isset($tmp2[$typeLog])) {
  100. $color = $colors[count($tmp2) % count($colors)];
  101. $tmp2[$typeLog] = array("typeLog"=>$typeLog, "title"=>self::_getLogTitle($typeLog), "color"=>$color);
  102. }
  103.  
  104. if (isset($tmp1[$iduser])) {
  105. if (isset($tmp1[$iduser][$typeLog])) {
  106. $tmp1[$iduser][$typeLog]+=$countLog;
  107. $tmp1[$iduser]["count"]+=$countLog;
  108. } else {
  109. $tmp1[$iduser][$typeLog] = $countLog;
  110. $tmp1[$iduser]["count"]+=$countLog;
  111. }
  112. } else {
  113. $tmp1[$iduser] = array("category"=>$row["firstname"]." ".$row["lastname"], $typeLog=>$countLog, "count"=>$countLog);
  114. }
  115. }
  116.  
  117. $datas = $graphs = array();
  118.  
  119. foreach (Sys::asort($tmp1, "count", true) as $element) {
  120. $datas[] = $element;
  121. }
  122.  
  123. foreach ($tmp2 as $element) {
  124. $graphs[] = array(
  125. "type"=>"column",
  126.  
  127. "title"=>Sys::getElt($element, "title"),
  128. "balloonText"=>"[[value]] x [[title]]",
  129. "labelText"=>"[[value]]",
  130. "color"=>"#000000",
  131.  
  132. "valueField"=>Sys::getElt($element, "typeLog"),
  133.  
  134. "lineAlpha"=>0.5,
  135. "lineColor"=>"#ffffff",
  136.  
  137. "fillAlphas"=>1,
  138. "fillColors"=>array(Sys::getElt($element, "color"))
  139. );
  140. }
  141.  
  142. return array($datas, $graphs);
  143. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement