Version Description
- Core: (asedano) Added ACF5 support for URL field
- Bug Fix: (asedano) Added ACF 5.7 compatibility
- Bug Fix: (asedano) Prevent PHP warnings about non-existent indexes
Download this release
Release Info
Developer | funkjedi |
Plugin | ACF qTranslate |
Version | 1.7.24 |
Comparing to | |
See all releases |
Code changes from version 1.7.23 to 1.7.24
- acf-qtranslate.php +1 -1
- assets/acf_5/main.js +152 -39
- assets/common.css +5 -0
- readme.txt +10 -4
- src/acf_5/acf.php +2 -0
- src/acf_5/fields/text.php +1 -1
- src/acf_5/fields/textarea.php +1 -1
- src/acf_5/fields/url.php +124 -0
- src/acf_5/fields/wysiwyg.php +0 -1
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.24
|
7 |
Author: funkjedi
|
8 |
Author URI: http://funkjedi.com
|
9 |
License: GPLv2 or later
|
assets/acf_5/main.js
CHANGED
@@ -1,51 +1,164 @@
|
|
1 |
-
|
2 |
/**
|
3 |
* Clone functionality from standard Image field type
|
4 |
*/
|
5 |
-
acf.
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
}
|
14 |
-
}
|
|
|
15 |
|
16 |
/**
|
17 |
* Clone functionality from standard File field type
|
18 |
*/
|
19 |
-
acf.
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
|
|
|
|
24 |
|
25 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
}
|
27 |
-
}
|
|
|
28 |
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
50 |
}
|
51 |
-
}
|
|
|
|
1 |
/**
|
2 |
* Clone functionality from standard Image field type
|
3 |
*/
|
4 |
+
acf.registerFieldType(acf.models.ImageField.extend({
|
5 |
+
type: 'qtranslate_image',
|
6 |
+
|
7 |
+
$control: function(){
|
8 |
+
return this.$('.acf-image-uploader.current-language');
|
9 |
+
},
|
10 |
+
|
11 |
+
$input: function(){
|
12 |
+
return this.$('.acf-image-uploader.current-language input[type="hidden"]');
|
13 |
+
},
|
14 |
+
|
15 |
+
render: function( attachment ){
|
16 |
+
var control = this.$control();
|
17 |
+
|
18 |
+
// vars
|
19 |
+
attachment = this.validateAttachment( attachment );
|
20 |
+
|
21 |
+
// update image
|
22 |
+
control.find('img').attr({
|
23 |
+
src: attachment.url,
|
24 |
+
alt: attachment.alt,
|
25 |
+
title: attachment.title
|
26 |
+
});
|
27 |
+
|
28 |
+
// vars
|
29 |
+
var val = attachment.id || '';
|
30 |
+
|
31 |
+
// update val
|
32 |
+
this.val( val );
|
33 |
+
|
34 |
+
// update class
|
35 |
+
if( val ) {
|
36 |
+
control.addClass('has-value');
|
37 |
+
} else {
|
38 |
+
control.removeClass('has-value');
|
39 |
}
|
40 |
+
}
|
41 |
+
}));
|
42 |
|
43 |
/**
|
44 |
* Clone functionality from standard File field type
|
45 |
*/
|
46 |
+
acf.registerFieldType(acf.models.QtranslateImageField.extend({
|
47 |
+
type: 'qtranslate_file',
|
48 |
+
render: function( attachment ){
|
49 |
+
var control = this.$control();
|
50 |
+
|
51 |
+
// vars
|
52 |
+
attachment = this.validateAttachment( attachment );
|
53 |
|
54 |
+
// update image
|
55 |
+
this.$control().find(' img').attr({
|
56 |
+
src: attachment.icon,
|
57 |
+
alt: attachment.alt,
|
58 |
+
title: attachment.title
|
59 |
+
});
|
60 |
+
|
61 |
+
// update elements
|
62 |
+
control.find('[data-name="title"]').text( attachment.title );
|
63 |
+
control.find('[data-name="filename"]').text( attachment.filename ).attr( 'href', attachment.url );
|
64 |
+
control.find('[data-name="filesize"]').text( attachment.filesizeHumanReadable );
|
65 |
+
|
66 |
+
// vars
|
67 |
+
var val = attachment.id || '';
|
68 |
+
|
69 |
+
// update val
|
70 |
+
acf.val( this.$input(), val );
|
71 |
+
|
72 |
+
// update class
|
73 |
+
if( val ) {
|
74 |
+
control.addClass('has-value');
|
75 |
+
} else {
|
76 |
+
control.removeClass('has-value');
|
77 |
}
|
78 |
+
},
|
79 |
+
}));
|
80 |
|
81 |
+
acf.registerFieldType(acf.models.WysiwygField.extend({
|
82 |
+
type: 'qtranslate_wysiwyg',
|
83 |
+
initializeEditor: function() {
|
84 |
+
var self = this;
|
85 |
+
this.$('.acf-editor-wrap').each(function() {
|
86 |
+
var $wrap = $(this);
|
87 |
+
var $textarea = $wrap.find('textarea');
|
88 |
+
var args = {
|
89 |
+
tinymce: true,
|
90 |
+
quicktags: true,
|
91 |
+
toolbar: self.get('toolbar'),
|
92 |
+
mode: self.getMode(),
|
93 |
+
field: self
|
94 |
+
};
|
95 |
+
|
96 |
+
// generate new id
|
97 |
+
var oldId = $textarea.attr('id');
|
98 |
+
var newId = acf.uniqueId('acf-editor-');
|
99 |
+
|
100 |
+
// rename
|
101 |
+
acf.rename({
|
102 |
+
target: $wrap,
|
103 |
+
search: oldId,
|
104 |
+
replace: newId,
|
105 |
+
destructive: true
|
106 |
+
});
|
107 |
+
|
108 |
+
// update id
|
109 |
+
self.set('id', newId, true);
|
110 |
+
|
111 |
+
// initialize
|
112 |
+
acf.tinymce.initialize(newId, args);
|
113 |
+
});
|
114 |
+
}
|
115 |
+
}));
|
116 |
+
|
117 |
+
acf.registerFieldType(acf.models.UrlField.extend({
|
118 |
+
type: 'qtranslate_url',
|
119 |
+
$control: function(){
|
120 |
+
return this.$('.acf-input-wrap.current-language');
|
121 |
+
},
|
122 |
+
|
123 |
+
$input: function(){
|
124 |
+
return this.$('.acf-input-wrap.current-language input[type="url"]');
|
125 |
+
},
|
126 |
+
isValid: function(){
|
127 |
+
|
128 |
+
// vars
|
129 |
+
var val = this.val();
|
130 |
+
|
131 |
+
// bail early if no val
|
132 |
+
if( !val ) {
|
133 |
+
return false;
|
134 |
+
}
|
135 |
+
|
136 |
+
// url
|
137 |
+
if( val.indexOf('://') !== -1 ) {
|
138 |
+
return true;
|
139 |
+
}
|
140 |
+
|
141 |
+
// protocol relative url
|
142 |
+
if( val.indexOf('//') === 0 ) {
|
143 |
+
return true;
|
144 |
+
}
|
145 |
+
|
146 |
+
// relative url
|
147 |
+
if( val.indexOf('/') === 0 ) {
|
148 |
+
return true;
|
149 |
+
}
|
150 |
+
|
151 |
+
// return
|
152 |
+
return false;
|
153 |
+
},
|
154 |
+
|
155 |
+
render: function(){
|
156 |
+
|
157 |
+
// add class
|
158 |
+
if( this.isValid() ) {
|
159 |
+
this.$control().addClass('-valid');
|
160 |
+
} else {
|
161 |
+
this.$control().removeClass('-valid');
|
162 |
}
|
163 |
+
},
|
164 |
+
}));
|
assets/common.css
CHANGED
@@ -67,6 +67,7 @@
|
|
67 |
.multi-language-field > textarea,
|
68 |
.multi-language-field > fieldset,
|
69 |
.multi-language-field .acf_wysiwyg,
|
|
|
70 |
.multi-language-field .acf-editor-wrap,
|
71 |
.multi-language-field .acf-file-uploader,
|
72 |
.multi-language-field .acf-image-uploader { display: none }
|
@@ -79,6 +80,10 @@
|
|
79 |
margin-top: 0;
|
80 |
}
|
81 |
|
|
|
|
|
|
|
|
|
82 |
.multi-language-field .acf-file-uploader,
|
83 |
.multi-language-field .acf-image-uploader {
|
84 |
padding: 20px 10px 10px;
|
67 |
.multi-language-field > textarea,
|
68 |
.multi-language-field > fieldset,
|
69 |
.multi-language-field .acf_wysiwyg,
|
70 |
+
.multi-language-field .acf-url,
|
71 |
.multi-language-field .acf-editor-wrap,
|
72 |
.multi-language-field .acf-file-uploader,
|
73 |
.multi-language-field .acf-image-uploader { display: none }
|
80 |
margin-top: 0;
|
81 |
}
|
82 |
|
83 |
+
.acf-input .acf-url input[type="text"] {
|
84 |
+
padding-left: 25px;
|
85 |
+
}
|
86 |
+
|
87 |
.multi-language-field .acf-file-uploader,
|
88 |
.multi-language-field .acf-image-uploader {
|
89 |
padding: 20px 10px 10px;
|
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.7.2
|
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 |
|
@@ -21,6 +21,7 @@ This plugin provides qTranslate-X compatible ACF4 and ACF5PRO field types for Te
|
|
21 |
* qTranslate WYSIWYG (a wordpress wysiwyg editor, api returns html)
|
22 |
* qTranslate Image (upload an image, api returns the url)
|
23 |
* qTranslate File (upload a file, api returns the url)
|
|
|
24 |
|
25 |
The standard Text, Text Area and WYSIWYG field types can also be enabled for translation.
|
26 |
|
@@ -33,9 +34,9 @@ https://github.com/funkjedi/acf-qtranslate/issues/
|
|
33 |
1. Upload `acf-qtranslate` directory to the `/wp-content/plugins/` directory
|
34 |
2. Activate the plugin through the 'Plugins' menu in WordPress
|
35 |
|
36 |
-
= Requires
|
37 |
* [ACF](https://wordpress.org/plugins/advanced-custom-fields/)
|
38 |
-
* [
|
39 |
|
40 |
= Requires qTranslate-X Plugin =
|
41 |
* [qTranslate-X](https://wordpress.org/plugins/qtranslate-x/)
|
@@ -54,6 +55,11 @@ The plugin is based on code samples posted to the ACF support forums by taeo bac
|
|
54 |
|
55 |
== Changelog ==
|
56 |
|
|
|
|
|
|
|
|
|
|
|
57 |
= 1.7.23 =
|
58 |
* Bug Fix: Added ACF 5.6 compatibility
|
59 |
|
3 |
Tags: acf, advanced custom fields, qtranslate, add-on, admin
|
4 |
Requires at least: 3.5.0
|
5 |
Tested up to: 4.7.2
|
6 |
+
Version: 1.7.24
|
7 |
+
Stable tag: 1.7.24
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
21 |
* qTranslate WYSIWYG (a wordpress wysiwyg editor, api returns html)
|
22 |
* qTranslate Image (upload an image, api returns the url)
|
23 |
* qTranslate File (upload a file, api returns the url)
|
24 |
+
* qTranslate URL (type text, api returns text)
|
25 |
|
26 |
The standard Text, Text Area and WYSIWYG field types can also be enabled for translation.
|
27 |
|
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 ACF or ACFPRO =
|
38 |
* [ACF](https://wordpress.org/plugins/advanced-custom-fields/)
|
39 |
+
* [ACFPRO](http://www.advancedcustomfields.com/pro/)
|
40 |
|
41 |
= Requires qTranslate-X Plugin =
|
42 |
* [qTranslate-X](https://wordpress.org/plugins/qtranslate-x/)
|
55 |
|
56 |
== Changelog ==
|
57 |
|
58 |
+
= 1.7.24 =
|
59 |
+
* Core: (asedano) Added ACF5 support for URL field
|
60 |
+
* Bug Fix: (asedano) Added ACF 5.7 compatibility
|
61 |
+
* Bug Fix: (asedano) Prevent PHP warnings about non-existent indexes
|
62 |
+
|
63 |
= 1.7.23 =
|
64 |
* Bug Fix: Added ACF 5.6 compatibility
|
65 |
|
src/acf_5/acf.php
CHANGED
@@ -32,12 +32,14 @@ class acf_qtranslate_acf_5 implements acf_qtranslate_acf_interface {
|
|
32 |
require_once ACF_QTRANSLATE_PLUGIN_DIR . 'src/acf_5/fields/text.php';
|
33 |
require_once ACF_QTRANSLATE_PLUGIN_DIR . 'src/acf_5/fields/textarea.php';
|
34 |
require_once ACF_QTRANSLATE_PLUGIN_DIR . 'src/acf_5/fields/wysiwyg.php';
|
|
|
35 |
|
36 |
acf()->fields->register_field_type(new acf_qtranslate_acf_5_text($this->plugin));
|
37 |
acf()->fields->register_field_type(new acf_qtranslate_acf_5_textarea($this->plugin));
|
38 |
acf()->fields->register_field_type(new acf_qtranslate_acf_5_wysiwyg($this->plugin));
|
39 |
acf()->fields->register_field_type(new acf_qtranslate_acf_5_image($this->plugin));
|
40 |
acf()->fields->register_field_type(new acf_qtranslate_acf_5_file($this->plugin));
|
|
|
41 |
}
|
42 |
|
43 |
/**
|
32 |
require_once ACF_QTRANSLATE_PLUGIN_DIR . 'src/acf_5/fields/text.php';
|
33 |
require_once ACF_QTRANSLATE_PLUGIN_DIR . 'src/acf_5/fields/textarea.php';
|
34 |
require_once ACF_QTRANSLATE_PLUGIN_DIR . 'src/acf_5/fields/wysiwyg.php';
|
35 |
+
require_once ACF_QTRANSLATE_PLUGIN_DIR . 'src/acf_5/fields/url.php';
|
36 |
|
37 |
acf()->fields->register_field_type(new acf_qtranslate_acf_5_text($this->plugin));
|
38 |
acf()->fields->register_field_type(new acf_qtranslate_acf_5_textarea($this->plugin));
|
39 |
acf()->fields->register_field_type(new acf_qtranslate_acf_5_wysiwyg($this->plugin));
|
40 |
acf()->fields->register_field_type(new acf_qtranslate_acf_5_image($this->plugin));
|
41 |
acf()->fields->register_field_type(new acf_qtranslate_acf_5_file($this->plugin));
|
42 |
+
acf()->fields->register_field_type(new acf_qtranslate_acf_5_url($this->plugin));
|
43 |
}
|
44 |
|
45 |
/**
|
src/acf_5/fields/text.php
CHANGED
@@ -94,7 +94,7 @@ class acf_qtranslate_acf_5_text extends acf_field_text {
|
|
94 |
|
95 |
// special atts
|
96 |
foreach( $s as $k ) {
|
97 |
-
if( $field[ $k ] ) {
|
98 |
$atts[ $k ] = $k;
|
99 |
}
|
100 |
}
|
94 |
|
95 |
// special atts
|
96 |
foreach( $s as $k ) {
|
97 |
+
if( isset($field[ $k ]) && $field[ $k ] ) {
|
98 |
$atts[ $k ] = $k;
|
99 |
}
|
100 |
}
|
src/acf_5/fields/textarea.php
CHANGED
@@ -99,7 +99,7 @@ class acf_qtranslate_acf_5_textarea extends acf_field_textarea {
|
|
99 |
|
100 |
// special atts
|
101 |
foreach( $s as $k ) {
|
102 |
-
if( $field[ $k ] ) {
|
103 |
$atts[ $k ] = $k;
|
104 |
}
|
105 |
}
|
99 |
|
100 |
// special atts
|
101 |
foreach( $s as $k ) {
|
102 |
+
if( isset($field[ $k ]) && $field[ $k ] ) {
|
103 |
$atts[ $k ] = $k;
|
104 |
}
|
105 |
}
|
src/acf_5/fields/url.php
ADDED
@@ -0,0 +1,124 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class acf_qtranslate_acf_5_url extends acf_qtranslate_acf_5_text {
|
4 |
+
function initialize() {
|
5 |
+
|
6 |
+
// vars
|
7 |
+
$this->name = 'qtranslate_url';
|
8 |
+
$this->label = __("Url",'acf');
|
9 |
+
$this->category = __("qTranslate",'acf');
|
10 |
+
$this->defaults = array(
|
11 |
+
'default_value' => '',
|
12 |
+
'maxlength' => '',
|
13 |
+
'placeholder' => '',
|
14 |
+
'prepend' => '',
|
15 |
+
'append' => ''
|
16 |
+
);
|
17 |
+
|
18 |
+
}
|
19 |
+
|
20 |
+
/*
|
21 |
+
* render_field()
|
22 |
+
*
|
23 |
+
* Create the HTML interface for your field
|
24 |
+
*
|
25 |
+
* @param $field - an array holding all the field's data
|
26 |
+
*
|
27 |
+
* @type action
|
28 |
+
* @since 3.6
|
29 |
+
* @date 23/01/13
|
30 |
+
*/
|
31 |
+
function render_field($field) {
|
32 |
+
global $q_config;
|
33 |
+
$languages = qtrans_getSortedLanguages(true);
|
34 |
+
$values = qtrans_split($field['value'], $quicktags = true);
|
35 |
+
$currentLanguage = $this->plugin->get_active_language();
|
36 |
+
|
37 |
+
// vars
|
38 |
+
$o = array( 'type', 'id', 'class', 'name', 'value', 'placeholder' );
|
39 |
+
$s = array( 'readonly', 'disabled' );
|
40 |
+
$e = '';
|
41 |
+
|
42 |
+
// maxlength
|
43 |
+
if( $field['maxlength'] !== "" ) {
|
44 |
+
$o[] = 'maxlength';
|
45 |
+
}
|
46 |
+
|
47 |
+
// populate atts
|
48 |
+
$atts = array();
|
49 |
+
foreach( $o as $k ) {
|
50 |
+
$atts[ $k ] = $field[ $k ];
|
51 |
+
}
|
52 |
+
|
53 |
+
// special atts
|
54 |
+
foreach( $s as $k ) {
|
55 |
+
if( isset($field[ $k ]) && $field[ $k ] ) {
|
56 |
+
$atts[ $k ] = $k;
|
57 |
+
}
|
58 |
+
}
|
59 |
+
|
60 |
+
// render
|
61 |
+
$e .= '<div class="acf-url-wrap multi-language-field">';
|
62 |
+
|
63 |
+
foreach ($languages as $language) {
|
64 |
+
$class = ($language === $currentLanguage) ? 'wp-switch-editor current-language' : 'wp-switch-editor';
|
65 |
+
$e .= '<a class="' . $class . '" data-language="' . $language . '">' . $q_config['language_name'][$language] . '</a>';
|
66 |
+
}
|
67 |
+
|
68 |
+
foreach ($languages as $language) {
|
69 |
+
$atts['class'] = $field['class'];
|
70 |
+
|
71 |
+
$atts['type'] = 'text';
|
72 |
+
$atts['name'] = $field['name'] . "[$language]";
|
73 |
+
$atts['value'] = $values[$language];
|
74 |
+
|
75 |
+
$container_class = 'acf-input-wrap acf-url';
|
76 |
+
if ($language === $currentLanguage) {
|
77 |
+
$container_class .= ' current-language';
|
78 |
+
}
|
79 |
+
|
80 |
+
$e .= '<div class="' . $container_class . '" data-language="' . $language . '">';
|
81 |
+
$e .= '<i class="acf-icon -globe -small"></i>';
|
82 |
+
$e .= '<input ' . acf_esc_attr( $atts ) . ' />';
|
83 |
+
$e .= '</div>';
|
84 |
+
|
85 |
+
}
|
86 |
+
|
87 |
+
$e .= '</div>';
|
88 |
+
|
89 |
+
// return
|
90 |
+
echo $e;
|
91 |
+
}
|
92 |
+
|
93 |
+
function validate_value( $valid, $value, $field, $input ){
|
94 |
+
foreach ($value as $valor) {
|
95 |
+
// bail early if empty
|
96 |
+
if ( empty( $valor ) ) {
|
97 |
+
|
98 |
+
continue;
|
99 |
+
|
100 |
+
}
|
101 |
+
|
102 |
+
if ( strpos( $valor, '://' ) !== false ) {
|
103 |
+
|
104 |
+
// url
|
105 |
+
|
106 |
+
} elseif ( strpos( $valor, '//' ) === 0 ) {
|
107 |
+
|
108 |
+
// protocol relative url
|
109 |
+
|
110 |
+
} elseif ( strpos( $valor, '/' ) === 0 ) {
|
111 |
+
|
112 |
+
// relative url
|
113 |
+
|
114 |
+
} else {
|
115 |
+
|
116 |
+
$valid = __( 'Value must be a valid URL', 'acf' );
|
117 |
+
|
118 |
+
}
|
119 |
+
}
|
120 |
+
|
121 |
+
// return
|
122 |
+
return $valid;
|
123 |
+
}
|
124 |
+
}
|
src/acf_5/fields/wysiwyg.php
CHANGED
@@ -29,7 +29,6 @@ class acf_qtranslate_acf_5_wysiwyg extends acf_field_wysiwyg {
|
|
29 |
}
|
30 |
|
31 |
// actions
|
32 |
-
add_action('acf/input/admin_footer', array($this, 'input_admin_footer'));
|
33 |
|
34 |
acf_field::__construct();
|
35 |
}
|
29 |
}
|
30 |
|
31 |
// actions
|
|
|
32 |
|
33 |
acf_field::__construct();
|
34 |
}
|