当前位置: 首页>>代码示例>>PHP>>正文


PHP ym_get函数代码示例

本文整理汇总了PHP中ym_get函数的典型用法代码示例。如果您正苦于以下问题:PHP ym_get函数的具体用法?PHP ym_get怎么用?PHP ym_get使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了ym_get函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: get_button_code

 function get_button_code($pack, $user_id)
 {
     get_currentuserinfo();
     global $current_user;
     if ($current_user->ID == 0) {
         $current_user = ym_get_user_by_username(ym_get('username'));
     }
     $currency_codes = array('AUD' => '036', 'CAD' => '124', 'JPY' => '392', 'GBP' => '826', 'USD' => '840', 'EUR' => '978');
     if (array_key_exists(ym_get_currency($pack['id']), $currency_codes)) {
         $code = $currency_codes[ym_get_currency($pack['id'])];
     } else {
         return;
     }
     $data = array('clientAccnum' => $this->clientAccnum, 'clientSubacc' => $this->clientSubacc, 'formName' => $this->formname, 'customer_fname' => get_user_meta($current_user->ID, 'first_name', TRUE), 'customer_lname' => get_user_meta($current_user->ID, 'last_name', TRUE), 'email' => $current_user->user_email);
     if (isset($pack['id']) && $pack['id']) {
         // convert to days
         switch ($pack['duration_type']) {
             case 'y':
                 $duration = $pack['duration'] * 365;
                 break;
             case 'm':
                 $duration = $pack['duration'] * 30;
                 break;
             default:
                 $duration = $pack['duration'];
         }
         $data = array_merge($data, array('formPrice' => $pack['cost'], 'formPeriod' => $duration, 'currencyCode' => $code));
         if ($pack['trial_on']) {
             $data['formPrice'] = $pack['trial_cost'];
             // convert to days
             switch ($pack['trial_duration_type']) {
                 case 'y':
                     $duration = $pack['trial_duration'] * 365;
                     break;
                 case 'm':
                     $duration = $pack['trial_duration'] * 30;
                     break;
                 default:
                     $duration = $pack['trial_duration'];
             }
             $data['formPeriod'] = $duration;
         }
         if (isset($pack['num_cycles']) && $pack['num_cycles'] != 1) {
             // recur
             //				unset($data['formPrice'], $data['formPeriod']);
             $data['formRecurringPrice'] = $pack['cost'];
             $data['formRecurringPeriod'] = $duration;
             $data['formRebills'] = $pack['num_cycles'] == 0 ? 99 : $pack['num_cycles'];
             // gen formdigest
             $data['formDigest'] = md5($data['formPrice'] . $data['formPeriod'] . $data['formRecurringPrice'] . $data['formRecurringPeriod'] . $data['formRebills'] . $code . $this->md5salt);
         } else {
             // gen formdigest
             $data['formDigest'] = md5($data['formPrice'] . $data['formPeriod'] . $code . $this->md5salt);
         }
         $data['custom'] = 'buy_subscription_' . $pack['id'] . '_' . $user_id;
     }
     return $data;
 }
开发者ID:AdultStack,项目名称:ap-members,代码行数:58,代码来源:ym_ccbill.php

示例2: ym_logs_search_users

function ym_logs_search_users()
{
    ym_ajax_superuser_check();
    $users = get_users('search=*' . like_escape(ym_get('q')) . '*');
    foreach ($users as $user) {
        echo $user->user_login . "\n";
    }
    die;
}
开发者ID:AdultStack,项目名称:ap-members,代码行数:9,代码来源:ym-admin_ajax_functions.include.php

