晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
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/www/oldTZh/wp-content/plugins/wordpress-seo/admin/menu/ |
Upload File : |
<?php
/**
* WPSEO plugin file.
*
* @package WPSEO\Admin\Menu
*/
/**
* Renders a replacement variable editor.
*/
class WPSEO_Replacevar_Editor {
/**
* Yoast Forms instance.
*
* @var Yoast_Form
*/
private $yform;
/**
* The arguments required for the div to render.
*
* @var array {
* @type string $title The title field id.
* @type string $description The description field id.
* @type string $page_type_recommended The page type for the context of the recommended replace vars.
* @type string $page_type_specific The page type for the context of the editor specific replace vars.
* @type bool $paper_style Optional. Whether the editor has paper style.
* @type string $label_title Optional. The label to use for the title field.
* @type string $label_description Optional. The label to use for the description field.
* @type string $description_placeholder Optional. The placeholder text to use for the description field.
* @type bool $has_new_badge Optional. Whether to show the "New" badge.
* @type bool $has_premium_badge Optional. Whether to show the "Premium" badge.
* }
*/
private $arguments;
/**
* Constructs the object.
*
* @param Yoast_Form $yform Yoast forms.
* @param array $arguments {
* The arguments that can be given.
*
* @type string $title The title field id.
* @type string $description The description field id.
* @type string $page_type_recommended The page type for the context of the recommended replace vars.
* @type string $page_type_specific The page type for the context of the editor specific replace vars.
* @type bool $paper_style Optional. Whether the editor has paper style.
* @type string $label_title Optional. The label to use for the title field.
* @type string $label_description Optional. The label to use for the description field.
* @type string $description_placeholder Optional. The placeholder text to use for the description field.
* @type bool $has_new_badge Optional. Whether to show the "New" badge.
* @type bool $has_premium_badge Optional. Whether to show the "Premium" badge.
* }
*/
public function __construct( Yoast_Form $yform, $arguments ) {
$arguments = wp_parse_args(
$arguments,
[
'paper_style' => true,
'label_title' => '',
'label_description' => '',
'description_placeholder' => '',
'has_new_badge' => false,
'is_disabled' => false,
'has_premium_badge' => false,
]
);
$this->validate_arguments( $arguments );
$this->yform = $yform;
$this->arguments = [
'title' => (string) $arguments['title'],
'description' => (string) $arguments['description'],
'page_type_recommended' => (string) $arguments['page_type_recommended'],
'page_type_specific' => (string) $arguments['page_type_specific'],
'paper_style' => (bool) $arguments['paper_style'],
'label_title' => (string) $arguments['label_title'],
'label_description' => (string) $arguments['label_description'],
'description_placeholder' => (string) $arguments['description_placeholder'],
'has_new_badge' => (bool) $arguments['has_new_badge'],
'is_disabled' => (bool) $arguments['is_disabled'],
'has_premium_badge' => (bool) $arguments['has_premium_badge'],
];
}
/**
* Renders a div for the react application to mount to, and hidden inputs where
* the app should store it's value so they will be properly saved when the form
* is submitted.
*
* @return void
*/
public function render() {
$this->yform->hidden( $this->arguments['title'], $this->arguments['title'] );
$this->yform->hidden( $this->arguments['description'], $this->arguments['description'] );
printf(
'<div
data-react-replacevar-editor
data-react-replacevar-title-field-id="%1$s"
data-react-replacevar-metadesc-field-id="%2$s"
data-react-replacevar-page-type-recommended="%3$s"
data-react-replacevar-page-type-specific="%4$s"
data-react-replacevar-paper-style="%5$s"
data-react-replacevar-label-title="%6$s"
data-react-replacevar-label-description="%7$s"
data-react-replacevar-description-placeholder="%8$s"
data-react-replacevar-has-new-badge="%9$s"
data-react-replacevar-is-disabled="%10$s"
data-react-replacevar-has-premium-badge="%11$s"
></div>',
esc_attr( $this->arguments['title'] ),
esc_attr( $this->arguments['description'] ),
esc_attr( $this->arguments['page_type_recommended'] ),
esc_attr( $this->arguments['page_type_specific'] ),
esc_attr( $this->arguments['paper_style'] ),
esc_attr( $this->arguments['label_title'] ),
esc_attr( $this->arguments['label_description'] ),
esc_attr( $this->arguments['description_placeholder'] ),
esc_attr( $this->arguments['has_new_badge'] ),
esc_attr( $this->arguments['is_disabled'] ),
esc_attr( $this->arguments['has_premium_badge'] )
);
}
/**
* Validates the replacement variable editor arguments.
*
* @param array $arguments The arguments to validate.
*
* @return void
*
* @throws InvalidArgumentException Thrown when not all required arguments are present.
*/
protected function validate_arguments( array $arguments ) {
$required_arguments = [
'title',
'description',
'page_type_recommended',
'page_type_specific',
'paper_style',
];
foreach ( $required_arguments as $field_name ) {
if ( ! array_key_exists( $field_name, $arguments ) ) {
throw new InvalidArgumentException(
sprintf(
/* translators: %1$s expands to the missing field name. */
__( 'Not all required fields are given. Missing field %1$s', 'wordpress-seo' ),
$field_name
)
);
}
}
}
}