Upload folder via GUI - inc

This commit is contained in:
Git Manager GUI
2026-04-13 18:52:46 +02:00
parent 9c47501712
commit 09ac38e9fa
31 changed files with 2058 additions and 0 deletions

View File

@@ -0,0 +1,44 @@
<?php
if (!defined('ABSPATH')) exit;
class WMF_Builder {
private static $instance=null;
public static function instance() {
if(is_null(self::$instance)){self::$instance=new self();self::$instance->hook();}
return self::$instance;
}
public function hook() {
add_action('wp_ajax_wmf_get_field_settings',array($this,'ajax_field_settings'));
add_action('wp_ajax_wmf_preview_form', array($this,'ajax_preview'));
}
public function ajax_field_settings() {
check_ajax_referer('wmf_admin','nonce');
if(!current_user_can('manage_options')) wp_die();
$type=sanitize_text_field($_POST['field_type']??'');
$field=json_decode(stripslashes($_POST['field_data']??'{}'),true);
$obj=wmf_get_field($type);
if(!$obj) wp_send_json_error('Unbekannter Feldtyp: '.$type);
ob_start(); $obj->settings_panel($field); $html=ob_get_clean();
wp_send_json_success(array('html'=>$html));
}
public function ajax_preview() {
check_ajax_referer('wmf_admin','nonce');
if(!current_user_can('manage_options')) wp_die();
$form_id=intval($_POST['form_id']??0);
$fields=json_decode(stripslashes($_POST['fields']??'[]'),true);
$meta=wmf_get_form_meta($form_id);
$meta['fields']=$fields;
ob_start();
echo '<div class="wmf-preview-wrap">';
foreach($fields as $field) {
$obj=wmf_get_field($field['type']??'');
if(!$obj) continue;
echo '<div class="wmf-field-wrap">';
$obj->render($field,'');
echo '</div>';
}
echo '<div class="wmf-submit-wrap"><button type="button" class="wmf-submit-button" disabled>'.esc_html($meta['submit_label']?:'Absenden').'</button></div>';
echo '</div>';
$html=ob_get_clean();
wp_send_json_success(array('html'=>$html));
}
}