晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
Server : Apache System : Linux srv.rainic.com 4.18.0-553.47.1.el8_10.x86_64 #1 SMP Wed Apr 2 05:45:37 EDT 2025 x86_64 User : rainic ( 1014) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/rainic/public_html/oldTZh/wp-content/plugins/digits/admin/editor/ |
Upload File : |
<?php
if (!defined('ABSPATH')) {
exit;
}
DigitsThemeEditor::instance();
class DigitsThemeEditor
{
protected static $_instance = null;
public $loaded = false;
public function __construct()
{
add_action('wp_ajax_digits_editor_data_save', [$this, 'ajax_save_data']);
if (!empty($_REQUEST['page']) && $_REQUEST['page'] == 'digits_settings') {
if (!empty($_REQUEST['button-editor'])) {
add_action('wp_loaded', [$this, 'init']);
}
}
if (!empty($_REQUEST['digits-editor'])) {
add_action('wp_before_load_template', [$this, 'front_end']);
}
}
public function ajax_save_data()
{
if (!current_user_can('manage_options')) {
return;
}
if (!wp_verify_nonce($_REQUEST['_wpnonce'], 'digits_editor')) {
wp_send_json_error(['message' => __('Please try again', 'digits')]);
}
if (empty($_REQUEST['editor_data'])) {
wp_send_json_error(['message' => __('No data found!', 'digits')]);
}
update_option('digits_editor_data', $_REQUEST['editor_data'], true);
wp_send_json_success(['message' => __('Saved', 'digits')]);
}
/**
* Constructor.
*/
public static function instance()
{
if (is_null(self::$_instance)) {
self::$_instance = new self();
}
return self::$_instance;
}
public function init()
{
if (!is_admin()) {
return;
}
if (!current_user_can('manage_options')) {
return;
}
$src_url = site_url();
if (!empty($_REQUEST['url'])) {
if ($this->is_site_url($_REQUEST['url'])) {
$src_url = $_REQUEST['url'];
} else {
wp_die(__('Invalid URL!', 'digits'));
}
}
$editor_data = stripslashes(get_option('digits_editor_data', '{}'));
digits_admin_add_scripts();
digits_add_style();
$this->enqueue_script();
$separator = is_rtl() ? ' › ' : ' ‹ ';
$src_url = add_query_arg(
['digits-editor' => true,
'digits-editor-mode' => urlencode(wp_create_nonce('digits-editor-mode'))],
$src_url);
?>
<!DOCTYPE html>
<html <?php language_attributes(); ?>>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name='robots' content='noindex,nofollow,noarchive'/>
<meta name='referrer' content='strict-origin-when-cross-origin'/>
<title><?php echo __("Digits Editor", "digits") . $separator . get_bloginfo('name', 'display'); ?></title>
<?php
wp_print_styles('digits-login-style');
wp_print_styles('digits-theme-editor');
?>
</head>
<body>
<?php
do_action('editor_footer');
if (wp_style_is('digits-admin-wizard', 'enqueued')) {
wp_print_styles('digits-admin-wizard');
}
?>
<div class="digits-theme-editor" id="digits-theme-editor">
<div class="digits-theme-editor-external_code digits-theme-editor_bg">
<div id="digits-editor-ec_tabs" class="digits-editor-ec_tabs">
<div data-type="css"
class="digits-editor-ec_tab digits-editor-css_tab selected"><?php echo esc_attr__("CSS", "digits"); ?></div>
<div data-type="js"
class="digits-editor-ec_tab digits-editor-js_tab"><?php echo esc_attr__("JS", "digits"); ?></div>
</div>
<div id="digits-editor-code" class="digits-editor-code_wrapper">
<textarea id="editor_css" name="css" class="digits-editor-code css selected"></textarea>
<textarea id="editor_js" name="js" class="digits-editor-code js" style="display: none;"></textarea>
</div>
</div>
<div class="digits-theme-editor-preview-wrapper">
<div class="digits-theme-editor_resize digits_editor_transition">
<div class="digits-theme-editor_resize-ic"></div>
</div>
<iframe
onload="digits_editor_iframe_loaded()"
referrerpolicy="same-origin"
allowpaymentrequest="false"
sandbox="allow-same-origin allow-scripts"
id="digits-editor-preview" src="<?php echo esc_attr($src_url); ?>"></iframe>
<div class="digits-theme-editor_resize digits_editor_transition">
<div class="digits-theme-editor_resize-ic"></div>
</div>
</div>
<div class="digits-theme-editor_resizing-tooltip">
<div class="digits-theme-editor_resizing-tooltip-contents">
<?php echo esc_attr__("width", "digits"); ?>: <span></span>
</div>
</div>
<div id="digits-editor-selector_list" class="digits-editor-elem-select_bar">
</div>
<div id="digits-editor-selector_controls" class="digits-editor-selector_controls">
<div id="digits-editor-trigger_list" class="digits-editor_control digits-editor_control_list"
style="display: none">
<div id="digits-editor_native_forms" class="digits-editor_forms_list digits-editor_native_forms">
<div class="digits-editor_control_head">
<?php echo esc_attr__("Select the Type of Form", "digits"); ?>
</div>
<?php
$builder_active = is_plugin_active('digbuilder/digbuilder.php');
$page_list = [];
$modal_list = [];
if ($builder_active) {
$page_list = $this->get_builder_list('page');
$modal_list = $this->get_builder_list('modal');
if (empty($page_list) && empty($modal_list)) {
$builder_active = false;
}
}
$forms = array(
'login_register_popup' => __('Login / Signup Popup', 'digits'),
'login_popup' => __('Login Popup', 'digits'),
'register_popup' => __('Signup Popup', 'digits'),
'login_register_page' => __('Login / Signup Page', 'digits'),
'login_page' => __('Login Page', 'digits'),
'register_page' => __('Signup Page', 'digits'),
);
if ($builder_active) {
$forms['builder'] = 'Builder';
}
$this->render_selector($forms);
?>
</div>
<?php
if ($builder_active) {
?>
<div id="digits-editor_builder_forms"
class="digits-editor_forms_list digits-editor_native_forms">
<div class="digits-editor_control_head digits-editor_back_form_list">
<span class="digits-editor_arrow_ic"></span>
<?php echo esc_attr__("Go back", "digits"); ?>
</div>
<?php
if (!empty($modal_list)) {
$forms = array(
__('Popup Builder') => 'heading',
);
$forms = array_merge($forms, $modal_list);
$this->render_selector($forms);
}
if (!empty($page_list)) {
$forms = array(
__('Page Builder') => 'heading',
);
$forms = array_merge($forms, $page_list);
$this->render_selector($forms);
}
?>
</div>
<?php
}
?>
<div id="digits-remove_trigger" class="digits-editor_control_remove">
<div class="digits-editor_control_remove_ic"></div>
<div class="digits-editor_control_remove_text">
<?php echo esc_attr__("Remove", "digits"); ?>
</div>
</div>
</div>
<div id="digits-editor-show_trigger_list" class="digits-editor_control">
<div class="digits-editor_control_ic digits-editor_trigger_ic"></div>
<div class="digits-editor_control_text">
<?php echo esc_attr__("Trigger Digits Form", "digits"); ?>
</div>
</div>
<div id="digits-editor_hide_elem" class="digits-editor_control">
<div class="digits-editor_control_ic digits-editor_hide_ic"></div>
<div class="digits-editor_control_text">
<?php echo esc_attr__("Hide This", "digits"); ?>
</div>
</div>
</div>
<div class="digits-theme-editor_bar digits-theme-editor_bg">
<div id="digits-editor_cursor" class="digits-editor_tool digits_editor_transition">
<div class="digits_editor_cursor_selected">
<div id="digits_editor_selected_ic" class="digits-editor-selector_ic digits_editor_ic"></div>
<div class="digits_editor_cursor-expand"></div>
</div>
<div class="digits_editor_cursor_type_list digits_editor_transition">
<div class="digits_editor_cursor_type_item">
<div data-type="selector" class="digits-editor-selector_ic digits_editor_ic"></div>
<div class="digits_editor_cursor_type_text">
<?php echo esc_attr__("Selector", "digits"); ?>
</div>
</div>
<div class="digits_editor_cursor_type_item-sep">
<div></div>
</div>
<div class="digits_editor_cursor_type_item">
<div data-type="cursor" class="digits_editor_cursor_type_ic digits_editor_ic"></div>
<div class="digits_editor_cursor_type_text">
<?php echo esc_attr__("Cursor", "digits"); ?>
</div>
</div>
</div>
</div>
<div class="digits-editor_tool digits-responsive">
<div class="digits_editor_responsive_ic digits_editor_ic"></div>
</div>
<div class="digits-editor_tool digits-code_editor">
<div class="digits_editor_code_ic digits_editor_ic"></div>
</div>
<div class="digits_flex_1"></div>
<div class="digits_editor_footer_action">
<form action="<?php echo esc_attr(admin_url('admin-ajax.php')); ?>" method="post">
<div id="digits-editor_save" class="digits-editor_tool">
<div class="digits_editor_save_ic digits_editor_ic"></div>
<div class="digits_editor_tool_text">
<?php echo esc_attr__('Save', 'digits'); ?>
</div>
</div>
<input type="hidden" name="editor_data" id="editor_data"
value="<?php echo esc_attr($editor_data); ?>"/>
<input type="hidden" name="action"
value="digits_editor_data_save"/>
<?php
wp_nonce_field('digits_editor');
?>
</form>
<?php
$settings_url = admin_url('admin.php?page=digits_settings');
?>
<div id="digits-editor_close" class="digits-editor_tool"
data-link="<?php echo esc_attr($settings_url); ?>">
<div class="digits_editor_close_editor_ic digits_editor_ic"></div>
<div class="digits_editor_tool_text">
<?php echo esc_attr__('Close Editor', 'digits'); ?>
</div>
</div>
</div>
</div>
</div>
<?php
digits_loader();
wp_print_scripts('digits-login-script');
wp_print_scripts('digits-theme-editor');
if (wp_script_is('digits-admin-wizard', 'enqueued')) {
wp_print_scripts('digits-admin-wizard');
}
?>
<style>
.dig_load_overlay {
display: block;
}
</style>
<script>
function digits_editor_iframe_loaded() {
document.querySelector('.dig_load_overlay').style.display = 'none';
}
</script>
</body>
</html>
<?php
die();
}
public function get_builder_list($type)
{
$pages = digits_pages_list($type);
$list = array();
foreach ($pages as $page_key => $page) {
if ($page['value'] == -1) {
continue;
}
$list[$page_key] = $page['label'];
}
return $list;
}
public function enqueue_script()
{
wp_enqueue_style('digits-theme-editor', get_digits_asset_uri('/admin/assets/css/editor.min.css'), array(), digits_version(), 'all');
wp_enqueue_script('digits-theme-editor', get_digits_asset_uri('/admin/assets/js/editor.min.js'), array('jquery'), digits_version());
}
public function front_end()
{
$verify = wp_verify_nonce($_REQUEST['digits-editor-mode'], 'digits-editor-mode');
if (!$verify) {
return;
}
if (!current_user_can('manage_options')) {
return;
}
global $current_user;
$current_user = null;
add_filter('determine_current_user', [$this, 'temp_no_user'], 9999);
add_action('wp_enqueue_scripts', [$this, 'enqueue_frontend_script']);
}
public function temp_no_user($user)
{
return 0;
}
public function enqueue_frontend_script()
{
wp_enqueue_style('digits-theme-frontend-editor', get_digits_asset_uri('/admin/assets/css/frontend-editor.min.css'), array(), digits_version(), 'all');
wp_enqueue_script('digits-theme-frontend-editor', get_digits_asset_uri('/admin/assets/js/frontend-editor.min.js'), array('jquery'), digits_version());
}
public function is_site_url($url)
{
$site_url = parse_url(site_url());
$url = parse_url($url);
return $site_url['host'] === $url['host'];
}
private function render_selector($forms)
{
?>
<div class="digits-editor_control_list_content">
<div class="digits-editor_control_body">
<?php
foreach ($forms as $form_key => $form_label) {
if ($form_label == 'heading') {
?>
<div class="digits-editor_control_title"><?php echo esc_attr($form_key); ?></div>
<?php
} else {
$expandable = $form_key == 'builder';
$value = $form_key;
$id = uniqid();
?>
<div class="digits-editor_form_selector" data-value="<?php echo esc_attr($form_key); ?>">
<label class="digits-editor_form_label" for="<?php echo esc_attr($id); ?>">
<span class="digits-editor_radio">
<span></span>
</span>
<input type="radio" class="digits_form_trigger"
id="<?php echo esc_attr($id); ?>"
<?php
if ($expandable) echo 'disabled';
?>
value="<?php echo esc_attr($value); ?>"
name="digits_form_trigger"/>
<?php echo $form_label; ?>
<?php
if ($expandable) {
echo '<div class="digits-editor_arrow_ic"></div>';
}
?>
</label>
</div>
<div class="digits-editor_form_sep"></div>
<?php
}
}
?>
</div>
</div>
<?php
}
}