晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
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/woocommerce/ |
Upload File : |
<?php
/**
* The template for displaying product content in the single-product.php template
*
* This template can be overridden by copying it to yourtheme/woocommerce/content-single-product.php.
*
* HOWEVER, on occasion WooCommerce will need to update template files and you
* (the theme developer) will need to copy the new files to your theme to
* maintain compatibility. We try to do this as little as possible, but it does
* happen. When this occurs the version of the template file will be bumped and
* the readme will list any important changes.
*
* @see https://docs.woocommerce.com/document/template-structure/
* @package WooCommerce/Templates
* @version 3.6.0
*/
defined( 'ABSPATH' ) || exit;
global $product;
// post navigation, prev/next post
$post_navigation = array(
'hide-header' => false,
'hide-sticky' => false,
);
$post_navigation_options = mfn_opts_get( 'prev-next-nav' );
if( isset( $post_navigation_options['hide-header'] ) ){
$post_navigation['hide-header'] = true;
}
if( isset( $post_navigation_options['hide-sticky'] ) ){
$post_navigation['hide-sticky'] = true;
}
$post_prev = get_adjacent_post( false, '', true );
$post_next = get_adjacent_post( false, '', false );
$shop_page_id = wc_get_page_id( 'shop' );
// post classes
$classes = [];
// style
if( isset($_GET['mfn-demo-product']) ){
$style = $_GET['mfn-demo-product']; // demo single product style
}else if( !empty($_GET['visual']) ) {
$style = 'default';
} else {
$style = mfn_opts_get( 'shop-product-style' );
}
$classes[] = 'style-'. $style;
// column
$column = [
'left' => 'one-second',
'right' => 'one-second',
];
if( 'default' == $style ){
$column['left'] = 'three-fifth';
$column['right'] = 'two-fifth';
}
// share
if( 'hide-mobile' == mfn_opts_get( 'share' ) ){
$classes[] = 'no-share-mobile';
} elseif( ! mfn_opts_get( 'share' ) ) {
$classes[] = 'no-share';
}
if( mfn_opts_get( 'share-style' ) ){
$classes[] = 'share-'. mfn_opts_get( 'share-style' );
}
// Quantity
$product_quantity = $product->get_stock_quantity();
if( 1 === $product_quantity ){
$classes[] = 'quantity-one';
}
// translate
$translate['all'] = mfn_opts_get( 'translate' ) ? mfn_opts_get( 'translate-all', 'Show all' ) : __( 'Show all', 'betheme' );
/**
* Hook: woocommerce_before_single_product.
*
* @hooked wc_print_notices - 10
*/
do_action( 'woocommerce_before_single_product' );
if ( post_password_required() ) {
echo get_the_password_form(); // WPCS: XSS ok.
return;
}
?>
<div id="product-<?php the_ID(); ?>" <?php wc_product_class( $classes, $product ); ?> >
<?php
// sticky navigation prev/next
if( ! $post_navigation['hide-sticky'] ){
echo mfn_post_navigation_sticky( $post_prev, 'prev', 'icon-left-open-big' );
echo mfn_post_navigation_sticky( $post_next, 'next', 'icon-right-open-big' );
}
// header navigation
if( ! $post_navigation['hide-header'] ){
echo mfn_post_navigation_header( $post_prev, $post_next, $shop_page_id, $translate );
}
?>
<div class="product_wrapper clearfix">
<div class="product_image_wrapper column <?php esc_attr_e( $column['left'] ); ?>">
<div class="mcb-column-inner clearfix">
<?php
/**
* woocommerce_before_single_product_summary hook.
*
* @hooked woocommerce_show_product_sale_flash - 10
* @hooked woocommerce_show_product_images - 20
*/
do_action( 'woocommerce_before_single_product_summary' );
?>
</div>
</div>
<div class="entry-summary column <?php esc_attr_e( $column['right'] ); ?>">
<div class="mcb-column-inner">
<?php
if( 'default' == $style ){
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10);
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 20);
add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 10);
add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 20);
}
/**
* woocommerce_single_product_summary hook.
*
* @hooked woocommerce_template_single_title - 5
* @hooked woocommerce_template_single_rating - 10
* @hooked woocommerce_template_single_price - 10 / style-default: 20
* @hooked woocommerce_template_single_excerpt - 20 / style-default: 10
* @hooked woocommerce_template_single_add_to_cart - 30
* @hooked woocommerce_template_single_meta - 40
* @hooked woocommerce_template_single_sharing - 50
* @hooked WC_Structured_Data::generate_product_data() - 60
*/
do_action( 'woocommerce_single_product_summary' );
// share
echo mfn_share( 'footer' );
// product content in right column
if( in_array( $style, array( 'default', 'wide', 'wide tabs' ) ) ) {
remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_product_data_tabs', 10);
}
// remove upsell and related from this action we will display them later
remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_upsell_display', 15 );
remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20);
/**
* woocommerce_after_single_product_summary hook.
*
* @hooked woocommerce_output_product_data_tabs - 10
* @hooked woocommerce_upsell_display - 15
* @hooked woocommerce_output_related_products - 20
*/
do_action( 'woocommerce_after_single_product_summary' );
?>
</div>
</div>
<?php echo mfn_share( 'header' ); ?>
</div>
<?php
// product content full width below image
if( in_array( $style, array( 'default', 'wide', 'wide tabs' ) ) ) {
woocommerce_output_product_data_tabs();
}
?>
<?php
// upsell and related products removed from woocommerce_after_single_product_summary
woocommerce_upsell_display();
if( mfn_opts_get( 'shop-related' ) ){
woocommerce_output_related_products();
}
?>
</div>
<?php do_action( 'woocommerce_after_single_product' ); ?>