Meta Box - Version 4.11.1

Version Description

  • Added button for "Check/Uncheck all options" in input list field when type is checkbox_list. Props @mrbrazzi.
  • Select multiple images now does not require to press "Shift".
  • Change button field to actual button element.
  • Fix scripts and styles dependencies
  • Fix bug for select tree when parent not set
  • Add sanitize post type in case users use CamelCase in post type name
  • Increase z-index of datepicker to prevent overlap with top menu bar
  • Make compatible with MB Admin Columns and MB Frontend Submission extensions
  • Update Persian translation. Credit Morteza Gholami
Download this release

Release Info

Developer rilwis
Plugin Icon 128x128 Meta Box
Version 4.11.1
Comparing to
See all releases

Code changes from version 4.11 to 4.11.1

css/datepicker.css CHANGED
@@ -1,7 +1,7 @@
1
  /* Fix empty block below admin footer (issue #24) */
2
  #ui-datepicker-div {
3
  display: none;
4
- z-index: 9 !important;
5
  }
6
 
7
  /* Style for multiple months */
1
  /* Fix empty block below admin footer (issue #24) */
2
  #ui-datepicker-div {
3
  display: none;
4
+ z-index: 9999 !important;
5
  }
6
 
7
  /* Style for multiple months */
inc/fields/button.php CHANGED
@@ -18,7 +18,7 @@ class RWMB_Button_Field extends RWMB_Field {
18
  */
19
  public static function html( $meta, $field ) {
20
  $attributes = self::get_attributes( $field );
21
- return sprintf( '<a href="#" %s>%s</a>', self::render_attributes( $attributes ), $field['std'] );
22
  }
23
 
24
  /**
@@ -28,8 +28,10 @@ class RWMB_Button_Field extends RWMB_Field {
28
  * @return array
29
  */
30
  public static function normalize( $field ) {
31
- $field = parent::normalize( $field );
32
- $field['std'] = $field['std'] ? $field['std'] : __( 'Click me', 'meta-box' );
 
 
33
  return $field;
34
  }
35
 
@@ -41,7 +43,10 @@ class RWMB_Button_Field extends RWMB_Field {
41
  * @return array
42
  */
43
  public static function get_attributes( $field, $value = null ) {
44
- $attributes = parent::get_attributes( $field, $value );
 
 
 
45
  $attributes['class'] .= ' button hide-if-no-js';
46
 
47
  return $attributes;
18
  */
19
  public static function html( $meta, $field ) {
20
  $attributes = self::get_attributes( $field );
21
+ return sprintf( '<button %s>%s</button>', self::render_attributes( $attributes ), $field['std'] );
22
  }
23
 
24
  /**
28
  * @return array
29
  */
30
  public static function normalize( $field ) {
31
+ $field = wp_parse_args( $field, array(
32
+ 'std' => __( 'Click me', 'meta-box' ),
33
+ ) );
34
+ $field = parent::normalize( $field );
35
  return $field;
36
  }
37
 
43
  * @return array
44
  */
45
  public static function get_attributes( $field, $value = null ) {
46
+ $attributes = parent::get_attributes( $field, $value );
47
+ $attributes = wp_parse_args( $attributes, array(
48
+ 'type' => $field['type'],
49
+ ) );
50
  $attributes['class'] .= ' button hide-if-no-js';
51
 
52
  return $attributes;
inc/fields/choice.php CHANGED
@@ -126,6 +126,6 @@ abstract class RWMB_Choice_Field extends RWMB_Field {
126
  */
127
  public static function get_option_label( $field, $value ) {
128
  $options = self::call( 'get_options', $field );
129
- return $options[ $value ]->label;
130
  }
131
  }
126
  */
127
  public static function get_option_label( $field, $value ) {
128
  $options = self::call( 'get_options', $field );
129
+ return isset( $options[ $value ] ) ? $options[ $value ]->label : '';
130
  }
131
  }
inc/fields/file.php CHANGED
@@ -14,7 +14,7 @@ class RWMB_File_Field extends RWMB_Field {
14
  */
15
  public static function admin_enqueue_scripts() {
16
  wp_enqueue_style( 'rwmb-file', RWMB_CSS_URL . 'file.css', array(), RWMB_VER );
17
- wp_enqueue_script( 'rwmb-file', RWMB_JS_URL . 'file.js', array( 'jquery' ), RWMB_VER, true );
18
 
19
  self::localize_script( 'rwmb-file', 'rwmbFile', array(
20
  // Translators: %d is the number of files in singular form.
14
  */
15
  public static function admin_enqueue_scripts() {
16
  wp_enqueue_style( 'rwmb-file', RWMB_CSS_URL . 'file.css', array(), RWMB_VER );
17
+ wp_enqueue_script( 'rwmb-file', RWMB_JS_URL . 'file.js', array( 'jquery-ui-sortable' ), RWMB_VER, true );
18
 
19
  self::localize_script( 'rwmb-file', 'rwmbFile', array(
20
  // Translators: %d is the number of files in singular form.
inc/fields/input-list.php CHANGED
@@ -29,9 +29,10 @@ class RWMB_Input_List_Field extends RWMB_Choice_Field {
29
  */
30
  public static function walk( $field, $options, $db_fields, $meta ) {
31
  $walker = new RWMB_Walker_Input_List( $db_fields, $field, $meta );
32
- $output = sprintf( '<ul class="rwmb-input-list %s %s">',
 
33
  $field['collapse'] ? 'collapse' : '',
34
- $field['inline'] ? 'inline' : ''
35
  );
36
  $output .= $walker->walk( $options, $field['flatten'] ? - 1 : 0 );
37
  $output .= '</ul>';
@@ -50,8 +51,9 @@ class RWMB_Input_List_Field extends RWMB_Choice_Field {
50
  $field = RWMB_Input_Field::normalize( $field );
51
  $field = parent::normalize( $field );
52
  $field = wp_parse_args( $field, array(
53
- 'collapse' => true,
54
- 'inline' => null,
 
55
  ) );
56
 
57
  $field['flatten'] = $field['multiple'] ? $field['flatten'] : true;
@@ -76,4 +78,17 @@ class RWMB_Input_List_Field extends RWMB_Choice_Field {
76
 
77
  return $attributes;
78
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
79
  }
29
  */
30
  public static function walk( $field, $options, $db_fields, $meta ) {
31
  $walker = new RWMB_Walker_Input_List( $db_fields, $field, $meta );
32
+ $output = self::get_select_all_html( $field );
33
+ $output .= sprintf( '<ul class="rwmb-input-list %s %s">',
34
  $field['collapse'] ? 'collapse' : '',
35
+ $field['inline'] ? 'inline' : ''
36
  );
37
  $output .= $walker->walk( $options, $field['flatten'] ? - 1 : 0 );
38
  $output .= '</ul>';
51
  $field = RWMB_Input_Field::normalize( $field );
52
  $field = parent::normalize( $field );
53
  $field = wp_parse_args( $field, array(
54
+ 'collapse' => true,
55
+ 'inline' => null,
56
+ 'select_all_none' => false,
57
  ) );
58
 
59
  $field['flatten'] = $field['multiple'] ? $field['flatten'] : true;
78
 
79
  return $attributes;
80
  }
81
+
82
+ /**
83
+ * Get html for select all|none for multiple checkbox.
84
+ *
85
+ * @param array $field Field parameters.
86
+ * @return string
87
+ */
88
+ public static function get_select_all_html( $field ) {
89
+ if( $field['multiple'] && $field['select_all_none'] ){
90
+ return sprintf( '<p><button class="rwmb-input-list-select-all-none" data-name="%s">%s</button></p>', $field['id'], __( 'Select All / None','meta-box' ) );
91
+ }
92
+ return '';
93
+ }
94
  }
inc/fields/input.php CHANGED
@@ -30,7 +30,7 @@ abstract class RWMB_Input_Field extends RWMB_Field {
30
  public static function normalize( $field ) {
31
  $field = parent::normalize( $field );
32
  $field = wp_parse_args( $field, array(
33
- 'size' => 30,
34
  'datalist' => false,
35
  'readonly' => false,
36
  ) );
30
  public static function normalize( $field ) {
31
  $field = parent::normalize( $field );
32
  $field = wp_parse_args( $field, array(
33
+ 'size' => 30,
34
  'datalist' => false,
35
  'readonly' => false,
36
  ) );
inc/fields/map.php CHANGED
@@ -30,7 +30,7 @@ class RWMB_Map_Field extends RWMB_Field {
30
  */
31
  $google_maps_url = apply_filters( 'rwmb_google_maps_url', $google_maps_url );
32
  wp_register_script( 'google-maps', esc_url_raw( $google_maps_url ), array(), '', true );
33
- wp_enqueue_style( 'rwmb-map', RWMB_CSS_URL . 'map.css' );
34
  wp_enqueue_script( 'rwmb-map', RWMB_JS_URL . 'map.js', array( 'jquery-ui-autocomplete', 'google-maps' ), RWMB_VER, true );
35
  }
36
 
30
  */
31
  $google_maps_url = apply_filters( 'rwmb_google_maps_url', $google_maps_url );
32
  wp_register_script( 'google-maps', esc_url_raw( $google_maps_url ), array(), '', true );
33
+ wp_enqueue_style( 'rwmb-map', RWMB_CSS_URL . 'map.css', array(), RWMB_VER );
34
  wp_enqueue_script( 'rwmb-map', RWMB_JS_URL . 'map.js', array( 'jquery-ui-autocomplete', 'google-maps' ), RWMB_VER, true );
35
  }
36
 
inc/fields/select-advanced.php CHANGED
@@ -30,7 +30,6 @@ class RWMB_Select_Advanced_Field extends RWMB_Select_Field {
30
  $dependencies[] = 'rwmb-select2-i18n';
31
  }
32
 
33
- wp_enqueue_script( 'rwmb-select', RWMB_JS_URL . 'select.js', array( 'jquery' ), RWMB_VER, true );
34
  wp_enqueue_script( 'rwmb-select-advanced', RWMB_JS_URL . 'select-advanced.js', $dependencies, RWMB_VER, true );
35
  }
36
 
30
  $dependencies[] = 'rwmb-select2-i18n';
31
  }
32
 
 
33
  wp_enqueue_script( 'rwmb-select-advanced', RWMB_JS_URL . 'select-advanced.js', $dependencies, RWMB_VER, true );
34
  }
35
 
inc/fields/select.php CHANGED
@@ -14,7 +14,7 @@ class RWMB_Select_Field extends RWMB_Choice_Field {
14
  */
15
  public static function admin_enqueue_scripts() {
16
  wp_enqueue_style( 'rwmb-select', RWMB_CSS_URL . 'select.css', array(), RWMB_VER );
17
- wp_enqueue_script( 'rwmb-select', RWMB_JS_URL . 'select.js', array(), RWMB_VER, true );
18
  }
19
 
20
  /**
14
  */
15
  public static function admin_enqueue_scripts() {
16
  wp_enqueue_style( 'rwmb-select', RWMB_CSS_URL . 'select.css', array(), RWMB_VER );
17
+ wp_enqueue_script( 'rwmb-select', RWMB_JS_URL . 'select.js', array( 'jquery' ), RWMB_VER, true );
18
  }
19
 
20
  /**
inc/loader.php CHANGED
@@ -18,7 +18,7 @@ class RWMB_Loader {
18
  */
19
  protected function constants() {
20
  // Script version, used to add version for scripts and styles.
21
- define( 'RWMB_VER', '4.11' );
22
 
23
  list( $path, $url ) = self::get_path( dirname( dirname( __FILE__ ) ) );
24
 
@@ -83,16 +83,14 @@ class RWMB_Loader {
83
  $core = new RWMB_Core;
84
  $core->init();
85
 
86
- if ( is_admin() ) {
87
- // Validation module.
88
- new RWMB_Validation;
89
 
90
- $sanitize = new RWMB_Sanitizer;
91
- $sanitize->init();
92
 
93
- $media_modal = new RWMB_Media_Modal;
94
- $media_modal->init();
95
- }
96
 
97
  // WPML Compatibility.
98
  $wpml = new RWMB_WPML;
18
  */
19
  protected function constants() {
20
  // Script version, used to add version for scripts and styles.
21
+ define( 'RWMB_VER', '4.11.1' );
22
 
23
  list( $path, $url ) = self::get_path( dirname( dirname( __FILE__ ) ) );
24
 
83
  $core = new RWMB_Core;
84
  $core->init();
85
 
86
+ // Validation module.
87
+ new RWMB_Validation;
 
88
 
89
+ $sanitize = new RWMB_Sanitizer;
90
+ $sanitize->init();
91
 
92
+ $media_modal = new RWMB_Media_Modal;
93
+ $media_modal->init();
 
94
 
95
  // WPML Compatibility.
96
  $wpml = new RWMB_WPML;
inc/meta-box.php CHANGED
@@ -299,8 +299,8 @@ class RW_Meta_Box {
299
  $meta_box['post_types'] = $meta_box['pages'];
300
  }
301
 
302
- // Make sure the post type is an array.
303
- $meta_box['post_types'] = (array) $meta_box['post_types'];
304
 
305
  return $meta_box;
306
  }
299
  $meta_box['post_types'] = $meta_box['pages'];
300
  }
301
 
302
+ // Make sure the post type is an array and is sanitized.
303
+ $meta_box['post_types'] = array_map( 'sanitize_key', (array) $meta_box['post_types'] );
304
 
305
  return $meta_box;
306
  }
inc/templates/audio.php ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <script id="tmpl-rwmb-media-item" type="text/html">
2
+ <input type="hidden" name="{{{ data.controller.fieldName }}}" value="{{{ data.id }}}" class="rwmb-media-input">
3
+ <div class="rwmb-media-preview">
4
+ <div class="rwmb-media-content">
5
+ <div class="centered">
6
+ <# if ( 'image' === data.type && data.sizes ) { #>
7
+ <# if ( data.sizes.thumbnail ) { #>
8
+ <img src="{{{ data.sizes.thumbnail.url }}}">
9
+ <# } else { #>
10
+ <img src="{{{ data.sizes.full.url }}}">
11
+ <# } #>
12
+ <# } else { #>
13
+ <# if ( data.image && data.image.src && data.image.src !== data.icon ) { #>
14
+ <img src="{{ data.image.src }}" />
15
+ <# } else { #>
16
+ <img src="{{ data.icon }}" />
17
+ <# } #>
18
+ <# } #>
19
+ </div>
20
+ </div>
21
+ </div>
22
+ <div class="rwmb-media-info">
23
+ <h4>
24
+ <a href="{{{ data.url }}}" target="_blank" title="{{{ i18nRwmbMedia.view }}}">
25
+ <# if( data.title ) { #> {{{ data.title }}}
26
+ <# } else { #> {{{ i18nRwmbMedia.noTitle }}}
27
+ <# } #>
28
+ </a>
29
+ </h4>
30
+ <p>{{{ data.mime }}}</p>
31
+ <p>
32
+ <a class="rwmb-edit-media" title="{{{ i18nRwmbMedia.edit }}}" href="{{{ data.editLink }}}" target="_blank">
33
+ <span class="dashicons dashicons-edit"></span>{{{ i18nRwmbMedia.edit }}}
34
+ </a>
35
+ <a href="#" class="rwmb-remove-media" title="{{{ i18nRwmbMedia.remove }}}">
36
+ <span class="dashicons dashicons-no-alt"></span>{{{ i18nRwmbMedia.remove }}}
37
+ </a>
38
+ </p>
39
+ </div>
40
+ </script>
inc/walkers/select-tree.php CHANGED
@@ -52,8 +52,10 @@ class RWMB_Walker_Select_Tree {
52
  $children = array();
53
 
54
  foreach ( $options as $option ) {
55
- $children[ $option->$parent ][] = $option;
 
56
  }
 
57
  $top_level = isset( $children[0] ) ? 0 : $options[0]->$parent;
58
  return $this->display_level( $children, $top_level, true );
59
  }
52
  $children = array();
53
 
54
  foreach ( $options as $option ) {
55
+ $index = isset( $option->$parent ) ? $option->$parent : 0;
56
+ $children[ $index ][] = $option;
57
  }
58
+
59
  $top_level = isset( $children[0] ) ? 0 : $options[0]->$parent;
60
  return $this->display_level( $children, $top_level, true );
61
  }
js/clone.js CHANGED
@@ -173,7 +173,7 @@ jQuery( function ( $ ) {
173
 
174
  $this.parent().trigger( 'remove' ).remove();
175
  toggleRemoveButtons( $container );
176
- toggleAddButton( $container )
177
  } );
178
 
179
  $( '.rwmb-input' ).each( function () {
173
 
174
  $this.parent().trigger( 'remove' ).remove();
175
  toggleRemoveButtons( $container );
176
+ toggleAddButton( $container );
177
  } );
178
 
179
  $( '.rwmb-input' ).each( function () {
js/input-list.js CHANGED
@@ -17,4 +17,13 @@ jQuery( function ( $ ) {
17
  .on( 'change', '.rwmb-input-list.collapse :checkbox', update )
18
  .on( 'clone', '.rwmb-input-list.collapse :checkbox', update );
19
  $( '.rwmb-input-list.collapse :checkbox' ).each( update );
 
 
 
 
 
 
 
 
 
20
  } );
17
  .on( 'change', '.rwmb-input-list.collapse :checkbox', update )
18
  .on( 'clone', '.rwmb-input-list.collapse :checkbox', update );
19
  $( '.rwmb-input-list.collapse :checkbox' ).each( update );
20
+
21
+ $( '.rwmb-input-list-select-all-none' ).toggle(
22
+ function () {
23
+ $('input.rwmb-checkbox_list[name="' + $(this).data('name') + '[]"]').prop('checked', true);
24
+ },
25
+ function () {
26
+ $('input.rwmb-checkbox_list[name="' + $(this).data('name') + '[]"]').prop('checked', false);
27
+ }
28
+ );
29
  } );
js/media.js CHANGED
@@ -376,10 +376,10 @@ jQuery( function ( $ ) {
376
  //this.stopListening( this._frame );
377
  this._frame.dispose();
378
  }
379
-
380
  this._frame = wp.media( {
381
  className: 'media-frame rwmb-media-frame',
382
- multiple: true,
383
  title: i18nRwmbMedia.select,
384
  editing: true,
385
  library: {
376
  //this.stopListening( this._frame );
377
  this._frame.dispose();
378
  }
379
+ var maxFiles = this.controller.get( 'maxFiles');
380
  this._frame = wp.media( {
381
  className: 'media-frame rwmb-media-frame',
382
+ multiple: maxFiles > 1 || maxFiles <= 0 ? 'add' : false,
383
  title: i18nRwmbMedia.select,
384
  editing: true,
385
  library: {
js/validate.js CHANGED
@@ -13,7 +13,7 @@ jQuery( function ( $ ) {
13
  };
14
 
15
  // Edit post form.
16
- var $form = $( '#post' );
17
 
18
  // Edit user form.
19
  if ( ! $form.length ) {
13
  };
14
 
15
  // Edit post form.
16
+ var $form = $( '#post, .rwmb-form' );
17
 
18
  // Edit user form.
19
  if ( ! $form.length ) {
languages/meta-box-fa_IR.mo CHANGED
Binary file
languages/meta-box-fa_IR.po CHANGED
@@ -1,232 +1,180 @@
 
 
1
  msgid ""
2
  msgstr ""
3
- "Project-Id-Version: Meta Box\n"
4
- "POT-Creation-Date: 2016-03-27 19:26+0430\n"
5
- "PO-Revision-Date: 2016-03-27 19:34+0430\n"
6
- "Last-Translator: \n"
7
- "Language-Team: Sam Najian <samnajian@gmail.com>\n"
8
- "Language: fa\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
 
 
 
 
 
 
12
  "Plural-Forms: nplurals=1; plural=0;\n"
13
- "X-Generator: Poedit 1.8.7\n"
14
- "X-Poedit-Basepath: ../../meta-box-builder\n"
15
- "X-Poedit-WPHeader: meta-box.php\n"
16
- "X-Poedit-SourceCharset: UTF-8\n"
17
- "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
18
- "esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;"
19
- "_n_noop:1,2;_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
20
  "X-Poedit-SearchPath-0: .\n"
21
- "X-Poedit-SearchPath-1: .\n"
22
- "X-Poedit-SearchPathExcluded-0: *.js\n"
 
 
 
23
 
24
- #: inc/core.php:40
 
 
 
 
25
  msgid "Documentation"
26
- msgstr ""
27
 
28
- #: inc/core.php:41
29
  msgid "Extensions"
30
- msgstr "افزونه ها"
31
 
32
- #: inc/field.php:196
33
- msgid "+ Add more"
34
- msgstr "افزودن +"
35
-
36
- #: inc/fields/autocomplete.php:14 inc/fields/autocomplete.php:75
37
- #: inc/fields/autocomplete.php:92
38
  msgid "Delete"
39
  msgstr "حذف"
40
 
41
- #: inc/fields/button.php:29
42
  msgid "Click me"
43
- msgstr "کلیک"
44
 
45
- #: inc/fields/checkbox.php:85
46
  msgid "Yes"
47
  msgstr "بله"
48
 
49
- #: inc/fields/checkbox.php:85
50
  msgid "No"
51
  msgstr "خیر"
52
 
53
- #: inc/fields/file-input.php:18
54
  msgid "Select File"
55
  msgstr "انتخاب فایل"
56
 
57
- #: inc/fields/file-input.php:41 inc/fields/select.php:91
58
  msgid "Select"
59
  msgstr "انتخاب"
60
 
61
- #: inc/fields/file-input.php:43
62
  msgid "Remove"
63
  msgstr "حذف"
64
 
65
- #: inc/fields/file.php:15
66
  #, php-format
67
  msgid "You may only upload maximum %d file"
68
- msgstr "شما فقط می توانید تعداد %d فایل آپلود نمایید"
69
 
70
- #: inc/fields/file.php:16
71
  #, php-format
72
  msgid "You may only upload maximum %d files"
73
- msgstr "شما فقط می توانید تعداد %d فایل آپلود نمایید"
74
 
75
- #: inc/fields/file.php:83
76
  msgid "Error: Cannot delete file"
77
- msgstr "خطا در حذف فایل"
78
 
79
- #: inc/fields/file.php:96
80
- msgctxt "file upload"
81
  msgid "Upload Files"
82
- msgstr "آپلود فایل"
83
 
84
- #: inc/fields/file.php:97
85
- msgctxt "file upload"
86
  msgid "+ Add new file"
87
- msgstr "افزودن فایل جدید"
88
-
89
- #: inc/fields/file.php:153
90
- msgctxt "file upload"
91
- msgid "Delete"
92
- msgstr "حذف"
93
-
94
- #: inc/fields/file.php:154
95
- msgctxt "file upload"
96
- msgid "Edit"
97
- msgstr "ویرایش"
98
 
99
- #: inc/fields/image.php:61 inc/fields/thickbox-image.php:53
100
- msgctxt "image upload"
101
- msgid "Upload Images"
102
- msgstr "آپلود تصویر"
103
-
104
- #: inc/fields/image.php:62
105
- msgctxt "image upload"
106
- msgid "+ Add new image"
107
- msgstr "افزودن تصویر جدید + "
108
-
109
- #: inc/fields/image.php:124
110
- msgctxt "image upload"
111
- msgid "Delete"
112
- msgstr "حذف"
113
-
114
- #: inc/fields/image.php:125
115
- msgctxt "image upload"
116
  msgid "Edit"
117
  msgstr "ویرایش"
118
 
119
- #: inc/fields/key-value.php:19
120
  msgid "Key"
121
  msgstr "کلید"
122
 
123
- #: inc/fields/key-value.php:25
124
  msgid "Value"
125
  msgstr "مقدار"
126
 
127
- #: inc/fields/map.php:49
128
  msgid "Find Address"
129
- msgstr "یافتن آدرس"
130
 
131
- #: inc/fields/media.php:18
132
- msgctxt "media"
133
  msgid "+ Add Media"
134
- msgstr "افزودن فایل"
135
 
136
- #: inc/fields/media.php:19
137
- msgctxt "media"
138
  msgid " file"
139
- msgstr "فایل"
140
 
141
- #: inc/fields/media.php:20
142
- msgctxt "media"
143
  msgid " files"
144
- msgstr "فایل"
145
 
146
- #: inc/fields/media.php:21
147
- msgctxt "media"
148
- msgid "Remove"
149
- msgstr "حذف"
150
-
151
- #: inc/fields/media.php:22
152
- msgctxt "media"
153
- msgid "Edit"
154
- msgstr "ویرایش"
155
-
156
- #: inc/fields/media.php:23
157
- msgctxt "media"
158
  msgid "View"
159
  msgstr "نمایش"
160
 
161
- #: inc/fields/media.php:24
162
- msgctxt "media"
163
  msgid "No Title"
164
  msgstr "بدون عنوان"
165
 
166
- #: inc/fields/media.php:27
167
- msgctxt "media"
168
  msgid "Select Files"
169
- msgstr "انتخاب فایل ها"
170
 
171
- #: inc/fields/media.php:28
172
- msgctxt "media"
 
 
 
173
  msgid "Drop files here to upload"
174
- msgstr "برای آپلود فایل آن را به اینجا بکشید"
175
 
176
- #: inc/fields/oembed.php:65
177
  msgid "Embed HTML not available."
178
- msgstr "HTML امبد شده در دسترس نیست"
179
 
180
- #: inc/fields/oembed.php:84
181
  msgid "Preview"
182
- msgstr "پیش نمایش"
183
 
184
- #: inc/fields/post.php:35
185
  msgid "Select a post"
186
  msgstr "انتخاب یک پست"
187
 
188
- #: inc/fields/post.php:39 inc/fields/taxonomy.php:51
189
  #, php-format
190
  msgid "Select a %s"
191
  msgstr "انتخاب یک %s"
192
 
193
- #: inc/fields/select.php:91
 
 
 
 
194
  msgid "All"
195
  msgstr "همه"
196
 
197
- #: inc/fields/select.php:91
198
  msgid "None"
199
- msgstr "هیچ کدام"
200
 
201
- #: inc/fields/taxonomy.php:47
202
  msgid "Select a term"
203
- msgstr "انتخاب ترم"
204
 
205
- #: inc/fields/user.php:34
 
 
 
 
206
  msgid "Select an user"
207
- msgstr "انتخاب کاربر"
208
 
209
- #: inc/validation.php:42
210
  msgid "Please correct the errors highlighted below and try again."
211
- msgstr "لطفا خطاهای زیر را تصحیح نمایید و دوباره تلاش کنید"
212
-
213
- #. Plugin Name of the plugin/theme
214
- msgid "Meta Box"
215
- msgstr "جعبه متا"
216
-
217
- #. Plugin URI of the plugin/theme
218
- msgid "https://metabox.io"
219
- msgstr "‏http‪://‬samnajian‪.‬com"
220
-
221
- #. Description of the plugin/theme
222
- msgid ""
223
- "Create custom meta boxes and custom fields for any post type in WordPress."
224
- msgstr "ایجاد متاباکس و فیلد دلخواه برای هر نوع پست "
225
-
226
- #. Author of the plugin/theme
227
- msgid "Rilwis"
228
- msgstr ""
229
-
230
- #. Author URI of the plugin/theme
231
- msgid "http://www.deluxeblogtips.com"
232
- msgstr ""
1
+ # <!=Copyright (C) 2014 Rilwis
2
+ # This file is distributed under the GPL2+.=!>
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Meta Box 4.8.7\n"
6
+ "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/meta-box\n"
7
+ "POT-Creation-Date: 2017-05-13 22:34+0430\n"
 
 
 
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
+ "PO-Revision-Date: 2017-05-13 22:51+0430\n"
12
+ "Language-Team: Meta Box <admin@metabox.io>\n"
13
+ "X-Generator: Poedit 1.8.6\n"
14
+ "X-Poedit-KeywordsList: __;_x;_e;_ex;_n;_nx;esc_attr__;esc_attr_e;esc_attr_x;esc_html__;esc_html_e;esc_html_x;_n_noop;_nx_noop\n"
15
+ "X-Poedit-Basepath: ..\n"
16
+ "Last-Translator: Morteza Gholami <Morteza.Gholami@Yahoo.Com>\n"
17
  "Plural-Forms: nplurals=1; plural=0;\n"
18
+ "Language: fa_IR\n"
 
 
 
 
 
 
19
  "X-Poedit-SearchPath-0: .\n"
20
+ "X-Poedit-SearchPathExcluded-0: js\n"
21
+ "X-Poedit-SearchPathExcluded-1: demo\n"
22
+ "X-Poedit-SearchPathExcluded-2: tests\n"
23
+ "X-Poedit-SearchPathExcluded-3: css\n"
24
+ "X-Poedit-SearchPathExcluded-4: lang\n"
25
 
26
+ #: inc/clone.php:98
27
+ msgid "+ Add more"
28
+ msgstr "+ افزودن بیشتر"
29
+
30
+ #: inc/core.php:42
31
  msgid "Documentation"
32
+ msgstr "مستندات"
33
 
34
+ #: inc/core.php:43
35
  msgid "Extensions"
36
+ msgstr "افزونه‌ها"
37
 
38
+ #: inc/fields/autocomplete.php:19 inc/fields/autocomplete.php:78
39
+ #: inc/fields/autocomplete.php:93 inc/fields/file.php:154
 
 
 
 
40
  msgid "Delete"
41
  msgstr "حذف"
42
 
43
+ #: inc/fields/button.php:32
44
  msgid "Click me"
45
+ msgstr "کلیک کنید"
46
 
47
+ #: inc/fields/checkbox.php:57
48
  msgid "Yes"
49
  msgstr "بله"
50
 
51
+ #: inc/fields/checkbox.php:57
52
  msgid "No"
53
  msgstr "خیر"
54
 
55
+ #: inc/fields/file-input.php:21
56
  msgid "Select File"
57
  msgstr "انتخاب فایل"
58
 
59
+ #: inc/fields/file-input.php:43 inc/fields/select.php:89
60
  msgid "Select"
61
  msgstr "انتخاب"
62
 
63
+ #: inc/fields/file-input.php:45 inc/fields/media.php:24
64
  msgid "Remove"
65
  msgstr "حذف"
66
 
67
+ #: inc/fields/file.php:20
68
  #, php-format
69
  msgid "You may only upload maximum %d file"
70
+ msgstr "شما تنها می‌بایست نهایتا %d فایل بارگذاری کنید"
71
 
72
+ #: inc/fields/file.php:21
73
  #, php-format
74
  msgid "You may only upload maximum %d files"
75
+ msgstr "شما تنها می‌بایست نهایتا %d فایل بارگذاری کنید"
76
 
77
+ #: inc/fields/file.php:77
78
  msgid "Error: Cannot delete file"
79
+ msgstr "خطا: عدم توانایی حذف فایل"
80
 
81
+ #: inc/fields/file.php:89
 
82
  msgid "Upload Files"
83
+ msgstr "بارگذاری فایل‌ها"
84
 
85
+ #: inc/fields/file.php:90
 
86
  msgid "+ Add new file"
87
+ msgstr "+ افزودن فایل جدید"
 
 
 
 
 
 
 
 
 
 
88
 
89
+ #: inc/fields/file.php:155 inc/fields/media.php:25
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
  msgid "Edit"
91
  msgstr "ویرایش"
92
 
93
+ #: inc/fields/key-value.php:116
94
  msgid "Key"
95
  msgstr "کلید"
96
 
97
+ #: inc/fields/key-value.php:117
98
  msgid "Value"
99
  msgstr "مقدار"
100
 
101
+ #: inc/fields/map.php:60
102
  msgid "Find Address"
103
+ msgstr "پیدا کردن آدرس"
104
 
105
+ #: inc/fields/media.php:21
 
106
  msgid "+ Add Media"
107
+ msgstr "+ افزودن رسانه"
108
 
109
+ #: inc/fields/media.php:22
 
110
  msgid " file"
111
+ msgstr " فایل"
112
 
113
+ #: inc/fields/media.php:23
 
114
  msgid " files"
115
+ msgstr " فایل‌ها"
116
 
117
+ #: inc/fields/media.php:26
 
 
 
 
 
 
 
 
 
 
 
118
  msgid "View"
119
  msgstr "نمایش"
120
 
121
+ #: inc/fields/media.php:27
 
122
  msgid "No Title"
123
  msgstr "بدون عنوان"
124
 
125
+ #: inc/fields/media.php:30
 
126
  msgid "Select Files"
127
+ msgstr "انتخاب فایل‌ها"
128
 
129
+ #: inc/fields/media.php:31
130
+ msgid "or"
131
+ msgstr "یا"
132
+
133
+ #: inc/fields/media.php:32
134
  msgid "Drop files here to upload"
135
+ msgstr "فایل‌ها را برای بارگذاری اینجا بیاندازید"
136
 
137
+ #: inc/fields/oembed.php:64
138
  msgid "Embed HTML not available."
139
+ msgstr "قراردادن HTML امکان‌پذیر نیست"
140
 
141
+ #: inc/fields/oembed.php:79
142
  msgid "Preview"
143
+ msgstr "پیشنمایش"
144
 
145
+ #: inc/fields/post.php:38
146
  msgid "Select a post"
147
  msgstr "انتخاب یک پست"
148
 
149
+ #: inc/fields/post.php:41 inc/fields/taxonomy.php:56
150
  #, php-format
151
  msgid "Select a %s"
152
  msgstr "انتخاب یک %s"
153
 
154
+ #: inc/fields/select-advanced.php:46
155
+ msgid "Select an item"
156
+ msgstr "انتخاب یک آیتم"
157
+
158
+ #: inc/fields/select.php:89
159
  msgid "All"
160
  msgstr "همه"
161
 
162
+ #: inc/fields/select.php:89
163
  msgid "None"
164
+ msgstr "هیچکدام"
165
 
166
+ #: inc/fields/taxonomy.php:53
167
  msgid "Select a term"
168
+ msgstr "انتخاب یک دسته"
169
 
170
+ #: inc/fields/thickbox-image.php:55
171
+ msgid "Upload Images"
172
+ msgstr "بارگذاری تصاویر"
173
+
174
+ #: inc/fields/user.php:38
175
  msgid "Select an user"
176
+ msgstr "انتخاب یک کاربر"
177
 
178
+ #: inc/validation.php:47
179
  msgid "Please correct the errors highlighted below and try again."
180
+ msgstr "لطفا خطاهای پررنگ شده زیر را تصحیح و مجددا تلاش نمایید."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
meta-box.php CHANGED
@@ -3,9 +3,9 @@
3
  * Plugin Name: Meta Box
4
  * Plugin URI: https://metabox.io
5
  * Description: Create custom meta boxes and custom fields in WordPress.
6
- * Version: 4.11
7
- * Author: Anh Tran
8
- * Author URI: http://www.deluxeblogtips.com
9
  * License: GPL2+
10
  * Text Domain: meta-box
11
  * Domain Path: /languages/
3
  * Plugin Name: Meta Box
4
  * Plugin URI: https://metabox.io
5
  * Description: Create custom meta boxes and custom fields in WordPress.
6
+ * Version: 4.11.1
7
+ * Author: MetaBox.io
8
+ * Author URI: https://metabox.io
9
  * License: GPL2+
10
  * Text Domain: meta-box
11
  * Domain Path: /languages/
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: metabox, rilwis, fitwp, f-j-kaiser, funkatronic, PerWiklander, rua
3
  Donate link: http://paypal.me/anhtnt
4
  Tags: meta-box, custom fields, custom field, meta, meta-boxes, admin, advanced, custom, edit, field, file, image, magic fields, matrix, more fields, Post, repeater, simple fields, text, textarea, type, cms, fields post
5
  Requires at least: 4.1
6
- Tested up to: 4.7.3
7
- Stable tag: 4.11
8
  License: GPLv2 or later
9
 
10
  Meta Box plugin is a powerful, professional developer toolkit to create custom meta boxes and custom fields for WordPress.
@@ -17,23 +17,43 @@ The plugin provides a **wide range of field types** and **a lot of options to fo
17
 
18
  With the extensions, you can easily build meta boxes not only for custom post types (default), but also for **settings page, user meta, term meta**. You can also display the fields the way you want with columns, tabs or groups.
19
 
20
- The plugin is built mostly for developers with a little coding, but if you prefer GUI for faster creating custom post types, meta boxes and custom fields, the plugin has extensions for that: [MB Custom Post Type](https://wordpress.org/plugins/mb-custom-post-type/) and [Meta Box Builder](https://metabox.io/plugins/meta-box-builder/).
21
 
22
  ### Features
23
 
 
 
24
  * Create custom meta boxes for posts, pages or any custom post type.
25
  * Create custom [settings pages or theme option page](https://metabox.io/plugins/mb-settings-page/).
26
  * Create custom meta boxes for [user profile pages](https://metabox.io/plugins/mb-user-meta/).
27
  * Create custom meta boxes for [taxonomy terms](https://metabox.io/plugins/mb-term-meta/).
 
 
 
28
  * Supports 40+ built-in [field types](https://metabox.io/docs/define-fields/) for all your needs (text, textarea, wysiwyg/editor, image, file, post, select, checkbox, radio buttons, date time picker, taxonomy, user, oembed and more to come!). You can also [create your own field type](https://metabox.io/docs/create-field-type/) easily.
29
  * Support cloning (repeatable) fields for most field types, including WYSIWYG/editor field. Also support [repeatable field groups](https://metabox.io/plugins/meta-box-group/).
30
  * Powerful [actions and filters](https://metabox.io/docs-category/reference/) that developers can build or change the appearance and behavior in the plugin.
 
 
 
 
 
 
 
 
 
 
 
 
 
31
  * Uses the [native WordPress meta data storage](https://metabox.io/docs/how-post-meta-is-saved-in-the-database/) and functions for ease of use and fast processing.
32
  * [Easily integrate with themes and plugins](https://metabox.io/docs/include-meta-box-plugin-themes/).
33
  * [Works with Composer](https://metabox.io/docs/using-meta-box-composer/) if you want to include the plugin in your project.
34
  * Compatible with WPML multilingual plugin (officially supported by WPML team).
35
 
36
- ### Documentation
 
 
37
 
38
  - [Getting Started](https://metabox.io/docs/getting-started/)
39
  - [Register Meta Boxes](https://metabox.io/docs/registering-meta-boxes/)
@@ -44,14 +64,22 @@ See more documentation [here](https://metabox.io/docs/).
44
 
45
  ### Extensions
46
 
 
 
 
 
 
 
 
 
 
 
 
47
  - [MB User Meta](https://metabox.io/plugins/mb-user-meta/): Add custom fields to user profile (user meta) quickly with simple syntax.
48
  - [Meta Box Geolocation](https://metabox.io/plugins/meta-box-geolocation/): Automatically and instantly populate location data with the power of Google Maps Geolocation API.
49
  - [MB Admin Columns](https://metabox.io/plugins/mb-admin-columns/): Display custom fields in table columns in admin screens for All Posts (types).
50
  - [MB Term Meta](https://metabox.io/plugins/mb-term-meta/): Add meta data to categories, tags or any custom taxonomy with simple syntax.
51
  - [MB Settings Page](https://metabox.io/plugins/mb-settings-page/): Create settings pages for themes, plugins or websites with beautiful syntax.
52
- - [MB Custom Post Type](https://wordpress.org/plugins/mb-custom-post-type/): Create and manage custom post types and taxonomies easily in WordPress with an easy-to-use interface.
53
- - [Meta Box Yoast SEO](https://wordpress.org/plugins/meta-box-yoast-seo/): Add content of custom fields to Yoast SEO Content Analysis to have better/correct SEO score.
54
- - [Meta Box Text Limiter](https://wordpress.org/plugins/meta-box-text-limiter/): Limit the number of characters or words entered for text and textarea fields.
55
  - [Meta Box Conditional Logic](https://metabox.io/plugins/meta-box-conditional-logic/): Add visibility dependency for custom meta boxes and custom fields in WordPress.
56
  - [Meta Box Group](https://metabox.io/plugins/meta-box-group/): Create repeatable groups of custom fields for better appearance and structure.
57
  - [Meta Box Builder](https://metabox.io/plugins/meta-box-builder/): Create custom meta boxes and custom fields in WordPress using the drag-and-drop interface.
@@ -73,11 +101,20 @@ See all extensions [here](https://metabox.io/plugins/).
73
 
74
  == Installation ==
75
 
 
 
 
 
 
 
 
 
 
76
  1. Unzip the download package
77
  1. Upload `meta-box` to the `/wp-content/plugins/` directory
78
  1. Activate the plugin through the 'Plugins' menu in WordPress
79
 
80
- To getting started with the plugin API, please read [this tutorial](https://metabox.io/docs/getting-started/).
81
 
82
  == Frequently Asked Questions ==
83
 
@@ -91,6 +128,18 @@ To getting started with the plugin API, please read [this tutorial](https://meta
91
 
92
  == Changelog ==
93
 
 
 
 
 
 
 
 
 
 
 
 
 
94
  = 4.11 =
95
 
96
  * Code architecture update:
3
  Donate link: http://paypal.me/anhtnt
4
  Tags: meta-box, custom fields, custom field, meta, meta-boxes, admin, advanced, custom, edit, field, file, image, magic fields, matrix, more fields, Post, repeater, simple fields, text, textarea, type, cms, fields post
5
  Requires at least: 4.1
6
+ Tested up to: 4.7.4
7
+ Stable tag: 4.11.1
8
  License: GPLv2 or later
9
 
10
  Meta Box plugin is a powerful, professional developer toolkit to create custom meta boxes and custom fields for WordPress.
17
 
18
  With the extensions, you can easily build meta boxes not only for custom post types (default), but also for **settings page, user meta, term meta**. You can also display the fields the way you want with columns, tabs or groups.
19
 
20
+ The plugin requires a little coding, but if you're not familiar with coding or prefer GUI for faster creating custom post types, meta boxes and custom fields, you can use our [Online Generator](https://metabox.io/online-generator/) or use the extensions [MB Custom Post Type](https://wordpress.org/plugins/mb-custom-post-type/) or [Meta Box Builder](https://metabox.io/plugins/meta-box-builder/).
21
 
22
  ### Features
23
 
24
+ #### Create any type of meta data
25
+
26
  * Create custom meta boxes for posts, pages or any custom post type.
27
  * Create custom [settings pages or theme option page](https://metabox.io/plugins/mb-settings-page/).
28
  * Create custom meta boxes for [user profile pages](https://metabox.io/plugins/mb-user-meta/).
29
  * Create custom meta boxes for [taxonomy terms](https://metabox.io/plugins/mb-term-meta/).
30
+
31
+ #### Wide-range of field types and options
32
+
33
  * Supports 40+ built-in [field types](https://metabox.io/docs/define-fields/) for all your needs (text, textarea, wysiwyg/editor, image, file, post, select, checkbox, radio buttons, date time picker, taxonomy, user, oembed and more to come!). You can also [create your own field type](https://metabox.io/docs/create-field-type/) easily.
34
  * Support cloning (repeatable) fields for most field types, including WYSIWYG/editor field. Also support [repeatable field groups](https://metabox.io/plugins/meta-box-group/).
35
  * Powerful [actions and filters](https://metabox.io/docs-category/reference/) that developers can build or change the appearance and behavior in the plugin.
36
+
37
+ #### Create meta boxes and custom fields with UI
38
+
39
+ The plugin is built mostly for developers with a little coding, but if you prefer GUI for faster creating custom post types, meta boxes and custom fields, the plugin has extensions for that:
40
+
41
+ - [Online Generator](https://metabox.io/online-generator/)
42
+ - [MB Custom Post Type](https://wordpress.org/plugins/mb-custom-post-type/)
43
+ - [Meta Box Builder](https://metabox.io/plugins/meta-box-builder/)
44
+
45
+ <blockquote>To make it easy for all users to create custom meta boxes and custom fields, we have created an <a href="https://metabox.io/online-generator/">Online Generator</a> tool. It has an user-friendly interface with drag and drop features. No custom code anymore!</blockquote>
46
+
47
+ #### Developer-friendly
48
+
49
  * Uses the [native WordPress meta data storage](https://metabox.io/docs/how-post-meta-is-saved-in-the-database/) and functions for ease of use and fast processing.
50
  * [Easily integrate with themes and plugins](https://metabox.io/docs/include-meta-box-plugin-themes/).
51
  * [Works with Composer](https://metabox.io/docs/using-meta-box-composer/) if you want to include the plugin in your project.
52
  * Compatible with WPML multilingual plugin (officially supported by WPML team).
53
 
54
+ #### Detailed Documentation
55
+
56
+ We provide regular updated and extensive documentation. Not only technical things, but also tutorials on how to use the plugin better.
57
 
58
  - [Getting Started](https://metabox.io/docs/getting-started/)
59
  - [Register Meta Boxes](https://metabox.io/docs/registering-meta-boxes/)
64
 
65
  ### Extensions
66
 
67
+ #### Free Extensions
68
+
69
+ - [MB Custom Post Type](https://wordpress.org/plugins/mb-custom-post-type/): Create and manage custom post types and taxonomies easily in WordPress with an easy-to-use interface.
70
+ - [MB Custom Taxonomy](https://metabox.io/plugins/custom-taxonomy/): Create and manage custom taxonomies with an easy-to-use interface in WordPress.
71
+ - [Meta Box Yoast SEO](https://wordpress.org/plugins/meta-box-yoast-seo/): Add content of custom fields to Yoast SEO Content Analysis to have better/correct SEO score.
72
+ - [Meta Box Text Limiter](https://wordpress.org/plugins/meta-box-text-limiter/): Limit the number of characters or words entered for text and textarea fields.
73
+ - [MB Rest API](https://metabox.io/plugins/mb-rest-api/): Pull all meta value from posts, terms into the WP REST API responses.
74
+
75
+ #### Premium Extensions
76
+
77
+ - [MB Frontend Submission](https://metabox.io/plugins/mb-frontend-submission/): Create frontend forms for users to submit custom content. Embed everywhere with shortcode.
78
  - [MB User Meta](https://metabox.io/plugins/mb-user-meta/): Add custom fields to user profile (user meta) quickly with simple syntax.
79
  - [Meta Box Geolocation](https://metabox.io/plugins/meta-box-geolocation/): Automatically and instantly populate location data with the power of Google Maps Geolocation API.
80
  - [MB Admin Columns](https://metabox.io/plugins/mb-admin-columns/): Display custom fields in table columns in admin screens for All Posts (types).
81
  - [MB Term Meta](https://metabox.io/plugins/mb-term-meta/): Add meta data to categories, tags or any custom taxonomy with simple syntax.
82
  - [MB Settings Page](https://metabox.io/plugins/mb-settings-page/): Create settings pages for themes, plugins or websites with beautiful syntax.
 
 
 
83
  - [Meta Box Conditional Logic](https://metabox.io/plugins/meta-box-conditional-logic/): Add visibility dependency for custom meta boxes and custom fields in WordPress.
84
  - [Meta Box Group](https://metabox.io/plugins/meta-box-group/): Create repeatable groups of custom fields for better appearance and structure.
85
  - [Meta Box Builder](https://metabox.io/plugins/meta-box-builder/): Create custom meta boxes and custom fields in WordPress using the drag-and-drop interface.
101
 
102
  == Installation ==
103
 
104
+ From within WordPress
105
+
106
+ 1. Visit **Plugins > Add New**
107
+ 1. Search for **Meta Box**
108
+ 1. Click the **Install Now** button to install the plugin
109
+ 1. Click the **Activate** button to activate the plugin
110
+
111
+ Manually
112
+
113
  1. Unzip the download package
114
  1. Upload `meta-box` to the `/wp-content/plugins/` directory
115
  1. Activate the plugin through the 'Plugins' menu in WordPress
116
 
117
+ To getting started with the plugin, please read [this tutorial](https://metabox.io/docs/getting-started/).
118
 
119
  == Frequently Asked Questions ==
120
 
128
 
129
  == Changelog ==
130
 
131
+ = 4.11.1 =
132
+
133
+ * Added button for "Check/Uncheck all options" in input list field when type is `checkbox_list`. Props @mrbrazzi.
134
+ * Select multiple images now does not require to press "Shift".
135
+ * Change button field to actual button element.
136
+ * Fix scripts and styles dependencies
137
+ * Fix bug for select tree when parent not set
138
+ * Add sanitize post type in case users use CamelCase in post type name
139
+ * Increase z-index of datepicker to prevent overlap with top menu bar
140
+ * Make compatible with MB Admin Columns and MB Frontend Submission extensions
141
+ * Update Persian translation. Credit Morteza Gholami
142
+
143
  = 4.11 =
144
 
145
  * Code architecture update: