fix erros when editing a collection, and do not execute hooks out of dev interface it self

This commit is contained in:
Jacson Passold 2018-05-30 12:38:12 -03:00
parent 9e73befec8
commit 670033ef7d
1 changed files with 16 additions and 9 deletions

View File

@ -22,11 +22,9 @@ class DevInterface {
}
private function __construct() {
add_action('add_meta_boxes', array(&$this, 'register_metaboxes'));
add_action('save_post', array(&$this, 'save_post'), 10, 2);
add_action('admin_enqueue_scripts', array(&$this, 'add_admin_js'));
add_action('admin_init', [$this, 'admin_init']);
$Tainacan_Collections = \Tainacan\Repositories\Collections::get_instance();
$Tainacan_Filters = \Tainacan\Repositories\Filters::get_instance();
$Tainacan_Logs = \Tainacan\Repositories\Logs::get_instance();
@ -42,6 +40,14 @@ class DevInterface {
}
public function admin_init() {
if ( function_exists('get_current_screen')) { // check if is in wordpress builtin admin screen
add_action('add_meta_boxes', array(&$this, 'register_metaboxes'));
add_action('save_post', array(&$this, 'save_post'), 10, 2);
add_action('admin_enqueue_scripts', array(&$this, 'add_admin_js'));
}
}
function add_admin_js() {
global $TAINACAN_BASE_URL;
$components = ( has_filter( 'tainacan_register_web_components' ) ) ? apply_filters('tainacan_register_web_components') : [];
@ -441,7 +447,7 @@ class DevInterface {
}
$entity->set_mapped_property($prop, $value);
$entity->set($prop, $value);
if ($entity->validate_prop($prop)) {
@ -459,8 +465,8 @@ class DevInterface {
update_post_meta($post_id, 'filter_type_options', $_POST['filter_type_'.strtolower( $value ) ] );
update_post_meta($post_id, 'filter_type', wp_slash( get_class( new $class() ) ) );
} elseif ($mapped['map'] == 'meta' || $mapped['map'] == 'meta_multi') {
$repo->insert_metadata($entity, $prop);
$diffs = [];
$repo->insert_metadata($entity, $prop, $diffs);
}
}
@ -493,7 +499,8 @@ class DevInterface {
// for new Items
if (!$entity->get_collection_id()) {
$entity->set_collection($cpts[$post_type]);
$Tainacan_Items->insert_metadata($entity, 'collection_id');
$diffs = [];
$Tainacan_Items->insert_metadata($entity, 'collection_id', $diffs);
}