X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=web%2Fmodules%2Fcontrib%2Fdrupalmoduleupgrader%2Fsrc%2FPlugin%2FDMU%2FConverter%2FEntityHooks.php;fp=web%2Fmodules%2Fcontrib%2Fdrupalmoduleupgrader%2Fsrc%2FPlugin%2FDMU%2FConverter%2FEntityHooks.php;h=ee8a6f68404358a75d280bd60c32d9832f8bb1aa;hp=0000000000000000000000000000000000000000;hb=8acec36f19c470dfcda1ae2336826a782f41874c;hpb=e0411c4e83ba0d079034db83c3f7f55be24a0e35 diff --git a/web/modules/contrib/drupalmoduleupgrader/src/Plugin/DMU/Converter/EntityHooks.php b/web/modules/contrib/drupalmoduleupgrader/src/Plugin/DMU/Converter/EntityHooks.php new file mode 100644 index 000000000..ee8a6f684 --- /dev/null +++ b/web/modules/contrib/drupalmoduleupgrader/src/Plugin/DMU/Converter/EntityHooks.php @@ -0,0 +1,104 @@ +rewriters = $rewriters; + } + + /** + * {@inheritdoc} + */ + public function convert(TargetInterface $target, $hook = NULL, $index = 0, $rewriter_id = NULL) { + $indexer = $target->getIndexer('function'); + + if (isset($hook)) { + if ($indexer->has($hook)) { + if (empty($rewriter_id)) { + // Extract the entity type from the hook (e.g. 'hook_node_delete'). + preg_match('/^hook_(.+)_[a-z]+$/', $hook, $matches); + $rewriter_id = '_rewriter:' . $matches[1]; + } + $rewriter = $this->rewriters->createInstance($rewriter_id); + $this->rewriteFunction($rewriter, $indexer->get($hook)->getParameterAtIndex($index), $target); + } + } + else { + $this->convert($target, 'hook_comment_delete'); + $this->convert($target, 'hook_comment_insert'); + $this->convert($target, 'hook_comment_presave'); + $this->convert($target, 'hook_comment_update'); + $this->convert($target, 'hook_node_access'); + $this->convert($target, 'hook_node_access', 2, '_rewriter:account'); + $this->convert($target, 'hook_node_access_records', 0, '_rewriter:node'); + $this->convert($target, 'hook_node_access_records_alter', 1, '_rewriter:node'); + $this->convert($target, 'hook_node_delete'); + $this->convert($target, 'hook_node_grants', 0, '_rewriter:account'); + $this->convert($target, 'hook_node_grants_alter', 1, '_rewriter:account'); + $this->convert($target, 'hook_node_insert'); + $this->convert($target, 'hook_node_presave'); + $this->convert($target, 'hook_node_revision_delete'); + $this->convert($target, 'hook_node_search_result'); + $this->convert($target, 'hook_node_submit'); + $this->convert($target, 'hook_node_submit', 2, 'form_state'); + $this->convert($target, 'hook_node_update'); + $this->convert($target, 'hook_node_update_index'); + $this->convert($target, 'hook_node_validate'); + $this->convert($target, 'hook_node_validate', 2, 'form_state'); + $this->convert($target, 'hook_taxonomy_term_delete'); + $this->convert($target, 'hook_taxonomy_term_insert'); + $this->convert($target, 'hook_taxonomy_term_presave'); + $this->convert($target, 'hook_taxonomy_term_update'); + $this->convert($target, 'hook_user_delete'); + $this->convert($target, 'hook_user_logout'); + } + } + +}