Ejemplo n.º 1
0
 /**
  * Update an MLA post_mime_type object
  *
  * @since 1.40
  *
  * @param	array	Query variables for new object values, including optional original_slug
  *
  * @return	array	Message(s) reflecting the results of the operation
  */
 public static function mla_update_post_mime_type($request)
 {
     if (!self::_get_post_mime_templates()) {
         self::$mla_post_mime_templates = array();
     }
     $messages = '';
     $errors = '';
     $slug = sanitize_mime_type($request['slug']);
     $original_slug = isset($request['original_slug']) ? $request['original_slug'] : $slug;
     unset($request['original_slug']);
     if (isset(self::$mla_post_mime_templates[$original_slug])) {
         $original_type = self::$mla_post_mime_templates[$original_slug];
     } else {
         $original_type = array('singular' => '', 'plural' => '', 'specification' => '', 'post_mime_type' => 'checked="checked"', 'table_view' => 'checked="checked"', 'menu_order' => '', 'description' => '');
     }
     /*
      * Validate changed slug value
      */
     if ($slug != $original_slug) {
         if ($slug != $request['slug']) {
             /* translators: 1: element name 2: bad_value 3: good_value */
             $messages .= sprintf(__('<br>' . 'Changing new %1$s "%2$s" to valid value "%3$s"', 'media-library-assistant'), __('Slug', 'media-library-assistant'), $request['slug'], $slug);
         }
         /*
          * Make sure new slug is unique
          */
         if (isset(self::$mla_post_mime_templates[$slug])) {
             /* translators: 1: ERROR tag 2: slug */
             $errors .= '<br>' . sprintf(__('%1$s: Could not add Slug "%2$s"; value already exists', 'media-library-assistant'), __('ERROR', 'media-library-assistant'), $slug);
         } else {
             /* translators: 1: element name 2: old_value 3: new_value */
             $messages .= sprintf('<br>' . __('Changing %1$s from "%2$s" to "%3$s"', 'media-library-assistant'), __('Slug', 'media-library-assistant'), $original_slug, $slug);
         }
     }
     /*
      * Validate specification, if present and allowed
      */
     $specification = trim(isset($request['specification']) ? $request['specification'] : $original_type['specification']);
     $post_mime_type = isset($request['post_mime_type']) ? $request['post_mime_type'] : $original_type['post_mime_type'];
     if ($post_mime_type) {
         if (!empty($specification)) {
             $specification = '';
             $messages .= '<br>' . __('Ignoring specification for Post MIME Type; using slug', 'media-library-assistant');
         }
     }
     if (!empty($specification)) {
         $result = MLACore::mla_parse_view_specification($request['specification']);
         if (isset($result['error'])) {
             $errors .= $result['error'];
         }
     }
     if (!empty($errors)) {
         return array('message' => substr($errors . $messages, 4), 'body' => '');
     }
     $new_type = array();
     $new_type['singular'] = isset($request['singular']) ? sanitize_text_field($request['singular']) : $original_type['singular'];
     $new_type['plural'] = isset($request['plural']) ? sanitize_text_field($request['plural']) : $original_type['plural'];
     $new_type['specification'] = $specification;
     $new_type['post_mime_type'] = $post_mime_type;
     $new_type['table_view'] = isset($request['table_view']) ? $request['table_view'] : $original_type['table_view'];
     $new_type['menu_order'] = isset($request['menu_order']) ? absint($request['menu_order']) : $original_type['menu_order'];
     $new_type['description'] = isset($request['description']) ? sanitize_text_field($request['description']) : $original_type['description'];
     if ($slug == $original_slug && self::$mla_post_mime_templates[$slug] == $new_type) {
         return array('message' => substr($messages . '<br>' . sprintf(__('Edit view "%1$s"; no changes detected', 'media-library-assistant'), $slug), 4), 'body' => '');
     }
     self::$mla_post_mime_templates[$slug] = $new_type;
     if ($slug != $original_slug) {
         unset(self::$mla_post_mime_templates[$original_slug]);
     }
     self::_put_post_mime_templates();
     return array('message' => $messages = substr($messages . '<br>' . sprintf(__('Edit view "%1$s"; updated', 'media-library-assistant'), $slug), 4), 'body' => '');
 }