added recomputing of home compute field on cron
This commit is contained in:
@@ -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);
|
||||
// }
|
||||
|
Reference in New Issue
Block a user