/** * 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' => ''); }