updated core from 8.4 to 8.5 : bug with login_destination
This commit is contained in:
@@ -194,11 +194,7 @@ class StatisticsPopularBlock extends BlockBase implements ContainerFactoryPlugin
|
||||
$items = [];
|
||||
foreach ($nids as $nid) {
|
||||
$node = $this->entityRepository->getTranslationFromContext($nodes[$nid]);
|
||||
$item = [
|
||||
'#type' => 'link',
|
||||
'#title' => $node->getTitle(),
|
||||
'#url' => $node->urlInfo('canonical'),
|
||||
];
|
||||
$item = $node->toLink()->toRenderable();
|
||||
$this->renderer->addCacheableDependency($item, $node);
|
||||
$items[] = $item;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,96 @@
|
||||
<?php
|
||||
|
||||
namespace Drupal\statistics\Plugin\migrate\destination;
|
||||
|
||||
use Drupal\Core\Database\Connection;
|
||||
use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
|
||||
use Drupal\migrate\Plugin\migrate\destination\DestinationBase;
|
||||
use Drupal\migrate\Plugin\MigrationInterface;
|
||||
use Drupal\migrate\Row;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
|
||||
/**
|
||||
* Destination for node counter.
|
||||
*
|
||||
* @MigrateDestination(
|
||||
* id = "node_counter",
|
||||
* destination_module = "statistics"
|
||||
* )
|
||||
*/
|
||||
class NodeCounter extends DestinationBase implements ContainerFactoryPluginInterface {
|
||||
|
||||
/**
|
||||
* The database connection.
|
||||
*
|
||||
* @var \Drupal\Core\Database\Connection
|
||||
*/
|
||||
protected $connection;
|
||||
|
||||
/**
|
||||
* Constructs a node counter plugin.
|
||||
*
|
||||
* @param array $configuration
|
||||
* Plugin configuration.
|
||||
* @param string $plugin_id
|
||||
* The plugin ID.
|
||||
* @param mixed $plugin_definition
|
||||
* The plugin definition.
|
||||
* @param \Drupal\migrate\Plugin\MigrationInterface $migration
|
||||
* The current migration.
|
||||
* @param \Drupal\Core\Database\Connection $connection
|
||||
* The database connection.
|
||||
*/
|
||||
public function __construct(array $configuration, $plugin_id, $plugin_definition, MigrationInterface $migration, Connection $connection) {
|
||||
parent::__construct($configuration, $plugin_id, $plugin_definition, $migration);
|
||||
$this->connection = $connection;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition, MigrationInterface $migration = NULL) {
|
||||
return new static(
|
||||
$configuration,
|
||||
$plugin_id,
|
||||
$plugin_definition,
|
||||
$migration,
|
||||
$container->get('database')
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getIds() {
|
||||
return ['nid' => ['type' => 'integer']];
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function fields(MigrationInterface $migration = NULL) {
|
||||
return [
|
||||
'nid' => $this->t('The ID of the node to which these statistics apply.'),
|
||||
'totalcount' => $this->t('The total number of times the node has been viewed.'),
|
||||
'daycount' => $this->t('The total number of times the node has been viewed today.'),
|
||||
'timestamp' => $this->t('The most recent time the node has been viewed.'),
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function import(Row $row, array $old_destination_id_values = []) {
|
||||
$this->connection
|
||||
->insert('node_counter')
|
||||
->fields([
|
||||
'nid' => $row->getDestinationProperty('nid'),
|
||||
'daycount' => $row->getDestinationProperty('daycount'),
|
||||
'totalcount' => $row->getDestinationProperty('totalcount'),
|
||||
'timestamp' => $row->getDestinationProperty('timestamp'),
|
||||
])
|
||||
->execute();
|
||||
return [$row->getDestinationProperty('nid')];
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
namespace Drupal\statistics\Plugin\migrate\source;
|
||||
|
||||
use Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase;
|
||||
|
||||
/**
|
||||
* Node counter source from database.
|
||||
*
|
||||
* @MigrateSource(
|
||||
* id = "node_counter",
|
||||
* source_module = "statistics"
|
||||
* )
|
||||
*/
|
||||
class NodeCounter extends DrupalSqlBase {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function query() {
|
||||
return $this->select('node_counter', 'nc')->fields('nc');
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function fields() {
|
||||
return [
|
||||
'nid' => $this->t('The node ID.'),
|
||||
'totalcount' => $this->t('The total number of times the node has been viewed.'),
|
||||
'daycount' => $this->t('The total number of times the node has been viewed today.'),
|
||||
'timestamp' => $this->t('The most recent time the node has been viewed.'),
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getIds() {
|
||||
$ids['nid']['type'] = 'integer';
|
||||
return $ids;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -10,6 +10,8 @@ use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
|
||||
/**
|
||||
* Configure statistics settings for this site.
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
class StatisticsSettingsForm extends ConfigFormBase {
|
||||
|
||||
|
||||
@@ -42,8 +42,8 @@ class IntegrationTest extends ViewTestBase {
|
||||
*/
|
||||
public static $testViews = ['test_statistics_integration'];
|
||||
|
||||
protected function setUp() {
|
||||
parent::setUp();
|
||||
protected function setUp($import_test_views = TRUE) {
|
||||
parent::setUp($import_test_views);
|
||||
|
||||
ViewTestData::createTestViews(get_class($this), ['statistics_test_views']);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user