晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
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/setupTZh/betheme/visual-builder/classes/helpers/ |
Upload File : |
<?php
if( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
/*error_reporting(E_ALL);
ini_set("display_errors", 1);*/
class MfnLocalCssCompability {
private $id = false;
private $mfn_items = false;
private $s = 0;
private $w = 0;
private $i = 0;
private $nw = 0;
private $detect_old_builder = false;
public $devices = array('laptop', 'tablet', 'mobile');
public $builder_storage = false;
public function render($id) {
$this->id = $id;
$this->mfn_items = get_post_meta($this->id, 'mfn-page-items', true);
$this->detect_old_builder = false;
$this->builder_storage = mfn_opts_get('builder-storage');
if ( !is_array( $this->mfn_items ) ) $this->mfn_items = unserialize(call_user_func('base'.'64_decode', $this->mfn_items));
if( !empty( $this->mfn_items ) && is_array( $this->mfn_items ) ) $this->sections();
}
public function sections() {
$mfn_fields = new Mfn_Builder_Fields();
$sections_fields = $mfn_fields->get_section();
$this->detect_old_builder = false;
foreach( $this->mfn_items as $s=>$section ) {
$this->s = $s;
if( !empty($section['attr']) && is_iterable($section['attr']) ) {
foreach ($sections_fields as $sf) {
if( !empty($sf['old_id']) && !empty( $this->mfn_items[$s]['attr'][$sf['old_id']] ) ) {
$this->mfn_items[$s]['attr'][$sf['id']] = array(
'val' => $this->mfn_items[$s]['attr'][$sf['old_id']],
'css_path' => $sf['css_path'],
'css_style' => $sf['css_style']
);
unset($this->mfn_items[$s]['attr'][$sf['old_id']]);
$this->detect_old_builder = true;
}
if( isset($sf['old_id']) && !empty($sf['responsive']) ) {
foreach( $this->devices as $device ) {
$sa_device = $sf['old_id'].'_'.$device;
if( isset( $this->mfn_items[$s]['attr'][$sa_device] ) ) {
$sf_device = $sf['id'].'_'.$device;
if( !empty( $this->mfn_items[$s]['attr'][$sa_device] ) ) {
$this->mfn_items[$s]['attr'][$sf_device] = array(
'val' => $this->mfn_items[$s]['attr'][$sa_device],
'css_path' => $sf['css_path'],
'css_style' => $sf['css_style'].'_'.$device
);
}
unset($this->mfn_items[$s]['attr'][$sa_device]);
$this->detect_old_builder = true;
}
}
}
}
}
if( !empty($section['wraps']) && is_iterable($section['wraps']) ){
foreach( $section['wraps'] as $w=>$wrap ) {
$this->w = $w;
$this->wraps($wrap);
}
}
}
if( $this->detect_old_builder ){
$this->update();
}
}
public function wraps( $wrap ) {
$mfn_fields = new Mfn_Builder_Fields();
$wraps_fields = $mfn_fields->get_wrap();
if( !empty($wrap['attr']) && is_iterable($wrap['attr']) ) {
foreach ($wraps_fields as $wf) {
if( !empty($wf['old_id']) && !empty( $this->mfn_items[$this->s]['wraps'][$this->w]['attr'][$wf['old_id']] ) ) {
$this->mfn_items[$this->s]['wraps'][$this->w]['attr'][$wf['id']] = array(
'val' => $this->mfn_items[$this->s]['wraps'][$this->w]['attr'][$wf['old_id']],
'css_path' => $wf['css_path'],
'css_style' => $wf['css_style']
);
unset($this->mfn_items[$this->s]['wraps'][$this->w]['attr'][$wf['old_id']]);
$this->detect_old_builder = true;
}
if( isset($wf['old_id']) && !empty($wf['responsive']) ) {
foreach( $this->devices as $device ) {
$wa_device = $wf['old_id'].'_'.$device;
if( isset( $this->mfn_items[$this->s]['wraps'][$this->w]['attr'][$wa_device] ) ) {
$wf_device = $wf['id'].'_'.$device;
if( !empty( $this->mfn_items[$this->s]['wraps'][$this->w]['attr'][$wa_device] ) ) {
$this->mfn_items[$this->s]['wraps'][$this->w]['attr'][$wf_device] = array(
'val' => $this->mfn_items[$this->s]['wraps'][$this->w]['attr'][$wa_device],
'css_path' => $wf['css_path'],
'css_style' => $wf['css_style'].'_'.$device
);
}
unset($this->mfn_items[$this->s]['wraps'][$this->w]['attr'][$wa_device]);
$this->detect_old_builder = true;
}
}
}
}
}
if( !empty($wrap['items']) && is_iterable($wrap['items']) ){
foreach( $wrap['items'] as $i=>$item ) {
if( !empty($item['item_is_wrap']) ) {
$this->nw = $i;
$this->nested_wrap($item);
}else{
$this->i = $i;
$this->item($item);
}
}
}
}
public function nested_wrap($wrap) {
$mfn_fields = new Mfn_Builder_Fields();
$wraps_fields = $mfn_fields->get_wrap();
if( !empty($wrap['attr']) && is_iterable($wrap['attr']) ) {
foreach ($wraps_fields as $wf) {
if( !empty($wf['old_id']) && !empty( $this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->nw]['attr'][$wf['old_id']] ) ) {
$this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->nw]['attr'][$wf['id']] = array(
'val' => $this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->nw]['attr'][$wf['old_id']],
'css_path' => $wf['css_path'],
'css_style' => $wf['css_style']
);
unset($this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->nw]['attr'][$wf['old_id']]);
$this->detect_old_builder = true;
}
if( isset($wf['old_id']) && !empty($wf['responsive']) ) {
foreach( $this->devices as $device ) {
$wa_device = $wf['old_id'].'_'.$device;
if( isset( $this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->nw]['attr'][$wa_device] ) ) {
$wf_device = $wf['id'].'_'.$device;
if( !empty( $this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->nw]['attr'][$wa_device] ) ) {
$this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->nw]['attr'][$wf_device] = array(
'val' => $this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->nw]['attr'][$wa_device],
'css_path' => $wf['css_path'],
'css_style' => $wf['css_style'].'_'.$device
);
}
unset($this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->nw]['attr'][$wa_device]);
$this->detect_old_builder = true;
}
}
}
}
}
if( !empty($wrap['items']) && is_iterable($wrap['items']) ){
foreach( $wrap['items'] as $i=>$item ) {
$this->i = $i;
$this->nested_item($item);
}
}
}
public function nested_item($item) {
$mfn_fields = new Mfn_Builder_Fields();
$items_fields = $mfn_fields->get_items();
$items_advanced = $mfn_fields->get_advanced(true);
if( !empty($item['type']) && !empty($items_fields[$item['type']]['attr']) && is_iterable($items_fields[$item['type']]['attr']) ) {
foreach ($items_fields[$item['type']]['attr'] as $it) {
if( isset($it['old_id']) && !empty( $this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->nw]['items'][$this->i]['attr'][$it['old_id']] ) ) {
if( !empty($it['old_id']) && !empty( $this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->nw]['items'][$this->i]['attr'][$it['old_id']] ) ) {
$this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->nw]['items'][$this->i]['attr'][$it['id']] = array(
'val' => $this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->nw]['items'][$this->i]['attr'][$it['old_id']],
'css_path' => $it['css_path'],
'css_style' => $it['css_style']
);
}
unset($this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->nw]['items'][$this->i]['attr'][$it['old_id']]);
$this->detect_old_builder = true;
}
if( isset($it['old_id']) && !empty($it['responsive']) ) {
foreach( $this->devices as $device ) {
$ia_device = $it['old_id'].'_'.$device;
if( isset( $this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->nw]['items'][$this->i]['attr'][$ia_device] ) ) {
$if_device = $it['id'].'_'.$device;
if( !empty( $this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->nw]['items'][$this->i]['attr'][$ia_device] ) ) {
$this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->nw]['items'][$this->i]['attr'][$if_device] = array(
'val' => $this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->nw]['items'][$this->i]['attr'][$ia_device],
'css_path' => $it['css_path'],
'css_style' => $it['css_style'].'_'.$device
);
}
unset($this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->nw]['items'][$this->i]['attr'][$ia_device]);
$this->detect_old_builder = true;
}
}
}
}
/* Advanced */
foreach ($items_advanced as $it) {
if( isset($it['old_id']) && !empty( $this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->nw]['items'][$this->i]['attr'][$it['old_id']] ) ) {
if( !empty($it['old_id']) && !empty( $this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->nw]['items'][$this->i]['attr'][$it['old_id']] ) ) {
$this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->nw]['items'][$this->i]['attr'][$it['id']] = array(
'val' => $this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->nw]['items'][$this->i]['attr'][$it['old_id']],
'css_path' => $it['css_path'],
'css_style' => $it['css_style']
);
}
unset($this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->nw]['items'][$this->i]['attr'][$it['old_id']]);
$this->detect_old_builder = true;
}
if( isset($it['old_id']) && !empty($it['responsive']) ) {
foreach( $this->devices as $device ) {
$ia_device = $it['old_id'].'_'.$device;
if( isset( $this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->nw]['items'][$this->i]['attr'][$ia_device] ) ) {
$if_device = $it['id'].'_'.$device;
if( !empty( $this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->nw]['items'][$this->i]['attr'][$ia_device] ) ) {
$this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->nw]['items'][$this->i]['attr'][$if_device] = array(
'val' => $this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->nw]['items'][$this->i]['attr'][$ia_device],
'css_path' => $it['css_path'],
'css_style' => $it['css_style'].'_'.$device
);
}
unset($this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->nw]['items'][$this->i]['attr'][$ia_device]);
$this->detect_old_builder = true;
}
}
}
}
}
}
public function item($item) {
$mfn_fields = new Mfn_Builder_Fields();
$items_fields = $mfn_fields->get_items();
$items_advanced = $mfn_fields->get_advanced(true);
if( !empty($item['type']) && !empty($items_fields[$item['type']]['attr']) && is_iterable($items_fields[$item['type']]['attr']) ) {
foreach ($items_fields[$item['type']]['attr'] as $it) {
if( isset($it['old_id']) && !empty( $this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->i]['attr'][$it['old_id']] ) ) {
if( !empty($it['old_id']) && !empty( $this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->i]['attr'][$it['old_id']] ) ) {
$this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->i]['attr'][$it['id']] = array(
'val' => $this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->i]['attr'][$it['old_id']],
'css_path' => $it['css_path'],
'css_style' => $it['css_style']
);
}
unset($this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->i]['attr'][$it['old_id']]);
$this->detect_old_builder = true;
}
if( isset($it['old_id']) && !empty($it['responsive']) ) {
foreach( $this->devices as $device ) {
$ia_device = $it['old_id'].'_'.$device;
if( isset( $this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->i]['attr'][$ia_device] ) ) {
$if_device = $it['id'].'_'.$device;
if( !empty( $this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->i]['attr'][$ia_device] ) ) {
$this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->i]['attr'][$if_device] = array(
'val' => $this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->i]['attr'][$ia_device],
'css_path' => $it['css_path'],
'css_style' => $it['css_style'].'_'.$device
);
}
unset($this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->i]['attr'][$ia_device]);
$this->detect_old_builder = true;
}
}
}
}
/* Advanced */
foreach ($items_advanced as $it) {
if( isset($it['old_id']) && !empty( $this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->i]['attr'][$it['old_id']] ) ) {
if( !empty($it['old_id']) && !empty( $this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->i]['attr'][$it['old_id']] ) ) {
$this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->i]['attr'][$it['id']] = array(
'val' => $this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->i]['attr'][$it['old_id']],
'css_path' => $it['css_path'],
'css_style' => $it['css_style']
);
}
unset($this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->i]['attr'][$it['old_id']]);
$this->detect_old_builder = true;
}
if( isset($it['old_id']) && !empty($it['responsive']) ) {
foreach( $this->devices as $device ) {
$ia_device = $it['old_id'].'_'.$device;
if( isset( $this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->i]['attr'][$ia_device] ) ) {
$if_device = $it['id'].'_'.$device;
if( !empty( $this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->i]['attr'][$ia_device] ) ) {
$this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->i]['attr'][$if_device] = array(
'val' => $this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->i]['attr'][$ia_device],
'css_path' => $it['css_path'],
'css_style' => $it['css_style'].'_'.$device
);
}
unset($this->mfn_items[$this->s]['wraps'][$this->w]['items'][$this->i]['attr'][$ia_device]);
$this->detect_old_builder = true;
}
}
}
}
}
}
public function update() {
if ( 'encode' == $this->builder_storage ) {
$new = call_user_func('base'.'64_encode', serialize($this->mfn_items));
}else{
$new = $this->mfn_items;
}
update_post_meta($this->id, 'mfn-page-items', $new);
}
}