/** * Ajax callback for deleting files. * Modified from a function used by "Verve Meta Boxes" plugin (http://goo.gl/LzYSq) * @since 1.0 * @access public */ public static function wp_ajax_delete_texta_image() { $config = array('pages' => '', 'context' => '', 'fields' => array(), 'local_images' => false); /*var_dump($config);die();*/ $my_meta = new MthemeTexameta($config); $term_id = isset($_GET['post_id']) ? intval($_GET['post_id']) : 0; $field_id = isset($_GET['field_id']) ? $_GET['field_id'] : 0; $attachment_id = isset($_GET['attachment_id']) ? intval($_GET['attachment_id']) : 0; $ok = false; $remove_meta_only = apply_filters("tax_meta_class_delete_image", true); if (strpos($field_id, '[') === false) { check_admin_referer("at-delete-mupload_" . urldecode($field_id)); if ($term_id > 0) { $my_meta->delete_tax_meta($term_id, $field_id); } if (!$remove_meta_only) { $ok = wp_delete_attachment($attachment_id); } else { $ok = true; } } else { $f = explode('[', urldecode($field_id)); $f_fiexed = array(); foreach ($f as $k => $v) { $f[$k] = str_replace(']', '', $v); } $saved = $my_meta->get_tax_meta($term_id, $f[0], true); if (isset($saved[$f[1]][$f[2]])) { unset($saved[$f[1]][$f[2]]); if ($term_id > 0) { update_post_meta($term_id, $f[0], $saved); } if (!$remove_meta_only) { $ok = wp_delete_attachment($attachment_id); } else { $ok = true; } } } if ($ok) { echo json_encode(array('status' => 'success')); die; } else { echo json_encode(array('message' => __('Cannot delete file. Something\'s wrong.', 'mtheme'))); die; } }
/** * Renders taxmeta * * @access public * @return void */ public static function renderTaxmeta($cat_type) { $my_meta = null; foreach (MthemeCore::$components['texa_meta'] as $meta_box) { if ($cat_type == $meta_box['cat_type']) { $isRepeat = false; $config = array('pages' => array($meta_box['cat_type']), 'context' => $meta_box['context'], 'fields' => array(), 'local_images' => false); /*var_dump($config);die();*/ $my_meta = new MthemeTexameta($config); foreach ($meta_box['options'] as $option) { $repeater_fields[] = null; switch ($option['type']) { case 'text': $my_meta->addText($option['prefix'] . $option['id'], array('name' => $option['name'])); if (isset($option['repeat']) && $option['repeat']) { $repeater_fields[] = $my_meta->addText($option['prefix'] . $option['id'], array('name' => $option['name']), true); $isRepeat = true; } break; case 'textarea': $my_meta->addTextarea($option['prefix'] . $option['id'], array('name' => $option['name'])); if (isset($option['repeat']) && $option['repeat']) { $repeater_fields[] = $my_meta->addTextarea($option['prefix'] . $option['id'], array('name' => $option['name'])); $isRepeat = true; } break; case 'checkbox': $my_meta->addCheckbox($option['prefix'] . $option['id'], array('name' => $option['name'])); if (isset($option['repeat']) && $option['repeat']) { $repeater_fields[] = $my_meta->addCheckbox($option['prefix'] . $option['id'], array('name' => $option['name'])); $isRepeat = true; } break; case 'select': $my_meta->addSelect($option['prefix'] . $option['id'], $option['select_options'], array('name' => $option['name'])); if (isset($option['repeat']) && $option['repeat']) { $repeater_fields[] = $my_meta->addSelect($option['prefix'] . $option['id'], $option['select_options'], array('name' => $option['name']), true); $isRepeat = true; } break; case 'radio': $my_meta->addRadio($option['prefix'] . $option['id'], $option['select_options'], array('name' => $option['name'])); if (isset($option['repeat']) && $option['repeat']) { $repeater_fields[] = $my_meta->addRadio($option['prefix'] . $option['id'], $option['select_options'], array('name' => $option['name']), true); $isRepeat = true; } break; case 'date': $my_meta->addDate($option['prefix'] . $option['id'], array('name' => $option['name'])); if (isset($option['repeat']) && $option['repeat']) { $repeater_fields[] = $my_meta->addDate($option['prefix'] . $option['id'], array('name' => $option['name']), true); $isRepeat = true; } break; case 'time': $my_meta->addTime($option['prefix'] . $option['id'], array('name' => $option['name'])); if (isset($option['repeat']) && $option['repeat']) { $repeater_fields[] = $my_meta->addTime($option['prefix'] . $option['id'], array('name' => $option['name']), true); $isRepeat = true; } break; case 'color': $my_meta->addColor($option['prefix'] . $option['id'], array('name' => $option['name'])); if (isset($option['repeat']) && $option['repeat']) { $repeater_fields[] = $my_meta->addColor($option['prefix'] . $option['id'], array('name' => $option['name']), true); $isRepeat = true; } break; case 'image': $my_meta->addImage($option['prefix'] . $option['id'], array('name' => $option['name'])); if (isset($option['repeat']) && $option['repeat']) { $repeater_fields[] = $my_meta->addImage($option['prefix'] . $option['id'], array('name' => $option['name']), true); $isRepeat = true; } break; case 'file': $my_meta->addFile($option['prefix'] . $option['id'], array('name' => $option['name'])); if (isset($option['repeat']) && $option['repeat']) { $repeater_fields[] = $my_meta->addFile($option['prefix'] . $option['id'], array('name' => $option['name']), true); $isRepeat = true; } break; case 'editor': $my_meta->addWysiwyg($option['prefix'] . $option['id'], array('name' => $option['name'])); if (isset($option['repeat']) && $option['repeat']) { $repeater_fields[] = $my_meta->addWysiwyg($option['prefix'] . $option['id'], array('name' => $option['name']), true); $isRepeat = true; } break; case 'taxonomy': $my_meta->addTaxonomy($option['prefix'] . $option['id'], array('taxonomy' => 'category'), array('name' => $option['name'])); if (isset($option['repeat']) && $option['repeat']) { $repeater_fields[] = $my_meta->addTaxonomy($option['prefix'] . $option['id'], array('taxonomy' => 'category'), array('name' => $option['name']), true); $isRepeat = true; } break; case 'post': $my_meta->addPosts($option['prefix'] . $option['id'], array('args' => $option['args']), array('name' => $option['name'])); if (isset($option['repeat']) && $option['repeat']) { $repeater_fields[] = $my_meta->addPosts($option['prefix'] . $option['id'], array('args' => $option['args']), array('name' => $option['name']), true); $isRepeat = true; } break; } if ($isRepeat) { $my_meta->addRepeaterBlock($option['prefix'] . $option['id'], array('inline' => true, 'name' => $option['name'], 'fields' => $repeater_fields)); } } $my_meta->Finish(); } } }