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


PHP prnMsg函数代码示例

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


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

示例1: checkNewCode

function checkNewCode($code)
{
    $tmp = str_replace(' ', '', $code);
    if ($tmp != $code) {
        prnMsg('<br /><br />' . _('The New supplier code') . ': ' . $code . ' ' . _('must be not empty nor with spaces'), 'error');
        return false;
    }
    return true;
}
开发者ID:BackupTheBerlios,项目名称:kwamoja,代码行数:9,代码来源:Z_ChangeSupplierCode.php

示例2: DB_query_oc

function DB_query_oc($SQL, $ErrorMessage = '', $DebugMessage = '', $Transaction = false, $TrapErrors = true)
{
    global $db_oc;
    global $PathPrefix;
    $Result = mysqli_query($db_oc, $SQL);
    if ($DebugMessage == '') {
        $DebugMessage = _('The SQL that failed was');
    }
    if (DB_error_no($db_oc) != 0 and $TrapErrors == true) {
        if ($TrapErrors) {
            require_once $PathPrefix . 'includes/header.inc';
        }
        prnMsg($ErrorMessage . '<br />' . DB_error_msg($db_oc), 'error', _('Database Error') . ' ' . DB_error_no($db_oc));
        if ($Debug == 1) {
            prnMsg($DebugMessage . '<br />' . $SQL . '<br />', 'error', _('Database SQL Failure'));
        }
        if ($Transaction) {
            $SQL = 'rollback';
            $Result = DB_query_oc($SQL);
            if (DB_error_no() != 0) {
                prnMsg(_('Error Rolling Back Transaction'), 'error', _('Database Rollback Error') . ' ' . DB_error_no($db_oc));
            } else {
                prnMsg(_('Rolling Back Transaction OK'), 'error', _('Database Rollback Due to Error Above'));
            }
        }
        if ($TrapErrors) {
            include $PathPrefix . 'includes/footer.inc';
            exit;
        }
    }
    return $Result;
}
开发者ID:ewintec,项目名称:OpenCartBridge,代码行数:32,代码来源:OpenCartConnectDB.php

示例3: display_children

function display_children($Parent, $Level, &$BOMTree)
{
    global $db;
    global $i;
    // retrive all children of parent
    $c_result = DB_query("SELECT parent,\n\t\t\t\t\t\t\t\tcomponent\n\t\t\t\t\t\tFROM bom WHERE parent='" . $Parent . "'\n\t\t\t\t\t\tORDER BY sequence", $db);
    if (DB_num_rows($c_result) > 0) {
        while ($row = DB_fetch_array($c_result)) {
            if ($Parent != $row['component']) {
                // indent and display the title of this child
                $BOMTree[$i]['Level'] = $Level;
                // Level
                if ($Level > 15) {
                    prnMsg(_('A maximum of 15 levels of bill of materials only can be displayed'), 'error');
                    exit;
                }
                $BOMTree[$i]['Parent'] = $Parent;
                // Assemble
                $BOMTree[$i]['Component'] = $row['component'];
                // Component
                // call this function again to display this
                // child's children
                $i++;
                display_children($row['component'], $Level + 1, $BOMTree);
            }
        }
    }
}
开发者ID:rrsc,项目名称:KwaMoja,代码行数:28,代码来源:BOMs.php

示例4: Remove_From_Shipment

 function Remove_From_Shipment($PODetailItem, &$db)
 {
     if ($this->LineItems[$PODetailItem]->QtyInvoiced == 0) {
         unset($this->LineItems[$PODetailItem]);
         $sql = "UPDATE purchorderdetails SET shiptref = 0 WHERE podetailitem='" . $PODetailItem . "'";
         $Result = DB_query($sql, $db);
     } else {
         prnMsg(_('This shipment line has a quantity invoiced and already charged to the shipment - it cannot now be removed'), 'warn');
     }
 }
开发者ID:rrsc,项目名称:KwaMoja,代码行数:10,代码来源:DefineShiptClass.php

示例5: backup_tables

