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


PHP box::box_full方法代码示例

本文整理汇总了PHP中box::box_full方法的典型用法代码示例。如果您正苦于以下问题:PHP box::box_full方法的具体用法?PHP box::box_full怎么用?PHP box::box_full使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在box的用法示例。


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

示例1: each

## Get a database connection
$db = new DB_DocsWell();
// Check if there was a submission
$reg = 0;
while (is_array($HTTP_POST_VARS) && (list($key, $val) = each($HTTP_POST_VARS))) {
    switch ($key) {
        case "register":
            // Register a new user
            $username = trim($username);
            $password = trim($password);
            $cpassword = trim($cpassword);
            $realname = trim($realname);
            $email_usr = trim($email_usr);
            if (empty($username) || empty($password) || empty($cpassword) || empty($email_usr)) {
                // Do we have all necessary data?
                $be->box_full($t->translate("Error"), $t->translate("Please enter") . " <b>" . $t->translate("Username") . "</b>, <b>" . $t->translate("Password") . "</b> " . $t->translate("and") . " <b>" . $t->translate("E-Mail") . "</b>!");
                break;
            }
            if (strcmp($password, $cpassword)) {
                // password are identical?
                $be->box_full($t->translate("Error"), $t->translate("The passwords are not identical") . ". " . $t->translate("Please try again") . "!");
                break;
            }
            /* Does the user already exist?
               NOTE: This should be a transaction, but it isn't... */
            $db->query("select * from auth_user where username='{$username}'");
            if ($db->nf() > 0) {
                $be->box_full($t->translate("Error"), $t->translate("User") . " <B>{$username}</B> " . $t->translate("already exists") . "!<br>" . $t->translate("Please select a different Username") . ".");
                break;
            }
            // Create a uid and insert the user...
开发者ID:BackupTheBerlios,项目名称:docswell-svn,代码行数:31,代码来源:register.php

示例2: box

require "include/header.inc";
$bx = new box("100%", $th_box_frame_color, $th_box_frame_width, $th_box_title_bgcolor, $th_box_title_font_color, $th_box_title_align, $th_box_body_bgcolor, $th_box_body_font_color, $th_box_body_align);
start_content();
// When there's a search for a blank line, we look for "xxxxxxxx"
if (!isset($search) || $search == "") {
    $search = "xxxxxxxx";
}
// $iter is a variable for printing the Top Statistics in steps of 10 apps
if (!isset($iter)) {
    $iter = 0;
}
$iter *= 10;
// We need to know the total number of apps
$db->query("SELECT * FROM description WHERE project_title LIKE '%{$search}%'");
if ($db->num_rows() == 0) {
    $bx->box_full($t->translate("Search"), $t->translate("No projects found"));
} else {
    while ($db->next_record()) {
        $numiter = ($db->f("COUNT(*)") - 1) / 10;
        $query = "SELECT * FROM description,auth_user WHERE " . "description.proid='" . $db->f("proid") . "' AND " . "description.description_user=auth_user.username " . "AND description.status > '0' GROUP BY " . "description.proid";
        lib_show_description($query);
        if ($numiter > 1) {
            $url = "search.php";
            $urlquery = array("search" => $search, "by" => $by);
            show_more($iter, $numiter, $url, $urlquery);
        }
    }
}
end_content();
require "include/footer.inc";
page_close();
开发者ID:BackupTheBerlios,项目名称:sourceagency,代码行数:31,代码来源:search.php

示例3: box

# $Id: watch.php,v 1.9 2004/03/02 09:22:58 helix Exp $
#
######################################################################
require "./include/prepend.php3";
page_open(array("sess" => "DevCounter_Session", "auth" => "DevCounter_Auth", "perm" => "DevCounter_Perm"));
require "./include/header.inc";
$bx = new box("", $th_box_frame_color, $th_box_frame_width, $th_box_title_bgcolor, $th_box_title_font_color, $th_box_title_align, $th_box_body_bgcolor, $th_box_body_font_color, $th_box_body_align);
$be = new box("80%", $th_box_frame_color, $th_box_frame_width, $th_box_title_bgcolor, $th_box_title_font_color, $th_box_title_align, $th_box_body_bgcolor, $th_box_error_font_color, $th_box_body_align);
$db2 = new DB_DevCounter();
$db3 = new DB_DevCounter();
?>

<!-- content -->
<?php 
if ($config_perm_watch != "all" && (!isset($perm) || !$perm->have_perm($config_perm_watch))) {
    $be->box_full($t->translate("Error"), $t->translate("Access denied"));
} else {
    $username = $auth->auth["uname"];
    htmlp_form_action("watchset.php", array(), "POST");
    echo "\n";
    $db3->query("SELECT * FROM prog_ability_watch WHERE username='{$username}'");
    if ($db3->next_record()) {
        $exists = 1;
    } else {
        $exists = 0;
    }
    $bx->box_begin();
    $bx->box_title($t->translate("Set your Developers Watch"));
    $bx->box_body_begin();
    echo "<table border=0 width=100% align=center cellspacing=0 cellpadding=3>\n";
    echo "<tr><td align=center><B>" . $t->translate("Which programming experiences you like to watch?") . "</B></td></tr><tr><td>\n";
开发者ID:BackupTheBerlios,项目名称:devcounter-svn,代码行数:31,代码来源:watch.php

示例4: each

## Get a database connection
$db = new DB_SourceLines();
// Check if there was a submission
while (is_array($HTTP_POST_VARS) && (list($key, $val) = each($HTTP_POST_VARS))) {
    switch ($key) {
        case "u_edit":
            // Change user parameters
            if ($auth->auth["uid"] == $u_id) {
                // user changes his own account
                $password = trim($password);
                $cpassword = trim($cpassword);
                $realname = trim($realname);
                $email_usr = trim($email_usr);
                if (strcmp($password, $cpassword)) {
                    // password are identical?
                    $be->box_full($t->translate("Error"), $t->translate("The passwords are not identical") . ". " . $t->translate("Please try again") . "!");
                    break;
                }
                $query = "UPDATE auth_user SET password='{$password}', realname='{$realname}', email_usr='{$email_usr}', modification_usr=NOW() WHERE user_id='{$u_id}'";
                $db->query($query);
                if ($db->affected_rows() == 0) {
                    $be->box_full($t->translate("Error"), $t->translate("Change User Parameters failed") . ":<br>{$query}");
                    break;
                }
                $bi->box_full($t->translate("Change User Parameters"), $t->translate("Password and/or E-Mail Address of") . " <b>" . $auth->auth["uname"] . "</b> " . $t->translate("is changed") . ".");
                if ($ml_notify) {
                    $message = "Username: " . $auth->auth["uname"] . "\n";
                    $message .= "Realname: {$realname}\n";
                    $message .= "E-Mail:   {$email_usr}\n";
                    mailuser("admin", "User parameters has changed", $message);
                }
开发者ID:BackupTheBerlios,项目名称:sourcelines,代码行数:31,代码来源:chguser.php

示例5: box

######################################################################
require "./include/prepend.php3";
page_open(array("sess" => "DocsWell_Session"));
if (isset($auth) && !empty($auth->auth["perm"])) {
    @page_close();
    page_open(array("sess" => "DocsWell_Session", "auth" => "DocsWell_Auth", "perm" => "DocsWell_Perm"));
}
require "./include/header.inc";
$bx = new box("", $th_box_frame_color, $th_box_frame_width, $th_box_title_bgcolor, $th_box_title_font_color, $th_box_title_align, $th_box_body_bgcolor, $th_box_body_font_color, $th_box_body_align);
$be = new box("", $th_box_frame_color, $th_box_frame_width, $th_box_title_bgcolor, $th_box_title_font_color, $th_box_title_align, $th_box_body_bgcolor, $th_box_error_font_color, $th_box_body_align);
?>

<!-- content -->
<?php 
if ($config_perm_admformat != "all" && (!isset($perm) || !$perm->have_perm($config_perm_admformat))) {
    $be->box_full($t->translate("Error"), $t->translate("Access denied"));
} else {
    if (isset($format) && !empty($format)) {
        // Look if Format is already in table
        $db->query("SELECT * FROM FORMATDEF WHERE NAME='{$format}'");
        if ($db->num_rows() > 0) {
            if (isset($new_format)) {
                // If format in database and a new name is given, then rename
                if (!empty($new_format)) {
                    $db->query("UPDATE FORMATDEF SET NAME='{$new_format}' WHERE NAME='{$format}'");
                    if ($db->affected_rows() == 1) {
                        $bx->box_full($t->translate("Administration"), $t->translate("Format") . " {$format} " . $t->translate("has been renamed to") . " {$new_format}");
                    }
                } else {
                    // Format is a blank line
                    $be->box_full($t->translate("Error"), $t->translate("Format name not specified"));
开发者ID:BackupTheBerlios,项目名称:docswell,代码行数:31,代码来源:insformat.php

示例6: box

if (isset($auth) && !empty($auth->auth["perm"])) {
    page_close();
    page_open(array("sess" => "DevCounter_Session", "auth" => "DevCounter_Auth", "perm" => "DevCounter_Perm"));
}
require "./include/header.inc";
$bx = new box("80%", $th_box_frame_color, $th_box_frame_width, $th_box_title_bgcolor, $th_box_title_font_color, $th_box_title_align, $th_box_body_bgcolor, $th_box_body_font_color, $th_box_body_align);
$be = new box("", $th_box_frame_color, $th_box_frame_width, $th_box_title_bgcolor, $th_box_title_font_color, $th_box_title_align, $th_box_body_bgcolor, $th_box_error_font_color, $th_box_body_align);
?>

<!-- content -->
<?php 
$db->query("SELECT * FROM faq WHERE language='{$la}'");
if ($db->num_rows() > 0) {
    while ($db->next_record()) {
        $msg .= "<li><a href=#" . $db->f("faqid") . ">" . $db->f("question") . "</a>";
    }
    $bx->box_full($t->translate("Frequently Asked Questions"), $msg);
    $db->seek(0);
    while ($db->next_record()) {
        echo "<a name=" . $db->f("faqid") . ">\n";
        $bx->box_full($t->translate("Question") . ": " . $db->f("question"), "<b>" . $t->translate("Answer") . ":</b> " . $db->f("answer"));
    }
} else {
    $be->box_full($t->translate("Error"), $t->translate("No Frequently Asked Questions exist"));
}
?>
<!-- end content -->

<?php 
require "./include/footer.inc";
@page_close();
开发者ID:BackupTheBerlios,项目名称:devcounter-svn,代码行数:31,代码来源:faq.php

示例7: box

# the Free Software Foundation; either version 2 or later of the GPL.
######################################################################
page_open(array("sess" => "DocsWell_Session"));
if (isset($auth) && !empty($auth->auth["perm"])) {
    @page_close();
    page_open(array("sess" => "DocsWell_Session", "auth" => "DocsWell_Auth", "perm" => "DocsWell_Perm"));
}
require "header.inc";
$bx = new box("", $th_box_frame_color, $th_box_frame_width, $th_box_title_bgcolor, $th_box_title_font_color, $th_box_title_align, $th_box_body_bgcolor, $th_box_body_font_color, $th_box_body_align);
$be = new box("", $th_box_frame_color, $th_box_frame_width, $th_box_title_bgcolor, $th_box_title_font_color, $th_box_title_align, $th_box_body_bgcolor, $th_box_error_font_color, $th_box_body_align);
?>

<!-- content -->
<?php 
if ($config_perm_admtype != "all" && (!isset($perm) || !$perm->have_perm($config_perm_admtype))) {
    $be->box_full($t->translate("Error"), $t->translate("Access denied"));
} else {
    if (isset($type) && !empty($type)) {
        // Look if Type is already in table
        $db->query("SELECT * FROM TYPDEF WHERE NAME='{$type}'");
        if ($db->num_rows() > 0) {
            if (isset($new_type)) {
                // If type in database and a new name is given, then rename
                if (!empty($new_type)) {
                    $db->query("UPDATE TYPDEF SET NAME='{$new_type}' WHERE NAME='{$type}'");
                    if ($db->affected_rows() == 1) {
                        $bx->box_full($t->translate("Administration"), $t->translate("Type") . " {$type} " . $t->translate("has been renamed to") . " {$new_type}");
                    }
                } else {
                    // Type is a blank line
                    $be->box_full($t->translate("Error"), $t->translate("Type name not specified"));
开发者ID:BackupTheBerlios,项目名称:docswell-svn,代码行数:31,代码来源:instyp.php

示例8: box

page_open(array("sess" => "DevCounter_Session"));
if (isset($auth) && !empty($auth->auth["perm"])) {
    page_close();
    page_open(array("sess" => "DevCounter_Session", "auth" => "DevCounter_Auth", "perm" => "DevCounter_Perm"));
}
require "./include/header.inc";
$bx = new box("", $th_box_frame_color, $th_box_frame_width, $th_box_title_bgcolor, $th_box_title_font_color, $th_box_title_align, $th_box_body_bgcolor, $th_box_body_font_color, $th_box_body_align);
$be = new box("80%", $th_box_frame_color, $th_box_frame_width, $th_box_title_bgcolor, $th_box_title_font_color, $th_box_title_align, $th_box_body_bgcolor, $th_box_error_font_color, $th_box_body_align);
$db2 = new DB_DevCounter();
?>

<!-- content -->
<?php 
$counter = 0;
if (empty($auth->auth["uname"])) {
    $be->box_full($t->translate("Not logged in"), $t->translate("Please login first"));
} else {
    $username = $auth->auth["uname"];
    $db->query("SELECT * FROM requests WHERE reqid='{$reqid}' AND username='{$username}'");
    if ($db->num_rows() == 1) {
        $db->next_record();
        $bx->box_begin();
        $bx->box_title($t->translate("edit request"));
        $bx->box_body_begin();
        htmlp_form_action("req_manage.php", "", "POST");
        htmlp_form_hidden("option", "edit");
        htmlp_form_hidden("reqid", $reqid);
        echo $t->translate("Subject") . ":<BR>";
        $reqsubject = $db->f("reqsubject");
        htmlp_input_text("reqsubject", 50, 75, $reqsubject);
        htmlp_form_submit($t->translate("Send"), "");
开发者ID:BackupTheBerlios,项目名称:devcounter-svn,代码行数:31,代码来源:req_edit.php

示例9: box

#
# $Id: entupd.php,v 1.2 2003/02/25 11:45:44 helix Exp $
#
######################################################################
require "./include/prepend.php3";
page_open(array("sess" => "SourceBiz_Session", "auth" => "SourceBiz_Auth", "perm" => "SourceBiz_Perm"));
require "./include/header.inc";
require "./include/entlib.inc";
$bx = new box("100%", $th_box_frame_color, $th_box_frame_width, $th_box_title_bgcolor, $th_box_title_font_color, $th_box_title_align, $th_box_body_bgcolor, $th_box_body_font_color, $th_box_body_align);
$be = new box("", $th_box_frame_color, $th_box_frame_width, $th_box_title_bgcolor, $th_box_title_font_color, $th_box_title_align, $th_box_body_bgcolor, $th_box_error_font_color, $th_box_body_align);
?>

<!-- content -->
<?php 
if ($perm->have_perm("user_pending")) {
    $be->box_full($t->translate("Error"), $t->translate("Access denied"));
    $auth->logout();
} else {
    if (isset($id)) {
        $columns = "*";
        $tables = "enterprise";
        $where = "enterprise.entid = '{$id}'";
        if (!$db->query("SELECT {$columns} FROM {$tables} WHERE {$where}")) {
            mysql_die($db);
        } else {
            $db->next_record();
            if ($db->f("user") == $auth->auth["uname"] || $perm->have_perm("admin")) {
                if (!isset($action)) {
                    entmod($db);
                } else {
                    $name = trim($name);
开发者ID:BackupTheBerlios,项目名称:sourcebiz,代码行数:31,代码来源:entupd.php

示例10: switch

 $set = "name_pro='{$name_pro}',category_pro='{$category_pro}',description_pro='{$description_pro}',homepage_pro='{$homepage_pro}'";
 $where = "proid='{$id}'";
 switch ($action) {
     case "change":
         $set = $set . ",status_pro='{$status_pro}'";
         break;
     case "delete":
         $set = $set . ",status_pro='D'";
         break;
     case "undelete":
         $set = $set . ",status_pro='A'";
         break;
     case "erase":
         break;
     default:
         $be->box_full($t->translate("Error"), $t->translate("No Action specified"));
         $set = $set . ",status_pro='{$status_pro}'";
         break;
 }
 if ($action == "erase") {
     $query = "DELETE FROM {$tables} WHERE {$where}";
 } else {
     $query = "UPDATE {$tables} SET {$set} WHERE {$where}";
 }
 if ($action == "erase" && !$perm->have_perm("admin")) {
     $be->box_full($t->translate("Error"), $t->translate("Access denied"));
 } else {
     if (!$db->query($query)) {
         mysql_die($db);
     } else {
         if ($action == "erase") {
开发者ID:BackupTheBerlios,项目名称:sourcebiz,代码行数:31,代码来源:proupd.php

示例11: box

page_open(array("sess" => "DevCounter_Session"));
if (isset($auth) && !empty($auth->auth["perm"])) {
    page_close();
    page_open(array("sess" => "DevCounter_Session", "auth" => "DevCounter_Auth", "perm" => "DevCounter_Perm"));
}
require "./include/header.inc";
$bx = new box("100%", $th_box_frame_color, $th_box_frame_width, $th_box_title_bgcolor, $th_box_title_font_color, $th_box_title_align, $th_box_body_bgcolor, $th_box_body_font_color, $th_box_body_align);
$be = new box("", $th_box_frame_color, $th_box_frame_width, $th_box_title_bgcolor, $th_box_title_font_color, $th_box_title_align, $th_box_body_bgcolor, $th_box_error_font_color, $th_box_body_align);
$db2 = new DB_DevCounter();
$db3 = new DB_DevCounter();
?>

<!-- content -->
<?php 
if (empty($auth->auth["uname"])) {
    $be->box_full($t->translate("Not logged in"), $t->translate("Please login first"));
} else {
    $bx->box_begin();
    $bx->box_title($t->translate("Personal Data"));
    $bx->box_body_begin();
    echo "<table border=0 width=100% align=center cellspacing=0 cellpadding=3>\n";
    htmlp_form_action("insert.php", "", "POST");
    echo "\n";
    $username = $auth->auth["uname"];
    htmlp_form_hidden("username", $username);
    echo "<tr><td align=right width=30%>" . $t->translate("Username") . ":</td><td width=70%> {$username}\n";
    echo "<tr><td align=right width=30%>" . $t->translate("Nationality") . ":</td><td width=70%>\n";
    htmlp_select("nationality");
    echo "\n";
    select_country(999);
    htmlp_select_end();
开发者ID:BackupTheBerlios,项目名称:devcounter-svn,代码行数:31,代码来源:questionaire.php

示例12: switch

    } else {
        $Cquery .= " where a.STATUS!='D' AND a.KATEGORIE={$kategorie} ";
    }
    $where .= " AND a.KATEGORIE={$kategorie} ";
    $flag = 1;
}
// We need to know the total number of apps
//echo "<br><br><br>$Cquery\n<br><br><br>";
$db->query($Cquery . " AND z.id=a.KATEGORIE ");
//echo $Cquery;
//echo $Cquery;
$db->next_record();
$cnt = $db->f("COUNT(*)");
//echo $cnt."<<<<<<<<<<<<<<<<<<<<<<<";
if ($cnt == 0) {
    $bx->box_full($t->translate("Search"), $t->translate("No Documents found"));
} else {
    switch ($by) {
        case "Category":
            $order = "KategorieName ASC, a.AENDERUNGSDATUM DESC, ID DESC";
            break;
        case "Author":
            $order = "AutorName ASC, a.AENDERUNGSDATUM DESC, ID DESC";
            break;
        case "Date":
            $order = "a.AENDERUNGSDATUM DESC, ID DESC";
            break;
        case "Name":
            $order = "a.TITEL ASC, a.AENDERUNGSDATUM DESC, a.ID DESC";
            break;
        case "Typ":
开发者ID:BackupTheBerlios,项目名称:docswell-svn,代码行数:31,代码来源:docsearch.php

示例13: box

# This is the index file which shows the recent apps
#
# This program is free software. You can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 or later of the GPL.
######################################################################
require "include/prepend.php3";
page_open(array("sess" => "SourceAgency_Session"));
if (isset($auth) && !empty($auth->auth["perm"])) {
    page_close();
    page_open(array("sess" => "SourceAgency_Session", "auth" => "SourceAgency_Auth", "perm" => "SourceAgency_Perm"));
}
require "include/header.inc";
require "include/refereeslib.inc";
$bx = new box('80%', $th_box_frame_color, $th_box_frame_width, $th_box_title_bgcolor, $th_box_title_font_color, $th_box_title_align, $th_box_body_bgcolor, $th_box_body_font_color, $th_box_body_align);
start_content();
$page = "step4_edit";
if (check_permission($proid, $page)) {
    top_bar($proid, $page);
    print $t->translate("Registered developers can offer themselves as referees");
    print ".\n<br><p>\n";
    $bx->box_full($t->translate("Info box"), $t->translate("If you are a registered developer, you can propose yourself as a referee for this project...."));
    if (!isset($submit) || empty($submit)) {
        referees_form($proid);
    } else {
        referees_insert($proid, $auth->auth["uname"]);
    }
}
end_content();
require "include/footer.inc";
@page_close();
开发者ID:BackupTheBerlios,项目名称:sourceagency,代码行数:31,代码来源:step4_edit.php

示例14: switch

 $set = "profile_prf='{$profile_prf}'";
 $where = "prfid='{$id}'";
 switch ($action) {
     case "change":
         $set = $set . ",status_prf='{$status_prf}'";
         break;
     case "delete":
         $set = $set . ",status_prf='D'";
         break;
     case "undelete":
         $set = $set . ",status_prf='A'";
         break;
     case "erase":
         break;
     default:
         $be->box_full($t->translate("Error"), $t->translate("No Action specified"));
         $set = $set . ",status_prf='{$status_prf}'";
         break;
 }
 if ($action == "erase") {
     $query = "DELETE FROM {$tables} WHERE {$where}";
 } else {
     $query = "UPDATE {$tables} SET {$set} WHERE {$where}";
 }
 if ($action == "erase" && !$perm->have_perm("admin")) {
     $be->box_full($t->translate("Error"), $t->translate("Access denied"));
 } else {
     if (!$db->query($query)) {
         mysql_die($db);
     } else {
         if ($action == "erase") {
开发者ID:BackupTheBerlios,项目名称:sourcebiz,代码行数:31,代码来源:prfupd.php

示例15: array

    case "Date":
    default:
        $by = "Date";
        $order = "a.AENDERUNGSDATUM DESC, a.ID DESC";
        break;
}
$limit = "{$iter},10";
$sort = "({$cnt}) " . $t->translate("sorted by") . ": " . "<a href=\"" . $sess->self_url() . $sess->add_query(array("usr" => $usr, "by" => "Date")) . "\">" . $t->translate("Date") . "</a>" . " | <a href=\"" . $sess->self_url() . $sess->add_query(array("usr" => $usr, "by" => "Category")) . "\">" . $t->translate("Category") . "</a>\n" . " | <a href=\"" . $sess->self_url() . $sess->add_query(array("usr" => $usr, "by" => "Typ")) . "\">" . $t->translate("Type") . "</a>\n" . " | <a href=\"" . $sess->self_url() . $sess->add_query(array("usr" => $usr, "by" => "Name")) . "\">" . $t->translate("Title") . "</a>\n";
$bs->box_strip($sort);
$query = "SELECT {$columns} FROM {$tables} WHERE {$where} ORDER BY {$order} LIMIT {$limit}";
//echo $query." <br><br>";
docupdate($query);
$db->query($query);
if ($db->num_rows() < 1) {
    $msg = $t->translate("No Docs of User exist") . ".";
    $bx->box_full($t->translate("Docs of User"), $msg);
}
if ($numiter > 1) {
    $url = "docbyuser.php";
    $urlquery = array("usr" => $usr, "by" => $by);
    show_more($iter, $numiter, $url, $urlquery);
}
?>
<!-- end content -->

<?php 
require "footer.inc";
@page_close();
?>

开发者ID:BackupTheBerlios,项目名称:docswell-svn,代码行数:29,代码来源:docbyuser.php


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