晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
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/stando/public_html/wp-content/plugins/uwac/adminframework/classes/ |
Upload File : |
<?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access pages directly.
/**
*
* Shortcodes Class
*
* @since 1.0.0
* @version 1.0.0
*
*/
class CSSFramework_Shortcode extends CSSFramework_Abstract{
/**
*
* shortcode options
* @access public
* @var array
*
*/
public $options = array();
/**
*
* shortcodes options
* @access public
* @var array
*
*/
public $shortcodes = array();
/**
*
* exclude_post_types
* @access public
* @var array
*
*/
public $exclude_post_types = array();
/**
*
* instance
* @access private
* @var class
*
*/
private static $instance = null;
// run shortcode construct
public function __construct( $options ) {
$this->options = apply_filters( 'cs_shortcode_options', $options );
$this->exclude_post_types = apply_filters( 'cs_shortcode_exclude', $this->exclude_post_types );
if( ! empty( $this->options ) ) {
$this->shortcodes = $this->get_shortcodes();
$this->addAction( 'media_buttons', 'media_shortcode_button', 99 );
$this->addAction( 'admin_footer', 'shortcode_dialog', 99 );
$this->addAction( 'customize_controls_print_footer_scripts', 'shortcode_dialog', 99 );
$this->addAction( 'wp_ajax_cssf-get-shortcode', 'shortcode_generator', 99 );
$this->addAction( 'admin_enqueue_scripts', 'load_style_script' );
}
}
public function load_style_script() {
cssf_assets()->render_framework_style_scripts();
}
// instance
public static function instance( $options = array() ){
if ( is_null( self::$instance ) && CSSF_ACTIVE_SHORTCODE ) {
self::$instance = new self( $options );
}
return self::$instance;
}
// add shortcode button
public function media_shortcode_button( $editor_id ) {
global $post;
$post_type = ( isset( $post->post_type ) ) ? $post->post_type : '';
if( ! in_array( $post_type, $this->exclude_post_types ) ) {
echo '<a href="#" class="button button-primary cssf-shortcode" data-editor-id="'. $editor_id .'">'. __( 'Add Shortcode', 'cssf-framework' ) .'</a>';
}
}
// shortcode dialog
public function shortcode_dialog() {
?>
<div id="cssf-shortcode-dialog" class="cssf-dialog" title="<?php _e( 'Add Shortcode', 'cssf-framework' ); ?>">
<div class="cssf-dialog-header">
<select class="<?php echo ( is_rtl() ) ? 'chosen-rtl ' : ''; ?>cssf-dialog-select" data-placeholder="<?php echo __( 'Select a shortcode', 'cssf-framework' ); ?>">
<option value=""><?php echo __('Please select a shortcode','cssf-framework'); ?></option>
<?php
foreach ( $this->options as $group ) {
echo '<optgroup label="'. $group['title'] .'">';
foreach ( $group['shortcodes'] as $shortcode ) {
$view = ( isset( $shortcode['view'] ) ) ? $shortcode['view'] : 'normal';
echo '<option value="'. $shortcode['name'] .'" data-view="'. $view .'">'. $shortcode['title'] .'</option>';
}
echo '</optgroup>';
}
?>
</select>
</div>
<div class="cssf-dialog-load">
<div class="cssf-loading-indicator"><div class="cli cli-alert-circle"></div><?php echo __( 'Please select a shortcode from the above select field...', 'cssf-framework' ) ?></div>
</div>
<div class="cssf-loading-indicator hidden"><div class="cssf-spinner"></div><?php echo __( 'Loading...', 'cssf-framework' ) ?></div>
<div class="cssf-insert-button hidden">
<a href="#" class="button button-primary cssf-dialog-insert"><?php echo __( 'Insert Shortcode', 'cssf-framework' ); ?></a>
</div>
</div>
<?php
}
// shortcode generator function for dialog
public function shortcode_generator() {
$request = cssf_get_var( 'shortcode' );
if( empty( $request ) ) { die(); }
$shortcode = $this->shortcodes[$request];
if( isset( $shortcode['fields'] ) ) {
foreach ( $shortcode['fields'] as $key => $field ) {
if( isset( $field['id'] ) ) {
$field['attributes'] = ( isset( $field['attributes'] ) ) ? wp_parse_args( array( 'data-atts' => $field['id'] ), $field['attributes'] ) : array( 'data-atts' => $field['id'] );
}
$field_default = ( isset( $field['default'] ) ) ? $field['default'] : '';
if( in_array( $field['type'], array('image_select', 'checkbox') ) && isset( $field['options'] ) ) {
$field['attributes']['data-check'] = true;
}
echo cssf_add_element( $field, $field_default, 'shortcode' );
}
}
if( isset( $shortcode['clone_fields'] ) ) {
$clone_id = isset( $shortcode['clone_id'] ) ? $shortcode['clone_id'] : $shortcode['name'];
echo '<div class="cssf-shortcode-clone" data-clone-id="'. $clone_id .'">';
echo '<a href="#" class="cssf-remove-clone"><i class="fa fa-trash"></i></a>';
foreach ( $shortcode['clone_fields'] as $key => $field ) {
$field['sub'] = true;
$field['attributes'] = ( isset( $field['attributes'] ) ) ? wp_parse_args( array( 'data-clone-atts' => $field['id'] ), $field['attributes'] ) : array( 'data-clone-atts' => $field['id'] );
$field_default = ( isset( $field['default'] ) ) ? $field['default'] : '';
if( in_array( $field['type'], array('image_select', 'checkbox') ) && isset( $field['options'] ) ) {
$field['attributes']['data-check'] = true;
}
echo cs_add_element( $field, $field_default, 'shortcode' );
}
echo '</div>';
echo '<div class="cssf-clone-button"><a id="shortcode-clone-button" class="button" href="#"><i class="fa fa-plus-circle"></i> '. $shortcode['clone_title'] .'</a></div>';
}
die();
}
// getting shortcodes from config array
public function get_shortcodes() {
$shortcodes = array();
foreach ( $this->options as $group_value ) {
foreach ( $group_value['shortcodes'] as $shortcode ) {
$shortcodes[$shortcode['name']] = $shortcode;
}
}
return $shortcodes;
}
}