晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
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/pretty-link/app/controllers/ |
Upload File : |
<?php
/**
* Review admin notice.
*/
class PrliReviewNoticeController {
public function load_hooks() {
add_action( 'admin_notices', array( $this, 'review_notice' ) );
add_action( 'wp_ajax_pl_dismiss_review_prompt', array( $this, 'dismiss_review_prompt' ) );
}
public function dismiss_review_prompt() {
if ( empty( $_POST['nonce'] ) || ! wp_verify_nonce( $_POST['nonce'], 'pl_dismiss_review_prompt' ) ) {
die('Failed');
}
if ( ! empty( $_POST['type'] ) ) {
if ( 'remove' === $_POST['type'] ) {
update_option( 'pl_review_prompt_removed', true );
wp_send_json_success( array(
'status' => 'removed'
) );
} else if ( 'delay' === $_POST['type'] ) {
set_transient( 'pl_review_prompt_delay', true, WEEK_IN_SECONDS );
wp_send_json_success( array(
'status' => 'delayed'
) );
}
}
}
public function review_notice() {
// Only show to admins
if ( ! current_user_can( 'manage_options' ) ) {
return;
}
// Notice has been removed or delayed
if ( get_option( 'pl_review_prompt_removed' ) || get_transient( 'pl_review_prompt_delay' ) ) {
return;
}
// Don't bother if haven't been using long enough
global $wpdb;
$click_count = $wpdb->get_var( "SELECT COUNT(*) FROM {$wpdb->prefix}prli_clicks" );
if ( empty( $click_count ) ) {
return;
}
?>
<div class="notice notice-info is-dismissible prli-review-notice" id="prli_review_notice">
<div id="prli_review_intro">
<p><?php _e( 'Are you enjoying using Pretty Links?', 'pretty-link' ); ?></p>
<p><a data-review-selection="yes" class="prli-review-selection" href="#">Yes, I love it</a> 🙂 | <a data-review-selection="no" class="prli-review-selection" href="#">Not really...</a></p>
</div>
<div id="prli_review_yes" style="display: none;">
<p><?php _e( 'That\'s awesome! Could you please do me a BIG favor and give it a 5-star rating on WordPress to help us spread the word and boost our motivation?', 'pretty-link' ); ?></p>
<p style="font-weight: bold;">~ Blair Williams<br>Founder & CEO of Pretty Links</p>
<p>
<a style="display: inline-block; margin-right: 10px;" href="https://wordpress.org/support/plugin/pretty-link/reviews/?filter=5#new-post" onclick="delayReviewPrompt('remove')" target="_blank"><?php esc_html_e( 'Okay, you deserve it', 'pretty-link' ); ?></a>
<a style="display: inline-block; margin-right: 10px;" href="#" onclick="delayReviewPrompt('delay')"><?php esc_html_e( 'Nope, maybe later', 'pretty-link' ); ?></a>
<a href="#" onclick="delayReviewPrompt('remove')"><?php esc_html_e( 'I already did', 'pretty-link' ); ?></a>
</p>
</div>
<div id="prli_review_no" style="display: none;">
<p><?php _e( 'We\'re sorry to hear you aren\'t enjoying Pretty Links. We would love a chance to improve. Could you take a minute and let us know what we can do better?', 'pretty-link' ); ?></p>
<p>
<a style="display: inline-block; margin-right: 10px;" href="https://prettylinks.com/feedback/?utm_source=plugin_admin&utm_medium=link&utm_campaign=in_plugin&utm_content=request_review" onclick="delayReviewPrompt('remove')" target="_blank"><?php esc_html_e( 'Give Feedback', 'pretty-link' ); ?></a>
<a href="#" onclick="delayReviewPrompt('delay')"><?php esc_html_e( 'No thanks', 'pretty-link' ); ?></a>
</p>
</div>
</div>
<script>
function delayReviewPrompt(type, triggerClick = true) {
if ( triggerClick ) {
jQuery('#prli_review_notice').fadeOut();
}
jQuery.ajax({
url: ajaxurl,
type: 'POST',
data: {
action: 'pl_dismiss_review_prompt',
nonce: "<?php echo wp_create_nonce( 'pl_dismiss_review_prompt' ) ?>",
type: type
},
})
.done(function(data) {
});
}
jQuery(document).ready(function($) {
$('.prli-review-selection').click(function(event) {
event.preventDefault();
var $this = $(this);
var selection = $this.data('review-selection');
$('#prli_review_intro').hide();
$('#prli_review_' + selection).show();
});
$('body').on('click', '#prli_review_notice .notice-dismiss', function(event) {
delayReviewPrompt('delay', false);
});
});
</script>
<?php
}
}