diff --git a/panopoly_magic.module b/panopoly_magic.module index c92e6f4..62d2db1 100644 --- a/panopoly_magic.module +++ b/panopoly_magic.module @@ -276,6 +276,7 @@ function panopoly_magic_form_alter(&$form, &$form_state, $form_id) { $entity = $form_state['entity']; // Copy hardcoded fields. + $entity->fpid = NULL; $entity->title = $form_state['values']['title']; $entity->link = $form_state['values']['link']; $entity->path = $form_state['values']['path']; @@ -292,6 +293,7 @@ function panopoly_magic_form_alter(&$form, &$form_state, $form_id) { $entity->log = $form_state['values']['log']; } + field_attach_form_validate('fieldable_panels_pane', $entity, $form, $form_state); field_attach_submit('fieldable_panels_pane', $entity, $form, $form_state); // @@ -533,6 +535,11 @@ function panopoly_magic_render_fieldable_panels_pane_preview($type, $subtype, $c } } + // Some magic necessary to make sure fields are in the same state they + // would be in if they were loaded from the database. Found this by looking + // at how node generates it's previews in node_preview(). + _field_invoke_multiple('load', 'fieldable_panels_pane', array($entity->fpid => $entity)); + $view_mode = isset($conf['view_mode']) ? $conf['view_mode'] : 'full'; $block->content = fieldable_panels_panes_view($entity, $view_mode);