Version Description
- Bug Fix: Fixed ACF5 Image/File edit and delete buttons
Download this release
Release Info
Developer | funkjedi |
Plugin | ACF qTranslate |
Version | 1.7.12 |
Comparing to | |
See all releases |
Code changes from version 1.7.11 to 1.7.12
- acf-qtranslate.php +1 -1
- readme.txt +5 -2
- src/acf_5/fields/file.php +31 -34
- src/acf_5/fields/image.php +39 -26
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.12
|
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.2.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 |
|
@@ -59,6 +59,9 @@ The plugin is based on code samples posted to the ACF support forums by taeo bac
|
|
59 |
|
60 |
== Changelog ==
|
61 |
|
|
|
|
|
|
|
62 |
= 1.7.11 =
|
63 |
* Core: Enable support for ACF included within theme
|
64 |
* Bug Fix: Fixed do_action support when removing repeater rows
|
3 |
Tags: acf, advanced custom fields, qtranslate, add-on, admin
|
4 |
Requires at least: 3.5.0
|
5 |
Tested up to: 4.2.1
|
6 |
+
Version: 1.7.12
|
7 |
+
Stable tag: 1.7.12
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
59 |
|
60 |
== Changelog ==
|
61 |
|
62 |
+
= 1.7.12 =
|
63 |
+
* Bug Fix: Fixed ACF5 Image/File edit and delete buttons
|
64 |
+
|
65 |
= 1.7.11 =
|
66 |
* Core: Enable support for ACF included within theme
|
67 |
* Bug Fix: Fixed do_action support when removing repeater rows
|
src/acf_5/fields/file.php
CHANGED
@@ -62,37 +62,35 @@ class acf_qtranslate_acf_5_file extends acf_field_file {
|
|
62 |
*/
|
63 |
function render_field($field) {
|
64 |
global $q_config;
|
|
|
65 |
$languages = qtrans_getSortedLanguages(true);
|
66 |
$values = qtrans_split($field['value'], $quicktags = true);
|
67 |
$currentLanguage = $this->plugin->get_active_language();
|
68 |
|
|
|
|
|
|
|
69 |
// enqueue
|
70 |
-
|
|
|
|
|
71 |
|
72 |
// vars
|
73 |
$o = array(
|
74 |
'icon' => '',
|
75 |
'title' => '',
|
76 |
-
'size' => '',
|
77 |
'url' => '',
|
78 |
-
'
|
|
|
79 |
);
|
80 |
|
81 |
$div = array(
|
82 |
'class' => 'acf-file-uploader acf-cf',
|
83 |
'data-library' => $field['library'],
|
84 |
-
'data-mime_types' => $field['mime_types']
|
|
|
85 |
);
|
86 |
|
87 |
-
$input_atts = array(
|
88 |
-
'type' => 'hidden',
|
89 |
-
'name' => $field['name'],
|
90 |
-
'value' => $field['value'],
|
91 |
-
'data-name' => 'value-id'
|
92 |
-
);
|
93 |
-
|
94 |
-
$url = '';
|
95 |
-
|
96 |
echo '<div class="multi-language-field multi-language-field-image">';
|
97 |
|
98 |
foreach ($languages as $language) {
|
@@ -103,33 +101,32 @@ class acf_qtranslate_acf_5_file extends acf_field_file {
|
|
103 |
echo '<a class="' . $class . '" data-language="' . $language . '">' . $q_config['language_name'][$language] . '</a>';
|
104 |
}
|
105 |
|
|
|
|
|
106 |
foreach ($languages as $language):
|
107 |
|
108 |
-
$
|
109 |
$field['value'] = $values[$language];
|
110 |
$div['data-language'] = $language;
|
111 |
$div['class'] = 'acf-file-uploader acf-cf';
|
112 |
|
113 |
// has value?
|
114 |
-
if( $field['value']
|
115 |
$file = get_post( $field['value'] );
|
116 |
if( $file ) {
|
117 |
-
$div['class'] .= ' has-value';
|
118 |
-
|
119 |
$o['icon'] = wp_mime_type_icon( $file->ID );
|
120 |
$o['title'] = $file->post_title;
|
121 |
-
$o['
|
122 |
$o['url'] = wp_get_attachment_url( $file->ID );
|
123 |
|
124 |
$explode = explode('/', $o['url']);
|
125 |
-
$o['
|
126 |
}
|
127 |
-
}
|
128 |
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
}
|
134 |
|
135 |
if ($language === $currentLanguage) {
|
@@ -139,7 +136,7 @@ class acf_qtranslate_acf_5_file extends acf_field_file {
|
|
139 |
?>
|
140 |
<div <?php acf_esc_attr_e($div); ?>>
|
141 |
<div class="acf-hidden">
|
142 |
-
<?php acf_hidden_input(array( 'name' => $
|
143 |
</div>
|
144 |
<div class="show-if-value file-wrap acf-soh">
|
145 |
<div class="file-icon">
|
@@ -150,24 +147,24 @@ class acf_qtranslate_acf_5_file extends acf_field_file {
|
|
150 |
<strong data-name="title"><?php echo $o['title']; ?></strong>
|
151 |
</p>
|
152 |
<p>
|
153 |
-
<strong><?php _e('File
|
154 |
-
<a data-name="
|
155 |
</p>
|
156 |
<p>
|
157 |
-
<strong><?php _e('File
|
158 |
-
<span data-name="
|
159 |
</p>
|
160 |
|
161 |
<ul class="acf-hl acf-soh-target">
|
162 |
-
<?php if(
|
163 |
-
<li><a class="acf-icon dark" data-name="edit" href="#"
|
164 |
<?php endif; ?>
|
165 |
-
<li><a class="acf-icon dark" data-name="remove" href="#"
|
166 |
</ul>
|
167 |
</div>
|
168 |
</div>
|
169 |
<div class="hide-if-value">
|
170 |
-
<?php if( $basic ): ?>
|
171 |
|
172 |
<?php if( $field['value'] && !is_numeric($field['value']) ): ?>
|
173 |
<div class="acf-error-message"><p><?php echo $field['value']; ?></p></div>
|
@@ -177,7 +174,7 @@ class acf_qtranslate_acf_5_file extends acf_field_file {
|
|
177 |
|
178 |
<?php else: ?>
|
179 |
|
180 |
-
<p style="margin:0;"><?php _e('No
|
181 |
|
182 |
<?php endif; ?>
|
183 |
|
62 |
*/
|
63 |
function render_field($field) {
|
64 |
global $q_config;
|
65 |
+
|
66 |
$languages = qtrans_getSortedLanguages(true);
|
67 |
$values = qtrans_split($field['value'], $quicktags = true);
|
68 |
$currentLanguage = $this->plugin->get_active_language();
|
69 |
|
70 |
+
// vars
|
71 |
+
$uploader = acf_get_setting('uploader');
|
72 |
+
|
73 |
// enqueue
|
74 |
+
if( $uploader == 'wp' ) {
|
75 |
+
acf_enqueue_uploader();
|
76 |
+
}
|
77 |
|
78 |
// vars
|
79 |
$o = array(
|
80 |
'icon' => '',
|
81 |
'title' => '',
|
|
|
82 |
'url' => '',
|
83 |
+
'filesize' => '',
|
84 |
+
'filename' => '',
|
85 |
);
|
86 |
|
87 |
$div = array(
|
88 |
'class' => 'acf-file-uploader acf-cf',
|
89 |
'data-library' => $field['library'],
|
90 |
+
'data-mime_types' => $field['mime_types'],
|
91 |
+
'data-uploader' => $uploader
|
92 |
);
|
93 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
94 |
echo '<div class="multi-language-field multi-language-field-image">';
|
95 |
|
96 |
foreach ($languages as $language) {
|
101 |
echo '<a class="' . $class . '" data-language="' . $language . '">' . $q_config['language_name'][$language] . '</a>';
|
102 |
}
|
103 |
|
104 |
+
$field_name = $field['name'];
|
105 |
+
|
106 |
foreach ($languages as $language):
|
107 |
|
108 |
+
$field['name'] = $field_name . '[' . $language . ']';
|
109 |
$field['value'] = $values[$language];
|
110 |
$div['data-language'] = $language;
|
111 |
$div['class'] = 'acf-file-uploader acf-cf';
|
112 |
|
113 |
// has value?
|
114 |
+
if( $field['value'] ) {
|
115 |
$file = get_post( $field['value'] );
|
116 |
if( $file ) {
|
|
|
|
|
117 |
$o['icon'] = wp_mime_type_icon( $file->ID );
|
118 |
$o['title'] = $file->post_title;
|
119 |
+
$o['filesize'] = @size_format(filesize( get_attached_file( $file->ID ) ));
|
120 |
$o['url'] = wp_get_attachment_url( $file->ID );
|
121 |
|
122 |
$explode = explode('/', $o['url']);
|
123 |
+
$o['filename'] = end( $explode );
|
124 |
}
|
|
|
125 |
|
126 |
+
// url exists
|
127 |
+
if( $o['url'] ) {
|
128 |
+
$div['class'] .= ' has-value';
|
129 |
+
}
|
130 |
}
|
131 |
|
132 |
if ($language === $currentLanguage) {
|
136 |
?>
|
137 |
<div <?php acf_esc_attr_e($div); ?>>
|
138 |
<div class="acf-hidden">
|
139 |
+
<?php acf_hidden_input(array( 'name' => $field['name'], 'value' => $field['value'], 'data-name' => 'id' )); ?>
|
140 |
</div>
|
141 |
<div class="show-if-value file-wrap acf-soh">
|
142 |
<div class="file-icon">
|
147 |
<strong data-name="title"><?php echo $o['title']; ?></strong>
|
148 |
</p>
|
149 |
<p>
|
150 |
+
<strong><?php _e('File name', 'acf'); ?>:</strong>
|
151 |
+
<a data-name="filename" href="<?php echo $o['url']; ?>" target="_blank"><?php echo $o['filename']; ?></a>
|
152 |
</p>
|
153 |
<p>
|
154 |
+
<strong><?php _e('File size', 'acf'); ?>:</strong>
|
155 |
+
<span data-name="filesize"><?php echo $o['filesize']; ?></span>
|
156 |
</p>
|
157 |
|
158 |
<ul class="acf-hl acf-soh-target">
|
159 |
+
<?php if( $uploader != 'basic' ): ?>
|
160 |
+
<li><a class="acf-icon -pencil dark" data-name="edit" href="#"></a></li>
|
161 |
<?php endif; ?>
|
162 |
+
<li><a class="acf-icon -cancel dark" data-name="remove" href="#"></a></li>
|
163 |
</ul>
|
164 |
</div>
|
165 |
</div>
|
166 |
<div class="hide-if-value">
|
167 |
+
<?php if( $uploader == 'basic' ): ?>
|
168 |
|
169 |
<?php if( $field['value'] && !is_numeric($field['value']) ): ?>
|
170 |
<div class="acf-error-message"><p><?php echo $field['value']; ?></p></div>
|
174 |
|
175 |
<?php else: ?>
|
176 |
|
177 |
+
<p style="margin:0;"><?php _e('No file selected','acf'); ?> <a data-name="add" class="acf-button button" href="#"><?php _e('Add File','acf'); ?></a></p>
|
178 |
|
179 |
<?php endif; ?>
|
180 |
|
src/acf_5/fields/image.php
CHANGED
@@ -67,29 +67,34 @@ class acf_qtranslate_acf_5_image extends acf_field_image {
|
|
67 |
*/
|
68 |
function render_field($field) {
|
69 |
global $q_config;
|
|
|
70 |
$languages = qtrans_getSortedLanguages(true);
|
71 |
$values = qtrans_split($field['value'], $quicktags = true);
|
72 |
$currentLanguage = $this->plugin->get_active_language();
|
73 |
|
|
|
|
|
|
|
|
|
74 |
// enqueue
|
75 |
-
|
|
|
|
|
76 |
|
77 |
// vars
|
|
|
|
|
78 |
$div = array(
|
79 |
'class' => 'acf-image-uploader acf-cf',
|
80 |
'data-preview_size' => $field['preview_size'],
|
81 |
'data-library' => $field['library'],
|
82 |
-
'data-mime_types' => $field['mime_types']
|
|
|
83 |
);
|
84 |
|
85 |
-
|
86 |
-
|
87 |
-
'name' => $field['name'],
|
88 |
-
'value' => $field['value'],
|
89 |
-
'data-name' => 'value-id'
|
90 |
-
);
|
91 |
|
92 |
-
$url = '';
|
93 |
|
94 |
echo '<div class="multi-language-field multi-language-field-image">';
|
95 |
|
@@ -101,25 +106,28 @@ class acf_qtranslate_acf_5_image extends acf_field_image {
|
|
101 |
echo '<a class="' . $class . '" data-language="' . $language . '">' . $q_config['language_name'][$language] . '</a>';
|
102 |
}
|
103 |
|
|
|
|
|
104 |
foreach ($languages as $language):
|
105 |
|
106 |
-
$
|
107 |
$field['value'] = $values[$language];
|
108 |
$div['data-language'] = $language;
|
109 |
$div['class'] = 'acf-image-uploader acf-cf';
|
110 |
|
111 |
// has value?
|
112 |
-
if( $field['value']
|
|
|
113 |
$url = wp_get_attachment_image_src($field['value'], $field['preview_size']);
|
114 |
-
$
|
115 |
|
116 |
-
|
117 |
-
|
118 |
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
}
|
124 |
|
125 |
if ($language === $currentLanguage) {
|
@@ -129,25 +137,30 @@ class acf_qtranslate_acf_5_image extends acf_field_image {
|
|
129 |
?>
|
130 |
<div <?php acf_esc_attr_e( $div ); ?>>
|
131 |
<div class="acf-hidden">
|
132 |
-
<?php acf_hidden_input(array( 'name' => $
|
133 |
</div>
|
134 |
-
<div class="view show-if-value acf-soh"
|
135 |
-
<img data-name="image" src="<?php echo $url; ?>" alt=""/>
|
136 |
<ul class="acf-hl acf-soh-target">
|
137 |
-
<?php if(
|
138 |
-
<li><a class="acf-icon dark" data-name="edit" href="#"
|
139 |
<?php endif; ?>
|
140 |
-
<li><a class="acf-icon dark" data-name="remove" href="#"
|
141 |
</ul>
|
142 |
</div>
|
143 |
<div class="view hide-if-value">
|
144 |
-
<?php if( $basic ): ?>
|
|
|
145 |
<?php if( $field['value'] && !is_numeric($field['value']) ): ?>
|
146 |
<div class="acf-error-message"><p><?php echo $field['value']; ?></p></div>
|
147 |
<?php endif; ?>
|
|
|
148 |
<input type="file" name="<?php echo $field['name']; ?>" id="<?php echo $field['id']; ?>" />
|
|
|
149 |
<?php else: ?>
|
150 |
-
|
|
|
|
|
151 |
<?php endif; ?>
|
152 |
</div>
|
153 |
</div>
|
67 |
*/
|
68 |
function render_field($field) {
|
69 |
global $q_config;
|
70 |
+
|
71 |
$languages = qtrans_getSortedLanguages(true);
|
72 |
$values = qtrans_split($field['value'], $quicktags = true);
|
73 |
$currentLanguage = $this->plugin->get_active_language();
|
74 |
|
75 |
+
|
76 |
+
// vars
|
77 |
+
$uploader = acf_get_setting('uploader');
|
78 |
+
|
79 |
// enqueue
|
80 |
+
if( $uploader == 'wp' ) {
|
81 |
+
acf_enqueue_uploader();
|
82 |
+
}
|
83 |
|
84 |
// vars
|
85 |
+
$url = '';
|
86 |
+
$alt = '';
|
87 |
$div = array(
|
88 |
'class' => 'acf-image-uploader acf-cf',
|
89 |
'data-preview_size' => $field['preview_size'],
|
90 |
'data-library' => $field['library'],
|
91 |
+
'data-mime_types' => $field['mime_types'],
|
92 |
+
'data-uploader' => $uploader
|
93 |
);
|
94 |
|
95 |
+
// get size of preview value
|
96 |
+
$size = acf_get_image_size($field['preview_size']);
|
|
|
|
|
|
|
|
|
97 |
|
|
|
98 |
|
99 |
echo '<div class="multi-language-field multi-language-field-image">';
|
100 |
|
106 |
echo '<a class="' . $class . '" data-language="' . $language . '">' . $q_config['language_name'][$language] . '</a>';
|
107 |
}
|
108 |
|
109 |
+
$field_name = $field['name'];
|
110 |
+
|
111 |
foreach ($languages as $language):
|
112 |
|
113 |
+
$field['name'] = $field_name . '[' . $language . ']';
|
114 |
$field['value'] = $values[$language];
|
115 |
$div['data-language'] = $language;
|
116 |
$div['class'] = 'acf-image-uploader acf-cf';
|
117 |
|
118 |
// has value?
|
119 |
+
if( $field['value'] ) {
|
120 |
+
// update vars
|
121 |
$url = wp_get_attachment_image_src($field['value'], $field['preview_size']);
|
122 |
+
$alt = get_post_meta($field['value'], '_wp_attachment_image_alt', true);
|
123 |
|
124 |
+
// url exists
|
125 |
+
if( $url ) $url = $url[0];
|
126 |
|
127 |
+
// url exists
|
128 |
+
if( $url ) {
|
129 |
+
$div['class'] .= ' has-value';
|
130 |
+
}
|
131 |
}
|
132 |
|
133 |
if ($language === $currentLanguage) {
|
137 |
?>
|
138 |
<div <?php acf_esc_attr_e( $div ); ?>>
|
139 |
<div class="acf-hidden">
|
140 |
+
<?php acf_hidden_input(array( 'name' => $field['name'], 'value' => $field['value'] )); ?>
|
141 |
</div>
|
142 |
+
<div class="view show-if-value acf-soh" <?php if( $size['width'] ) echo 'style="max-width: '.$size['width'].'px"'; ?>>
|
143 |
+
<img data-name="image" src="<?php echo $url; ?>" alt="<?php echo $alt; ?>"/>
|
144 |
<ul class="acf-hl acf-soh-target">
|
145 |
+
<?php if( $uploader != 'basic' ): ?>
|
146 |
+
<li><a class="acf-icon -pencil dark" data-name="edit" href="#" title="<?php _e('Edit', 'acf'); ?>"></a></li>
|
147 |
<?php endif; ?>
|
148 |
+
<li><a class="acf-icon -cancel dark" data-name="remove" href="#" title="<?php _e('Remove', 'acf'); ?>"></a></li>
|
149 |
</ul>
|
150 |
</div>
|
151 |
<div class="view hide-if-value">
|
152 |
+
<?php if( $uploader == 'basic' ): ?>
|
153 |
+
|
154 |
<?php if( $field['value'] && !is_numeric($field['value']) ): ?>
|
155 |
<div class="acf-error-message"><p><?php echo $field['value']; ?></p></div>
|
156 |
<?php endif; ?>
|
157 |
+
|
158 |
<input type="file" name="<?php echo $field['name']; ?>" id="<?php echo $field['id']; ?>" />
|
159 |
+
|
160 |
<?php else: ?>
|
161 |
+
|
162 |
+
<p style="margin:0;"><?php _e('No image selected','acf'); ?> <a data-name="add" class="acf-button button" href="#"><?php _e('Add Image','acf'); ?></a></p>
|
163 |
+
|
164 |
<?php endif; ?>
|
165 |
</div>
|
166 |
</div>
|