added recomputing of home compute field on cron

This commit is contained in:
2019-05-24 15:13:14 +02:00
parent c8829ee539
commit b6b71ab9a4
9 changed files with 124 additions and 32 deletions

View File

@@ -4,22 +4,25 @@ use Drupal\Core\Field\BaseFieldDefinition;
use Drupal\Core\Field\FieldStorageDefinitionInterface;
use Drupal\mymodule\Plugin\Field\FieldType\MyFieldComputed;
/**
* Implements hook_theme().
*/
// function materio_home_theme($existing, $type, $theme, $path) {
// // @see https://www.drupal.org/docs/8/theming/twig/create-custom-twig-templates-from-custom-module
//
// return array(
// 'materio_home' => array(
// // 'render element' => '',
// 'file' => 'includes/materio_home.inc',
// 'variables' => array(
// 'frontpage_node' => NULL,
// ),
// ),
// );
// }
// https://www.drupal.org/project/drupal/issues/2916266#comment-12301574
// $key_value_factory = \Drupal::service('keyvalue');
// $field_map_kv_store = $key_value_factory->get('entity.definitions.bundle_field_map');
// $node_map = $field_map_kv_store->get('node');
// unset($node_map['field_workflow']['bundles']['breve']);
// unset($node_map['field_visuel']['bundles']['breve']);
// unset($node_map['field_video']['bundles']['breve']);
// unset($node_map['field_thesaurus']['bundles']['breve']);
// unset($node_map['field_tags']['bundles']['breve']);
// unset($node_map['field_source']['bundles']['breve']);
// unset($node_map['field_showroom']['bundles']['breve']);
// unset($node_map['field_migration']['bundles']['breve']);
// unset($node_map['field_linked_materials']['bundles']['breve']);
// unset($node_map['field_memo']['bundles']['breve']);
// $field_map_kv_store->set('node', $node_map);
/**
* Implement hook_entity_bundle_field_info().
@@ -99,6 +102,50 @@ function materio_home_entity_bundle_field_info(EntityTypeInterface $entity_type,
}
}
/**
* Implement hook_cron().
*
*/
function materio_home_cron(){
$logger = \Drupal::logger('materio_home');
// recompile every 5 minutes
// $request_time = \Drupal::time()->getRequestTime();
// if ($request_time - \Drupal::state()->get('materio_home.last_recompute') >= 300) {
// Short-running operation example, not using a queue
$query = \Drupal::entityQuery('node')
->condition('status', 1)
->condition('type', 'frontpage');
$nids = $query->execute();
$nodes = entity_load_multiple('node', $nids);
foreach ($nodes as $nid => $node) {
$logger->notice('cron | regenerating computed fields for '.$nid);
$node->save();
}
// \Drupal::state()->set('materio_home.last_recompute', $request_time);
// }
}
/**
* Implements hook_theme().
*/
// function materio_home_theme($existing, $type, $theme, $path) {
// // @see https://www.drupal.org/docs/8/theming/twig/create-custom-twig-templates-from-custom-module
//
// return array(
// 'materio_home' => array(
// // 'render element' => '',
// 'file' => 'includes/materio_home.inc',
// 'variables' => array(
// 'frontpage_node' => NULL,
// ),
// ),
// );
// }
// /**
// * implements hook_entity_extra_field_info
// *
@@ -117,19 +164,19 @@ function materio_home_entity_bundle_field_info(EntityTypeInterface $entity_type,
// // ];
// return $extra;
// }
/**
* Implements hook_install().
*/
function materio_home_install() {
$entity_type = \Drupal::service('entity_type.manager')->getDefinition('node');
\Drupal::service('entity.definition_update_manager')->updateEntityType($entity_type);
}
/**
* Implements hook_uninstall().
*/
function materio_home_uninstall() {
$entity_type = \Drupal::service('entity_type.manager')->getDefinition('node');
\Drupal::service('entity.definition_update_manager')->updateEntityType($entity_type);
}
//
// /**
// * Implements hook_install().
// */
// function materio_home_install() {
// $entity_type = \Drupal::service('entity_type.manager')->getDefinition('node');
// \Drupal::service('entity.definition_update_manager')->updateEntityType($entity_type);
// }
//
// /**
// * Implements hook_uninstall().
// */
// function materio_home_uninstall() {
// $entity_type = \Drupal::service('entity_type.manager')->getDefinition('node');
// \Drupal::service('entity.definition_update_manager')->updateEntityType($entity_type);
// }