예제 #1
0
 /**
  * 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;
     }
 }
예제 #2
0
 /**
  * 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();
         }
     }
 }