File: D:/web/matomo.vdk/plugins/Actions/RecordBuilders/SearchCategories.php
<?php
/**
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
namespace Piwik\Plugins\Actions\RecordBuilders;
use Piwik\ArchiveProcessor;
use Piwik\ArchiveProcessor\Record;
use Piwik\DataTable;
use Piwik\Plugins\Actions\Archiver;
use Piwik\Plugins\Actions\ArchivingHelper;
class SearchCategories extends ArchiveProcessor\RecordBuilder
{
protected function aggregate(ArchiveProcessor $archiveProcessor): array
{
$logAggregator = $archiveProcessor->getLogAggregator();
$query = $logAggregator->queryActionsByDimension(['search_cat'], "%s.search_cat != '' AND %s.search_cat IS NOT NULL");
$table = new DataTable();
while ($row = $query->fetch()) {
$label = $row['search_cat'];
unset($row['search_cat']);
$row = new DataTable\Row([DataTable\Row::COLUMNS => ['label' => $label] + $row]);
$table->addRow($row);
}
return [
Archiver::SITE_SEARCH_CATEGORY_RECORD_NAME => $table,
];
}
public function getRecordMetadata(ArchiveProcessor $archiveProcessor): array
{
return [
Record::make(Record::TYPE_BLOB, Archiver::SITE_SEARCH_CATEGORY_RECORD_NAME)
->setMaxRowsInTable(ArchivingHelper::$maximumRowsInDataTableSiteSearch),
];
}
public function isEnabled(ArchiveProcessor $archiveProcessor): bool
{
return $archiveProcessor->getParams()->getSite()->isSiteSearchEnabled();
}
}