Version Description
Download this release
Release Info
Developer | justinbusa |
Plugin | WordPress Page Builder – Beaver Builder |
Version | 1.3.8 |
Comparing to | |
See all releases |
Code changes from version 1.3.7 to 1.3.8
- changelog.txt +14 -0
- classes/FLBuilder.php +3 -3
- classes/FLBuilderModel.php +57 -1
- fl-builder.php +4 -4
- includes/field-code.php +29 -0
- includes/field-color.php +7 -0
- includes/field-editor.php +60 -0
- includes/field-form.php +19 -0
- includes/field-icon.php +11 -0
- includes/field-layout.php +9 -0
- includes/field-multiple-photos.php +22 -0
- includes/field-photo-sizes.php +11 -0
- includes/field-photo.php +17 -0
- includes/field-post-type.php +5 -0
- includes/field-select.php +15 -0
- includes/field-suggest.php +7 -0
- includes/field-text.php +1 -0
- includes/field-textarea.php +1 -0
- includes/field-video.php +21 -0
- includes/field.php +40 -0
- includes/fields.php +0 -310
- includes/js-config.php +2 -2
- includes/updater-config.php +3 -3
- js/fl-builder-admin-posts.js +4 -4
- js/fl-builder-admin-settings.js +4 -4
- js/fl-builder.js +79 -55
- modules/photo/includes/frontend.js.php +9 -0
- modules/photo/photo.php +15 -0
- modules/widget/includes/frontend.php +12 -8
- modules/widget/includes/settings-general.php +12 -8
changelog.txt
CHANGED
@@ -1,3 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
<h4>1.3.7</h4>
|
2 |
<p><strong>Enhancements</strong></p>
|
3 |
<ul>
|
1 |
+
<h4>1.3.8</h4>
|
2 |
+
<p><strong>Enhancements</strong></p>
|
3 |
+
<ul>
|
4 |
+
<li>Single photos can now be opened in a lightbox by choosing lightbox in the photo module's link settings.</li>
|
5 |
+
<li>Added the ability to define custom fields through actions. Developers should review the custom module docs and examples for detailed info on how that works.</li>
|
6 |
+
<li>Added the ability to duplicate rows.</li>
|
7 |
+
</ul>
|
8 |
+
<p><strong>Bug Fixes</strong></p>
|
9 |
+
<ul>
|
10 |
+
<li>Fixed a bug that made it so you could only have one text or code editor within a builder settings panel. Thanks to Nicholas Joannes for the fix!</li>
|
11 |
+
<li>Reworked the load order and definitions for the main builder JavaScript class to prevent issues with some minification plugins.</li>
|
12 |
+
<li>Fixed a bug with generating new builder node ids that was affecting templates in some cases.</li>
|
13 |
+
</ul>
|
14 |
+
|
15 |
<h4>1.3.7</h4>
|
16 |
<p><strong>Enhancements</strong></p>
|
17 |
<ul>
|
classes/FLBuilder.php
CHANGED
@@ -656,7 +656,7 @@ final class FLBuilder {
|
|
656 |
for($i = 0; $i < count($values); $i++) {
|
657 |
$value = $values[$i];
|
658 |
echo '<tr class="fl-builder-field-multiple" data-field="'. $arr_name .'">';
|
659 |
-
include FL_BUILDER_DIR . 'includes/
|
660 |
echo '<td class="fl-builder-field-actions">';
|
661 |
echo '<i class="fl-builder-field-move fa fa-arrows"></i>';
|
662 |
echo '<i class="fl-builder-field-copy fa fa-copy"></i>';
|
@@ -681,7 +681,7 @@ final class FLBuilder {
|
|
681 |
}
|
682 |
else {
|
683 |
echo '<tr id="fl-field-'. $name .'" class="fl-field" data-type="' . $field['type'] . '" data-preview=\'' . $preview . '\'>';
|
684 |
-
include FL_BUILDER_DIR . 'includes/
|
685 |
echo '</tr>';
|
686 |
}
|
687 |
}
|
@@ -1583,7 +1583,7 @@ final class FLBuilder {
|
|
1583 |
|
1584 |
// Call the FLBuilder._renderLayoutComplete method if we're currently editing.
|
1585 |
if(stristr($asset_info['js'], '-draft.js') || stristr($asset_info['js'], '-preview.js')) {
|
1586 |
-
$js .= "; if(typeof FLBuilder !== 'undefined') FLBuilder._renderLayoutComplete();";
|
1587 |
}
|
1588 |
|
1589 |
// Include FLJSMin
|
656 |
for($i = 0; $i < count($values); $i++) {
|
657 |
$value = $values[$i];
|
658 |
echo '<tr class="fl-builder-field-multiple" data-field="'. $arr_name .'">';
|
659 |
+
include FL_BUILDER_DIR . 'includes/field.php';
|
660 |
echo '<td class="fl-builder-field-actions">';
|
661 |
echo '<i class="fl-builder-field-move fa fa-arrows"></i>';
|
662 |
echo '<i class="fl-builder-field-copy fa fa-copy"></i>';
|
681 |
}
|
682 |
else {
|
683 |
echo '<tr id="fl-field-'. $name .'" class="fl-field" data-type="' . $field['type'] . '" data-preview=\'' . $preview . '\'>';
|
684 |
+
include FL_BUILDER_DIR . 'includes/field.php';
|
685 |
echo '</tr>';
|
686 |
}
|
687 |
}
|
1583 |
|
1584 |
// Call the FLBuilder._renderLayoutComplete method if we're currently editing.
|
1585 |
if(stristr($asset_info['js'], '-draft.js') || stristr($asset_info['js'], '-preview.js')) {
|
1586 |
+
$js .= "; if(typeof FLBuilder !== 'undefined' && typeof FLBuilder._renderLayoutComplete !== 'undefined') FLBuilder._renderLayoutComplete();";
|
1587 |
}
|
1588 |
|
1589 |
// Include FLJSMin
|
classes/FLBuilderModel.php
CHANGED
@@ -582,7 +582,7 @@ final class FLBuilderModel {
|
|
582 |
$nodes[$map[$node_id]] = $node;
|
583 |
$nodes[$map[$node_id]]->node = $map[$node_id];
|
584 |
|
585 |
-
if(!empty($node->parent)) {
|
586 |
$nodes[$map[$node_id]]->parent = $map[$node->parent];
|
587 |
}
|
588 |
}
|
@@ -935,6 +935,62 @@ final class FLBuilderModel {
|
|
935 |
// Return the updated row.
|
936 |
return self::get_node($row_node_id);
|
937 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
938 |
|
939 |
/**
|
940 |
* @method get_row_defaults
|
582 |
$nodes[$map[$node_id]] = $node;
|
583 |
$nodes[$map[$node_id]]->node = $map[$node_id];
|
584 |
|
585 |
+
if(!empty($node->parent) && isset($map[$node->parent])) {
|
586 |
$nodes[$map[$node_id]]->parent = $map[$node->parent];
|
587 |
}
|
588 |
}
|
935 |
// Return the updated row.
|
936 |
return self::get_node($row_node_id);
|
937 |
}
|
938 |
+
|
939 |
+
/**
|
940 |
+
* @method copy_row
|
941 |
+
*/
|
942 |
+
static public function copy_row($node_id = null)
|
943 |
+
{
|
944 |
+
$post_data = self::get_post_data();
|
945 |
+
$node_id = isset($post_data['node_id']) ? $post_data['node_id'] : $node_id;
|
946 |
+
$layout_data = self::get_layout_data();
|
947 |
+
$row = self::get_node($node_id);
|
948 |
+
$new_row_id = self::generate_node_id();
|
949 |
+
$col_groups = self::get_child_nodes($node_id);
|
950 |
+
$new_nodes = array();
|
951 |
+
|
952 |
+
// Set the new row id.
|
953 |
+
$row->node = $new_row_id;
|
954 |
+
|
955 |
+
// Add the new row.
|
956 |
+
$layout_data[$new_row_id] = $row;
|
957 |
+
|
958 |
+
// Get the new child nodes.
|
959 |
+
foreach($col_groups as $col_group_id => $col_group) {
|
960 |
+
|
961 |
+
$new_nodes[$col_group_id] = $col_group;
|
962 |
+
$cols = self::get_child_nodes($col_group_id);
|
963 |
+
|
964 |
+
foreach($cols as $col_id => $col) {
|
965 |
+
|
966 |
+
$new_nodes[$col_id] = $col;
|
967 |
+
$modules = self::get_child_nodes($col_id);
|
968 |
+
|
969 |
+
foreach($modules as $module_id => $module) {
|
970 |
+
$new_nodes[$module_id] = $module;
|
971 |
+
}
|
972 |
+
}
|
973 |
+
}
|
974 |
+
|
975 |
+
// Generate new child ids.
|
976 |
+
$new_nodes = self::generate_new_node_ids($new_nodes);
|
977 |
+
|
978 |
+
// Set col group parent ids to the new row id.
|
979 |
+
foreach($new_nodes as $child_node_id => $child) {
|
980 |
+
if($child->type == 'column-group') {
|
981 |
+
$new_nodes[$child_node_id]->parent = $new_row_id;
|
982 |
+
}
|
983 |
+
}
|
984 |
+
|
985 |
+
// Merge the child data.
|
986 |
+
$layout_data = array_merge($layout_data, $new_nodes);
|
987 |
+
|
988 |
+
// Update the layout data.
|
989 |
+
self::update_layout_data($layout_data);
|
990 |
+
|
991 |
+
// Position the new row.
|
992 |
+
self::reorder_node($new_row_id, $row->position + 1);
|
993 |
+
}
|
994 |
|
995 |
/**
|
996 |
* @method get_row_defaults
|
fl-builder.php
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
-
* Plugin Name:
|
4 |
* Plugin URI: http://www.wpbeaverbuilder.com
|
5 |
* Description: A drag and drop frontend WordPress page builder plugin that works with almost any theme!
|
6 |
-
* Version: 1.3.
|
7 |
* Author: The Beaver Builder Team
|
8 |
* Author URI: http://www.wpbeaverbuilder.com
|
9 |
* Copyright: (c) 2014 Beaver Builder
|
@@ -11,7 +11,7 @@
|
|
11 |
* License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
12 |
* Text Domain: fl-builder
|
13 |
*/
|
14 |
-
define('FL_BUILDER_VERSION', '1.3.
|
15 |
define('FL_BUILDER_DIR', plugin_dir_path(__FILE__));
|
16 |
define('FL_BUILDER_URL', plugins_url('/', __FILE__));
|
17 |
define('FL_BUILDER_LITE', true);
|
@@ -97,7 +97,7 @@ add_action('admin_bar_menu', 'FLBuilder::admin
|
|
97 |
add_filter('template_include', 'FLBuilder::render_template', 999);
|
98 |
add_action('wp_footer', 'FLBuilder::include_jquery');
|
99 |
add_action('wp_footer', 'FLBuilder::render_ui');
|
100 |
-
add_action('
|
101 |
|
102 |
/* Filters */
|
103 |
add_filter('body_class', 'FLBuilder::body_class');
|
1 |
<?php
|
2 |
/**
|
3 |
+
* Plugin Name: FastLine Page Builder (Lite Version)
|
4 |
* Plugin URI: http://www.wpbeaverbuilder.com
|
5 |
* Description: A drag and drop frontend WordPress page builder plugin that works with almost any theme!
|
6 |
+
* Version: 1.3.8
|
7 |
* Author: The Beaver Builder Team
|
8 |
* Author URI: http://www.wpbeaverbuilder.com
|
9 |
* Copyright: (c) 2014 Beaver Builder
|
11 |
* License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
12 |
* Text Domain: fl-builder
|
13 |
*/
|
14 |
+
define('FL_BUILDER_VERSION', '1.3.8');
|
15 |
define('FL_BUILDER_DIR', plugin_dir_path(__FILE__));
|
16 |
define('FL_BUILDER_URL', plugins_url('/', __FILE__));
|
17 |
define('FL_BUILDER_LITE', true);
|
97 |
add_filter('template_include', 'FLBuilder::render_template', 999);
|
98 |
add_action('wp_footer', 'FLBuilder::include_jquery');
|
99 |
add_action('wp_footer', 'FLBuilder::render_ui');
|
100 |
+
add_action('wp_footer', 'FLBuilder::render_js_config');
|
101 |
|
102 |
/* Filters */
|
103 |
add_filter('body_class', 'FLBuilder::body_class');
|
includes/field-code.php
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="fl-code-field">
|
2 |
+
<?php $editor_id = 'flcode' . time() . '_' . $name; ?>
|
3 |
+
<textarea id="<?php echo $editor_id; ?>" name="<?php echo $name; ?>" data-editor="<?php echo $field['editor']; ?>" <?php if(isset($field['class'])) echo ' class="'. $field['class'] .'"'; if(isset($field['rows'])) echo ' rows="'. $field['rows'] .'"'; ?>><?php echo htmlspecialchars($value); ?></textarea>
|
4 |
+
<script>
|
5 |
+
|
6 |
+
jQuery(function(){
|
7 |
+
|
8 |
+
var textarea = jQuery('#<?php echo $editor_id; ?>'),
|
9 |
+
mode = textarea.data('editor'),
|
10 |
+
editDiv = jQuery('<div>', {
|
11 |
+
position: 'absolute',
|
12 |
+
height: parseInt(textarea.attr('rows'), 10) * 20
|
13 |
+
}),
|
14 |
+
editor = null;
|
15 |
+
|
16 |
+
editDiv.insertBefore(textarea);
|
17 |
+
textarea.css('display', 'none');
|
18 |
+
|
19 |
+
editor = ace.edit(editDiv[0]);
|
20 |
+
editor.getSession().setValue(textarea.val());
|
21 |
+
editor.getSession().setMode('ace/mode/' + mode);
|
22 |
+
|
23 |
+
editor.getSession().on('change', function(e) {
|
24 |
+
textarea.val(editor.getSession().getValue()).trigger('change');
|
25 |
+
});
|
26 |
+
});
|
27 |
+
|
28 |
+
</script>
|
29 |
+
</div>
|
includes/field-color.php
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="fl-color-picker<?php if(empty($value)) echo ' fl-color-picker-empty'; if(isset($field['class'])) echo ' ' . $field['class']; ?>">
|
2 |
+
<div class="fl-color-picker-color fl-picker-<?php echo $name; ?>"></div>
|
3 |
+
<?php if(isset($field['show_reset']) && $field['show_reset']) : ?>
|
4 |
+
<div class="fl-color-picker-clear"></div>
|
5 |
+
<?php endif; ?>
|
6 |
+
<input name="<?php echo $name; ?>" type="hidden" value="<?php echo $value; ?>" class="fl-color-picker-value" />
|
7 |
+
</div>
|
includes/field-editor.php
ADDED
@@ -0,0 +1,60 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="fl-editor-field" id="<?php echo $name; ?>">
|
2 |
+
<?php
|
3 |
+
|
4 |
+
// Remove 3rd party editor buttons.
|
5 |
+
remove_all_actions('media_buttons', 999999);
|
6 |
+
remove_all_actions('media_buttons_context', 999999);
|
7 |
+
remove_all_filters('mce_external_plugins', 999999);
|
8 |
+
|
9 |
+
global $wp_version;
|
10 |
+
|
11 |
+
$editor_id = 'flrich' . time() . '_' . $name;;
|
12 |
+
|
13 |
+
wp_editor($value, $editor_id, array(
|
14 |
+
'media_buttons' => isset($field['media_buttons']) ? $field['media_buttons'] : true,
|
15 |
+
'textarea_rows' => isset($field['rows']) ? $field['rows'] : 16,
|
16 |
+
'wpautop' => true
|
17 |
+
));
|
18 |
+
|
19 |
+
?>
|
20 |
+
<script type="text/javascript">
|
21 |
+
|
22 |
+
<?php if(version_compare($wp_version, '3.8.9', '<=')) : // Pre 3.9 editor init. ?>
|
23 |
+
jQuery(function()
|
24 |
+
{
|
25 |
+
var editorId = '<?php echo $editor_id; ?>';
|
26 |
+
|
27 |
+
quicktags({id : editorId});
|
28 |
+
QTags._buttonsInit();
|
29 |
+
|
30 |
+
if(typeof tinymce != 'undefined') {
|
31 |
+
tinymce.execCommand('mceAddControl', true, editorId);
|
32 |
+
}
|
33 |
+
|
34 |
+
FLBuilder.initEditorField(editorId);
|
35 |
+
});
|
36 |
+
<?php else : // 3.9 and above editor init. ?>
|
37 |
+
jQuery(function()
|
38 |
+
{
|
39 |
+
var editorId = '<?php echo $editor_id; ?>',
|
40 |
+
hiddenEditor = tinyMCEPreInit.mceInit['flhiddeneditor'],
|
41 |
+
editorProps = null;
|
42 |
+
|
43 |
+
if(typeof tinymce != 'undefined') {
|
44 |
+
editorProps = tinymce.extend({}, hiddenEditor);
|
45 |
+
editorProps.selector = '#' + editorId;
|
46 |
+
editorProps.body_class = editorProps.body_class.replace('flhiddeneditor', editorId);
|
47 |
+
tinyMCEPreInit.mceInit[editorId] = editorProps;
|
48 |
+
tinymce.init(editorProps);
|
49 |
+
}
|
50 |
+
if(typeof quicktags != 'undefined') {
|
51 |
+
quicktags({id : editorId});
|
52 |
+
QTags._buttonsInit();
|
53 |
+
}
|
54 |
+
|
55 |
+
window.wpActiveEditor = editorId;
|
56 |
+
});
|
57 |
+
<?php endif; ?>
|
58 |
+
|
59 |
+
</script>
|
60 |
+
</div>
|
includes/field-form.php
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="fl-form-field fl-builder-custom-field"<?php if(isset($field['preview_text'])) echo ' data-preview-text="'. $field['preview_text'] .'"'; ?>>
|
2 |
+
<div class="fl-form-field-preview-text">
|
3 |
+
<?php
|
4 |
+
|
5 |
+
if(isset($field['preview_text']) && is_object($value)) {
|
6 |
+
|
7 |
+
if(stristr($value->$field['preview_text'], 'fa fa-')) {
|
8 |
+
echo '<i class="' . $value->$field['preview_text'] . '"></i>';
|
9 |
+
}
|
10 |
+
else if(isset($value->$field['preview_text']) && !empty($value->$field['preview_text'])) {
|
11 |
+
echo FLBuilderUtils::snippetwop(strip_tags(str_replace(''', "'", $value->$field['preview_text'])), 35);
|
12 |
+
}
|
13 |
+
}
|
14 |
+
|
15 |
+
?>
|
16 |
+
</div>
|
17 |
+
<a class="fl-form-field-edit" href="javascript:void(0);" onclick="return false;" data-type="<?php echo $field['form']; ?>"><?php _e('Edit', 'fl-builder'); echo ' ' . $field['label']; ?></a>
|
18 |
+
<input name="<?php echo $name; ?>" type="hidden" value='<?php echo str_replace("'", ''', json_encode($value)); ?>' />
|
19 |
+
</div>
|
includes/field-icon.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="fl-icon-field fl-builder-custom-field<?php if(empty($value)) echo ' fl-icon-empty'; if(isset($field['class'])) echo ' ' . $field['class']; ?>">
|
2 |
+
<a class="fl-icon-select" href="javascript:void(0);" onclick="return false;"><?php _e('Select Icon', 'fl-builder'); ?></a>
|
3 |
+
<div class="fl-icon-preview">
|
4 |
+
<i class="<?php echo $value; ?>" data-icon="<?php echo $value; ?>"></i>
|
5 |
+
<a class="fl-icon-replace" href="javascript:void(0);" onclick="return false;"><?php _e('Replace', 'fl-builder'); ?></a>
|
6 |
+
<?php if(isset($field['show_remove']) && $field['show_remove']) : ?>
|
7 |
+
<a class="fl-icon-remove" href="javascript:void(0);" onclick="return false;"><?php _e('Remove', 'fl-builder'); ?></a>
|
8 |
+
<?php endif; ?>
|
9 |
+
</div>
|
10 |
+
<input name="<?php echo $name; ?>" type="hidden" value="<?php echo $value; ?>" />
|
11 |
+
</div>
|
includes/field-layout.php
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="fl-layout-field">
|
2 |
+
<?php foreach($field['options'] as $key => $img) : ?>
|
3 |
+
<div class="fl-layout-field-option <?php if($key == $value) echo 'fl-layout-field-option-selected'; ?>" data-value="<?php echo $key; ?>">
|
4 |
+
<img src="<?php echo $img; ?>" />
|
5 |
+
</div>
|
6 |
+
<?php endforeach; ?>
|
7 |
+
<div class="fl-clear"></div>
|
8 |
+
<input name="<?php echo $name; ?>" type="hidden" value='<?php echo $value; ?>' />
|
9 |
+
</div>
|
includes/field-multiple-photos.php
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="fl-multiple-photos-field fl-builder-custom-field<?php if(empty($value)) echo ' fl-multiple-photos-empty'; if(isset($field['class'])) echo ' ' . $field['class']; ?>">
|
2 |
+
<div class="fl-multiple-photos-count">
|
3 |
+
<?php
|
4 |
+
|
5 |
+
$count = is_array($value) ? count($value) : false;
|
6 |
+
|
7 |
+
if($count) {
|
8 |
+
if($count == 1) {
|
9 |
+
echo $count . __(' Photo Selected', 'fl-builder');
|
10 |
+
}
|
11 |
+
else {
|
12 |
+
echo $count . __(' Photos Selected', 'fl-builder');
|
13 |
+
}
|
14 |
+
}
|
15 |
+
|
16 |
+
?>
|
17 |
+
</div>
|
18 |
+
<a class="fl-multiple-photos-select" href="javascript:void(0);" onclick="return false;"><?php _e('Create Gallery', 'fl-builder'); ?></a>
|
19 |
+
<a class="fl-multiple-photos-edit" href="javascript:void(0);" onclick="return false;"><?php _e('Edit Gallery', 'fl-builder'); ?></a>
|
20 |
+
<a class="fl-multiple-photos-add" href="javascript:void(0);" onclick="return false;"><?php _e('Add Photos', 'fl-builder'); ?></a>
|
21 |
+
<input name="<?php echo $name; ?>" type="hidden" value='<?php if(!empty($value)) echo json_encode($value); ?>' />
|
22 |
+
</div>
|
includes/field-photo-sizes.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<select name="<?php echo $name; ?>">
|
2 |
+
<?php
|
3 |
+
|
4 |
+
foreach(FLBuilderPhoto::sizes() as $size => $atts) :
|
5 |
+
|
6 |
+
$label = ucwords(str_replace(array('_', '-'), ' ', $size)) . ' (' . implode('x', $atts) . ')';
|
7 |
+
|
8 |
+
?>
|
9 |
+
<option value="<?php echo $size; ?>" <?php selected($value, $size); ?>><?php echo $label; ?></option>
|
10 |
+
<?php endforeach; ?>
|
11 |
+
</select>
|
includes/field-photo.php
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php $photo = FLBuilderPhoto::get_attachment_data($value); ?>
|
2 |
+
<div class="fl-photo-field fl-builder-custom-field<?php if(empty($value) || !$photo) echo ' fl-photo-empty'; if(isset($field['class'])) echo ' ' . $field['class']; ?>">
|
3 |
+
<a class="fl-photo-select" href="javascript:void(0);" onclick="return false;"><?php _e('Select Photo', 'fl-builder'); ?></a>
|
4 |
+
<div class="fl-photo-preview">
|
5 |
+
<div class="fl-photo-preview-img">
|
6 |
+
<img src="<?php if($photo) echo FLBuilderPhoto::get_thumb($photo); ?>" />
|
7 |
+
</div>
|
8 |
+
<select name="<?php echo $name; ?>_src">
|
9 |
+
<?php if($photo && isset($settings->{$name . '_src'})) echo FLBuilderPhoto::get_src_options($settings->{$name . '_src'}, $photo); ?>
|
10 |
+
</select>
|
11 |
+
<br />
|
12 |
+
<a class="fl-photo-edit" href="javascript:void(0);" onclick="return false;"><?php _e('Edit', 'fl-builder'); ?></a>
|
13 |
+
<a class="fl-photo-replace" href="javascript:void(0);" onclick="return false;"><?php _e('Replace', 'fl-builder'); ?></a>
|
14 |
+
<div class="fl-clear"></div>
|
15 |
+
</div>
|
16 |
+
<input name="<?php echo $name; ?>" type="hidden" value='<?php echo $value; ?>' />
|
17 |
+
</div>
|
includes/field-post-type.php
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<select name="<?php echo $name; ?>"<?php if(isset($field['class'])) echo ' class="'. $field['class'] .'"'; ?>>
|
2 |
+
<?php foreach(FLBuilderLoop::post_types() as $slug => $type) : ?>
|
3 |
+
<option value="<?php echo $slug; ?>" <?php selected($value, $slug); ?>><?php echo $type->labels->name; ?></option>
|
4 |
+
<?php endforeach; ?>
|
5 |
+
</select>
|
includes/field-select.php
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<select name="<?php echo $name; ?>"<?php if(isset($field['class'])) echo ' class="'. $field['class'] .'"'; if(isset($field['toggle'])) echo "data-toggle='". json_encode($field['toggle']) ."'"; if(isset($field['hide'])) echo "data-hide='". json_encode($field['hide']) ."'"; if(isset($field['trigger'])) echo "data-trigger='". json_encode($field['trigger']) ."'"; ?>>
|
2 |
+
<?php
|
3 |
+
|
4 |
+
foreach($field['options'] as $key => $val) :
|
5 |
+
|
6 |
+
$label = is_array($val) ? $val['label'] : $val;
|
7 |
+
|
8 |
+
if(is_array($val) && isset($val['premium']) && $val['premium'] && FL_BUILDER_LITE === true) {
|
9 |
+
continue;
|
10 |
+
}
|
11 |
+
|
12 |
+
?>
|
13 |
+
<option value="<?php echo $key; ?>" <?php selected($value, $key); ?>><?php echo $label; ?></option>
|
14 |
+
<?php endforeach; ?>
|
15 |
+
</select>
|
includes/field-suggest.php
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
$action = isset($field['action']) ? $field['action'] : '';
|
4 |
+
$data = isset($field['data']) ? $field['data'] : '';
|
5 |
+
|
6 |
+
?>
|
7 |
+
<input type="text" name="<?php echo $name; ?>" data-value='<?php echo FLBuilderAutoSuggest::get_value($action, $value, $data); ?>' data-action="<?php echo $action; ?>" data-action-data="<?php echo $data; ?>" class="text text-full fl-suggest-field<?php if(isset($field['class'])) echo ' '. $field['class']; ?>" placeholder="<?php if(isset($field['placeholder'])) echo $field['placeholder']; else echo _e('Start typing...', 'fl-builder'); ?>" />
|
includes/field-text.php
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
<input type="text" name="<?php echo $name; ?>" value="<?php echo htmlspecialchars($value); ?>" class="text<?php if(isset($field['class'])) echo ' '. $field['class']; if(!isset($field['size'])) echo ' text-full'; ?>" <?php if(isset($field['placeholder'])) echo ' placeholder="'. $field['placeholder'] .'"'; if(isset($field['maxlength'])) echo ' maxlength="'. $field['maxlength'] .'"'; if(isset($field['size'])) echo ' size="'. $field['size'] .'"'; ?> />
|
includes/field-textarea.php
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
<textarea name="<?php echo $name; ?>"<?php if(isset($field['class'])) echo ' class="'. $field['class'] .'"'; if(isset($field['placeholder'])) echo ' placeholder="'. $field['placeholder'] .'"'; if(isset($field['rows'])) echo ' rows="'. $field['rows'] .'"'; ?>><?php echo $value; ?></textarea>
|
includes/field-video.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php $video = FLBuilderPhoto::get_attachment_data($value); ?>
|
2 |
+
<div class="fl-video-field fl-builder-custom-field<?php if(empty($value) || !$video) echo ' fl-video-empty'; if(isset($field['class'])) echo ' ' . $field['class']; ?>">
|
3 |
+
<a class="fl-video-select" href="javascript:void(0);" onclick="return false;"><?php _e('Select Video', 'fl-builder'); ?></a>
|
4 |
+
<div class="fl-video-preview">
|
5 |
+
<?php if(!empty($value) && $video) : ?>
|
6 |
+
<div class="fl-video-preview-img">
|
7 |
+
<img src="<?php echo $video->icon; ?>" />
|
8 |
+
</div>
|
9 |
+
<span class="fl-video-preview-filename"><?php echo $video->filename; ?></span>
|
10 |
+
<?php else : ?>
|
11 |
+
<div class="fl-video-preview-img">
|
12 |
+
<img src="<?php echo FL_BUILDER_URL; ?>img/spacer.png" />
|
13 |
+
</div>
|
14 |
+
<span class="fl-video-preview-filename"></span>
|
15 |
+
<?php endif; ?>
|
16 |
+
<br />
|
17 |
+
<a class="fl-video-replace" href="javascript:void(0);" onclick="return false;"><?php _e('Replace Video', 'fl-builder'); ?></a>
|
18 |
+
<div class="fl-clear"></div>
|
19 |
+
</div>
|
20 |
+
<input name="<?php echo $name; ?>" type="hidden" value='<?php echo $value; ?>' />
|
21 |
+
</div>
|
includes/field.php
ADDED
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php if(empty($field['label'])) : ?>
|
2 |
+
<td colspan="2">
|
3 |
+
<?php else : ?>
|
4 |
+
<th>
|
5 |
+
<label for="<?php echo $name; ?>">
|
6 |
+
<?php
|
7 |
+
|
8 |
+
echo $field['label'];
|
9 |
+
|
10 |
+
if(isset($i)) {
|
11 |
+
echo ' <span>' . ($i + 1) . '</span>';
|
12 |
+
}
|
13 |
+
|
14 |
+
?>
|
15 |
+
</label>
|
16 |
+
<?php if(isset($field['help'])) : ?>
|
17 |
+
<span class="fl-help-tooltip">
|
18 |
+
<i class="fl-help-tooltip-icon fa fa-question-circle"></i>
|
19 |
+
<span class="fl-help-tooltip-text"><?php echo $field['help']; ?></span>
|
20 |
+
</span>
|
21 |
+
<?php endif; ?>
|
22 |
+
</th>
|
23 |
+
<td>
|
24 |
+
<?php endif; ?>
|
25 |
+
<?php
|
26 |
+
|
27 |
+
$field_file = FL_BUILDER_DIR . 'includes/field-' . $field['type'] . '.php';
|
28 |
+
|
29 |
+
if(file_exists($field_file)) {
|
30 |
+
include $field_file;
|
31 |
+
}
|
32 |
+
else {
|
33 |
+
do_action('fl_builder_control_' . $field['type'], $name, $value, $field);
|
34 |
+
}
|
35 |
+
|
36 |
+
?>
|
37 |
+
<?php if(isset($field['description'])) : ?>
|
38 |
+
<span class="fl-field-description"><?php echo $field['description']; ?></span>
|
39 |
+
<?php endif; ?>
|
40 |
+
</td>
|
includes/fields.php
DELETED
@@ -1,310 +0,0 @@
|
|
1 |
-
<?php if(empty($field['label'])) : ?>
|
2 |
-
<td colspan="2">
|
3 |
-
<?php else : ?>
|
4 |
-
<th>
|
5 |
-
<label for="<?php echo $name; ?>">
|
6 |
-
<?php
|
7 |
-
|
8 |
-
echo $field['label'];
|
9 |
-
|
10 |
-
if(isset($i)) {
|
11 |
-
echo ' <span>' . ($i + 1) . '</span>';
|
12 |
-
}
|
13 |
-
|
14 |
-
?>
|
15 |
-
</label>
|
16 |
-
<?php if(isset($field['help'])) : ?>
|
17 |
-
<span class="fl-help-tooltip">
|
18 |
-
<i class="fl-help-tooltip-icon fa fa-question-circle"></i>
|
19 |
-
<span class="fl-help-tooltip-text"><?php echo $field['help']; ?></span>
|
20 |
-
</span>
|
21 |
-
<?php endif; ?>
|
22 |
-
</th>
|
23 |
-
<td>
|
24 |
-
<?php endif; ?>
|
25 |
-
|
26 |
-
<?php if($field['type'] == 'text') : // TEXT ?>
|
27 |
-
<input type="text" name="<?php echo $name; ?>" value="<?php echo htmlspecialchars($value); ?>" class="text<?php if(isset($field['class'])) echo ' '. $field['class']; if(!isset($field['size'])) echo ' text-full'; ?>" <?php if(isset($field['placeholder'])) echo ' placeholder="'. $field['placeholder'] .'"'; if(isset($field['maxlength'])) echo ' maxlength="'. $field['maxlength'] .'"'; if(isset($field['size'])) echo ' size="'. $field['size'] .'"'; ?> />
|
28 |
-
<?php endif; ?>
|
29 |
-
|
30 |
-
<?php if($field['type'] == 'textarea') : // TEXTAREA ?>
|
31 |
-
<textarea name="<?php echo $name; ?>"<?php if(isset($field['class'])) echo ' class="'. $field['class'] .'"'; if(isset($field['placeholder'])) echo ' placeholder="'. $field['placeholder'] .'"'; if(isset($field['rows'])) echo ' rows="'. $field['rows'] .'"'; ?>><?php echo $value; ?></textarea>
|
32 |
-
<?php endif; ?>
|
33 |
-
|
34 |
-
<?php if($field['type'] == 'select') : // SELECT ?>
|
35 |
-
<select name="<?php echo $name; ?>"<?php if(isset($field['class'])) echo ' class="'. $field['class'] .'"'; if(isset($field['toggle'])) echo "data-toggle='". json_encode($field['toggle']) ."'"; if(isset($field['hide'])) echo "data-hide='". json_encode($field['hide']) ."'"; if(isset($field['trigger'])) echo "data-trigger='". json_encode($field['trigger']) ."'"; ?>>
|
36 |
-
<?php
|
37 |
-
|
38 |
-
foreach($field['options'] as $key => $val) :
|
39 |
-
|
40 |
-
$label = is_array($val) ? $val['label'] : $val;
|
41 |
-
|
42 |
-
if(is_array($val) && isset($val['premium']) && $val['premium'] && FL_BUILDER_LITE === true) {
|
43 |
-
continue;
|
44 |
-
}
|
45 |
-
|
46 |
-
?>
|
47 |
-
<option value="<?php echo $key; ?>" <?php selected($value, $key); ?>><?php echo $label; ?></option>
|
48 |
-
<?php endforeach; ?>
|
49 |
-
</select>
|
50 |
-
<?php endif; ?>
|
51 |
-
|
52 |
-
<?php if($field['type'] == 'color') : // COLOR ?>
|
53 |
-
<div class="fl-color-picker<?php if(empty($value)) echo ' fl-color-picker-empty'; if(isset($field['class'])) echo ' ' . $field['class']; ?>">
|
54 |
-
<div class="fl-color-picker-color fl-picker-<?php echo $name; ?>"></div>
|
55 |
-
<?php if(isset($field['show_reset']) && $field['show_reset']) : ?>
|
56 |
-
<div class="fl-color-picker-clear"></div>
|
57 |
-
<?php endif; ?>
|
58 |
-
<input name="<?php echo $name; ?>" type="hidden" value="<?php echo $value; ?>" class="fl-color-picker-value" />
|
59 |
-
</div>
|
60 |
-
<?php endif; ?>
|
61 |
-
|
62 |
-
<?php if($field['type'] == 'photo') : // PHOTO ?>
|
63 |
-
<?php $photo = FLBuilderPhoto::get_attachment_data($value); ?>
|
64 |
-
<div class="fl-photo-field fl-builder-custom-field<?php if(empty($value) || !$photo) echo ' fl-photo-empty'; if(isset($field['class'])) echo ' ' . $field['class']; ?>">
|
65 |
-
<a class="fl-photo-select" href="javascript:void(0);" onclick="return false;"><?php _e('Select Photo', 'fl-builder'); ?></a>
|
66 |
-
<div class="fl-photo-preview">
|
67 |
-
<div class="fl-photo-preview-img">
|
68 |
-
<img src="<?php if($photo) echo FLBuilderPhoto::get_thumb($photo); ?>" />
|
69 |
-
</div>
|
70 |
-
<select name="<?php echo $name; ?>_src">
|
71 |
-
<?php if($photo && isset($settings->{$name . '_src'})) echo FLBuilderPhoto::get_src_options($settings->{$name . '_src'}, $photo); ?>
|
72 |
-
</select>
|
73 |
-
<br />
|
74 |
-
<a class="fl-photo-edit" href="javascript:void(0);" onclick="return false;"><?php _e('Edit', 'fl-builder'); ?></a>
|
75 |
-
<a class="fl-photo-replace" href="javascript:void(0);" onclick="return false;"><?php _e('Replace', 'fl-builder'); ?></a>
|
76 |
-
<div class="fl-clear"></div>
|
77 |
-
</div>
|
78 |
-
<input name="<?php echo $name; ?>" type="hidden" value='<?php echo $value; ?>' />
|
79 |
-
</div>
|
80 |
-
<?php endif; ?>
|
81 |
-
|
82 |
-
<?php if($field['type'] == 'multiple-photos') : // MULTIPLE PHOTOS ?>
|
83 |
-
<div class="fl-multiple-photos-field fl-builder-custom-field<?php if(empty($value)) echo ' fl-multiple-photos-empty'; if(isset($field['class'])) echo ' ' . $field['class']; ?>">
|
84 |
-
<div class="fl-multiple-photos-count">
|
85 |
-
<?php
|
86 |
-
|
87 |
-
$count = is_array($value) ? count($value) : false;
|
88 |
-
|
89 |
-
if($count) {
|
90 |
-
if($count == 1) {
|
91 |
-
echo $count . __(' Photo Selected', 'fl-builder');
|
92 |
-
}
|
93 |
-
else {
|
94 |
-
echo $count . __(' Photos Selected', 'fl-builder');
|
95 |
-
}
|
96 |
-
}
|
97 |
-
|
98 |
-
?>
|
99 |
-
</div>
|
100 |
-
<a class="fl-multiple-photos-select" href="javascript:void(0);" onclick="return false;"><?php _e('Create Gallery', 'fl-builder'); ?></a>
|
101 |
-
<a class="fl-multiple-photos-edit" href="javascript:void(0);" onclick="return false;"><?php _e('Edit Gallery', 'fl-builder'); ?></a>
|
102 |
-
<a class="fl-multiple-photos-add" href="javascript:void(0);" onclick="return false;"><?php _e('Add Photos', 'fl-builder'); ?></a>
|
103 |
-
<input name="<?php echo $name; ?>" type="hidden" value='<?php if(!empty($value)) echo json_encode($value); ?>' />
|
104 |
-
</div>
|
105 |
-
<?php endif; ?>
|
106 |
-
|
107 |
-
<?php if($field['type'] == 'photo-sizes') : // PHOTO SIZES ?>
|
108 |
-
<select name="<?php echo $name; ?>">
|
109 |
-
<?php
|
110 |
-
|
111 |
-
foreach(FLBuilderPhoto::sizes() as $size => $atts) :
|
112 |
-
|
113 |
-
$label = ucwords(str_replace(array('_', '-'), ' ', $size)) . ' (' . implode('x', $atts) . ')';
|
114 |
-
|
115 |
-
?>
|
116 |
-
<option value="<?php echo $size; ?>" <?php selected($value, $size); ?>><?php echo $label; ?></option>
|
117 |
-
<?php endforeach; ?>
|
118 |
-
</select>
|
119 |
-
<?php endif; ?>
|
120 |
-
|
121 |
-
<?php if($field['type'] == 'video') : // VIDEO ?>
|
122 |
-
<?php $video = FLBuilderPhoto::get_attachment_data($value); ?>
|
123 |
-
<div class="fl-video-field fl-builder-custom-field<?php if(empty($value) || !$video) echo ' fl-video-empty'; if(isset($field['class'])) echo ' ' . $field['class']; ?>">
|
124 |
-
<a class="fl-video-select" href="javascript:void(0);" onclick="return false;"><?php _e('Select Video', 'fl-builder'); ?></a>
|
125 |
-
<div class="fl-video-preview">
|
126 |
-
<?php if(!empty($value) && $video) : ?>
|
127 |
-
<div class="fl-video-preview-img">
|
128 |
-
<img src="<?php echo $video->icon; ?>" />
|
129 |
-
</div>
|
130 |
-
<span class="fl-video-preview-filename"><?php echo $video->filename; ?></span>
|
131 |
-
<?php else : ?>
|
132 |
-
<div class="fl-video-preview-img">
|
133 |
-
<img src="<?php echo FL_BUILDER_URL; ?>img/spacer.png" />
|
134 |
-
</div>
|
135 |
-
<span class="fl-video-preview-filename"></span>
|
136 |
-
<?php endif; ?>
|
137 |
-
<br />
|
138 |
-
<a class="fl-video-replace" href="javascript:void(0);" onclick="return false;"><?php _e('Replace Video', 'fl-builder'); ?></a>
|
139 |
-
<div class="fl-clear"></div>
|
140 |
-
</div>
|
141 |
-
<input name="<?php echo $name; ?>" type="hidden" value='<?php echo $value; ?>' />
|
142 |
-
</div>
|
143 |
-
<?php endif; ?>
|
144 |
-
|
145 |
-
<?php if($field['type'] == 'icon') : // ICON ?>
|
146 |
-
<div class="fl-icon-field fl-builder-custom-field<?php if(empty($value)) echo ' fl-icon-empty'; if(isset($field['class'])) echo ' ' . $field['class']; ?>">
|
147 |
-
<a class="fl-icon-select" href="javascript:void(0);" onclick="return false;"><?php _e('Select Icon', 'fl-builder'); ?></a>
|
148 |
-
<div class="fl-icon-preview">
|
149 |
-
<i class="<?php echo $value; ?>" data-icon="<?php echo $value; ?>"></i>
|
150 |
-
<a class="fl-icon-replace" href="javascript:void(0);" onclick="return false;"><?php _e('Replace', 'fl-builder'); ?></a>
|
151 |
-
<?php if(isset($field['show_remove']) && $field['show_remove']) : ?>
|
152 |
-
<a class="fl-icon-remove" href="javascript:void(0);" onclick="return false;"><?php _e('Remove', 'fl-builder'); ?></a>
|
153 |
-
<?php endif; ?>
|
154 |
-
</div>
|
155 |
-
<input name="<?php echo $name; ?>" type="hidden" value="<?php echo $value; ?>" />
|
156 |
-
</div>
|
157 |
-
<?php endif; ?>
|
158 |
-
|
159 |
-
<?php if($field['type'] == 'form') : // SETTINGS FORM ?>
|
160 |
-
<div class="fl-form-field fl-builder-custom-field"<?php if(isset($field['preview_text'])) echo ' data-preview-text="'. $field['preview_text'] .'"'; ?>>
|
161 |
-
<div class="fl-form-field-preview-text">
|
162 |
-
<?php
|
163 |
-
|
164 |
-
if(isset($field['preview_text']) && is_object($value)) {
|
165 |
-
|
166 |
-
if(stristr($value->$field['preview_text'], 'fa fa-')) {
|
167 |
-
echo '<i class="' . $value->$field['preview_text'] . '"></i>';
|
168 |
-
}
|
169 |
-
else if(isset($value->$field['preview_text']) && !empty($value->$field['preview_text'])) {
|
170 |
-
echo FLBuilderUtils::snippetwop(strip_tags(str_replace(''', "'", $value->$field['preview_text'])), 35);
|
171 |
-
}
|
172 |
-
}
|
173 |
-
|
174 |
-
?>
|
175 |
-
</div>
|
176 |
-
<a class="fl-form-field-edit" href="javascript:void(0);" onclick="return false;" data-type="<?php echo $field['form']; ?>"><?php _e('Edit', 'fl-builder'); echo ' ' . $field['label']; ?></a>
|
177 |
-
<input name="<?php echo $name; ?>" type="hidden" value='<?php echo str_replace("'", ''', json_encode($value)); ?>' />
|
178 |
-
</div>
|
179 |
-
<?php endif; ?>
|
180 |
-
|
181 |
-
<?php if($field['type'] == 'editor') : // EDITOR ?>
|
182 |
-
<div class="fl-editor-field" id="<?php echo $name; ?>">
|
183 |
-
<?php
|
184 |
-
|
185 |
-
// Remove 3rd party editor buttons.
|
186 |
-
remove_all_actions('media_buttons', 999999);
|
187 |
-
remove_all_actions('media_buttons_context', 999999);
|
188 |
-
remove_all_filters('mce_external_plugins', 999999);
|
189 |
-
|
190 |
-
global $wp_version;
|
191 |
-
|
192 |
-
$editor_id = 'flrich' . time();
|
193 |
-
|
194 |
-
wp_editor($value, $editor_id, array(
|
195 |
-
'media_buttons' => isset($field['media_buttons']) ? $field['media_buttons'] : true,
|
196 |
-
'textarea_rows' => isset($field['rows']) ? $field['rows'] : 16,
|
197 |
-
'wpautop' => true
|
198 |
-
));
|
199 |
-
|
200 |
-
?>
|
201 |
-
<script type="text/javascript">
|
202 |
-
|
203 |
-
<?php if(version_compare($wp_version, '3.8.9', '<=')) : // Pre 3.9 editor init. ?>
|
204 |
-
jQuery(function()
|
205 |
-
{
|
206 |
-
var editorId = '<?php echo $editor_id; ?>';
|
207 |
-
|
208 |
-
quicktags({id : editorId});
|
209 |
-
QTags._buttonsInit();
|
210 |
-
|
211 |
-
if(typeof tinymce != 'undefined') {
|
212 |
-
tinymce.execCommand('mceAddControl', true, editorId);
|
213 |
-
}
|
214 |
-
|
215 |
-
FLBuilder.initEditorField(editorId);
|
216 |
-
});
|
217 |
-
<?php else : // 3.9 and above editor init. ?>
|
218 |
-
jQuery(function()
|
219 |
-
{
|
220 |
-
var editorId = '<?php echo $editor_id; ?>',
|
221 |
-
hiddenEditor = tinyMCEPreInit.mceInit['flhiddeneditor'],
|
222 |
-
editorProps = null;
|
223 |
-
|
224 |
-
if(typeof tinymce != 'undefined') {
|
225 |
-
editorProps = tinymce.extend({}, hiddenEditor);
|
226 |
-
editorProps.selector = '#' + editorId;
|
227 |
-
editorProps.body_class = editorProps.body_class.replace('flhiddeneditor', editorId);
|
228 |
-
tinyMCEPreInit.mceInit[editorId] = editorProps;
|
229 |
-
tinymce.init(editorProps);
|
230 |
-
}
|
231 |
-
if(typeof quicktags != 'undefined') {
|
232 |
-
quicktags({id : editorId});
|
233 |
-
QTags._buttonsInit();
|
234 |
-
}
|
235 |
-
|
236 |
-
window.wpActiveEditor = editorId;
|
237 |
-
});
|
238 |
-
<?php endif; ?>
|
239 |
-
|
240 |
-
</script>
|
241 |
-
</div>
|
242 |
-
<?php endif; ?>
|
243 |
-
|
244 |
-
<?php if($field['type'] == 'code') : // CODE ?>
|
245 |
-
<div class="fl-code-field">
|
246 |
-
<?php $editor_id = 'flcode' . time(); ?>
|
247 |
-
<textarea id="<?php echo $editor_id; ?>" name="<?php echo $name; ?>" data-editor="<?php echo $field['editor']; ?>" <?php if(isset($field['class'])) echo ' class="'. $field['class'] .'"'; if(isset($field['rows'])) echo ' rows="'. $field['rows'] .'"'; ?>><?php echo htmlspecialchars($value); ?></textarea>
|
248 |
-
<script>
|
249 |
-
|
250 |
-
jQuery(function(){
|
251 |
-
|
252 |
-
var textarea = jQuery('#<?php echo $editor_id; ?>'),
|
253 |
-
mode = textarea.data('editor'),
|
254 |
-
editDiv = jQuery('<div>', {
|
255 |
-
position: 'absolute',
|
256 |
-
height: parseInt(textarea.attr('rows'), 10) * 20
|
257 |
-
}),
|
258 |
-
editor = null;
|
259 |
-
|
260 |
-
editDiv.insertBefore(textarea);
|
261 |
-
textarea.css('display', 'none');
|
262 |
-
|
263 |
-
editor = ace.edit(editDiv[0]);
|
264 |
-
editor.getSession().setValue(textarea.val());
|
265 |
-
editor.getSession().setMode('ace/mode/' + mode);
|
266 |
-
|
267 |
-
editor.getSession().on('change', function(e) {
|
268 |
-
textarea.val(editor.getSession().getValue()).trigger('change');
|
269 |
-
});
|
270 |
-
});
|
271 |
-
|
272 |
-
</script>
|
273 |
-
</div>
|
274 |
-
<?php endif; ?>
|
275 |
-
|
276 |
-
<?php if($field['type'] == 'post-type') : // POST TYPE ?>
|
277 |
-
<select name="<?php echo $name; ?>"<?php if(isset($field['class'])) echo ' class="'. $field['class'] .'"'; ?>>
|
278 |
-
<?php foreach(FLBuilderLoop::post_types() as $slug => $type) : ?>
|
279 |
-
<option value="<?php echo $slug; ?>" <?php selected($value, $slug); ?>><?php echo $type->labels->name; ?></option>
|
280 |
-
<?php endforeach; ?>
|
281 |
-
</select>
|
282 |
-
<?php endif; ?>
|
283 |
-
|
284 |
-
<?php
|
285 |
-
|
286 |
-
if($field['type'] == 'suggest') : // SUGGEST
|
287 |
-
|
288 |
-
$action = isset($field['action']) ? $field['action'] : '';
|
289 |
-
$data = isset($field['data']) ? $field['data'] : '';
|
290 |
-
?>
|
291 |
-
<input type="text" name="<?php echo $name; ?>" data-value='<?php echo FLBuilderAutoSuggest::get_value($action, $value, $data); ?>' data-action="<?php echo $action; ?>" data-action-data="<?php echo $data; ?>" class="text text-full fl-suggest-field<?php if(isset($field['class'])) echo ' '. $field['class']; ?>" placeholder="<?php if(isset($field['placeholder'])) echo $field['placeholder']; else echo _e('Start typing...', 'fl-builder'); ?>" />
|
292 |
-
<?php endif; ?>
|
293 |
-
|
294 |
-
<?php if($field['type'] == 'layout') : // LAYOUT - Experimental, do not use! ?>
|
295 |
-
<div class="fl-layout-field">
|
296 |
-
<?php foreach($field['options'] as $key => $img) : ?>
|
297 |
-
<div class="fl-layout-field-option <?php if($key == $value) echo 'fl-layout-field-option-selected'; ?>" data-value="<?php echo $key; ?>">
|
298 |
-
<img src="<?php echo $img; ?>" />
|
299 |
-
</div>
|
300 |
-
<?php endforeach; ?>
|
301 |
-
<div class="fl-clear"></div>
|
302 |
-
<input name="<?php echo $name; ?>" type="hidden" value='<?php echo $value; ?>' />
|
303 |
-
</div>
|
304 |
-
<?php endif; ?>
|
305 |
-
|
306 |
-
<?php if(isset($field['description'])) : ?>
|
307 |
-
<span class="fl-field-description"><?php echo $field['description']; ?></span>
|
308 |
-
<?php endif; ?>
|
309 |
-
|
310 |
-
</td>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/js-config.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<script>
|
2 |
|
3 |
-
|
4 |
ajaxUrl: '<?php wp_reset_query(); global $post; echo get_permalink($post->ID); ?>',
|
5 |
lite: <?php if(FL_BUILDER_LITE === true) echo 'true'; else echo 'false'; ?>,
|
6 |
homeUrl: '<?php echo home_url(); ?>',
|
@@ -9,7 +9,7 @@ FLBuilder.config = {
|
|
9 |
enabledTemplates: '<?php echo FLBuilderModel::get_enabled_templates(); ?>'
|
10 |
};
|
11 |
|
12 |
-
|
13 |
actionsLightboxTitle: '<?php _e('What would you like to do?', 'fl-builder'); ?>',
|
14 |
cancel: '<?php _e('Cancel', 'fl-builder'); ?>',
|
15 |
changeTemplate: '<?php _e('Change Template', 'fl-builder'); ?>',
|
1 |
<script>
|
2 |
|
3 |
+
var FLBuilderConfig = {
|
4 |
ajaxUrl: '<?php wp_reset_query(); global $post; echo get_permalink($post->ID); ?>',
|
5 |
lite: <?php if(FL_BUILDER_LITE === true) echo 'true'; else echo 'false'; ?>,
|
6 |
homeUrl: '<?php echo home_url(); ?>',
|
9 |
enabledTemplates: '<?php echo FLBuilderModel::get_enabled_templates(); ?>'
|
10 |
};
|
11 |
|
12 |
+
var FLBuilderStrings = {
|
13 |
actionsLightboxTitle: '<?php _e('What would you like to do?', 'fl-builder'); ?>',
|
14 |
cancel: '<?php _e('Cancel', 'fl-builder'); ?>',
|
15 |
changeTemplate: '<?php _e('Change Template', 'fl-builder'); ?>',
|
includes/updater-config.php
CHANGED
@@ -2,9 +2,9 @@
|
|
2 |
|
3 |
if(class_exists('FLUpdater')) {
|
4 |
FLUpdater::add_product(array(
|
5 |
-
'name' => '
|
6 |
-
'version' => '1.3.
|
7 |
-
'slug' => '
|
8 |
'type' => 'plugin'
|
9 |
));
|
10 |
}
|
2 |
|
3 |
if(class_exists('FLUpdater')) {
|
4 |
FLUpdater::add_product(array(
|
5 |
+
'name' => 'FastLine Page Builder (Lite Version)',
|
6 |
+
'version' => '1.3.8',
|
7 |
+
'slug' => 'fl-builder',
|
8 |
'type' => 'plugin'
|
9 |
));
|
10 |
}
|
js/fl-builder-admin-posts.js
CHANGED
@@ -2,10 +2,6 @@ var FLBuilderAdminPosts;
|
|
2 |
|
3 |
(function($){
|
4 |
|
5 |
-
$(function(){
|
6 |
-
FLBuilderAdminPosts._init();
|
7 |
-
});
|
8 |
-
|
9 |
/**
|
10 |
* @class FLBuilderAdminPosts
|
11 |
* @static
|
@@ -164,4 +160,8 @@ var FLBuilderAdminPosts;
|
|
164 |
}
|
165 |
};
|
166 |
|
|
|
|
|
|
|
|
|
167 |
})(jQuery);
|
2 |
|
3 |
(function($){
|
4 |
|
|
|
|
|
|
|
|
|
5 |
/**
|
6 |
* @class FLBuilderAdminPosts
|
7 |
* @static
|
160 |
}
|
161 |
};
|
162 |
|
163 |
+
$(function(){
|
164 |
+
FLBuilderAdminPosts._init();
|
165 |
+
});
|
166 |
+
|
167 |
})(jQuery);
|
js/fl-builder-admin-settings.js
CHANGED
@@ -1,9 +1,5 @@
|
|
1 |
(function($){
|
2 |
|
3 |
-
$(function(){
|
4 |
-
FLBuilderAdminSettings.init();
|
5 |
-
});
|
6 |
-
|
7 |
/**
|
8 |
* @class FLBuilderAdminSettings
|
9 |
*/
|
@@ -160,4 +156,8 @@
|
|
160 |
}
|
161 |
};
|
162 |
|
|
|
|
|
|
|
|
|
163 |
})(jQuery);
|
1 |
(function($){
|
2 |
|
|
|
|
|
|
|
|
|
3 |
/**
|
4 |
* @class FLBuilderAdminSettings
|
5 |
*/
|
156 |
}
|
157 |
};
|
158 |
|
159 |
+
$(function(){
|
160 |
+
FLBuilderAdminSettings.init();
|
161 |
+
});
|
162 |
+
|
163 |
})(jQuery);
|
js/fl-builder.js
CHANGED
@@ -2,11 +2,9 @@ var FLBuilder;
|
|
2 |
|
3 |
(function($){
|
4 |
|
5 |
-
$(function(){
|
6 |
-
FLBuilder._init();
|
7 |
-
});
|
8 |
-
|
9 |
/**
|
|
|
|
|
10 |
* @class FLBuilder
|
11 |
* @static
|
12 |
*/
|
@@ -341,6 +339,7 @@ var FLBuilder;
|
|
341 |
|
342 |
/* Rows */
|
343 |
$('body').delegate('.fl-row-overlay .fl-block-remove', 'click', FLBuilder._deleteRowClicked);
|
|
|
344 |
$('body').delegate('.fl-row-overlay .fl-block-settings', 'click', FLBuilder._rowSettingsClicked);
|
345 |
$('body').delegate('.fl-row-overlay .fl-block-move', 'mousedown', FLBuilder._blockDragInit);
|
346 |
$('body').delegate('.fl-builder-row-settings .fl-builder-settings-save', 'click', FLBuilder._saveSettings);
|
@@ -456,7 +455,7 @@ var FLBuilder;
|
|
456 |
moduleSettings = $('.fl-builder-module-settings').length > 0;
|
457 |
|
458 |
if(rowSettings || colSettings || moduleSettings) {
|
459 |
-
return
|
460 |
}
|
461 |
},
|
462 |
|
@@ -511,34 +510,34 @@ var FLBuilder;
|
|
511 |
_toolsClicked: function()
|
512 |
{
|
513 |
var buttons = {},
|
514 |
-
lite =
|
515 |
-
postType =
|
516 |
-
enabledTemplates =
|
517 |
|
518 |
// Duplicate button
|
519 |
if(postType == 'fl-builder-template') {
|
520 |
-
buttons['duplicate-page'] =
|
521 |
}
|
522 |
else {
|
523 |
-
buttons['duplicate-page'] =
|
524 |
}
|
525 |
|
526 |
// Template buttons
|
527 |
if(!lite && postType != 'fl-builder-template' && (enabledTemplates == 'user' || enabledTemplates == 'enabled')) {
|
528 |
|
529 |
-
buttons['save-user-template'] =
|
530 |
|
531 |
if(FLBuilder._templateSettingsEnabled) {
|
532 |
-
buttons['save-template'] =
|
533 |
}
|
534 |
}
|
535 |
|
536 |
// Global settings button
|
537 |
-
buttons['global-settings'] =
|
538 |
|
539 |
FLBuilder._showActionsLightbox({
|
540 |
'className' : 'fl-builder-tools-actions',
|
541 |
-
'title' :
|
542 |
'buttons' : buttons
|
543 |
});
|
544 |
},
|
@@ -551,11 +550,11 @@ var FLBuilder;
|
|
551 |
{
|
552 |
FLBuilder._showActionsLightbox({
|
553 |
'className': 'fl-builder-save-actions',
|
554 |
-
'title':
|
555 |
'buttons': {
|
556 |
-
'publish':
|
557 |
-
'draft':
|
558 |
-
'discard':
|
559 |
}
|
560 |
});
|
561 |
},
|
@@ -586,7 +585,7 @@ var FLBuilder;
|
|
586 |
*/
|
587 |
_blockUpgradeClicked: function()
|
588 |
{
|
589 |
-
window.open(
|
590 |
},
|
591 |
|
592 |
/* Save Actions
|
@@ -626,7 +625,7 @@ var FLBuilder;
|
|
626 |
*/
|
627 |
_discardButtonClicked: function()
|
628 |
{
|
629 |
-
var result = confirm(
|
630 |
|
631 |
if(result) {
|
632 |
|
@@ -811,7 +810,7 @@ var FLBuilder;
|
|
811 |
*/
|
812 |
_showTemplateSelector: function()
|
813 |
{
|
814 |
-
if(!
|
815 |
|
816 |
FLBuilder._showLightbox(false);
|
817 |
|
@@ -846,7 +845,7 @@ var FLBuilder;
|
|
846 |
if($('.fl-builder-content').children('.fl-row').length > 0) {
|
847 |
|
848 |
if(index == 0) {
|
849 |
-
if(confirm(
|
850 |
FLBuilder._lightbox._node.hide();
|
851 |
FLBuilder._applyTemplate(0, false, 'core');
|
852 |
}
|
@@ -874,7 +873,7 @@ var FLBuilder;
|
|
874 |
if($('.fl-builder-content').children('.fl-row').length > 0) {
|
875 |
|
876 |
if(id == 'blank') {
|
877 |
-
if(confirm(
|
878 |
FLBuilder._lightbox._node.hide();
|
879 |
FLBuilder._applyTemplate('blank', false, 'user');
|
880 |
}
|
@@ -911,7 +910,7 @@ var FLBuilder;
|
|
911 |
{
|
912 |
var template = $(this).closest('.fl-user-template');
|
913 |
|
914 |
-
if(confirm(
|
915 |
|
916 |
FLBuilder.ajax({
|
917 |
action: 'fl_builder_update',
|
@@ -940,10 +939,10 @@ var FLBuilder;
|
|
940 |
{
|
941 |
FLBuilder._showActionsLightbox({
|
942 |
'className': 'fl-builder-template-actions',
|
943 |
-
'title':
|
944 |
'buttons': {
|
945 |
-
'template-replace':
|
946 |
-
'template-append':
|
947 |
}
|
948 |
});
|
949 |
},
|
@@ -954,7 +953,7 @@ var FLBuilder;
|
|
954 |
*/
|
955 |
_templateReplaceClicked: function()
|
956 |
{
|
957 |
-
if(confirm(
|
958 |
FLBuilder._actionsLightbox.close();
|
959 |
FLBuilder._applyTemplate(FLBuilder._selectedTemplateId, false, FLBuilder._selectedTemplateType);
|
960 |
}
|
@@ -1059,7 +1058,7 @@ var FLBuilder;
|
|
1059 |
*/
|
1060 |
_saveUserTemplateSettingsComplete: function()
|
1061 |
{
|
1062 |
-
FLBuilder._alert(
|
1063 |
},
|
1064 |
|
1065 |
/* Template Settings
|
@@ -1092,7 +1091,7 @@ var FLBuilder;
|
|
1092 |
|
1093 |
if(content.children('.fl-row').length === 0) {
|
1094 |
content.addClass('fl-builder-empty');
|
1095 |
-
content.append('<span class="fl-builder-empty-message">'+
|
1096 |
FLBuilder._initSortables();
|
1097 |
}
|
1098 |
},
|
@@ -1347,7 +1346,7 @@ var FLBuilder;
|
|
1347 |
}
|
1348 |
|
1349 |
var parent = ui.placeholder.parent(),
|
1350 |
-
title =
|
1351 |
|
1352 |
if(parent.hasClass('fl-col-content')) {
|
1353 |
if(ui.item.hasClass('fl-builder-block-module')) {
|
@@ -1362,7 +1361,7 @@ var FLBuilder;
|
|
1362 |
title = ui.item.text();
|
1363 |
}
|
1364 |
else {
|
1365 |
-
title =
|
1366 |
}
|
1367 |
}
|
1368 |
else if(parent.hasClass('fl-builder-content')) {
|
@@ -1370,10 +1369,10 @@ var FLBuilder;
|
|
1370 |
title = ui.item.text();
|
1371 |
}
|
1372 |
else if(ui.item.hasClass('fl-row')) {
|
1373 |
-
title =
|
1374 |
}
|
1375 |
else {
|
1376 |
-
title =
|
1377 |
}
|
1378 |
}
|
1379 |
|
@@ -1476,7 +1475,7 @@ var FLBuilder;
|
|
1476 |
|
1477 |
if(!row.hasClass('fl-block-overlay-active')) {
|
1478 |
row.addClass('fl-block-overlay-active');
|
1479 |
-
row.append('<div class="fl-row-overlay fl-block-overlay" data-node="'+ row.attr('data-node') +'"><div class="fl-block-overlay-header"><div class="fl-block-overlay-actions"><div class="fl-block-overlay-title">'+
|
1480 |
FLBuilder._initTipTips();
|
1481 |
}
|
1482 |
},
|
@@ -1635,7 +1634,7 @@ var FLBuilder;
|
|
1635 |
FLBuilder._deleteRow(row);
|
1636 |
}
|
1637 |
else {
|
1638 |
-
result = confirm(
|
1639 |
|
1640 |
if(result) {
|
1641 |
FLBuilder._deleteRow(row);
|
@@ -1664,6 +1663,27 @@ var FLBuilder;
|
|
1664 |
FLBuilder._removeRowOverlays();
|
1665 |
},
|
1666 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1667 |
/**
|
1668 |
* @method _rowSettingsClicked
|
1669 |
* @private
|
@@ -1708,7 +1728,7 @@ var FLBuilder;
|
|
1708 |
}
|
1709 |
if(!col.hasClass('fl-block-overlay-active')) {
|
1710 |
col.addClass('fl-block-overlay-active');
|
1711 |
-
col.append('<div class="fl-col-overlay fl-block-overlay"><div class="fl-block-overlay-header"><div class="fl-block-overlay-actions"><div class="fl-block-overlay-title">'+
|
1712 |
FLBuilder._initTipTips();
|
1713 |
}
|
1714 |
|
@@ -1898,7 +1918,7 @@ var FLBuilder;
|
|
1898 |
}
|
1899 |
|
1900 |
module.addClass('fl-block-overlay-active');
|
1901 |
-
module.append('<div class="fl-module-overlay fl-block-overlay"><div class="fl-block-overlay-header"><div class="fl-block-overlay-actions"><div class="fl-block-overlay-title">'+ moduleName +'</div><i class="fl-block-move fa fa-arrows fl-tip" title="' +
|
1902 |
FLBuilder._initTipTips();
|
1903 |
}
|
1904 |
|
@@ -2038,7 +2058,7 @@ var FLBuilder;
|
|
2038 |
_deleteModuleClicked: function(e)
|
2039 |
{
|
2040 |
var module = $(this).closest('.fl-module'),
|
2041 |
-
result = confirm(
|
2042 |
|
2043 |
if(result) {
|
2044 |
FLBuilder._deleteModule(module);
|
@@ -2534,7 +2554,7 @@ var FLBuilder;
|
|
2534 |
keyDelay : 1000,
|
2535 |
fadeOut : false,
|
2536 |
usePlaceholder : true,
|
2537 |
-
emptyText :
|
2538 |
showResultListWhenNoMatch : true,
|
2539 |
preFill : field.data('value'),
|
2540 |
queryParam : 'fl_as_query',
|
@@ -2634,7 +2654,7 @@ var FLBuilder;
|
|
2634 |
{
|
2635 |
var row = $(this).closest('tr'),
|
2636 |
parent = row.parent(),
|
2637 |
-
result = confirm(
|
2638 |
|
2639 |
if(result) {
|
2640 |
row.remove();
|
@@ -2824,8 +2844,8 @@ var FLBuilder;
|
|
2824 |
{
|
2825 |
if(FLBuilder._singlePhotoSelector === null) {
|
2826 |
FLBuilder._singlePhotoSelector = wp.media({
|
2827 |
-
title:
|
2828 |
-
button: { text:
|
2829 |
library : { type : 'image' },
|
2830 |
multiple: false
|
2831 |
});
|
@@ -2917,10 +2937,10 @@ var FLBuilder;
|
|
2917 |
size = null,
|
2918 |
selected = null,
|
2919 |
titles = {
|
2920 |
-
full :
|
2921 |
-
large :
|
2922 |
-
medium :
|
2923 |
-
thumbnail :
|
2924 |
};
|
2925 |
|
2926 |
for(size in photo.sizes) {
|
@@ -3007,10 +3027,10 @@ var FLBuilder;
|
|
3007 |
}
|
3008 |
|
3009 |
if(photos.length == 1) {
|
3010 |
-
count.html('1 ' +
|
3011 |
}
|
3012 |
else {
|
3013 |
-
count.html(photos.length + ' ' +
|
3014 |
}
|
3015 |
|
3016 |
wrap.removeClass('fl-multiple-photos-empty');
|
@@ -3030,8 +3050,8 @@ var FLBuilder;
|
|
3030 |
if(FLBuilder._singleVideoSelector === null) {
|
3031 |
|
3032 |
FLBuilder._singleVideoSelector = wp.media({
|
3033 |
-
title:
|
3034 |
-
button: { text:
|
3035 |
library : { type : 'video' },
|
3036 |
multiple: false
|
3037 |
});
|
@@ -3306,7 +3326,7 @@ var FLBuilder;
|
|
3306 |
----------------------------------------------------------*/
|
3307 |
|
3308 |
/**
|
3309 |
-
* Used to init pre WP 3.9 editors from
|
3310 |
*
|
3311 |
* @method initEditorField
|
3312 |
*/
|
@@ -3435,7 +3455,7 @@ var FLBuilder;
|
|
3435 |
*/
|
3436 |
_ajaxUrl: function(params)
|
3437 |
{
|
3438 |
-
var url =
|
3439 |
param = null;
|
3440 |
|
3441 |
if(typeof params !== 'undefined') {
|
@@ -3518,7 +3538,7 @@ var FLBuilder;
|
|
3518 |
buttons += '<span class="fl-builder-'+ i +'-button fl-builder-button fl-builder-button-large">'+ settings.buttons[i] +'</span>';
|
3519 |
}
|
3520 |
|
3521 |
-
FLBuilder._actionsLightbox.open('<div class="fl-builder-actions '+ settings.className +'"><span class="fl-builder-actions-title">'+ settings.title +'</span>'+ buttons +'<span class="fl-builder-cancel-button fl-builder-button fl-builder-button-primary fl-builder-button-large">'+
|
3522 |
},
|
3523 |
|
3524 |
/* Alert Lightboxes
|
@@ -3534,10 +3554,14 @@ var FLBuilder;
|
|
3534 |
className: 'fl-builder-lightbox fl-builder-alert-lightbox',
|
3535 |
destroyOnClose: true
|
3536 |
}),
|
3537 |
-
html = '<div class="fl-lightbox-message">' + message + '</div><div class="fl-lightbox-footer"><span class="fl-builder-settings-cancel fl-builder-button fl-builder-button-large fl-builder-button-primary" href="javascript:void(0);">' +
|
3538 |
|
3539 |
alert.open(html);
|
3540 |
}
|
3541 |
};
|
3542 |
|
|
|
|
|
|
|
|
|
3543 |
})(jQuery);
|
2 |
|
3 |
(function($){
|
4 |
|
|
|
|
|
|
|
|
|
5 |
/**
|
6 |
+
* The main builder interface class.
|
7 |
+
*
|
8 |
* @class FLBuilder
|
9 |
* @static
|
10 |
*/
|
339 |
|
340 |
/* Rows */
|
341 |
$('body').delegate('.fl-row-overlay .fl-block-remove', 'click', FLBuilder._deleteRowClicked);
|
342 |
+
$('body').delegate('.fl-row-overlay .fl-block-copy', 'click', FLBuilder._rowCopyClicked);
|
343 |
$('body').delegate('.fl-row-overlay .fl-block-settings', 'click', FLBuilder._rowSettingsClicked);
|
344 |
$('body').delegate('.fl-row-overlay .fl-block-move', 'mousedown', FLBuilder._blockDragInit);
|
345 |
$('body').delegate('.fl-builder-row-settings .fl-builder-settings-save', 'click', FLBuilder._saveSettings);
|
455 |
moduleSettings = $('.fl-builder-module-settings').length > 0;
|
456 |
|
457 |
if(rowSettings || colSettings || moduleSettings) {
|
458 |
+
return FLBuilderStrings.unloadWarning;
|
459 |
}
|
460 |
},
|
461 |
|
510 |
_toolsClicked: function()
|
511 |
{
|
512 |
var buttons = {},
|
513 |
+
lite = FLBuilderConfig.lite,
|
514 |
+
postType = FLBuilderConfig.postType,
|
515 |
+
enabledTemplates = FLBuilderConfig.enabledTemplates;
|
516 |
|
517 |
// Duplicate button
|
518 |
if(postType == 'fl-builder-template') {
|
519 |
+
buttons['duplicate-page'] = FLBuilderStrings.duplicateTemplate;
|
520 |
}
|
521 |
else {
|
522 |
+
buttons['duplicate-page'] = FLBuilderStrings.duplicatePage;
|
523 |
}
|
524 |
|
525 |
// Template buttons
|
526 |
if(!lite && postType != 'fl-builder-template' && (enabledTemplates == 'user' || enabledTemplates == 'enabled')) {
|
527 |
|
528 |
+
buttons['save-user-template'] = FLBuilderStrings.saveTemplate;
|
529 |
|
530 |
if(FLBuilder._templateSettingsEnabled) {
|
531 |
+
buttons['save-template'] = FLBuilderStrings.saveCoreTemplate;
|
532 |
}
|
533 |
}
|
534 |
|
535 |
// Global settings button
|
536 |
+
buttons['global-settings'] = FLBuilderStrings.editGlobalSettings;
|
537 |
|
538 |
FLBuilder._showActionsLightbox({
|
539 |
'className' : 'fl-builder-tools-actions',
|
540 |
+
'title' : FLBuilderStrings.actionsLightboxTitle,
|
541 |
'buttons' : buttons
|
542 |
});
|
543 |
},
|
550 |
{
|
551 |
FLBuilder._showActionsLightbox({
|
552 |
'className': 'fl-builder-save-actions',
|
553 |
+
'title': FLBuilderStrings.actionsLightboxTitle,
|
554 |
'buttons': {
|
555 |
+
'publish': FLBuilderStrings.publish,
|
556 |
+
'draft': FLBuilderStrings.draft,
|
557 |
+
'discard': FLBuilderStrings.discard
|
558 |
}
|
559 |
});
|
560 |
},
|
585 |
*/
|
586 |
_blockUpgradeClicked: function()
|
587 |
{
|
588 |
+
window.open(FLBuilderConfig.upgradeUrl);
|
589 |
},
|
590 |
|
591 |
/* Save Actions
|
625 |
*/
|
626 |
_discardButtonClicked: function()
|
627 |
{
|
628 |
+
var result = confirm(FLBuilderStrings.discardMessage);
|
629 |
|
630 |
if(result) {
|
631 |
|
810 |
*/
|
811 |
_showTemplateSelector: function()
|
812 |
{
|
813 |
+
if(!FLBuilderConfig.lite) {
|
814 |
|
815 |
FLBuilder._showLightbox(false);
|
816 |
|
845 |
if($('.fl-builder-content').children('.fl-row').length > 0) {
|
846 |
|
847 |
if(index == 0) {
|
848 |
+
if(confirm(FLBuilderStrings.changeTemplateMessage)) {
|
849 |
FLBuilder._lightbox._node.hide();
|
850 |
FLBuilder._applyTemplate(0, false, 'core');
|
851 |
}
|
873 |
if($('.fl-builder-content').children('.fl-row').length > 0) {
|
874 |
|
875 |
if(id == 'blank') {
|
876 |
+
if(confirm(FLBuilderStrings.changeTemplateMessage)) {
|
877 |
FLBuilder._lightbox._node.hide();
|
878 |
FLBuilder._applyTemplate('blank', false, 'user');
|
879 |
}
|
910 |
{
|
911 |
var template = $(this).closest('.fl-user-template');
|
912 |
|
913 |
+
if(confirm(FLBuilderStrings.deleteTemplate)) {
|
914 |
|
915 |
FLBuilder.ajax({
|
916 |
action: 'fl_builder_update',
|
939 |
{
|
940 |
FLBuilder._showActionsLightbox({
|
941 |
'className': 'fl-builder-template-actions',
|
942 |
+
'title': FLBuilderStrings.actionsLightboxTitle,
|
943 |
'buttons': {
|
944 |
+
'template-replace': FLBuilderStrings.templateReplace,
|
945 |
+
'template-append': FLBuilderStrings.templateAppend
|
946 |
}
|
947 |
});
|
948 |
},
|
953 |
*/
|
954 |
_templateReplaceClicked: function()
|
955 |
{
|
956 |
+
if(confirm(FLBuilderStrings.changeTemplateMessage)) {
|
957 |
FLBuilder._actionsLightbox.close();
|
958 |
FLBuilder._applyTemplate(FLBuilder._selectedTemplateId, false, FLBuilder._selectedTemplateType);
|
959 |
}
|
1058 |
*/
|
1059 |
_saveUserTemplateSettingsComplete: function()
|
1060 |
{
|
1061 |
+
FLBuilder._alert(FLBuilderStrings.templateSaved);
|
1062 |
},
|
1063 |
|
1064 |
/* Template Settings
|
1091 |
|
1092 |
if(content.children('.fl-row').length === 0) {
|
1093 |
content.addClass('fl-builder-empty');
|
1094 |
+
content.append('<span class="fl-builder-empty-message">'+ FLBuilderStrings.emptyMessage +'</span>');
|
1095 |
FLBuilder._initSortables();
|
1096 |
}
|
1097 |
},
|
1346 |
}
|
1347 |
|
1348 |
var parent = ui.placeholder.parent(),
|
1349 |
+
title = FLBuilderStrings.insert;
|
1350 |
|
1351 |
if(parent.hasClass('fl-col-content')) {
|
1352 |
if(ui.item.hasClass('fl-builder-block-module')) {
|
1361 |
title = ui.item.text();
|
1362 |
}
|
1363 |
else {
|
1364 |
+
title = FLBuilderStrings.newColumn;
|
1365 |
}
|
1366 |
}
|
1367 |
else if(parent.hasClass('fl-builder-content')) {
|
1369 |
title = ui.item.text();
|
1370 |
}
|
1371 |
else if(ui.item.hasClass('fl-row')) {
|
1372 |
+
title = FLBuilderStrings.row;
|
1373 |
}
|
1374 |
else {
|
1375 |
+
title = FLBuilderStrings.newRow;
|
1376 |
}
|
1377 |
}
|
1378 |
|
1475 |
|
1476 |
if(!row.hasClass('fl-block-overlay-active')) {
|
1477 |
row.addClass('fl-block-overlay-active');
|
1478 |
+
row.append('<div class="fl-row-overlay fl-block-overlay" data-node="'+ row.attr('data-node') +'"><div class="fl-block-overlay-header"><div class="fl-block-overlay-actions"><div class="fl-block-overlay-title">'+ FLBuilderStrings.row +'</div><i class="fl-block-move fa fa-arrows fl-tip" title="' + FLBuilderStrings.move + '"></i><i class="fl-block-settings fa fa-wrench fl-tip" title="' + FLBuilderStrings.rowSettings + '"></i><i class="fl-block-copy fa fa-copy fl-tip" title="' + FLBuilderStrings.duplicate + '"></i><i class="fl-block-remove fa fa-times fl-tip" title="' + FLBuilderStrings.remove + '"></i></div><div class="fl-clear"></div></div></div>');
|
1479 |
FLBuilder._initTipTips();
|
1480 |
}
|
1481 |
},
|
1634 |
FLBuilder._deleteRow(row);
|
1635 |
}
|
1636 |
else {
|
1637 |
+
result = confirm(FLBuilderStrings.deleteRowMessage);
|
1638 |
|
1639 |
if(result) {
|
1640 |
FLBuilder._deleteRow(row);
|
1663 |
FLBuilder._removeRowOverlays();
|
1664 |
},
|
1665 |
|
1666 |
+
/**
|
1667 |
+
* @method _rowCopyClicked
|
1668 |
+
* @private
|
1669 |
+
*/
|
1670 |
+
_rowCopyClicked: function(e)
|
1671 |
+
{
|
1672 |
+
var nodeId = $(this).closest('.fl-row-overlay').attr('data-node');
|
1673 |
+
|
1674 |
+
$('.fl-builder-loading').show();
|
1675 |
+
|
1676 |
+
FLBuilder._removeAllOverlays();
|
1677 |
+
|
1678 |
+
FLBuilder.ajax({
|
1679 |
+
action: 'fl_builder_update',
|
1680 |
+
method: 'copy_row',
|
1681 |
+
node_id: nodeId
|
1682 |
+
}, FLBuilder._updateLayout);
|
1683 |
+
|
1684 |
+
e.stopPropagation();
|
1685 |
+
},
|
1686 |
+
|
1687 |
/**
|
1688 |
* @method _rowSettingsClicked
|
1689 |
* @private
|
1728 |
}
|
1729 |
if(!col.hasClass('fl-block-overlay-active')) {
|
1730 |
col.addClass('fl-block-overlay-active');
|
1731 |
+
col.append('<div class="fl-col-overlay fl-block-overlay"><div class="fl-block-overlay-header"><div class="fl-block-overlay-actions"><div class="fl-block-overlay-title">'+ FLBuilderStrings.column +'</div><i class="fl-block-settings fa fa-wrench fl-tip" title="' + FLBuilderStrings.columnSettings + '"></i><i class="fl-block-remove fa fa-times fl-tip" title="' + FLBuilderStrings.remove + '"></i></div><div class="fl-clear"></div></div></div>');
|
1732 |
FLBuilder._initTipTips();
|
1733 |
}
|
1734 |
|
1918 |
}
|
1919 |
|
1920 |
module.addClass('fl-block-overlay-active');
|
1921 |
+
module.append('<div class="fl-module-overlay fl-block-overlay"><div class="fl-block-overlay-header"><div class="fl-block-overlay-actions"><div class="fl-block-overlay-title">'+ moduleName +'</div><i class="fl-block-move fa fa-arrows fl-tip" title="' + FLBuilderStrings.move + '"></i><i class="fl-block-settings fa fa-wrench fl-tip" title="' + moduleName + ' ' + FLBuilderStrings.settings + '"></i><i class="fl-block-copy fa fa-copy fl-tip" title="' + FLBuilderStrings.duplicate + '"></i><i class="fl-block-columns fa fa-columns fl-tip" title="' + FLBuilderStrings.columnSettings + '"></i><i class="fl-block-remove fa fa-times fl-tip" title="' + FLBuilderStrings.remove + '"></i></div><div class="fl-clear"></div></div></div>');
|
1922 |
FLBuilder._initTipTips();
|
1923 |
}
|
1924 |
|
2058 |
_deleteModuleClicked: function(e)
|
2059 |
{
|
2060 |
var module = $(this).closest('.fl-module'),
|
2061 |
+
result = confirm(FLBuilderStrings.deleteModuleMessage);
|
2062 |
|
2063 |
if(result) {
|
2064 |
FLBuilder._deleteModule(module);
|
2554 |
keyDelay : 1000,
|
2555 |
fadeOut : false,
|
2556 |
usePlaceholder : true,
|
2557 |
+
emptyText : FLBuilderStrings.noResultsFound,
|
2558 |
showResultListWhenNoMatch : true,
|
2559 |
preFill : field.data('value'),
|
2560 |
queryParam : 'fl_as_query',
|
2654 |
{
|
2655 |
var row = $(this).closest('tr'),
|
2656 |
parent = row.parent(),
|
2657 |
+
result = confirm(FLBuilderStrings.deleteFieldMessage);
|
2658 |
|
2659 |
if(result) {
|
2660 |
row.remove();
|
2844 |
{
|
2845 |
if(FLBuilder._singlePhotoSelector === null) {
|
2846 |
FLBuilder._singlePhotoSelector = wp.media({
|
2847 |
+
title: FLBuilderStrings.selectPhoto,
|
2848 |
+
button: { text: FLBuilderStrings.selectPhoto },
|
2849 |
library : { type : 'image' },
|
2850 |
multiple: false
|
2851 |
});
|
2937 |
size = null,
|
2938 |
selected = null,
|
2939 |
titles = {
|
2940 |
+
full : FLBuilderStrings.fullSize,
|
2941 |
+
large : FLBuilderStrings.large,
|
2942 |
+
medium : FLBuilderStrings.medium,
|
2943 |
+
thumbnail : FLBuilderStrings.thumbnail
|
2944 |
};
|
2945 |
|
2946 |
for(size in photo.sizes) {
|
3027 |
}
|
3028 |
|
3029 |
if(photos.length == 1) {
|
3030 |
+
count.html('1 ' + FLBuilderStrings.photoSelected);
|
3031 |
}
|
3032 |
else {
|
3033 |
+
count.html(photos.length + ' ' + FLBuilderStrings.photosSelected);
|
3034 |
}
|
3035 |
|
3036 |
wrap.removeClass('fl-multiple-photos-empty');
|
3050 |
if(FLBuilder._singleVideoSelector === null) {
|
3051 |
|
3052 |
FLBuilder._singleVideoSelector = wp.media({
|
3053 |
+
title: FLBuilderStrings.selectVideo,
|
3054 |
+
button: { text: FLBuilderStrings.selectVideo },
|
3055 |
library : { type : 'video' },
|
3056 |
multiple: false
|
3057 |
});
|
3326 |
----------------------------------------------------------*/
|
3327 |
|
3328 |
/**
|
3329 |
+
* Used to init pre WP 3.9 editors from field.php.
|
3330 |
*
|
3331 |
* @method initEditorField
|
3332 |
*/
|
3455 |
*/
|
3456 |
_ajaxUrl: function(params)
|
3457 |
{
|
3458 |
+
var url = FLBuilderConfig.ajaxUrl,
|
3459 |
param = null;
|
3460 |
|
3461 |
if(typeof params !== 'undefined') {
|
3538 |
buttons += '<span class="fl-builder-'+ i +'-button fl-builder-button fl-builder-button-large">'+ settings.buttons[i] +'</span>';
|
3539 |
}
|
3540 |
|
3541 |
+
FLBuilder._actionsLightbox.open('<div class="fl-builder-actions '+ settings.className +'"><span class="fl-builder-actions-title">'+ settings.title +'</span>'+ buttons +'<span class="fl-builder-cancel-button fl-builder-button fl-builder-button-primary fl-builder-button-large">'+ FLBuilderStrings.cancel +'</span></div>');
|
3542 |
},
|
3543 |
|
3544 |
/* Alert Lightboxes
|
3554 |
className: 'fl-builder-lightbox fl-builder-alert-lightbox',
|
3555 |
destroyOnClose: true
|
3556 |
}),
|
3557 |
+
html = '<div class="fl-lightbox-message">' + message + '</div><div class="fl-lightbox-footer"><span class="fl-builder-settings-cancel fl-builder-button fl-builder-button-large fl-builder-button-primary" href="javascript:void(0);">' + FLBuilderStrings.ok + '</span></div>';
|
3558 |
|
3559 |
alert.open(html);
|
3560 |
}
|
3561 |
};
|
3562 |
|
3563 |
+
$(function(){
|
3564 |
+
FLBuilder._init();
|
3565 |
+
});
|
3566 |
+
|
3567 |
})(jQuery);
|
modules/photo/includes/frontend.js.php
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php if($settings->link_type == 'lightbox') : ?>
|
2 |
+
jQuery(function() {
|
3 |
+
jQuery('.fl-node-<?php echo $id; ?> a').magnificPopup({
|
4 |
+
type: 'image',
|
5 |
+
closeOnContentClick: true,
|
6 |
+
closeBtnInside: false
|
7 |
+
});
|
8 |
+
});
|
9 |
+
<?php endif; ?>
|
modules/photo/photo.php
CHANGED
@@ -28,6 +28,17 @@ class FLPhotoModule extends FLBuilderModule {
|
|
28 |
));
|
29 |
}
|
30 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
/**
|
32 |
* @method update
|
33 |
* @param $settings {object}
|
@@ -214,6 +225,9 @@ class FLPhotoModule extends FLBuilderModule {
|
|
214 |
if($this->settings->link_type == 'url') {
|
215 |
$link = $this->settings->link_url;
|
216 |
}
|
|
|
|
|
|
|
217 |
else if($this->settings->link_type == 'file') {
|
218 |
$link = $photo->url;
|
219 |
}
|
@@ -435,6 +449,7 @@ FLBuilder::register_module('FLPhotoModule', array(
|
|
435 |
'options' => array(
|
436 |
'' => __('None', 'fl-builder'),
|
437 |
'url' => __('URL', 'fl-builder'),
|
|
|
438 |
'file' => __('Photo File', 'fl-builder'),
|
439 |
'page' => __('Photo Page', 'fl-builder')
|
440 |
),
|
28 |
));
|
29 |
}
|
30 |
|
31 |
+
/**
|
32 |
+
* @method enqueue_scripts
|
33 |
+
*/
|
34 |
+
public function enqueue_scripts()
|
35 |
+
{
|
36 |
+
if($this->settings && $this->settings->link_type == 'lightbox') {
|
37 |
+
$this->add_js('jquery-magnificpopup');
|
38 |
+
$this->add_css('jquery-magnificpopup');
|
39 |
+
}
|
40 |
+
}
|
41 |
+
|
42 |
/**
|
43 |
* @method update
|
44 |
* @param $settings {object}
|
225 |
if($this->settings->link_type == 'url') {
|
226 |
$link = $this->settings->link_url;
|
227 |
}
|
228 |
+
else if($this->settings->link_type == 'lightbox') {
|
229 |
+
$link = $photo->url;
|
230 |
+
}
|
231 |
else if($this->settings->link_type == 'file') {
|
232 |
$link = $photo->url;
|
233 |
}
|
449 |
'options' => array(
|
450 |
'' => __('None', 'fl-builder'),
|
451 |
'url' => __('URL', 'fl-builder'),
|
452 |
+
'lightbox' => __('Lightbox', 'fl-builder'),
|
453 |
'file' => __('Photo File', 'fl-builder'),
|
454 |
'page' => __('Photo Page', 'fl-builder')
|
455 |
),
|
modules/widget/includes/frontend.php
CHANGED
@@ -1,34 +1,38 @@
|
|
1 |
<div class="fl-widget">
|
2 |
<?php
|
|
|
|
|
3 |
|
4 |
// Get builder post data.
|
5 |
$post_data = FLBuilderModel::get_post_data();
|
6 |
|
7 |
// Widget class
|
8 |
if(isset($settings->widget)) {
|
9 |
-
$
|
10 |
}
|
11 |
else if(isset($post_data['widget']) && FLBuilderModel::is_builder_active()) {
|
12 |
-
$
|
13 |
}
|
14 |
|
15 |
-
if(isset($
|
16 |
|
17 |
// Widget instance
|
18 |
-
$
|
|
|
|
|
19 |
|
20 |
// Widget settings
|
21 |
$settings_key = 'widget-' . $widget_instance->id_base;
|
22 |
$widget_settings = isset($settings->$settings_key) ? (array)$settings->$settings_key : array();
|
23 |
|
24 |
// Render the widget
|
25 |
-
wp_cache_flush($
|
26 |
-
the_widget($
|
27 |
}
|
28 |
-
else if(isset($
|
29 |
|
30 |
// Widget doesn't exist!
|
31 |
-
echo $
|
32 |
}
|
33 |
|
34 |
?>
|
1 |
<div class="fl-widget">
|
2 |
<?php
|
3 |
+
|
4 |
+
global $wp_widget_factory;
|
5 |
|
6 |
// Get builder post data.
|
7 |
$post_data = FLBuilderModel::get_post_data();
|
8 |
|
9 |
// Widget class
|
10 |
if(isset($settings->widget)) {
|
11 |
+
$widget_slug = $settings->widget;
|
12 |
}
|
13 |
else if(isset($post_data['widget']) && FLBuilderModel::is_builder_active()) {
|
14 |
+
$widget_slug = $post_data['widget'];
|
15 |
}
|
16 |
|
17 |
+
if(isset($widget_slug) && isset($wp_widget_factory->widgets[$widget_slug])) {
|
18 |
|
19 |
// Widget instance
|
20 |
+
$factory_instance = $wp_widget_factory->widgets[$widget_slug];
|
21 |
+
$widget_class = get_class($factory_instance);
|
22 |
+
$widget_instance = new $widget_class($factory_instance->id_base, $factory_instance->name, $factory_instance->widget_options);
|
23 |
|
24 |
// Widget settings
|
25 |
$settings_key = 'widget-' . $widget_instance->id_base;
|
26 |
$widget_settings = isset($settings->$settings_key) ? (array)$settings->$settings_key : array();
|
27 |
|
28 |
// Render the widget
|
29 |
+
wp_cache_flush($widget_slug, 'widget');
|
30 |
+
the_widget($widget_slug, $widget_settings);
|
31 |
}
|
32 |
+
else if(isset($widget_slug) && FLBuilderModel::is_builder_active()) {
|
33 |
|
34 |
// Widget doesn't exist!
|
35 |
+
echo $widget_slug . __(' no longer exists.');
|
36 |
}
|
37 |
|
38 |
?>
|
modules/widget/includes/settings-general.php
CHANGED
@@ -1,20 +1,24 @@
|
|
1 |
<?php
|
|
|
|
|
2 |
|
3 |
// Get builder post data.
|
4 |
$post_data = FLBuilderModel::get_post_data();
|
5 |
|
6 |
-
// Widget
|
7 |
if(isset($settings->widget)) {
|
8 |
-
$
|
9 |
}
|
10 |
else if(isset($post_data['widget'])) {
|
11 |
-
$
|
12 |
}
|
13 |
|
14 |
-
if(isset($
|
15 |
|
16 |
// Widget instance
|
17 |
-
$
|
|
|
|
|
18 |
|
19 |
// Widget settings
|
20 |
$settings_key = 'widget-' . $widget_instance->id_base;
|
@@ -30,13 +34,13 @@ if(isset($widget_class) && class_exists($widget_class)) {
|
|
30 |
// Widget form
|
31 |
echo '<div class="fl-field" data-preview=\'{"type":"widget"}\'>';
|
32 |
$widget_instance->form($widget_settings);
|
33 |
-
echo '<input type="hidden" name="widget" value="' . $
|
34 |
echo '</div>';
|
35 |
}
|
36 |
-
else if(isset($
|
37 |
|
38 |
// Widget doesn't exist!
|
39 |
echo '<div class="fl-builder-widget-missing">';
|
40 |
-
echo $
|
41 |
echo '</div>';
|
42 |
}
|
1 |
<?php
|
2 |
+
|
3 |
+
global $wp_widget_factory;
|
4 |
|
5 |
// Get builder post data.
|
6 |
$post_data = FLBuilderModel::get_post_data();
|
7 |
|
8 |
+
// Widget slug
|
9 |
if(isset($settings->widget)) {
|
10 |
+
$widget_slug = $settings->widget;
|
11 |
}
|
12 |
else if(isset($post_data['widget'])) {
|
13 |
+
$widget_slug = $post_data['widget'];
|
14 |
}
|
15 |
|
16 |
+
if(isset($widget_slug) && isset($wp_widget_factory->widgets[$widget_slug])) {
|
17 |
|
18 |
// Widget instance
|
19 |
+
$factory_instance = $wp_widget_factory->widgets[$widget_slug];
|
20 |
+
$widget_class = get_class($factory_instance);
|
21 |
+
$widget_instance = new $widget_class($factory_instance->id_base, $factory_instance->name, $factory_instance->widget_options);
|
22 |
|
23 |
// Widget settings
|
24 |
$settings_key = 'widget-' . $widget_instance->id_base;
|
34 |
// Widget form
|
35 |
echo '<div class="fl-field" data-preview=\'{"type":"widget"}\'>';
|
36 |
$widget_instance->form($widget_settings);
|
37 |
+
echo '<input type="hidden" name="widget" value="' . $widget_slug . '" />';
|
38 |
echo '</div>';
|
39 |
}
|
40 |
+
else if(isset($widget_slug)) {
|
41 |
|
42 |
// Widget doesn't exist!
|
43 |
echo '<div class="fl-builder-widget-missing">';
|
44 |
+
echo $widget_slug . __(' no longer exists.');
|
45 |
echo '</div>';
|
46 |
}
|