示例3: init

 function init()
 {
     global $ym_sys, $ym_crons_that_exist;
     if ($ym_sys->enable_manual_cron) {
         foreach ($ym_crons_that_exist as $cron_job) {
             if ($cron_job['core'] != 2 && wp_get_schedule($cron_job['task'])) {
                 // clear
                 wp_clear_scheduled_hook($cron_job['task']);
             }
         }
     } else {
         foreach ($ym_crons_that_exist as $cron_job) {
             if ($cron_job['core'] != 2 && !wp_get_schedule($cron_job['task'])) {
                 // needs to be scheduled
                 $now = time();
                 $next = mktime($cron_job['time'][0], $cron_job['time'][1], 0, date('n', $now), date('j', $now), date('Y', $now));
                 // next, schedule, action_name
                 wp_schedule_event($next, $cron_job['schedule'], $cron_job['task']);
             }
         }
     }
     // check for manual call
     if (ym_get('ym_cron_do', FALSE)) {
         // has call
         $task = ym_get('ym_cron_job', FALSE);
         if ($task) {
             $tasks = array($task => 1);
         } else {
             $tasks = $ym_crons_that_exist;
         }
         foreach ($tasks as $task => $data) {
             echo 'do ' . $task . "\n";
             do_action($task, -1);
         }
         echo "\n";
         echo 1;
         die;
     }
 }
开发者ID:AdultStack,项目名称:ap-members,代码行数:39,代码来源:ym-cron.include.php

示例4: ym_depricated_replace_tag

function ym_depricated_replace_tag($function, $matches, $argument = false)
{
    get_currentuserinfo();
    global $current_user, $user_data, $ym_user;
    $return = '';
    switch ($function) {
        //Checks User Account usage: [user_account_is#Member]
        // TODO: 11.0.8 deprecate in favour of ym_user_is
        case 'user_account_is':
            _doing_it_wrong(__FUNCTION__, 'Use ym_user_is shortcode', '11.0.6');
            $argument = str_replace('+', ' ', $argument);
            $user_id = false;
            if (ym_get('token') && ym_use_rss_token()) {
                $user = ym_get_user_by_token(ym_get('token'));
                $user_id = $user->ID;
            }
            if (strtolower(ym_get_user_account_type($user_id)) == strtolower($argument) || current_user_can('edit_posts')) {
                $return = $matches;
            }
            break;
    }
    return do_shortcode(stripslashes($return));
}
开发者ID:AdultStack,项目名称:ap-members,代码行数:23,代码来源:ym_deprecated.php

示例5: ym_app_loaded

function ym_app_loaded()
{
    ym_firesale_maintain_tiers();
    if (is_admin()) {
        ym_app_check_version();
        // download interrupt
        if (ym_get('app_download', FALSE)) {
            global $ym_app_version_resp;
            $ym_app_version_resp->checkForUpdates();
            $state = get_option($ym_app_version_resp->optionName);
            $download_url = $state->update->download_url;
            header('Location: ' . $download_url);
            exit;
        }
        add_filter('ym_navigation', 'ym_app_menu');
        add_action('ym_additional_context_help', 'ym_app_context_help');
        add_action('admin_head', 'ym_app_styles');
    }
    add_action('login_head', 'ym_firesale_subs');
    add_filter('ym_additional_code', 'ym_firesale_ppp', 10, 3);
    // ppp packs has widget toooo, so can't hook to additional
    add_action('wp_head', 'ym_firesale_ppp_packs');
    add_shortcode('app_counter', 'ym_fire_shortcode_parse');
}
开发者ID:AdultStack,项目名称:ap-members,代码行数:24,代码来源:ym_app.php

