DataConverters
7 months ago
Exceptions
4 years ago
Importers
7 months ago
Logger
4 years ago
Config.php
4 years ago
Geoip2.php
7 months ago
Importer.php
5 months ago
IncompatibleWpStatisticsVersion.php
7 months ago
RecordInserter.php
4 years ago
RecordInserter.php
45 lines
| 1 | <?php |
| 2 | |
| 3 | namespace WpMatomo\WpStatistics; |
| 4 | |
| 5 | use Piwik\DataAccess\ArchiveWriter; |
| 6 | use Piwik\DataTable; |
| 7 | use Piwik\Metrics; |
| 8 | use WpMatomo\WpStatistics\Importers\Actions\RecordImporter; |
| 9 | /** |
| 10 | * @package WpMatomo |
| 11 | * @subpackage WpStatisticsImport |
| 12 | */ |
| 13 | class RecordInserter { |
| 14 | |
| 15 | /** |
| 16 | * @var ArchiveWriter |
| 17 | */ |
| 18 | private $archive_writer; |
| 19 | |
| 20 | public function __construct( ArchiveWriter $writer ) { |
| 21 | $this->archive_writer = $writer; |
| 22 | } |
| 23 | |
| 24 | public function insert_record( $record_name, DataTable $record, $maximum_rows_in_data_table = null, |
| 25 | $maximum_rows_in_sub_data_table = null, $column_to_sort_by_before_truncation = 'nb_visits' ) { |
| 26 | $record->setMetadata( RecordImporter::IS_IMPORTED_FROM_WPSTATISTICS_METADATA_NAME, 1 ); |
| 27 | |
| 28 | $blob = $record->getSerialized( $maximum_rows_in_data_table, $maximum_rows_in_sub_data_table, $column_to_sort_by_before_truncation ); |
| 29 | $this->insert_blob_record( $record_name, $blob ); |
| 30 | } |
| 31 | |
| 32 | public function insert_blob_record( $name, $values ) { |
| 33 | $this->archive_writer->insertBlobRecord( $name, $values ); |
| 34 | } |
| 35 | |
| 36 | public function insert_numeric_records( array $values ) { |
| 37 | foreach ( $values as $name => $value ) { |
| 38 | if ( is_numeric( $name ) ) { |
| 39 | $name = Metrics::getReadableColumnName( $name ); |
| 40 | } |
| 41 | $this->archive_writer->insertRecord( $name, $value ); |
| 42 | } |
| 43 | } |
| 44 | } |
| 45 |