public function PanelizerEntityDefault::clone_panelizer in Panelizer 7.2
Same name and namespace in other branches
- 7.3 plugins/entity/PanelizerEntityDefault.class.php \PanelizerEntityDefault::clone_panelizer()
Create a new, scrubbed version of a panelizer object.
2 calls to PanelizerEntityDefault::clone_panelizer()
- PanelizerEntityDefault::hook_entity_insert in plugins/
entity/ PanelizerEntityDefault.class.php - PanelizerEntityDefault::hook_entity_update in plugins/
entity/ PanelizerEntityDefault.class.php
File
- plugins/
entity/ PanelizerEntityDefault.class.php, line 976 - Base class for the Panelizer Entity plugin.
Class
- PanelizerEntityDefault
- Base class for the Panelizer Entity plugin.
Code
public function clone_panelizer($panelizer, $entity) {
list($entity_id, $revision_id, $bundle) = entity_extract_ids($this->entity_type, $entity);
$panelizer_clone = clone $panelizer;
// In order to ensure we don't actually use and modify the default display,
// we export and re-import it.
$code = panels_export_display($panelizer->display);
ob_start();
eval($code);
ob_end_clean();
$panelizer_clone->display = $display;
$panelizer_clone->did = NULL;
$panelizer_clone->name = NULL;
$panelizer_clone->entity_type = $this->entity_type;
$panelizer_clone->entity_id = $entity_id;
// The (int) ensures that entities that do not support revisions work
// since the revision_id cannot be NULL.
$panelizer_clone->revision_id = (int) $revision_id;
return $panelizer_clone;
}