示例6: __

                $wpdb->query($sql);
                if ($wpdb->insert_id) {
                    echo '<p>' . __('Email Associated', 'ym_mailmanager') . '</p>';
                } else {
                    echo '<p>' . __('Email Failed to be Associated', 'ym_mailmanager') . '</p>';
                }
                ym_box_bottom();
                ym_box_top(__('Email Series', 'ym_mailmanager'));
            }
        } else {
            if ($del_id = ym_get('deleteid')) {
                $sql = 'DELETE FROM ' . $wpdb->prefix . 'mm_email_in_series WHERE id = ' . $del_id;
                $wpdb->query($sql);
            }
        }
        if ($series = ym_get('series')) {
            echo '<form action="" method="post">
			<input type="hidden" name="series" value="' . $series . '" />
			<table class="form-table">';
            $emails = mailmanager_get_emails(TRUE);
            if ($emails) {
                echo $ym_formgen->render_combo_from_array_row(__('Select Prior Email', 'ym_mailmanager'), 'email_id', $emails, '', __('Select a previously created email', 'ym_mailmanager'));
            }
            $days = array();
            for ($x = 0; $x <= 365; $x++) {
                $days[$x] = $x . ' Days';
            }
            echo $ym_formgen->render_combo_from_array_row(__('Select Delay', 'ym_mailmanager'), 'delay', $days, '', __('Select number of days between emails', 'ym_mailmanager'));
            echo '
			</table>
			<p style="text-align: right;">
开发者ID:AdultStack,项目名称:ap-members,代码行数:31,代码来源:series.php

示例7: __

        echo '</div>';
        return;
    default:
        if (ym_get('message')) {
            echo '<div id="message" class="updated fade"><p>';
        }
        if (ym_get('message') == 'ok') {
            echo __('Packages were updated', 'ym');
        }
        if (ym_get('message') == 'order') {
            echo __('Package order was updated', 'ym');
        }
        if (ym_get('message') == 'deleted') {
            echo __('The Pack was deleted', 'ym');
        }
        if (ym_get('message')) {
            echo '</p></div>';
        }
        ym_box_top('&nbsp');
        echo '<form action="' . $link . 'order" method="post" onsubmit="ym_process_sort();">';
        echo '<table class="form-table" id="sorttable">';
        $header = '<tr>
				<th style="width: 20px;">' . __('ID', 'ym') . '</th>
				<th>' . __('Label', 'ym') . '</th>
				<th>' . __('Cost', 'ym') . '</th>
				<th>' . __('Package Type', 'ym') . '</th>
				<th>' . __('WP Role', 'ym') . '</th>
				<th style="width: 40px;">' . __('Visible', 'ym') . '</th>
				<th style="width: 40px;">' . __('Group', 'ym') . '</th>
				<th style="width: 100px; text-align: center;">' . __('User Count', 'ym') . '</th>
				<th style="width: 20px;"></th><th style="width: 20px;"></th>
开发者ID:AdultStack,项目名称:ap-members,代码行数:31,代码来源:ym-membership-packages.php

示例8: foreach

    foreach ($available_modules as $entry => $modules_dir) {
        $class = rtrim($entry, '.php');
        require_once $modules_dir . '/' . $entry;
        $obj = new $class();
        $status = in_array($class, (array) $ym_active_modules) ? 'Active' : 'Inactive';
        $links = '';
        if ($status == 'Active') {
            if (method_exists($obj, 'load_options')) {
                $links .= '<a href="' . YM_ADMIN_URL . '&ym_page=' . ym_get('ym_page') . '&action=modules&mode=options&sel=' . $entry . '">' . __('Settings</a>', 'ym') . '</a>';
            }
            $links .= '<br />';
            if ($entry != 'ym_free.php') {
                $links .= '<a href="' . YM_ADMIN_URL . '&ym_page=' . ym_get('ym_page') . '&action=modules&mode=deactivate&sel=' . $entry . '">' . __('Deactivate', 'ym') . '</a>';
            }
        } else {
            $activate_url = YM_ADMIN_URL . '&ym_page=' . ym_get('ym_page') . '&action=modules&mode=activate&sel=' . $entry;
            $links = sprintf(__('<a href="%s">Activate</a>', 'ym'), $activate_url);
        }
        $desc = $obj->description;
        echo '
		<tr valign="top">
			<td valign="top" width="10%"><span style="font-size: 14px;">' . $obj->name . '</span></td>
			<td valign="top">' . strip_tags($desc) . '</td>
			<td valign="top" width="7%" style="color:' . ($status == 'Active' ? '#00AA00' : '#FF0000') . ';">' . $status;
        if (isset($obj->version)) {
            echo '<br />R: ' . preg_replace('/[^0-9]/', '', $obj->version);
        }
        echo '</td>
			<td width="8%" valign="top">' . $links . '</td>
		</tr>
		';
开发者ID:AdultStack,项目名称:ap-members,代码行数:31,代码来源:ym-payment-gateways.php

示例9: ym_coupon_update

function ym_coupon_update()
{
    $coupon_id = ym_get('coupon_id');
    $name = ym_post('name');
    $value = ym_post('value');
    $description = ym_post('description');
    $allowed = (ym_post('new_sub') ? '1' : '0') . (ym_post('upgrade') ? '1' : '0') . (ym_post('post') ? '1' : '0') . (ym_post('pack') ? '1' : '0');
    $usage_limit = ym_post('usage_limit');
    if (ym_post('save_coupon')) {
        ym_save_coupon($name, $value, $description, $allowed, $usage_limit);
    }
    if (ym_post('update_coupon')) {
        ym_edit_coupon($coupon_id, $name, $value, $description, $allowed, $usage_limit);
    }
    if (ym_get('delete_coupon')) {
        $coupon_id = ym_get('delete_coupon');
        ym_delete_coupon($coupon_id);
    }
}
开发者ID:AdultStack,项目名称:ap-members,代码行数:19,代码来源:ym_coupon_functions.include.php

示例10: get_button_code

 function get_button_code($pack, $user_id, $override_price = FALSE)
 {
     get_currentuserinfo();
     global $current_user, $ym_sys;
     $email = isset($current_user->user_email) ? $current_user->user_email : '';
     if (!$email) {
         if ($user = ym_get('username')) {
             $user = get_user_by('login', $user);
             $email = $user->user_email;
         }
     }
     $data = array('sid' => $this->merchant_sid, 'mode' => '2CO', 'demo' => $this->status == 'live' ? 'N' : 'Y', 'return_url' => site_url($this->cancel_url), 'skip_landing' => $this->skip_landing, 'li_1_type' => 'product', 'li_1_name' => isset($pack['item_name']) && $pack['item_name'] ? $pack['item_name'] : $ym_sys->item_name, 'li_1_quantity' => 1, 'li_1_price' => $override_price ? $override_price : $pack['cost'], 'email' => $email);
     $vat = FALSE;
     if (isset($pack['vat_applicable']) && $pack['vat_applicable'] || $ym_sys->global_vat_applicable) {
         if ($ym_sys->vat_rate) {
             $data = array_merge($data, array('li_2_product_id' => 'tax', 'li_2_description' => 'Tax for Product', 'li_2_type' => 'tax', 'li_2_name' => 'Tax', 'li_2_quantity' => 1, 'li_2_price' => $ym_sys->vat_rate));
             $vat = TRUE;
         }
     }
     if ($vat_rate = apply_filters('ym_vat_override', false, $user_id)) {
         $data = array_merge($data, array('li_2_product_id' => 'tax', 'li_2_description' => 'Tax for Product', 'li_2_type' => 'tax', 'li_2_name' => 'Tax', 'li_2_quantity' => 1, 'li_2_price' => $vat_rate));
         $vat = TRUE;
     }
     // addition per type
     if (isset($pack['num_cycles']) && $pack['num_cycles'] != 1 && $pack['duration_type']) {
         // subscription
         $data['li_1_product_id'] = 'buy_subscription_' . $pack['id'] . '_' . $user_id;
         // start up feed
         if (isset($pack['2checkout_startupfee']) && $pack['2checkout_startupfee']) {
             $data['li_1_startup_fee'] = $pack['2checkout_startupfee'];
         }
         // recurring
         // patch
         if ($pack['duration_type'] == 'd') {
             $pack['duration'] = number_format($pack['duration'] / 7, 0);
             $pack['duration_type'] == 'w';
         }
         $duration_str = array('w' => 'Week', 'm' => 'Month', 'y' => 'Year');
         $data = array_merge($data, array('li_1_duration' => $pack['num_cycles'] ? $pack['num_cycles'] : 'forever', 'li_1_recurrence' => $pack['duration'] . ' ' . $duration_str[$pack['duration_type']]));
         if ($vat) {
             $data['li_2_duration'] = $data['li_1_duration'];
             $data['li_2_recurrence'] = $data['li_1_recurrence'];
         }
     } else {
         // post/single
         if (isset($pack['id'])) {
             $data['li_1_product_id'] = 'buy_subscription_' . $pack['id'] . '_' . $user_id;
         } else {
             // post
             if (isset($pack['ppp_pack_id'])) {
                 $data['li_1_product_id'] = 'buy_bundle_' . $pack['ppp_pack_id'] . '_' . $user_id;
             } else {
                 if (isset($pack['ppp_adhoc_posts'])) {
                     $data['li_1_product_id'] = 'buy_post_' . implode(',', $pack['ppp_adhoc_posts']) . '_' . $user_id;
                 } else {
                     $data['li_1_product_id'] = 'buy_post_' . ($pack['post_id'] ? $pack['post_id'] : get_the_ID()) . '_' . $user_id;
                 }
             }
         }
     }
     $data['x_receipt_link_url'] = esc_html(site_url('?ym_process=' . $this->code));
     $data['custom_return_url'] = $this->redirectlogic($pack);
     return $data;
 }
开发者ID:AdultStack,项目名称:ap-members,代码行数:64,代码来源:ym_2checkout.php

示例11: do_process

 function do_process()
 {
     // IPN Handler
     echo __('One Moment... Processing', 'ym');
     if (!ym_get('msgType') || !ym_get('installation') || !ym_post('M_item_number')) {
         header('HTTP/1.1 400 Bad Request');
         echo 'Error in IPN. Missing msgType, installation or item_number.';
         exit;
     }
     if (ym_get('installation') != ym_post('installation') || ym_post('installation') != $this->inst_id) {
         header('HTTP/1.1 401 Unauthorized');
         echo 'Error in IPN. Missing installation ID or Invalid';
         exit;
     }
     if ($this->callbackPW && ym_post('callbackPW') != $this->callbackPW) {
         header('HTTP/1.1 401 Unauthorized');
         echo 'Error in IPN. Missing callbackPW or invalid.';
         exit;
     }
     $array = array('Merchant Cancelled', 'Customer Cancelled');
     if (ym_post('futurePayStatusChange') && in_array(ym_post('futurePayStatusChange'), $array)) {
         // expired!
         $this->common_process(ym_post('M_item_number'), ym_post('cost'), FALSE, FALSE);
     }
     if (ym_post('rawAuthCode') == 'A') {
         // && ym_post('rawAuthMessage') == 'authorised') {
         // pre 11 catch
         if (isset($_POST['M_custom'])) {
             // is pre
             list($duration, $amount, $currency, $user_id, $account_type, $duration_type) = explode('_', $_POST['M_custom']);
             global $ym_packs;
             foreach ($ym_packs->packs as $pack) {
                 if ((md5($pack['account_type']) == strtolower($account_type) || md5(strtolower($pack['account_type'])) == strtolower($account_type)) && $pack['cost'] == $amount && $pack['duration'] == $duration && strtolower($pack['duration_type']) == strtolower($duration_type)) {
                     $pack_id = $pack['id'];
                     break;
                 }
             }
             if ($pack_id) {
                 $item = 'buy_subscription_' . $pack_id . '_' . $test[3];
             } else {
                 $admin = get_userdata(1);
                 $admin_email = $admin->user_email;
                 ym_email($admin_email, 'YM 10 Packet failed', 'Could not determine what the user is buying after looping thru all packets Debug: <pre>' . print_r($_POST, TRUE)) . "\n\n\n" . print_r($ym_packs, TRUE) . '</pre>';
                 header('HTTP/1.1 400 Bad Request');
                 exit;
             }
         } else {
             $item = ym_post('M_item_number');
         }
         // success
         $this->common_process($item, ym_post('cost'), TRUE, FALSE);
         $url = ym_post('M_return');
         if (ym_post('futurePayId')) {
             list($buy, $what, $id, $user_id) = explode('_', $item);
             update_user_meta($user_id, 'ym_worldpay_futurepay_id', ym_post('futurePayId'));
         }
     } else {
         // must be C - cancelled payment
         // where go?
         if (isset($this->cancel_url) && $this->cancel_url) {
             $url = site_url($this->cancel_url);
         } else {
             $url = site_url('/');
         }
     }
     echo '<meta http-equiv="refresh" content="0;' . $url . '" />';
     exit;
 }
开发者ID:AdultStack,项目名称:ap-members,代码行数:68,代码来源:ym_worldpay.php

示例12: ym_check_for_gift_sub

function ym_check_for_gift_sub()
{
    global $wpdb;
    // gift sub
    if (ym_post('submit')) {
        if (ym_post('post_id')) {
            $sql = 'SELECT COUNT(id)
								FROM ' . $wpdb->prefix . 'posts_purchased
								WHERE
										user_id = ' . ym_post('user_id') . '
										AND post_id = ' . ym_post('post_id');
            if (!$wpdb->get_var($sql)) {
                $sql = 'INSERT INTO ' . $wpdb->prefix . 'posts_purchased (user_id, post_id, unixtime)
								VALUES (' . $_POST['user_id'] . ', ' . $_POST['post_id'] . ', UNIX_TIMESTAMP())';
                $wpdb->query($sql);
                ym_display_message(__('Post has been successfully gifted', 'ym'));
            } else {
                ym_display_message(__('User has already purchased that post', 'ym'), 'error');
            }
        } else {
            ym_display_message(__('Please select a post to gift before submitting the form', 'ym'), 'error');
        }
    }
    if (ym_get('delete')) {
        $sql = 'DELETE FROM ' . $wpdb->prefix . 'posts_purchased
							WHERE id=' . $_GET['delete'];
        if ($wpdb->query($sql)) {
            ym_display_message(__('Purchased post has been successfully deleted', 'ym'));
        }
    }
    // end
}
开发者ID:AdultStack,项目名称:ap-members,代码行数:32,代码来源:ym_individual_purchase_functions.include.php

示例13: ym_fbook_wp_login_form

<?php

if (ym_get('login', FALSE)) {
    ym_fbook_wp_login_form();
    return;
}
if (ym_get('ym_fb_profile', FALSE)) {
    ym_fbook_profile(TRUE);
    return;
}
//	query_posts();
if (have_posts()) {
    while (have_posts()) {
        the_post();
        echo '
<div class="post">
	<h2><a href="' . get_permalink() . '" rel="bookmark" title="Permanent Link to ' . the_title_attribute(array('echo' => false)) . '"';
        if ($facebook_settings->post_breakout) {
            echo ' target="_parent" ';
        }
        echo '>' . get_the_title() . '</a></h2>
';
        //		if ($facebook_settings->use_excerpt && !is_singular()) {
        //echo do_shortcode(get_the_excerpt());
        //			the_excerpt();
        //		} else {
        //echo do_shortcode(get_the_content());
        the_content();
        //		}
        echo ym_fbook_render_like_button(get_permalink(), 'post');
        echo '</div>';
开发者ID:AdultStack,项目名称:ap-members,代码行数:31,代码来源:loop.php

示例14: ym_display_mesage

if (isset($error) && !empty($error)) {
    ym_display_mesage($error, 'error');
}
if (isset($sort_msg) && !empty($sort_msg)) {
    ym_display_message($sort_msg);
}
if (isset($sort_error) && !empty($sort_error)) {
    ym_display_mesage($sort_error, 'error');
}
if (!$ym_sys->modified_registration) {
    ym_display_message(__('Modified registration is currently turned off. Custom fields will only show on the profile', 'ym'), 'error');
}
echo '
<div class="wrap" id="poststuff">
';
if (ym_get('mode') != 'edit') {
    echo ym_start_box('&nbsp;');
    echo '<form name="frm" action="" method="post" onsubmit="ym_process_custom_field_sort();">
 <table width="60%" border="0" cellpadding="5" cellspacing="5" align="center" class="form-table" id="sorttable">';
    $head = '
 <tr>
	<th scope="col">' . __('Enable', 'ym') . '</th>
 <th scope="col">' . __('ID', 'ym') . '</th>
 <th scope="col">' . __('Name', 'ym') . '</th>
 <th scope="col">' . __('Label', 'ym') . '</th>
 <th scope="col">' . __('Caption', 'ym') . '</th>
 <th scope="col">' . __('Type', 'ym') . '</th>
 <th scope="col">' . __('Required', 'ym') . '</th>
 <th scope="col">' . __('Read Only', 'ym') . '</th>
 <th scope="col">' . __('Profile Only', 'ym') . '</th>
 <th scope="col">' . __('Hide On Profile', 'ym') . '</th>
开发者ID:AdultStack,项目名称:ap-members,代码行数:31,代码来源:ym-members-customfields.php

示例15: save

 function save()
 {
     if (isset($this->version)) {
         unset($this->version);
         //never store the version
     }
     update_option($this->code, $this);
     if (ym_get('ym_page')) {
         echo '<div id="message" class="updated fade"><p>' . sprintf(__('Updated Settings for %s', 'ym'), $this->name) . '</div>';
     }
 }
开发者ID:AdultStack,项目名称:ap-members,代码行数:11,代码来源:ym-payment-gateway.class.php


注:本文中的ym_get函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。