Version Description
- Core: Updates to README file
- Bug Fix: Updated to visible ACF fields detection
Download this release
Release Info
Developer | funkjedi |
Plugin | ACF qTranslate |
Version | 1.7.5 |
Comparing to | |
See all releases |
Code changes from version 1.7.4 to 1.7.5
- acf-qtranslate.php +1 -1
- readme.txt +7 -3
- src/acf_4/acf.php +36 -27
- src/acf_5/acf.php +52 -34
acf-qtranslate.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Advanced Custom Fields: qTranslate
|
4 |
Plugin URI: http://github.com/funkjedi/acf-qtranslate
|
5 |
Description: Provides multilingual versions of the text, text area, and wysiwyg fields.
|
6 |
-
Version: 1.7.
|
7 |
Author: funkjedi
|
8 |
Author URI: http://funkjedi.com
|
9 |
License: GPLv2 or later
|
3 |
Plugin Name: Advanced Custom Fields: qTranslate
|
4 |
Plugin URI: http://github.com/funkjedi/acf-qtranslate
|
5 |
Description: Provides multilingual versions of the text, text area, and wysiwyg fields.
|
6 |
+
Version: 1.7.5
|
7 |
Author: funkjedi
|
8 |
Author URI: http://funkjedi.com
|
9 |
License: GPLv2 or later
|
readme.txt
CHANGED
@@ -3,8 +3,8 @@ Contributors: funkjedi
|
|
3 |
Tags: acf, advanced custom fields, qtranslate, add-on, admin
|
4 |
Requires at least: 3.5.0
|
5 |
Tested up to: 4.1.1
|
6 |
-
Version: 1.7.
|
7 |
-
Stable tag: 1.7.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -34,7 +34,7 @@ https://github.com/funkjedi/acf-qtranslate/issues/
|
|
34 |
1. Upload `acf-qtranslate` directory to the `/wp-content/plugins/` directory
|
35 |
2. Activate the plugin through the 'Plugins' menu in WordPress
|
36 |
|
37 |
-
= Requires ACF4 or ACF5PRO
|
38 |
* [ACF](https://wordpress.org/plugins/advanced-custom-fields/)
|
39 |
* [ACF5PRO](http://www.advancedcustomfields.com/pro/)
|
40 |
|
@@ -59,6 +59,10 @@ The plugin is based on code samples posted to the ACF support forums by taeo bac
|
|
59 |
|
60 |
== Changelog ==
|
61 |
|
|
|
|
|
|
|
|
|
62 |
= 1.7.4 =
|
63 |
* Bug Fix: Only load admin javascript when there are visible ACF fields
|
64 |
|
3 |
Tags: acf, advanced custom fields, qtranslate, add-on, admin
|
4 |
Requires at least: 3.5.0
|
5 |
Tested up to: 4.1.1
|
6 |
+
Version: 1.7.5
|
7 |
+
Stable tag: 1.7.5
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
34 |
1. Upload `acf-qtranslate` directory to the `/wp-content/plugins/` directory
|
35 |
2. Activate the plugin through the 'Plugins' menu in WordPress
|
36 |
|
37 |
+
= Requires ACF4 or ACF5PRO =
|
38 |
* [ACF](https://wordpress.org/plugins/advanced-custom-fields/)
|
39 |
* [ACF5PRO](http://www.advancedcustomfields.com/pro/)
|
40 |
|
59 |
|
60 |
== Changelog ==
|
61 |
|
62 |
+
= 1.7.5 =
|
63 |
+
* Core: Updates to README file
|
64 |
+
* Bug Fix: Updated to visible ACF fields detection
|
65 |
+
|
66 |
= 1.7.4 =
|
67 |
* Bug Fix: Only load admin javascript when there are visible ACF fields
|
68 |
|
src/acf_4/acf.php
CHANGED
@@ -46,7 +46,7 @@ class acf_qtranslate_acf_4 implements acf_qtranslate_acf_interface {
|
|
46 |
* Load javascript and stylesheets on admin pages.
|
47 |
*/
|
48 |
public function admin_enqueue_scripts() {
|
49 |
-
if ($this->
|
50 |
wp_enqueue_style('acf_qtranslate_common', plugins_url('/assets/common.css', ACF_QTRANSLATE_PLUGIN), array('acf-input'));
|
51 |
wp_enqueue_script('acf_qtranslate_common', plugins_url('/assets/common.js', ACF_QTRANSLATE_PLUGIN), array('acf-input'));
|
52 |
}
|
@@ -68,11 +68,43 @@ class acf_qtranslate_acf_4 implements acf_qtranslate_acf_interface {
|
|
68 |
* @return array
|
69 |
*/
|
70 |
public function get_visible_acf_fields() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
71 |
global $post, $pagenow, $typenow, $plugin_page;
|
72 |
|
73 |
$filter = array();
|
74 |
-
$visible_fields = array();
|
75 |
-
|
76 |
if ($pagenow === 'post.php' || $pagenow === 'post-new.php') {
|
77 |
if ($typenow !== 'acf') {
|
78 |
$filter['post_id'] = apply_filters('acf/get_post_id', false);
|
@@ -100,30 +132,7 @@ class acf_qtranslate_acf_4 implements acf_qtranslate_acf_interface {
|
|
100 |
$filter['post_type'] = 'attachment';
|
101 |
}
|
102 |
|
103 |
-
|
104 |
-
return $visible_fields;
|
105 |
-
}
|
106 |
-
|
107 |
-
$supported_field_types = array(
|
108 |
-
'email',
|
109 |
-
'text',
|
110 |
-
'textarea',
|
111 |
-
);
|
112 |
-
|
113 |
-
$visible_field_groups = apply_filters('acf/location/match_field_groups', array(), $filter);
|
114 |
-
|
115 |
-
foreach (apply_filters('acf/get_field_groups', array()) as $field_group) {
|
116 |
-
if (in_array($field_group['id'], $visible_field_groups)) {
|
117 |
-
$fields = apply_filters('acf/field_group/get_fields', array(), $field_group['id']);
|
118 |
-
foreach ($fields as $field) {
|
119 |
-
if (in_array($field['type'], $supported_field_types)) {
|
120 |
-
$visible_fields[] = array('id' => $field['id']);
|
121 |
-
}
|
122 |
-
}
|
123 |
-
}
|
124 |
-
}
|
125 |
-
|
126 |
-
return $visible_fields;
|
127 |
}
|
128 |
|
129 |
/**
|
46 |
* Load javascript and stylesheets on admin pages.
|
47 |
*/
|
48 |
public function admin_enqueue_scripts() {
|
49 |
+
if ($this->get_acf_field_group_filters()) {
|
50 |
wp_enqueue_style('acf_qtranslate_common', plugins_url('/assets/common.css', ACF_QTRANSLATE_PLUGIN), array('acf-input'));
|
51 |
wp_enqueue_script('acf_qtranslate_common', plugins_url('/assets/common.js', ACF_QTRANSLATE_PLUGIN), array('acf-input'));
|
52 |
}
|
68 |
* @return array
|
69 |
*/
|
70 |
public function get_visible_acf_fields() {
|
71 |
+
$visible_fields = array();
|
72 |
+
|
73 |
+
// build field group filters required for current screen
|
74 |
+
$filter = $this->get_acf_field_group_filters();
|
75 |
+
if (count($filter) === 0) {
|
76 |
+
return $visible_fields;
|
77 |
+
}
|
78 |
+
|
79 |
+
$supported_field_types = array(
|
80 |
+
'email',
|
81 |
+
'text',
|
82 |
+
'textarea',
|
83 |
+
);
|
84 |
+
|
85 |
+
$visible_field_groups = apply_filters('acf/location/match_field_groups', array(), $filter);
|
86 |
+
|
87 |
+
foreach (apply_filters('acf/get_field_groups', array()) as $field_group) {
|
88 |
+
if (in_array($field_group['id'], $visible_field_groups)) {
|
89 |
+
$fields = apply_filters('acf/field_group/get_fields', array(), $field_group['id']);
|
90 |
+
foreach ($fields as $field) {
|
91 |
+
if (in_array($field['type'], $supported_field_types)) {
|
92 |
+
$visible_fields[] = array('id' => $field['id']);
|
93 |
+
}
|
94 |
+
}
|
95 |
+
}
|
96 |
+
}
|
97 |
+
|
98 |
+
return $visible_fields;
|
99 |
+
}
|
100 |
+
|
101 |
+
/**
|
102 |
+
* Get field group filters based on active screen.
|
103 |
+
*/
|
104 |
+
public function get_acf_field_group_filters() {
|
105 |
global $post, $pagenow, $typenow, $plugin_page;
|
106 |
|
107 |
$filter = array();
|
|
|
|
|
108 |
if ($pagenow === 'post.php' || $pagenow === 'post-new.php') {
|
109 |
if ($typenow !== 'acf') {
|
110 |
$filter['post_id'] = apply_filters('acf/get_post_id', false);
|
132 |
$filter['post_type'] = 'attachment';
|
133 |
}
|
134 |
|
135 |
+
return $filter;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
136 |
}
|
137 |
|
138 |
/**
|
src/acf_5/acf.php
CHANGED
@@ -44,7 +44,7 @@ class acf_qtranslate_acf_5 implements acf_qtranslate_acf_interface {
|
|
44 |
* Load javascript and stylesheets on admin pages.
|
45 |
*/
|
46 |
public function admin_enqueue_scripts() {
|
47 |
-
if ($this->
|
48 |
wp_enqueue_style('acf_qtranslate_common', plugins_url('/assets/common.css', ACF_QTRANSLATE_PLUGIN), array('acf-input'));
|
49 |
wp_enqueue_script('acf_qtranslate_common', plugins_url('/assets/common.js', ACF_QTRANSLATE_PLUGIN), array('acf-input'));
|
50 |
wp_enqueue_script('acf_qtranslate_main', plugins_url('/assets/acf_5/main.js', ACF_QTRANSLATE_PLUGIN), array('acf-input'));
|
@@ -66,12 +66,58 @@ class acf_qtranslate_acf_5 implements acf_qtranslate_acf_interface {
|
|
66 |
* Get the visible ACF fields.
|
67 |
* @return array
|
68 |
*/
|
69 |
-
public function get_visible_acf_fields($
|
70 |
-
global $
|
71 |
|
72 |
-
$filter = array();
|
73 |
$visible_fields = array();
|
74 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
75 |
if ($pagenow === 'post.php' || $pagenow === 'post-new.php') {
|
76 |
if ($typenow !== 'acf') {
|
77 |
$filter['post_id'] = $post->ID;
|
@@ -102,38 +148,10 @@ class acf_qtranslate_acf_5 implements acf_qtranslate_acf_interface {
|
|
102 |
$filter['attachment'] = 'All';
|
103 |
}
|
104 |
elseif (acf_is_screen('widgets') || acf_is_screen('customize')) {
|
105 |
-
|
106 |
-
$filter['widget'] = _get_widget_id_base($id);
|
107 |
-
}
|
108 |
-
else {
|
109 |
-
// process each widget form individually for any visible fields
|
110 |
-
// required due to how acf_get_field_group_visibility() works
|
111 |
-
foreach ($wp_registered_widgets as $widget) {
|
112 |
-
$visible_fields += $this->get_visible_acf_fields($widget['id']);
|
113 |
-
}
|
114 |
-
}
|
115 |
-
}
|
116 |
-
|
117 |
-
if (count($filter) === 0) {
|
118 |
-
return $visible_fields;
|
119 |
}
|
120 |
|
121 |
-
$
|
122 |
-
'email',
|
123 |
-
'text',
|
124 |
-
'textarea',
|
125 |
-
);
|
126 |
-
|
127 |
-
foreach (acf_get_field_groups($filter) as $field_group) {
|
128 |
-
$fields = acf_get_fields($field_group);
|
129 |
-
foreach ($fields as $field) {
|
130 |
-
if (in_array($field['type'], $supported_field_types)) {
|
131 |
-
$visible_fields[] = array('id' => 'acf-' . $field['key']);
|
132 |
-
}
|
133 |
-
}
|
134 |
-
}
|
135 |
-
|
136 |
-
return $visible_fields;
|
137 |
}
|
138 |
|
139 |
}
|
44 |
* Load javascript and stylesheets on admin pages.
|
45 |
*/
|
46 |
public function admin_enqueue_scripts() {
|
47 |
+
if ($this->get_acf_field_group_filters()) {
|
48 |
wp_enqueue_style('acf_qtranslate_common', plugins_url('/assets/common.css', ACF_QTRANSLATE_PLUGIN), array('acf-input'));
|
49 |
wp_enqueue_script('acf_qtranslate_common', plugins_url('/assets/common.js', ACF_QTRANSLATE_PLUGIN), array('acf-input'));
|
50 |
wp_enqueue_script('acf_qtranslate_main', plugins_url('/assets/acf_5/main.js', ACF_QTRANSLATE_PLUGIN), array('acf-input'));
|
66 |
* Get the visible ACF fields.
|
67 |
* @return array
|
68 |
*/
|
69 |
+
public function get_visible_acf_fields($widget_id = null) {
|
70 |
+
global $wp_registered_widgets;
|
71 |
|
|
|
72 |
$visible_fields = array();
|
73 |
|
74 |
+
// build field group filters required for current screen
|
75 |
+
$filter = $this->get_acf_field_group_filters();
|
76 |
+
if (count($filter) === 0) {
|
77 |
+
return $visible_fields;
|
78 |
+
}
|
79 |
+
|
80 |
+
// widgets need some special handling since they
|
81 |
+
// require multiple acf_get_field_group_visibility()
|
82 |
+
// calls in order to return all the visible fields
|
83 |
+
if (acf_is_screen('widgets') || acf_is_screen('customize')) {
|
84 |
+
if ($widget_id) {
|
85 |
+
$filter['widget'] = _get_widget_id_base($widget_id);
|
86 |
+
}
|
87 |
+
else {
|
88 |
+
// process each widget form individually for any visible fields
|
89 |
+
foreach ($wp_registered_widgets as $widget) {
|
90 |
+
$visible_fields += $this->get_visible_acf_fields($widget['id']);
|
91 |
+
}
|
92 |
+
return $visible_fields;
|
93 |
+
}
|
94 |
+
}
|
95 |
+
|
96 |
+
$supported_field_types = array(
|
97 |
+
'email',
|
98 |
+
'text',
|
99 |
+
'textarea',
|
100 |
+
);
|
101 |
+
|
102 |
+
foreach (acf_get_field_groups($filter) as $field_group) {
|
103 |
+
$fields = acf_get_fields($field_group);
|
104 |
+
foreach ($fields as $field) {
|
105 |
+
if (in_array($field['type'], $supported_field_types)) {
|
106 |
+
$visible_fields[] = array('id' => 'acf-' . $field['key']);
|
107 |
+
}
|
108 |
+
}
|
109 |
+
}
|
110 |
+
|
111 |
+
return $visible_fields;
|
112 |
+
}
|
113 |
+
|
114 |
+
/**
|
115 |
+
* Get field group filters based on active screen.
|
116 |
+
*/
|
117 |
+
public function get_acf_field_group_filters() {
|
118 |
+
global $post, $pagenow, $typenow, $plugin_page;
|
119 |
+
|
120 |
+
$filter = array();
|
121 |
if ($pagenow === 'post.php' || $pagenow === 'post-new.php') {
|
122 |
if ($typenow !== 'acf') {
|
123 |
$filter['post_id'] = $post->ID;
|
148 |
$filter['attachment'] = 'All';
|
149 |
}
|
150 |
elseif (acf_is_screen('widgets') || acf_is_screen('customize')) {
|
151 |
+
$filter['widget'] = 'all';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
152 |
}
|
153 |
|
154 |
+
return $filter;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
155 |
}
|
156 |
|
157 |
}
|