]> _ Git - fluidbook-toolbox.git/commitdiff
wip #6015 @1
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Thu, 22 Jun 2023 19:02:16 +0000 (21:02 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Thu, 22 Jun 2023 19:02:16 +0000 (21:02 +0200)
app/Fluidbook/Stats.php
resources/views/fluidbook_stats/stats.blade.php

index ae9265ac02726efc7a4aa6663288153ec0c0e6a9..f6b2b8ad9b1f1d244d558adda4fdd3e1ceeee874 100644 (file)
@@ -513,39 +513,60 @@ class Stats extends Reporting
         $undefined = ['Nom d\'évènement indéfini'];
 
         $res = [];
-        foreach ($types as $type => $actions) {
-            $data = $this->apiCall('Events.getName', ['segment' => 'eventCategory==' . $type, 'secondaryDimension' => 'eventAction', 'flat' => 1, 'expanded' => 1]);
-            foreach ($data as $day => $events) {
-                foreach ($events as $event) {
-                    if (!in_array($event['Events_EventAction'], $actions)) {
-                        continue;
-                    }
-                    if (in_array($event['Events_EventName'], $undefined)) {
-                        continue;
-                    }
-                    $e = explode('|:|', $event['Events_EventName'], 2);
-                    $page = '';
-                    if (count($e) == 2) {
-                        $page = $e[1];
-                        $label = $e[0];
-                    } else {
-                        $label = $e[0];
-                    }
-                    if($page){
-                        $page=$this->_getPageGroup($page);
-                    }
-                    if (!isset($res[$label])) {
-                        $res[$label] = ['type' => $type, 'nb' => 0, 'pages' => []];
-                    }
-                    $res[$label]['nb'] += $event['nb_events'];
-                    if ($page && !in_array($page, $res[$label]['pages'])) {
-                        $res[$label]['pages'][] = $page;
-                        sort($res[$label]['pages']);
-                    }
+
+        $categoryByName = [];
+        $data = $this->apiCall('Events.getCategory', ['flat' => 1, 'expanded' => 1, 'secondaryDimension' => 'eventName']);
+        foreach ($data as $day => $events) {
+            foreach ($events as $event) {
+                if (!isset($types[$event['Events_EventCategory']])) {
+                    continue;
+                }
+                if (!isset($categoryByName[$event['Events_EventName']])) {
+                    $categoryByName[$event['Events_EventName']] = $event['Events_EventCategory'];
                 }
+            }
+        }
 
+        $data = $this->apiCall('Events.getName', ['flat' => 1, 'expanded' => 1, 'secondaryDimension' => 'eventAction']);
+
+        foreach ($data as $day => $events) {
+            foreach ($events as $event) {
+                $name = $event['Events_EventName'];
+
+                if (in_array($event['Events_EventName'], $undefined)) {
+                    continue;
+                }
+                if (!isset($categoryByName[$name])) {
+                    continue;
+                }
+                $type = $categoryByName[$name];
+                $actions = $types[$type];
+                $action = $event['Events_EventAction'];
+                if (!in_array($action, $actions)) {
+                    continue;
+                }
+                $e = explode('|:|', $name, 2);
+                $page = '';
+                if (count($e) == 2) {
+                    $page = $e[1];
+                    $label = $e[0];
+                } else {
+                    $label = $e[0];
+                }
+                if ($page) {
+                    $page = $this->_getPageGroup($page);
+                }
+                if (!isset($res[$label])) {
+                    $res[$label] = ['type' => $type, 'nb' => 0, 'pages' => []];
+                }
+                $res[$label]['nb'] += $event['nb_events'];
+                if ($page && !in_array($page, $res[$label]['pages'])) {
+                    $res[$label]['pages'][] = $page;
+                    sort($res[$label]['pages']);
+                }
             }
 
+
         }
 
         return collect($res)->sortByDesc('nb');
index f29aaae2afe5f8ade8d7696b29551bdbd7fb1ea6..c6f846b0af4ac19e009f42c7acf22fe900d1d119 100644 (file)
                             @if($summary_key === 'page_group')
                                 @include('fluidbook_stats.pagelink',['group'=>$page_data[$summary_key]])
                             @else
-                                <td data-name="{{ $summary_key }}"
-                                {!! is_int($page_data[$summary_key]) ? $formatter->format($page_data[$summary_key]) : $page_data[$summary_key] !!}
+                                <td data-name="{{ $summary_key }}">
+                                    {!! is_int($page_data[$summary_key]) ? $formatter->format($page_data[$summary_key]) : $page_data[$summary_key] !!}
                                 </td>
                             @endif
                         @endforeach
                 </tbody>
             </table>
 
+            @if($multimedia->isNotEmpty())
+                @php
+                    $icons=['slideshow'=>'las la-image','video'=>'las la-video'];
+                @endphp
+
+                <h3 class="mt-5">{{ __('Contenus multimédia') }}</h3>
+
+                <table class="{!! $tableClasses !!}">
+                    <thead>
+                    <tr>
+                        <th style="width: 45%;">{{ __('Contenu') }}</th>
+                        <th style="width: 40%;">{{ __('Page') }}</th>
+                        <th style="width: 15%;" class="sorttable_sorted_reverse">{{ __('Vues') }}</th>
+                    </tr>
+                    </thead>
+                    <tbody>
+                    @foreach($multimedia as $label=>$media)
+                        <tr>
+                            <td class="whitespace-nowrap" data-sort-value="{{$label }}">
+                                <i class="{{$icons[$media['type']]}}"></i> {{$label }}
+                            </td>
+                            @include('fluidbook_stats.pagelink',['group'=>$media['pages'][0]??''])
+                            <td>{{ $formatter->format($media['nb']) }}</td>
+                        </tr>
+                    @endforeach
+                    </tbody>
+                </table>
+
+            @endif
+
             {{-- Additional stats tables organised into columns (outgoing links, search keywords and countries) --}}
             {{-- Sometimes there are no stats for certain categories, so the number of columns adapts accordingly --}}
             <div class="table-columns mt-5">
                     </div>
                 @endif
 
-                @if($multimedia->isNotEmpty())
-                    @php
-                        $icons=['slideshow'=>'las la-image','video'=>'las la-video'];
-                    @endphp
-                    <div>
-                        <h3>{{ __('Contenus multimédia') }}</h3>
-
-                        <table class="{!! $tableClasses !!}">
-                            <thead>
-                            <tr>
-                                <th style="width: 45%;">{{ __('Contenu') }}</th>
-                                <th style="width: 40%;">{{ __('Page') }}</th>
-                                <th style="width: 15%;" class="sorttable_sorted_reverse">{{ __('Vues') }}</th>
-                            </tr>
-                            </thead>
-                            <tbody>
-                            @foreach($multimedia as $label=>$media)
-                                <tr>
-                                    <td class="whitespace-nowrap" data-sort-value="{{$label }}">
-                                        <i class="{{$icons[$media['type']]}}"></i> {{$label }}
-                                    </td>
-                                    @include('fluidbook_stats.pagelink',['group'=>$media['pages'][0]??''])
-                                    <td>{{ $formatter->format($media['nb']) }}</td>
-                                </tr>
-                            @endforeach
-                            </tbody>
-                        </table>
-                    </div>
-                @endif
 
             </div>