/** 
  * Saves the enabled icons.
  *
  * @since 1.0
  * @access private
  * @return void
  */
 private static function save_enabled_icons()
 {
     if (isset($_POST['fl-icons-nonce']) && wp_verify_nonce($_POST['fl-icons-nonce'], 'icons')) {
         // Make sure we have at least one enabled icon set.
         if (!isset($_POST['fl-enabled-icons']) && empty($_POST['fl-new-icon-set'])) {
             self::add_error(__("Error! You must have at least one icon set enabled.", 'fl-builder'));
             return;
         }
         $filesystem = FLBuilderUtils::get_filesystem();
         $enabled_icons = array();
         // Sanitize the enabled icons.
         if (isset($_POST['fl-enabled-icons']) && is_array($_POST['fl-enabled-icons'])) {
             $enabled_icons = array_map('sanitize_text_field', $_POST['fl-enabled-icons']);
         }
         // Update the enabled sets.
         self::update_enabled_icons($enabled_icons);
         // Delete a set?
         if (!empty($_POST['fl-delete-icon-set'])) {
             $sets = FLBuilderIcons::get_sets();
             $key = sanitize_text_field($_POST['fl-delete-icon-set']);
             $index = array_search($key, $enabled_icons);
             if (false !== $index) {
                 unset($enabled_icons[$index]);
             }
             if (isset($sets[$key])) {
                 $filesystem->rmdir($sets[$key]['path'], true);
                 FLBuilderIcons::remove_set($key);
             }
         }
         // Upload a new set?
         if (!empty($_POST['fl-new-icon-set'])) {
             $dir = FLBuilderModel::get_cache_dir('icons');
             $id = (int) $_POST['fl-new-icon-set'];
             $path = get_attached_file($id);
             $new_path = $dir['path'] . 'icon-' . time() . '/';
             $unzipped = unzip_file($path, $new_path);
             // Unzip failed.
             if (!$unzipped) {
                 self::add_error(__("Error! Could not unzip file.", 'fl-builder'));
                 return;
             }
             // Move files if unzipped into a subfolder.
             $files = $filesystem->dirlist($new_path);
             if (1 == count($files)) {
                 $values = array_values($files);
                 $subfolder_info = array_shift($values);
                 $subfolder = $new_path . $subfolder_info['name'] . '/';
                 if (file_exists($subfolder) && is_dir($subfolder)) {
                     $files = $filesystem->dirlist($subfolder);
                     if ($files) {
                         foreach ($files as $file) {
                             $filesystem->move($subfolder . $file['name'], $new_path . $file['name']);
                         }
                     }
                     $filesystem->rmdir($subfolder);
                 }
             }
             // Check for supported sets.
             $is_icomoon = file_exists($new_path . 'selection.json');
             $is_fontello = file_exists($new_path . 'config.json');
             // Show an error if we don't have a supported icon set.
             if (!$is_icomoon && !$is_fontello) {
                 $filesystem->rmdir($new_path, true);
                 self::add_error(__("Error! Please upload an icon set from either Icomoon or Fontello.", 'fl-builder'));
                 return;
             }
             // Enable the new set.
             if (is_array($enabled_icons)) {
                 $key = FLBuilderIcons::get_key_from_path($new_path);
                 $enabled_icons[] = $key;
             }
         }
         // Update the enabled sets again in case they have changed.
         self::update_enabled_icons($enabled_icons);
     }
 }
 /**
  * Deletes almost all database data and asset cache for the builder.
  * We don't delete _fl_builder_enabled, _fl_builder_data and _fl_builder_draft
  * so layouts can be recovered should the plugin be installed again.
  *
  * @since 1.0
  * @return void
  */
 public static function uninstall_database()
 {
     if (current_user_can('delete_plugins')) {
         // Delete builder options.
         delete_option('_fl_builder_settings');
         delete_option('_fl_builder_enabled_modules');
         delete_option('_fl_builder_enabled_templates');
         delete_option('_fl_builder_user_templates_admin');
         delete_option('_fl_builder_templates_override');
         delete_option('_fl_builder_templates_override_rows');
         delete_option('_fl_builder_templates_override_modules');
         delete_option('_fl_builder_post_types');
         delete_option('_fl_builder_enabled_icons');
         delete_option('_fl_builder_branding');
         delete_option('_fl_builder_branding_icon');
         delete_option('_fl_builder_theme_branding');
         delete_option('_fl_builder_editing_capability');
         delete_option('_fl_builder_global_templates_editing_capability');
         delete_option('_fl_builder_help_button');
         delete_option('_fl_builder_color_presets');
         // Delete builder user meta.
         delete_metadata('user', 0, '_fl_builder_launched', 1, true);
         // Delete uploaded files and folders.
         $upload_dir = self::get_upload_dir();
         $filesystem = FLBuilderUtils::get_filesystem();
         $filesystem->rmdir($upload_dir['path'], true);
         // Deactivate and delete the plugin.
         deactivate_plugins(array(self::plugin_basename()), false, is_network_admin());
         delete_plugins(array(self::plugin_basename()));
         // Redirect to the plugins page.
         wp_redirect(admin_url('plugins.php?deleted=true&plugin_status=all&paged=1&s='));
         exit;
     }
 }
 /** 
  * Update to version 1.4.6 or later.
  *
  * @since 1.4.6
  * @access private
  * @return void
  */
 private static function v_1_4_6()
 {
     // Remove the old fl-builder uploads folder.
     $filesystem = FLBuilderUtils::get_filesystem();
     $upload_dir = wp_upload_dir();
     $path = trailingslashit($upload_dir['basedir']) . 'fl-builder';
     if (file_exists($path)) {
         $filesystem->rmdir($path, true);
     }
 }
Example #4
0
>
	<div class="fl-form-field-preview-text">
	<?php 
if (isset($field['preview_text']) && is_object($value)) {
    $form = FLBuilderModel::get_settings_form($field['form']);
    $form_fields = FLBuilderModel::get_settings_form_fields($form['tabs']);
    if (isset($form_fields[$field['preview_text']])) {
        $preview_field = $form_fields[$field['preview_text']];
        if ('icon' == $preview_field['type']) {
            echo '<i class="' . $value->{$field}['preview_text'] . '"></i>';
        } else {
            if ('select' == $preview_field['type']) {
                echo $preview_field['options'][$value->{$field}['preview_text']];
            } else {
                if (!empty($value->{$field['preview_text']})) {
                    echo FLBuilderUtils::snippetwop(strip_tags(str_replace('&#39;', "'", $value->{$field['preview_text']})), 35);
                }
            }
        }
    }
}
?>
	</div>
	<a class="fl-form-field-edit" href="javascript:void(0);" onclick="return false;" data-type="<?php 
echo $field['form'];
?>
"><?php 
printf(_x('Edit %s', '%s stands for form field label.', 'fl-builder'), $field['label']);
?>
</a>
	<input name="<?php