From: Vincent Vanwaelscappel Date: Thu, 22 Jun 2023 17:54:29 +0000 (+0200) Subject: wip #6015 @1 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=bac65d162bd3b64aff8d446725277d04afa9e9c0;p=fluidbook-toolbox.git wip #6015 @1 --- diff --git a/app/Fluidbook/Stats.php b/app/Fluidbook/Stats.php index 562fd35a3..ae9265ac0 100644 --- a/app/Fluidbook/Stats.php +++ b/app/Fluidbook/Stats.php @@ -507,38 +507,43 @@ class Stats extends Reporting protected function _processMultimedia() { - $types = ['slideshow' => ['show'], 'video' => ['play', 'show']]; - - $typesSubtable = []; - foreach ($this->apiCall('Events.getCategory') as $period) { - foreach ($period as $category) { - $typesSubtable[$category['label']] = $category['idsubdatatable']; - } - } + $this->setCacheDuration(1); + $types = ['slideshow' => ['show'], 'video' => ['play']]; + $undefined = ['Nom d\'évènement indéfini']; $res = []; foreach ($types as $type => $actions) { - foreach ($actions as $action) { - $data = $this->apiCall('Events.getNameFromCategoryId', ['idSubtable' => $typesSubtable[$type], 'segment' => 'eventAction==' . $action]); - foreach ($data as $day => $events) { - foreach ($events as $event) { - $label = $event['label']; - $e = explode('|:|', $label, 2); - $page = ''; - if (count($e) == 2) { - $page = $e[1]; - } - 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']); - } + $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']); } } + } } @@ -605,23 +610,7 @@ class Stats extends Reporting $res = []; for ($page_number = 0; $page_number <= $this->fluidbook->getPagesNumber(); $page_number++) { $aliases = $pagesAlises[$page_number] ?? []; - - if ($this->fluidbook->isOnePage()) { - $page_group = $page_number; - } else { - if ($page_number <= 1) { - $page_group = 1; - } elseif ($page_number == $this->fluidbook->getPagesNumber() && $this->fluidbook->getPagesNumber() % 2 == 0) { - $page_group = $page_number; - } else { - $start_page = $page_number; - if ($page_number % 2 == 1) { - $start_page--; - } - $following_page = $start_page + 1; - $page_group = $start_page . '—' . $following_page; - } - } + $page_group = $this->_getPageGroup($page_number); $single_page_data = [ 'page_group' => $page_group, @@ -642,6 +631,26 @@ class Stats extends Reporting return $res; } + protected function _getPageGroup($page_number) + { + if ($this->fluidbook->isOnePage()) { + return $page_number; + } else { + if ($page_number <= 1) { + return 1; + } elseif ($page_number == $this->fluidbook->getPagesNumber() && $this->fluidbook->getPagesNumber() % 2 == 0) { + return $page_number; + } else { + $start_page = $page_number; + if ($page_number % 2 == 1) { + $start_page--; + } + $following_page = $start_page + 1; + return $start_page . '—' . $following_page; + } + } + } + protected function _sumArrays() { $exclude = ['page_number', 'page_group']; diff --git a/resources/views/fluidbook_stats/pagelink.blade.php b/resources/views/fluidbook_stats/pagelink.blade.php new file mode 100644 index 000000000..ec7a257a7 --- /dev/null +++ b/resources/views/fluidbook_stats/pagelink.blade.php @@ -0,0 +1,26 @@ +@php + if($group && (is_string($group) || is_int($group))){ + $group=$pages[$group]; + } +@endphp + + + @if($group) + @if(count($group['page_aliases'])>0) +
+ @foreach($group['page_aliases'] as $alias) + + + {{$alias}} + + + @endforeach + @endif + {{$group['page_group']}} + @if(count($group['page_aliases'])>0) +
+ @endif + @endif + diff --git a/resources/views/fluidbook_stats/stats.blade.php b/resources/views/fluidbook_stats/stats.blade.php index 734cd8316..f29aaae2a 100644 --- a/resources/views/fluidbook_stats/stats.blade.php +++ b/resources/views/fluidbook_stats/stats.blade.php @@ -179,25 +179,13 @@ @foreach($pages as $page_group => $page_data) @foreach (array_keys($table_map['per-page']) as $summary_key) - - @if($summary_key === 'page_group') - @if(count($page_data['page_aliases'])>0) -
- @foreach($page_data['page_aliases'] as $alias) - {{$alias}} - @endforeach - @endif - {{$page_data[$summary_key]}} - @if(count($page_data['page_aliases'])>0) -
- @endif - @else - {!! is_int($page_data[$summary_key]) ? $formatter->format($page_data[$summary_key]) : $page_data[$summary_key] !!} - @endif - + @if($summary_key === 'page_group') + @include('fluidbook_stats.pagelink',['group'=>$page_data[$summary_key]]) + @else + format($page_data[$summary_key]) : $page_data[$summary_key] !!} + + @endif @endforeach @endforeach @@ -294,8 +282,8 @@ - - + + @@ -305,7 +293,7 @@ - + @include('fluidbook_stats.pagelink',['group'=>$media['pages'][0]??'']) @endforeach
{{ __('Contenu') }}{{ __('Page') }}{{ __('Contenu') }}{{ __('Page') }} {{ __('Vues') }}
{{$label }} {{implode(', ',$media['pages']) }}{{ $formatter->format($media['nb']) }}