function backup_tables($host, $user, $pass, $tables = '*', $db)
{
    //get all of the tables
    if ($tables == '*') {
        $tables = array();
        $result = DB_query('SHOW TABLES', $db);
        while ($row = DB_fetch_row($result)) {
            $tables[] = $row[0];
        }
    } else {
        $tables = is_array($tables) ? $tables : explode(',', $tables);
    }
    //cycle through
    foreach ($tables as $table) {
        $result = DB_query('SELECT * FROM ' . $table, $db);
        $num_fields = DB_num_fields($result);
        $num_rows = DB_num_rows($result);
        $return .= 'DROP TABLE IF EXISTS ' . $table . ';';
        $row2 = DB_fetch_row(DB_query('SHOW CREATE TABLE ' . $table, $db));
        $return .= "\n\n" . $row2[1] . ";\n\n";
        $return .= 'INSERT INTO ' . $table . ' VALUES';
        for ($i = 0; $i < $num_fields; $i++) {
            $last = 0;
            while ($row = DB_fetch_row($result)) {
                $last = $last + 1;
                $return .= '(';
                for ($j = 0; $j < $num_fields; $j++) {
                    $row[$j] = addslashes($row[$j]);
                    $row[$j] = ereg_replace("\n", "\\n", $row[$j]);
                    if (isset($row[$j])) {
                        $return .= '"' . $row[$j] . '"';
                    } else {
                        $return .= '""';
                    }
                    if ($j < $num_fields - 1 and isset($row[$j])) {
                        $return .= ',';
                    }
                }
                if ($last == $num_rows) {
                    $return .= ");\n";
                } else {
                    $return .= "),";
                }
            }
        }
        $return .= "\n\n\n";
    }
    //save file
    $handle = fopen('db-backup-' . time() . '-' . md5(implode(',', $tables)) . '.sql', 'w+');
    fwrite($handle, $return);
    fclose($handle);
    prnMsg(_(' back up successful'), 'success');
}
开发者ID:ellymakuba,项目名称:AIRADS,代码行数:53,代码来源:DatabaseBackup.php

示例6: getXMLFile

function getXMLFile($file)
{
    $list = null;
    libxml_use_internal_errors(true);
    if (file_exists($file)) {
        $list = simplexml_load_file($file, "LabelList");
        if (!$list) {
            prnMsg(_('Failed loading XML file') . ' ' . $file . ':');
            foreach (libxml_get_errors() as $error) {
                echo "\n\t\t\t\t<br />", $error->message;
            }
            exit(_('Report this problem'));
        }
    }
    return $list;
}
开发者ID:rrsc,项目名称:KwaMoja,代码行数:16,代码来源:DefineLabelClass.php

示例7: _

echo '<tr><td>' . _('Customer Price List') . ' (' . _('Sales Type') . '):</td><td>';
echo '<select tabindex="1" name="SalesType">';
while ($myrow = DB_fetch_array($result)) {
    if (isset($_POST['SalesType']) and $myrow['typeabbrev'] == $_POST['SalesType']) {
        echo '<option selected="selected" value="' . $myrow['typeabbrev'] . '">' . $myrow['sales_type'] . '</option>';
    } else {
        echo '<option value="' . $myrow['typeabbrev'] . '">' . $myrow['sales_type'] . '</option>';
    }
}
echo '</select></td></tr>';
if (isset($_GET['StockID'])) {
    $StockID = trim($_GET['StockID']);
} elseif (isset($_POST['StockID'])) {
    $StockID = trim(strtoupper($_POST['StockID']));
} elseif (!isset($StockID)) {
    prnMsg(_('You must select a stock item first before set a price maxtrix'), 'error');
    include 'includes/footer.inc';
    exit;
}
echo '<input type="hidden" name="StockID" value="' . $StockID . '" />';
if (!isset($_POST['StartDate'])) {
    $_POST['StartDate'] = Date($_SESSION['DefaultDateFormat']);
}
if (!isset($_POST['EndDate'])) {
    $_POST['EndDate'] = GetMySQLMaxDate();
}
echo '<tr><td>' . _('Price Effective From Date') . ':</td>
	<td><input type="text" class="date" alt="' . $_SESSION['DefaultDateFormat'] . '" name="StartDate" required="required" size="10" maxlength="10" title="' . _('Enter the date from which this price should take effect.') . '" value="' . $_POST['StartDate'] . '" /></td></tr>';
echo '<tr><td>' . _('Price Effective To Date') . ':</td>
			<td><input type="text" class="date" alt="' . $_SESSION['DefaultDateFormat'] . '" name="EndDate" size="10" maxlength="10" title="' . _('Enter the date to which this price should be in effect to, or leave empty if the price should continue indefinitely') . '" value="' . $_POST['EndDate'] . '" />';
echo '<tr>
开发者ID:fgaudenzi,项目名称:webERP-bootstrap,代码行数:31,代码来源:PriceMatrix.php

示例8: foreach

                    $PeriodQty[$i] += 1;
                }
            }
            $i = 0;
            foreach ($PeriodQty as $demandqty) {
                $sql = "INSERT INTO mrpdemands (stockid,\n\t\t\t\t\t\t\t\t\tmrpdemandtype,\n\t\t\t\t\t\t\t\t\tquantity,\n\t\t\t\t\t\t\t\t\tduedate)\n\t\t\t\t\t\t\t\tVALUES ('" . $myrow['stkcode'] . "',\n\t\t\t\t\t\t\t\t\t'" . $_POST['MRPDemandtype'] . "',\n\t\t\t\t\t\t\t\t\t'" . $demandqty . "',\n\t\t\t\t\t\t\t\t\t'" . $datearray[$i] . "')";
                $insertresult = DB_query($sql, $db);
                $i++;
                $TotalRecords++;
            }
            // end of foreach for INSERT
        }
        // end of if that checks exludeqty, ExcludeAmount
    }
    //end while loop
    prnMsg($TotalRecords . ' ' . _('records have been created'), 'success');
}
// end if submit has been pressed
echo '<p class="page_title_text"><img src="' . $rootpath . '/css/' . $theme . '/images/inventory.png" title="' . _('Inventory') . '" alt="" />' . ' ' . $title . '</p>';
echo '<form action="' . htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES, 'UTF-8') . '" method="post">';
echo '<div>';
echo '<input type="hidden" name="FormID" value="' . $_SESSION['FormID'] . '" />';
echo '<table class="selection">
	<tr>
		<td>' . _('Demand Type') . ':</td>
		<td><select name="MRPDemandtype">';
$sql = "SELECT mrpdemandtype,\n\t\t\t\tdescription\n\t\tFROM mrpdemandtypes";
$result = DB_query($sql, $db);
while ($myrow = DB_fetch_array($result)) {
    echo '<option value="' . $myrow['mrpdemandtype'] . '">' . $myrow['mrpdemandtype'] . ' - ' . $myrow['description'] . '</option>';
}
开发者ID:BackupTheBerlios,项目名称:kwamoja,代码行数:31,代码来源:MRPCreateDemands.php

示例9: while

			<input type="hidden" name="identifier" value="' . $identifier . '">
			<input type="hidden" name="EditControlled" value="true">
			<select name=Bundles[] multiple="multiple">';
        $id = 0;
        $ItemsAvailable = 0;
        while ($myrow = DB_fetch_array($Bundles, $db)) {
            if ($LineItem->Serialised == 1) {
                if (!array_key_exists($myrow['serialno'], $AllSerials)) {
                    echo '<option value="' . $myrow['serialno'] . '">' . $myrow['serialno'] . '</option>';
                    $ItemsAvailable++;
                }
            } else {
                if (!array_key_exists($myrow['serialno'], $AllSerials) or $myrow['quantity'] - $AllSerials[$myrow['serialno']] >= 0) {
                    $RecvQty = $myrow['quantity'] - $AllSerials[$myrow['serialno']];
                    echo '<option value="' . $myrow['serialno'] . '/|/' . $RecvQty . '">' . $myrow['serialno'] . ' - ' . _('Qty left') . ': ' . $RecvQty . '</option>';
                    $ItemsAvailable += $RecvQty;
                }
            }
        }
        echo '</select>
			<br />';
        echo '<br /><div class="centre"><input type="submit" name="AddBatches" value="' . _('Enter') . '"></div>
			<br />';
        echo '</form>';
        echo $ItemsAvailable . ' ' . _('items available');
        echo '</td>';
    } else {
        echo '<td>' . prnMsg(_('There does not appear to be any of') . ' ' . $StockID . ' ' . _('left in') . ' ' . $LocationOut, 'warn') . '</td>';
    }
    echo '</tr></table>';
}
开发者ID:BackupTheBerlios,项目名称:kwamoja,代码行数:31,代码来源:InputSerialItemsExisting.php

示例10: raiseError

 /**
  * Trigger a PEAR error
  *
  * To improve performances, the PEAR.php file is included dynamically.
  *
  * @param string error message
  */
 function raiseError($msg)
 {
     prnMsg($msg, 'error');
 }
开发者ID:stateless,项目名称:weberp-cvs,代码行数:11,代码来源:Words.php

示例11: prnMsg

 }
 if (ContainsIllegalCharacters($_POST['NewStockID'])) {
     prnMsg(_('The new stock code to change the old code to contains illegal characters - no changes will be made'), 'error');
     include 'includes/footer.inc';
     exit;
 }
 if ($_POST['NewStockID'] == '') {
     prnMsg(_('The new stock code to change the old code to must be entered as well'), 'error');
     include 'includes/footer.inc';
     exit;
 }
 /*Now check that the new code doesn't already exist */
 $result = DB_query("SELECT stockid FROM stockmaster WHERE stockid='" . $_POST['NewStockID'] . "'", $db);
 if (DB_num_rows($result) != 0) {
     echo '<br><br>';
     prnMsg(_('The replacement stock code') . ': ' . $_POST['NewStockID'] . ' ' . _('already exists as a stock code in the system') . ' - ' . _('a unique stock code must be entered for the new code'), 'error');
     include 'includes/footer.inc';
     exit;
 }
 $result = DB_Txn_Begin($db);
 echo '<br>' . _('Adding the new stock master record');
 $sql = "INSERT INTO stockmaster (stockid,\n\t\t\t\t\tcategoryid,\n\t\t\t\t\tdescription,\n\t\t\t\t\tlongdescription,\n\t\t\t\t\tunits,\n\t\t\t\t\tmbflag,\n\t\t\t\t\tlastcurcostdate,\n\t\t\t\t\tactualcost,\n\t\t\t\t\tlastcost,\n\t\t\t\t\tmaterialcost,\n\t\t\t\t\tlabourcost,\n\t\t\t\t\toverheadcost,\n\t\t\t\t\tlowestlevel,\n\t\t\t\t\tdiscontinued,\n\t\t\t\t\tcontrolled,\n\t\t\t\t\teoq,\n\t\t\t\t\tvolume,\n\t\t\t\t\tkgs,\n\t\t\t\t\tbarcode,\n\t\t\t\t\tdiscountcategory,\n\t\t\t\t\ttaxcatid)\n\t\t\tSELECT '" . $_POST['NewStockID'] . "',\n\t\t\t\tcategoryid,\n\t\t\t\tdescription,\n\t\t\t\tlongdescription,\n\t\t\t\tunits,\n\t\t\t\tmbflag,\n\t\t\t\tlastcurcostdate,\n\t\t\t\tactualcost,\n\t\t\t\tlastcost,\n\t\t\t\tmaterialcost,\n\t\t\t\tlabourcost,\n\t\t\t\toverheadcost,\n\t\t\t\tlowestlevel,\n\t\t\t\tdiscontinued,\n\t\t\t\tcontrolled,\n\t\t\t\teoq,\n\t\t\t\tvolume,\n\t\t\t\tkgs,\n\t\t\t\tbarcode,\n\t\t\t\tdiscountcategory,\n\t\t\t\ttaxcatid\n\t\t\tFROM stockmaster\n\t\t\tWHERE stockid='" . $_POST['OldStockID'] . "'";
 $DbgMsg = _('The SQL statement that failed was');
 $ErrMsg = _('The SQL to insert the new stock master record failed');
 $result = DB_query($sql, $db, $ErrMsg, $DbgMsg, true);
 echo ' ... ' . _('completed');
 echo '<br>' . _('Changing stock location records');
 $sql = "UPDATE locstock SET stockid='" . $_POST['NewStockID'] . "' WHERE stockid='" . $_POST['OldStockID'] . "'";
 $ErrMsg = _('The SQL to update stock location records failed');
 $result = DB_query($sql, $db, $ErrMsg, $DbgMsg, true);
 echo ' ... ' . _('completed');
开发者ID:stateless,项目名称:weberp-cvs,代码行数:31,代码来源:Z_ChangeStockCode.php

示例12: PrintHeader

        if ($YPos < $Bottom_Margin + $line_height) {
            PrintHeader($pdf, $YPos, $PageNumber, $Page_Height, $Top_Margin, $Left_Margin, $Page_Width, $Right_Margin, $assemblydesc);
        }
    }
    /*end while loop */
    $FontSize = 10;
    $YPos -= 2 * $line_height;
    if ($YPos < $Bottom_Margin + $line_height) {
        PrintHeader($pdf, $YPos, $PageNumber, $Page_Height, $Top_Margin, $Left_Margin, $Page_Width, $Right_Margin, $assemblydesc);
    }
    $pdfcode = $pdf->output();
    $len = strlen($pdfcode);
    if ($len <= 20) {
        $title = _('Print Indented BOM Listing Error');
        include 'includes/header.inc';
        prnMsg(_('There were no items for the selected assembly'), 'error');
        echo "<br><a href='{$rootpath}/index.php?" . SID . "'>" . _('Back to the menu') . '</a>';
        include 'includes/footer.inc';
        exit;
    } else {
        header('Content-type: application/pdf');
        header("Content-Length: " . $len);
        header('Content-Disposition: inline; filename=Customer_trans.pdf');
        header('Expires: 0');
        header('Cache-Control: private, post-check=0, pre-check=0');
        header('Pragma: public');
        $pdf->Output('BOMIndented.pdf', 'I');
    }
} else {
    /*The option to print PDF was not hit so display form */
    $title = _('Indented BOM Listing');
开发者ID:stateless,项目名称:weberp-cvs,代码行数:31,代码来源:BOMIndented.php

示例13: _

    }
    if (isset($_POST['Next'])) {
        $Offset = $_POST['NextList'];
    }
    if (isset($_POST['Prev'])) {
        $Offset = $_POST['Previous'];
    }
    if (!isset($Offset) or $Offset < 0) {
        $Offset = 0;
    }
    $SQL = $SQL . ' LIMIT ' . $_SESSION['DefaultDisplayRecordsMax'] . ' OFFSET ' . $_SESSION['DefaultDisplayRecordsMax'] * $Offset;
    $ErrMsg = _('There is a problem selecting the part records to display because');
    $DbgMsg = _('The SQL used to get the part selection was');
    $SearchResult = DB_query($SQL, $db, $ErrMsg, $DbgMsg);
    if (DB_num_rows($SearchResult) == 0) {
        prnMsg(_('There are no products available meeting the criteria specified'), 'info');
    }
    if (DB_num_rows($SearchResult) < $_SESSION['DisplayRecordsMax']) {
        $Offset = 0;
    }
}
//end of if search
/* display list if there is more than one record */
if (isset($searchresult) and !isset($_POST['Select'])) {
    echo '<form action="' . htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES, 'UTF-8') . '" method="post">';
    echo '<div>';
    echo '<input type="hidden" name="FormID" value="' . $_SESSION['FormID'] . '" />';
    $ListCount = DB_num_rows($searchresult);
    if ($ListCount > 0) {
        // If the user hit the search button and there is more than one item to show
        $ListPageMax = ceil($ListCount / $_SESSION['DisplayRecordsMax']);
开发者ID:BackupTheBerlios,项目名称:kwamoja,代码行数:31,代码来源:InternalStockRequest.php

示例14: DB_query

 $CustomerResult = DB_query($SQL, $db, '', '', false, false);
 if (DB_error_no($db) != 0) {
     $Title = _('Customer Balances') . ' - ' . _('Problem Report');
     include 'includes/header.inc';
     prnMsg(_('The customer details could not be retrieved by the SQL because') . DB_error_msg($db), 'error');
     echo '<br /><a href="' . $RootPath . '/index.php">' . _('Back to the menu') . '</a>';
     if ($debug == 1) {
         echo '<br />' . $SQL;
     }
     include 'includes/footer.inc';
     exit;
 }
 if (DB_num_rows($CustomerResult) == 0) {
     $Title = _('Customer Balances') . ' - ' . _('Problem Report');
     include 'includes/header.inc';
     prnMsg(_('The customer details listing has no clients to report on'), 'warn');
     echo '<br /><a href="' . $RootPath . '/index.php">' . _('Back to the menu') . '</a>';
     include 'includes/footer.inc';
     exit;
 }
 include 'includes/PDFDebtorBalsPageHeader.inc';
 $TotBal = 0;
 while ($DebtorBalances = DB_fetch_array($CustomerResult, $db)) {
     $Balance = $DebtorBalances['balance'] - $DebtorBalances['afterdatetrans'] + $DebtorBalances['afterdatediffonexch'];
     $FXBalance = $DebtorBalances['fxbalance'] - $DebtorBalances['fxafterdatetrans'];
     if (abs($Balance) > 0.008999999999999999 or ABS($FXBalance) > 0.008999999999999999) {
         $DisplayBalance = locale_number_format($DebtorBalances['balance'] - $DebtorBalances['afterdatetrans'], $DebtorBalances['decimalplaces']);
         $DisplayFXBalance = locale_number_format($DebtorBalances['fxbalance'] - $DebtorBalances['fxafterdatetrans'], $DebtorBalances['decimalplaces']);
         $TotBal += $Balance;
         $LeftOvers = $pdf->addTextWrap($Left_Margin + 3, $YPos, 220 - $Left_Margin, $FontSize, $DebtorBalances['debtorno'] . ' - ' . html_entity_decode($DebtorBalances['name'], ENT_QUOTES, 'UTF-8'), 'left');
         $LeftOvers = $pdf->addTextWrap(220, $YPos, 60, $FontSize, $DisplayBalance, 'right');
开发者ID:strollClouds,项目名称:snkStudy,代码行数:31,代码来源:DebtorsAtPeriodEnd.php

示例15: unset

                echo '<tr ' . $FailureStyle . '><td>' . $ItemDetails['stockid'] . '</td><td>' . 'Failure' . '</td><td>';
                for ($i = 0; $i < sizeof($answer); $i++) {
                    echo 'Error no ' . $answer[$i] . ' - ' . $ErrorDescription[$answer[$i]] . '<br />';
                }
                echo '</td></tr>';
                $failures++;
            }
        }
        unset($ItemDetails);
    }
    echo '<tr><td>' . $successes . _(' records successfully imported') . '</td></tr>';
    echo '<tr><td>' . $failures . _(' records failed to import') . '</td></tr>';
    echo '</table>';
    fclose($fp);
} else {
    $sql = "select * from locations";
    $result = DB_query($sql);
    if (DB_num_rows($result) == 0) {
        prnMsg(_('No locations have been set up. At least one location should be set up first'), "error");
    } else {
        prnMsg(_('Select a csv file containing the details of the parts that you wish to import into webERP. ') . '<br />' . _('The first line must contain the field names that you wish to import. ') . '<a href ="Z_DescribeTable.php?table=stockmaster">' . _('The field names can be found here') . '</a>', 'info');
        echo '<form id="ItemForm" enctype="multipart/form-data" method="post" action="' . htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES, 'UTF-8') . '?' . SID . '">';
        echo '<div class="centre">';
        echo '<input type="hidden" name="FormID" value="' . $_SESSION['FormID'] . '" />';
        echo '<table><tr><td>' . _('File to import') . '</td>' . '<td><input type="file" id="ImportFile" name="ImportFile" /></td></tr></table>';
        echo '<div class="centre"><input type="submit" name="update" value="Process" /></div>';
        echo '</div>
              </form>';
    }
}
include 'includes/footer.inc';
开发者ID:fgaudenzi,项目名称:webERP-bootstrap,代码行数:31,代码来源:Z_ImportPartCodes.php


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