晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
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/www/wp-content/plugins/uwac/adminframework/classes/posttype/ |
Upload File : |
<?php
namespace PostTypes;
/**
* Taxonomy
*
* Used to help create taxonomies
*
* @link http://github.com/jjgrainger/PostTypes/
* @author jjgrainger
* @link http://jjgrainger.co.uk
* @version 1.1.1
* @license http://www.opensource.org/licenses/mit-license.html MIT License
*/
class Taxonomy
{
/**
* The name of the taxonomy
* @var string
*/
public $name;
/**
* The singular label
* @var string
*/
public $singular;
/**
* The plural label
* @var string
*/
public $plural;
/**
* The slug
* @var string
*/
public $slug;
/**
* The options for the taxonomy
* @var array
*/
public $options;
/**
* The textdomain for translation
* @var string
*/
public $textdomain = 'cpt';
/**
* Create the taxonomy object
* @param mixed $names an array/string of taxonomy names
* @param array $options an array of taxonomy options
*/
public function __construct($names, $options)
{
// set names for taxonomy
$this->setNames($names);
// set the options for the taxonomy
$this->setOptions($options);
}
/**
* Set the required names for the taxonomy
* @param mixed $names an array/string of taxonomy names
*/
public function setNames($names)
{
if (!is_array($names)) {
$names = ['name' => $names];
}
$required = [
// 'name',
'singular',
'plural',
'slug',
];
foreach ($required as $key) {
// if the name has not been passed, generate it
if (!isset($names[$key])) {
// if it is the singular/plural make the post type name human friendly
if ($key === 'singular' || $key === 'plural') {
$name = ucwords(strtolower(str_replace('-', ' ', str_replace('_', ' ', $names['name']))));
// if plural add an s
if ($key === 'plural') {
$name .= 's';
}
// if the slug, slugify the post type name
} elseif ($key === 'slug') {
$name = strtolower(str_replace([' ', '_'], '-', $names['name']));
}
// otherwise use the name passed
} else {
$name = $names[$key];
}
// set the name
$this->$key = $name;
}
}
/**
* Set the options for the taxonomy
* @param array $options an array of options for the taxonomy
*/
public function setOptions($options)
{
// default labels
$labels = [
'name' => sprintf(__('%s', $this->textdomain), $this->plural),
'singular_name' => sprintf(__('%s', $this->textdomain), $this->singular),
'menu_name' => sprintf(__('%s', $this->textdomain), $this->plural),
'all_items' => sprintf(__('All %s', $this->textdomain), $this->plural),
'edit_item' => sprintf(__('Edit %s', $this->textdomain), $this->singular),
'view_item' => sprintf(__('View %s', $this->textdomain), $this->singular),
'update_item' => sprintf(__('Update %s', $this->textdomain), $this->singular),
'add_new_item' => sprintf(__('Add New %s', $this->textdomain), $this->singular),
'new_item_name' => sprintf(__('New %s Name', $this->textdomain), $this->singular),
'parent_item' => sprintf(__('Parent %s', $this->textdomain), $this->plural),
'parent_item_colon' => sprintf(__('Parent %s:', $this->textdomain), $this->plural),
'search_items' => sprintf(__('Search %s', $this->textdomain), $this->plural),
'popular_items' => sprintf(__('Popular %s', $this->textdomain), $this->plural),
'separate_items_with_commas' => sprintf(__('Seperate %s with commas', $this->textdomain), $this->plural),
'add_or_remove_items' => sprintf(__('Add or remove %s', $this->textdomain), $this->plural),
'choose_from_most_used' => sprintf(__('Choose from most used %s', $this->textdomain), $this->plural),
'not_found' => sprintf(__('No %s found', $this->textdomain), $this->plural),
];
// default options
$defaults = [
'labels' => $labels,
'hierarchical' => true,
'rewrite' => [
'slug' => $this->slug,
],
];
// merge default options with user submitted options
$this->options = array_replace_recursive($defaults, $options);
}
/**
* Set the textdomain for translation
* @param string $textdomain the textdomain
*/
public function textdomain($textdomain)
{
$this->textdomain = $textdomain;
}
}