Sindbad~EG File Manager
<?php
use FluentForm\App\Helpers\Helper;
use FluentForm\App\Modules\Component\Component;
/**
* Declare common actions/filters/shortcodes
*/
/**
* App instance
*
* @var $app \FluentForm\Framework\Foundation\Application
*/
add_action('save_post', function ($post_id) use ($app) {
$post_content = $app->request->get('post_content');
if ($post_content) {
$post_content = wp_kses_post(wp_unslash($post_content));
} else {
$post = get_post($post_id);
$post_content = $post->post_content;
}
$shortcodeIds = Helper::getShortCodeIds(
$post_content,
'fluentform',
'id'
);
$shortcodeModalIds = Helper::getShortCodeIds(
$post_content,
'fluentform_modal',
'form_id'
);
if ($shortcodeModalIds) {
$shortcodeIds = array_merge($shortcodeIds, $shortcodeModalIds);
}
if ($shortcodeIds) {
update_post_meta($post_id, '_has_fluentform', $shortcodeIds);
} elseif (get_post_meta($post_id, '_has_fluentform', true)) {
update_post_meta($post_id, '_has_fluentform', []);
}
});
$component = new Component($app);
$component->addRendererActions();
$component->addFluentFormShortCode();
$component->addFluentFormDefaultValueParser();
$component->addFluentformSubmissionInsertedFilter();
$component->addIsRenderableFilter();
$component->registerInputSanitizers();
add_action('wp', function () use ($app) {
// @todo: We will remove the fluentform_pages check from April 2021
$fluentFormPages = $app->request->get('fluent_forms_pages') || $app->request->get('fluentform_pages');
if ($fluentFormPages) {
add_action('wp_enqueue_scripts', function () use ($app) {
wp_enqueue_script('jquery');
wp_enqueue_script(
'fluent_forms_global',
$app->publicUrl('js/fluent_forms_global.js'),
['jquery'],
FLUENTFORM_VERSION,
true
);
wp_localize_script('fluent_forms_global', 'fluent_forms_global_var', [
'fluent_forms_admin_nonce' => wp_create_nonce('fluent_forms_admin_nonce'),
'ajaxurl' => admin_url('admin-ajax.php'),
]);
wp_enqueue_style('fluent-form-styles');
$form = wpFluent()->table('fluentform_forms')->find(intval($app->request->get('preview_id')));
if (apply_filters('fluentform_load_default_public', true, $form)) {
wp_enqueue_style('fluentform-public-default');
}
wp_enqueue_script('fluent-form-submission');
wp_enqueue_style('fluent-form-preview', $app->publicUrl('css/preview.css'));
});
(new \FluentForm\App\Modules\ProcessExteriorModule())->handleExteriorPages();
}
}, 1);
$elements = [
'select',
'input_checkbox',
'input_radio',
'address',
'select_country',
'gdpr_agreement',
'terms_and_condition',
'multi_payment_component',
];
foreach ($elements as $element) {
$event = 'fluentform_response_render_' . $element;
$app->addFilter($event, function ($response, $field, $form_id, $isLabel = false) {
$element = $field['element'];
if ('address' == $element && !empty($response->country)) {
$countryList = getFluentFormCountryList();
if (isset($countryList[$response->country])) {
$response->country = $countryList[$response->country];
}
}
if ('select_country' == $element) {
$countryList = getFluentFormCountryList();
if (isset($countryList[$response])) {
$response = $countryList[$response];
}
}
if (in_array($field['element'], array('gdpr_agreement', 'terms_and_condition'))) {
if (!empty($response) && $response == 'on') {
$response = __('Accepted', 'fluentform');
} else {
$response = __('Declined', 'fluentform');
}
}
if ($response && $isLabel && in_array($element, ['select', 'input_radio']) && !is_array($response)) {
if (!isset($field['options'])) {
$field['options'] = [];
foreach (\FluentForm\Framework\Helpers\ArrayHelper::get($field, 'raw.settings.advanced_options', []) as $option) {
$field['options'][$option['value']] = $option['label'];
}
}
if (isset($field['options'][$response])) {
return $field['options'][$response];
}
}
if (in_array($element, ['select', 'input_checkbox', 'multi_payment_component']) && is_array($response)) {
return \FluentForm\App\Modules\Form\FormDataParser::formatCheckBoxValues($response, $field, $isLabel);
}
return \FluentForm\App\Modules\Form\FormDataParser::formatValue($response);
}, 10, 4);
}
$app->addFilter('fluentform_response_render_textarea', function ($value, $field, $formId, $isHtml) {
$value = $value ? nl2br($value) : $value;
if (!$isHtml || !$value) {
return $value;
}
return '<span style="white-space: pre-line">' . $value . '</span>';
}, 10, 4);
$app->addFilter('fluentform_response_render_input_file', function ($response, $field, $form_id, $isHtml = false) {
return \FluentForm\App\Modules\Form\FormDataParser::formatFileValues($response, $isHtml, $form_id);
}, 10, 4);
$app->addFilter('fluentform_response_render_input_image', function ($response, $field, $form_id, $isHtml = false) {
return \FluentForm\App\Modules\Form\FormDataParser::formatImageValues($response, $isHtml, $form_id);
}, 10, 4);
$app->addFilter('fluentform_response_render_input_repeat', function ($response, $field, $form_id) {
return \FluentForm\App\Modules\Form\FormDataParser::formatRepeatFieldValue($response, $field, $form_id);
}, 10, 3);
$app->addFilter('fluentform_response_render_tabular_grid', function ($response, $field, $form_id, $isHtml = false) {
return \FluentForm\App\Modules\Form\FormDataParser::formatTabularGridFieldValue($response, $field, $form_id, $isHtml);
}, 10, 4);
$app->addFilter('fluentform_response_render_input_name', function ($response) {
return \FluentForm\App\Modules\Form\FormDataParser::formatName($response);
}, 10, 1);
$app->addFilter('fluentform_response_render_input_password', function ($value, $field, $formId) {
if (Helper::shouldHidePassword($formId)) {
$value = str_repeat('*', 6) . ' ' . __('(truncated)', 'fluentform');
}
return $value;
}, 10, 3);
$app->addFilter('fluentform_filter_insert_data', function ($data) {
$settings = get_option('_fluentform_global_form_settings', false);
if (is_array($settings) && isset($settings['misc'])) {
if (isset($settings['misc']['isIpLogingDisabled'])) {
if ($settings['misc']['isIpLogingDisabled']) {
unset($data['ip']);
}
}
}
return $data;
});
// Register api response log hooks
$app->addAction(
'fluentform_after_submission_api_response_success',
'fluentform_after_submission_api_response_success',
10,
6
);
$app->addAction(
'fluentform_after_submission_api_response_failed',
'fluentform_after_submission_api_response_failed',
10,
6
);
function fluentform_after_submission_api_response_success($form, $entryId, $data, $feed, $res, $msg = '')
{
try {
$isDev = 'production' != wpFluentForm()->getEnv();
if (!apply_filters('fluentform_api_success_log', $isDev, $form, $feed)) {
return;
}
wpFluent()->table('fluentform_submission_meta')->insert([
'response_id' => $entryId,
'form_id' => $form->id,
'meta_key' => 'api_log',
'value' => $msg,
'name' => $feed->formattedValue['name'],
'status' => 'success',
'created_at' => current_time('mysql'),
'updated_at' => current_time('mysql'),
]);
} catch (Exception $e) {
error_log($e->getMessage());
}
}
function fluentform_after_submission_api_response_failed($form, $entryId, $data, $feed, $res, $msg = '')
{
try {
$isDev = 'production' != wpFluentForm()->getEnv();
if (!apply_filters('fluentform_api_failed_log', $isDev, $form, $feed)) {
return;
}
wpFluent()->table('fluentform_submission_meta')->insert([
'response_id' => $entryId,
'form_id' => $form->id,
'meta_key' => 'api_log',
'value' => json_encode($res),
'name' => $feed->formattedValue['name'],
'status' => 'failed',
'created_at' => current_time('mysql'),
'updated_at' => current_time('mysql'),
]);
} catch (Exception $e) {
error_log($e->getMessage());
}
}
$app->bindInstance(
'fluentFormAsyncRequest',
new \FluentForm\App\Services\WPAsync\FluentFormAsyncRequest($app),
'FluentFormAsyncRequest',
'FluentForm\App\Services\WPAsync\FluentFormAsyncRequest'
);
$app->addFilter('fluentform-disabled_analytics', function ($status) {
$settings = get_option('_fluentform_global_form_settings');
if (isset($settings['misc']['isAnalyticsDisabled']) && $settings['misc']['isAnalyticsDisabled']) {
return true;
}
return $status;
});
$app->addAction('fluentform_before_form_render', function ($form) {
do_action('fluentform_load_form_assets', $form->id);
});
$app->addAction('fluentform_load_form_assets', function ($formId) {
// check if alreaded loaded
if (!in_array($formId, \FluentForm\App\Helpers\Helper::$loadedForms)) {
(new \FluentForm\App\Modules\Form\Settings\FormCssJs())->addCssJs($formId);
\FluentForm\App\Helpers\Helper::$loadedForms[] = $formId;
$selectedStyle = \FluentForm\App\Helpers\Helper::getFormMeta($formId, '_ff_selected_style');
if ($selectedStyle) {
do_action('fluentform_init_custom_stylesheet', $selectedStyle, $formId);
}
}
});
$app->addAction('fluentform_submission_inserted', function ($insertId, $formData, $form) use ($app) {
$notificationManager = new \FluentForm\App\Services\Integrations\GlobalNotificationManager($app);
$notificationManager->globalNotify($insertId, $formData, $form);
}, 10, 3);
$app->addAction('init', function () use ($app) {
new \FluentForm\App\Services\Integrations\MailChimp\MailChimpIntegration($app);
});
$app->addAction('fluentform_form_element_start', function ($form) use ($app) {
$honeyPot = new \FluentForm\App\Modules\Form\HoneyPot($app);
$honeyPot->renderHoneyPot($form);
});
$app->addAction('fluentform_before_insert_submission', function ($insertData, $requestData, $form) use ($app) {
$honeyPot = new \FluentForm\App\Modules\Form\HoneyPot($app);
$honeyPot->verify($insertData, $requestData, $form->id);
}, 9, 3);
add_action('ff_log_data', function ($data) use ($app) {
$dataLogger = new \FluentForm\App\Modules\Logger\DataLogger($app);
$dataLogger->log($data);
});
// permision based filters
add_filter('fluentform_permission_callback', function ($status, $permission) {
return (new \FluentForm\App\Modules\Acl\RoleManager())->currentUserFormFormCapability();
}, 10, 2);
// widgets
add_action('widgets_init', function () {
register_widget('FluentForm\App\Modules\Widgets\SidebarWidgets');
});
add_action('wp', function () {
global $post;
if (!is_a($post, 'WP_Post')) {
return;
}
$fluentFormIds = get_post_meta($post->ID, '_has_fluentform', true);
if ($fluentFormIds && is_array($fluentFormIds)) {
foreach ($fluentFormIds as $formId) {
do_action('fluentform_load_form_assets', $formId);
}
}
});
add_filter('fluentform_validate_input_item_input_email', ['\FluentForm\App\Helpers\Helper', 'isUniqueValidation'], 10, 5);
add_filter('fluentform_validate_input_item_input_text', ['\FluentForm\App\Helpers\Helper', 'isUniqueValidation'], 10, 5);
add_filter('cron_schedules', function ($schedules) {
$schedules['ff_every_five_minutes'] = [
'interval' => 300,
'display' => esc_html__('Every 5 minutes (FluentForm)', 'fluentform'),
];
return $schedules;
}, 10, 1);
add_action('fluentform_do_scheduled_tasks', 'fluentFormHandleScheduledTasks');
add_action('fluentform_do_email_report_scheduled_tasks', 'fluentFormHandleScheduledEmailReport');
add_action('ff_integration_action_result', function ($feed, $status, $note = '') {
if (!isset($feed['scheduled_action_id']) || !$status) {
return;
}
if (!$note) {
$note = $status;
}
if (strlen($note) > 255) {
if (function_exists('mb_substr')) {
$note = mb_substr($note, 0, 251) . '...';
} else {
$note = substr($note, 0, 251) . '...';
}
}
$actionId = intval($feed['scheduled_action_id']);
wpFluent()->table('ff_scheduled_actions')
->where('id', $actionId)
->update([
'status' => $status,
'note' => $note,
]);
}, 10, 3);
add_action('fluentform_global_notify_completed', function ($insertId, $form) use ($app) {
if (strpos($form->form_fields, '"element":"input_password"') && apply_filters('fluentform_truncate_password_values', true, $form->id)) {
// we have password
(new \FluentForm\App\Services\Integrations\GlobalNotificationManager($app))->cleanUpPassword($insertId, $form);
}
}, 10, 2);
/*
* Elementor Block Init
*/
if (defined('ELEMENTOR_VERSION')) {
new \FluentForm\App\Modules\Widgets\ElementorWidget($app);
}
/*
* Oxygen Widget Init
*/
add_action('init', function () {
if (class_exists('OxyEl')) {
if (file_exists(FLUENTFORM_DIR_PATH . 'app/Modules/Widgets/OxygenWidget.php')) {
new FluentForm\App\Modules\Widgets\OxygenWidget();
}
}
});
(new FluentForm\App\Services\Integrations\Slack\SlackNotificationActions($app))->register();
/*
* Smartcode parser shortcodes
*/
add_filter('ff_will_return_html', function ($result, $integration, $key) {
$dictionary = [
'notifications' => ['message'],
];
if (!isset($dictionary[$integration])) {
return $result;
}
if (in_array($key, $dictionary[$integration])) {
return true;
}
return $result;
}, 10, 3);
$app->addFilter('fluentform_response_render_input_number', function ($response, $field, $form_id, $isHtml = false) {
if (!$response || !$isHtml) {
return $response;
}
$fieldSettings = \FluentForm\Framework\Helpers\ArrayHelper::get($field, 'raw.settings');
$formatter = \FluentForm\Framework\Helpers\ArrayHelper::get($fieldSettings, 'numeric_formatter');
if (!$formatter) {
return $response;
}
return \FluentForm\App\Helpers\Helper::getNumericFormatted($response, $formatter);
}, 10, 4);
new \FluentForm\App\Services\FormBuilder\Components\CustomSubmitButton();
if (function_exists('register_block_type')) {
register_block_type('fluentfom/guten-block', [
'render_callback' => function ($atts) {
if (empty($atts['formId'])) {
return '';
}
$className = \FluentForm\Framework\Helpers\ArrayHelper::get($atts, 'className');
if ($className) {
$classes = explode(' ', $className);
$className = '';
if (!empty($classes)) {
foreach ($classes as $class) {
$className .= sanitize_html_class($class) . ' ';
}
}
}
$type = \FluentForm\App\Helpers\Helper::isConversionForm($atts['formId']) ? 'conversational' : '';
return do_shortcode('[fluentform css_classes="' . $className . ' ff_guten_block" id="' . $atts['formId'] . '" type="' . $type . '"]');
},
'attributes' => [
'formId' => [
'type' => 'string',
],
'className' => [
'type' => 'string',
],
],
]);
}
// require the CLI
if (defined('WP_CLI') && WP_CLI) {
\WP_CLI::add_command('fluentform', '\FluentForm\App\Modules\CLI\Commands');
}
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists