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


PHP DBC::makeLiteral方法代码示例

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


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

示例1: getAclsByDataValueType

 /**
  * @param $findInSet string  Data to look after (eg 13)
  * @param $type string       Data type (eg Site:Channel)
  *
  * @return RecordSet
  * @access public
  */
 function getAclsByDataValueType($findInSet, $type)
 {
     $findInSet = "FIND_IN_SET(" . DBC::makeLiteral($findInSet) . ", data)";
     $table = $this->oDbh->quoteIdentifier($this->getTablePrefix() . 'acls');
     $query = "\n            SELECT\n                *,\n                {$findInSet}\n            FROM\n                {$table}\n            WHERE\n                type = " . DBC::makeLiteral($type) . "\n                AND {$findInSet} > 0\n        ";
     return DBC::NewRecordSet($query);
 }
开发者ID:villos,项目名称:tree_admin,代码行数:14,代码来源:Acls.php

示例2: getClientByKeyword

 /**
  * A method to retrieve all advertisers where the advertiser name
  * contains a given string. Also returns any advertiser where the
  * advertiser ID equals the given keyword, should the keyword be
  * numeric.
  *
  * @param $keyword  string  Keyword to look for
  * @param $agencyId integer Limit results to advertisers owned by a given Agency ID
  * @return RecordSet
  */
 function getClientByKeyword($keyword, $agencyId = null)
 {
     $conf = $GLOBALS['_MAX']['CONF'];
     $whereClient = is_numeric($keyword) ? " OR c.clientid = {$keyword}" : '';
     $oDbh = OA_DB::singleton();
     $tableC = $oDbh->quoteIdentifier($this->getTablePrefix() . 'clients', true);
     $query = "\n            SELECT\n                c.clientid AS clientid,\n                c.clientname AS clientname\n            FROM\n                {$tableC} AS c\n            WHERE\n                (\n                    c.clientname LIKE " . DBC::makeLiteral('%' . $keyword . '%') . $whereClient . "\n                )";
     if ($agencyId !== null) {
         $query .= " AND c.agencyid=" . DBC::makeLiteral($agencyId);
     }
     return DBC::NewRecordSet($query);
 }
开发者ID:villos,项目名称:tree_admin,代码行数:22,代码来源:Clients.php

示例3: getPublishersByTracker

 function getPublishersByTracker($trackerid)
 {
     $prefix = $this->getTablePrefix();
     $oDbh = OA_DB::singleton();
     $tableAza = $oDbh->quoteIdentifier($prefix . 'ad_zone_assoc', true);
     $tableZ = $oDbh->quoteIdentifier($prefix . 'zones', true);
     $tableP = $oDbh->quoteIdentifier($prefix . 'affiliates', true);
     $tableB = $oDbh->quoteIdentifier($prefix . 'banners', true);
     $tableCt = $oDbh->quoteIdentifier($prefix . 'campaigns_trackers', true);
     $query = "\n            SELECT\n                p.affiliateid AS affiliateid,\n                p.name AS name\n            FROM\n                {$tableAza} aza\n                JOIN {$tableZ} z ON (aza.zone_id = z.zoneid)\n                JOIN {$tableP} p USING (affiliateid)\n                JOIN {$tableB} b ON (aza.ad_id = b.bannerid)\n                JOIN {$tableCt} ct USING (campaignid)\n            WHERE\n                ct.trackerid = " . DBC::makeLiteral($trackerid) . "\n            GROUP BY\n                p.affiliateid,\n                name\n            ORDER BY\n                name\n        ";
     return DBC::NewRecordSet($query);
 }
开发者ID:Spark-Eleven,项目名称:revive-adserver,代码行数:12,代码来源:Affiliates.php

示例4: getClientByKeyword

 /**
  * A method to retrieve all advertisers where the advertiser name
  * contains a given string. Also returns any advertiser where the
  * advertiser ID equals the given keyword, should the keyword be
  * numeric.
  *
  * @param $keyword  string  Keyword to look for
  * @param $agencyId integer Limit results to advertisers owned by a given Agency ID
  * @return RecordSet
  */
 function getClientByKeyword($keyword, $agencyId = null, $aIncludeSystemTypes = array())
 {
     // always add default type
     $aIncludeSystemTypes = array_merge(array(DataObjects_Clients::ADVERTISER_TYPE_DEFAULT), $aIncludeSystemTypes);
     foreach ($aIncludeSystemTypes as $k => $v) {
         $aIncludeSystemTypes[$k] = DBC::makeLiteral((int) $v);
     }
     $conf = $GLOBALS['_MAX']['CONF'];
     $whereClient = is_numeric($keyword) ? " OR c.clientid = {$keyword}" : '';
     $oDbh = OA_DB::singleton();
     $tableC = $oDbh->quoteIdentifier($this->getTablePrefix() . 'clients', true);
     $query = "\n            SELECT\n                c.clientid AS clientid,\n                c.clientname AS clientname\n            FROM\n                {$tableC} AS c\n            WHERE\n                (\n                    c.clientname LIKE " . DBC::makeLiteral('%' . $keyword . '%') . $whereClient . "\n                )\n                AND c.type IN (" . implode(',', $aIncludeSystemTypes) . ")";
     if ($agencyId !== null) {
         $query .= " AND c.agencyid=" . DBC::makeLiteral($agencyId);
     }
     return DBC::NewRecordSet($query);
 }
开发者ID:Jaree,项目名称:revive-adserver,代码行数:27,代码来源:Clients.php

示例5: getTrackerVariables

 function getTrackerVariables($zoneid, $affiliateid, $selectForAffiliate)
 {
     $prefix = $this->getTablePrefix();
     $oDbh = OA_DB::singleton();
     $tableZ = $oDbh->quoteIdentifier($prefix . 'zones', true);
     $tableAza = $oDbh->quoteIdentifier($prefix . 'ad_zone_assoc', true);
     $tableB = $oDbh->quoteIdentifier($prefix . 'banners', true);
     $tableCt = $oDbh->quoteIdentifier($prefix . 'campaigns_trackers', true);
     $tableT = $oDbh->quoteIdentifier($prefix . 'trackers', true);
     $tableV = $oDbh->quoteIdentifier($prefix . 'variables', true);
     $tableVp = $oDbh->quoteIdentifier($prefix . 'variable_publisher', true);
     $whereZoneAffiliate = empty($zoneid) ? "z.affiliateid = " . DBC::makeLiteral($affiliateid) : "z.zoneid = " . DBC::makeLiteral($zoneid);
     $query = "\n            SELECT DISTINCT\n                v.variableid AS variable_id,\n                v.name AS variable_name,\n                v.description AS variable_description,\n                t.trackerid AS tracker_id,\n                t.trackername AS tracker_name,\n                t.description AS tracker_description\n            FROM\n                {$tableAza} aza JOIN\n                {$tableZ} z ON (aza.zone_id = z.zoneid) JOIN\n                {$tableB} b ON (aza.ad_id = b.bannerid) JOIN\n                {$tableCt} ct USING (campaignid) JOIN\n                {$tableT} t USING (trackerid) JOIN\n                {$tableV} v USING (trackerid) LEFT JOIN\n                {$tableVp} vp ON (vp.variable_id = v.variableid AND vp.publisher_id = z.affiliateid)\n            WHERE\n                {$whereZoneAffiliate} AND\n                v.datatype = 'numeric'\n            ";
     if ($selectForAffiliate) {
         $query .= " AND (v.hidden = 'f' OR vp.visible = 1)";
     }
     return DBC::NewRecordSet($query);
 }
开发者ID:Spark-Eleven,项目名称:revive-adserver,代码行数:18,代码来源:Variables.php

示例6: generateRecoveryId

 /**
  * Generate and save a recovery ID for a user
  *
  * @param int user ID
  * @return array generated recovery ID
  */
 function generateRecoveryId($userId)
 {
     $doPwdRecovery = OA_Dal::factoryDO('password_recovery');
     // Make sure that recoveryId is unique in password_recovery table
     do {
         $recoveryId = strtoupper(md5(uniqid('', true)));
         $recoveryId = substr(chunk_split($recoveryId, 8, '-'), -23, 22);
         $doPwdRecovery->recovery_id = $recoveryId;
     } while ($doPwdRecovery->find() > 0);
     $doPwdRecovery = OA_Dal::factoryDO('password_recovery');
     $doPwdRecovery->whereAdd('user_id = ' . DBC::makeLiteral($userId));
     $doPwdRecovery->delete(true);
     $doPwdRecovery = OA_Dal::factoryDO('password_recovery');
     $doPwdRecovery->user_type = 'user';
     $doPwdRecovery->user_id = $userId;
     $doPwdRecovery->recovery_id = $recoveryId;
     $doPwdRecovery->updated = OA::getNowUTC();
     $doPwdRecovery->insert();
     return $recoveryId;
 }
开发者ID:villos,项目名称:tree_admin,代码行数:26,代码来源:PasswordRecovery.php

示例7: moveBannerToCampaign

 /**
  * Move banner to different campaign
  *
  * @param int $bannerId
  * @param int $campaignId
  * @return bool  True on success
  */
 function moveBannerToCampaign($bannerId, $campaignId)
 {
     $Record = DBC::NewRecord();
     $oDbh = OA_DB::singleton();
     $tableB = $oDbh->quoteIdentifier($this->getTablePrefix() . 'banners', true);
     return $Record->update($tableB, array(), "bannerid=" . DBC::makeLiteral($bannerId), array('campaignid' => DBC::makeLiteral($campaignId)));
 }
开发者ID:villos,项目名称:tree_admin,代码行数:14,代码来源:Banners.php

示例8: _getOperationIntervalInfo

 function _getOperationIntervalInfo(&$operationIntervalId, &$operationInterval, &$dateStart, &$dateEnd)
 {
     $date = new Date();
     $operationInterval = new OX_OperationInterval();
     $operationIntervalId = $operationInterval->convertDateToOperationIntervalID($date);
     $operationInterval = OX_OperationInterval::getOperationInterval();
     $aOperationIntervalDates = OX_OperationInterval::convertDateToOperationIntervalStartAndEndDates($date);
     $dateStart = DBC::makeLiteral($aOperationIntervalDates['start']->format(TIMESTAMP_FORMAT));
     $dateEnd = DBC::makeLiteral($aOperationIntervalDates['end']->format(TIMESTAMP_FORMAT));
 }
开发者ID:Spark-Eleven,项目名称:revive-adserver,代码行数:10,代码来源:StatMigration.php

示例9: getConnectionVariables

 /**
  * Returns an array of variables connected to specific connection.
  *
  * @param array $aParams
  * @return array
  */
 function getConnectionVariables($connectionId)
 {
     $conf = $GLOBALS['_MAX']['CONF'];
     $where = '';
     if (empty($connectionId)) {
         return false;
     } else {
         $connectionId = (int) $connectionId;
     }
     if (OA_Permission::isAccount(OA_ACCOUNT_TRAFFICKER)) {
         $publisherId = OA_Permission::getEntityId();
     } else {
         $publisherId = 0;
     }
     $query = "SELECT\n            v.variableid,\n            v.name,\n            v.description,\n            vv.value,\n            v.purpose,\n            v.hidden,\n            vp.visible\n        FROM\n            {$conf['table']['prefix']}{$conf['table']['variables']} AS v JOIN\n            {$conf['table']['prefix']}{$conf['table']['data_intermediate_ad_variable_value']} AS vv ON (vv.tracker_variable_id = v.variableid) LEFT JOIN\n            {$conf['table']['prefix']}{$conf['table']['variable_publisher']} AS vp ON (vp.variable_id =  v.variableid AND vp.publisher_id = {$publisherId})\n        WHERE\n            vv.data_intermediate_ad_connection_id='" . DBC::makeLiteral($connectionId) . "'\n        ORDER BY\n            v.name";
     $rsVariables = DBC::NewRecordSet($query);
     if (!$rsVariables->find()) {
         return false;
     }
     $aDataVariables = array();
     while ($rsVariables->fetch()) {
         $dataVariable = $rsVariables->toArray();
         if (!is_null($dataVariable['visible'])) {
             $dataVariable['hidden'] = $dataVariable['visible'] ? 'f' : 't';
         }
         unset($dataVariable['visible']);
         $aDataVariables[$dataVariable['variableid']] = $dataVariable;
     }
     return $aDataVariables;
 }
开发者ID:Apeplazas,项目名称:plazadelatecnologia,代码行数:36,代码来源:Admin_DA.php

示例10: _getDeliveryPerformanceDataRange

 /**
  * A private method to obtain the raw delivery performance data for a given date range.
  *
  * @access private
  * @param Admin_UI_OrganisationScope $oScope The Admin_UI_OrganisationScope limitation object for
  *                                           the report.
  * @param OA_Admin_DaySpan $oDaySpan The OA_Admin_DaySpan day range limitation object for the report,
  *                                   or for "yesterday" or "today" as required.
  * @param boolean $spanIsForPlacementDates If true, $oDaySpan is used for the start/end date limitaion
  *                                         of the placements, otherwise it is used to limit the
  *                                         data to delivery that happened in the $oDaySpan range.
  * @return array
  */
 function _getDeliveryPerformanceDataRange($oScope, $oDaySpan, $spanIsForPlacementDates = false, $statsTable = false, $appendSqlWhere = false)
 {
     $aConf = $GLOBALS['_MAX']['CONF'];
     if (empty($appendSqlWhere)) {
         $appendSqlWhere = "AND c.type = " . DataObjects_Campaigns::CAMPAIGN_TYPE_DEFAULT . " ";
     }
     if ($statsTable === false) {
         $statsTable = $aConf['table']['prefix'] . $aConf['table']['data_summary_ad_hourly'];
     }
     $advertiserId = $oScope->getAdvertiserId();
     $publisherId = $oScope->getPublisherId();
     $agencyId = $oScope->getAgencyId();
     $query = "\n            SELECT\n                c.campaignid AS campaign_id,\n                c.campaignname AS campaign_name,\n                c.priority AS campaign_priority,\n                c.status AS campaign_is_active,\n                c.activate_time AS campaign_start,\n                c.expire_time AS campaign_end,\n                c.views AS campaign_booked_impressions,\n                SUM(stats.impressions) AS campaign_impressions,\n                MAX(stats.date_time) AS stats_most_recent_date_time\n            FROM\n                {$aConf['table']['prefix']}{$aConf['table']['campaigns']} AS c,\n                {$aConf['table']['prefix']}{$aConf['table']['banners']} AS b,\n                " . $statsTable . " AS stats";
     if ($publisherId) {
         $query .= ",\n                {$aConf['table']['prefix']}{$aConf['table']['zones']} AS z";
     }
     if ($agencyId) {
         $query .= ",\n                {$aConf['table']['prefix']}{$aConf['table']['clients']} AS a";
     }
     $query .= "\n            WHERE\n                c.campaignid = b.campaignid\n\t\t\t\t" . $appendSqlWhere . "\n\t\t\t\tAND\n                b.bannerid = stats.ad_id";
     if ($spanIsForPlacementDates) {
         $query .= "\n                AND\n                (\n                    c.activate_time <= " . DBC::makeLiteral($oDaySpan->getEndDateStringUTC(), 'string') . "\n                    OR\n                    c.activate_time IS NULL\n                )\n                AND\n                (\n                    c.expire_time >= " . DBC::makeLiteral($oDaySpan->getStartDateStringUTC(), 'string') . "\n                    OR\n                    c.expire_time IS NULL\n                )";
     } else {
         $query .= "\n                AND\n                stats.date_time >= " . DBC::makeLiteral($oDaySpan->getStartDateStringUTC(), 'string') . "\n                AND\n                stats.date_time <= " . DBC::makeLiteral($oDaySpan->getEndDateStringUTC(), 'string') . "\n            ";
     }
     if ($advertiserId) {
         $query .= "\n                AND\n                c.clientid = " . DBC::makeLiteral($advertiserId, 'integer');
     }
     if ($publisherId) {
         $query .= "\n                AND\n                stats.zone_id = z.zoneid\n                AND\n                z.affiliateid = " . DBC::makeLiteral($publisherId, 'integer');
     }
     if ($agencyId) {
         $query .= "\n                AND\n                c.clientid = a.clientid\n                AND\n                a.agencyid = " . DBC::makeLiteral($agencyId, 'integer');
     }
     $query .= "\n            GROUP BY\n                campaign_id,\n                campaign_name,\n                campaign_priority,\n                campaign_is_active,\n                campaign_start,\n                campaign_end,\n                campaign_booked_impressions\n            ORDER BY\n                campaign_impressions";
     $rsDeliveryPerformanceData = DBC::NewRecordSet($query);
     $rsDeliveryPerformanceData->find();
     $aDeliveryPerformanceData = $rsDeliveryPerformanceData->getAll();
     return $aDeliveryPerformanceData;
 }
开发者ID:ballistiq,项目名称:revive-adserver,代码行数:53,代码来源:liveCampaignDeliveryReport.class.php

示例11: unlinkZonesFromBanner

 /**
  * Batch unlinking zones from banner
  *
  * @param array $aZonesIds array of zones IDs
  * @param int $bannerId  the banner ID.
  * @return int number of unlinked zones, -1 on parameters error, PEAR:Errors on DB errors
  */
 function unlinkZonesFromBanner($aZonesIds, $bannerId)
 {
     if (!is_array($aZonesIds)) {
         return -1;
     } else {
         if (count($aZonesIds) == 0) {
             return 0;
         }
     }
     $prefix = $this->getTablePrefix();
     $fastLinking = !$GLOBALS['_MAX']['CONF']['audit']['enabledForZoneLinking'];
     if ($fastLinking) {
         // Delete ad_zone_assoc
         $query = "\n               DELETE\n               FROM {$prefix}ad_zone_assoc\n               WHERE\n                   ad_id = " . DBC::makeLiteral($bannerId) . "\n                   AND\n                   zone_id IN (" . implode(",", array_map('intval', $aZonesIds)) . ")\n           ";
         return $this->oDbh->exec($query);
     } else {
         //slow - uses audit trail
         // Do a iteration to add all deleted ad_zone_assoc to audit log
         // it doesn't log all deleted rows when using
         // $doAdZoneAssoc->addWhere(
         //      ad_id IN (" . implode(',', $aBannersIds) . ")
         //      AND
         //      zone_id IN (" . implode(",",$aZonesIds) . ")
         //
         $doAdZoneAssocEmpty = OA_Dal::factoryDO('ad_zone_assoc');
         foreach ($aZonesIds as $zonesId) {
             $doAdZoneAssoc = clone $doAdZoneAssocEmpty;
             // Every delete have to be done on separate object
             $doAdZoneAssoc->zone_id = $zonesId;
             $doAdZoneAssoc->ad_id = $bannerId;
             $doAdZoneAssoc->delete();
         }
         return count($aZonesIds);
     }
 }
开发者ID:Apeplazas,项目名称:plazadelatecnologia,代码行数:42,代码来源:Zones.php

示例12: updateWhereOne

 /**
  * Updates the table with the specified $aValues where $idColumn equals
  * $id. Returns number of rows updated on success or PEAR::Error on
  * failure.
  *
  * @param string $table
  * @param string $idColumn
  * @param string $id
  * @param array $aValues A map from column name => new value
  * @return int Number of rows updated on success or PEAR::Error on failure.
  */
 function updateWhereOne($table, $idColumn, $id, $aValues)
 {
     $aSet = array();
     foreach ($aValues as $column => $value) {
         $aSet[] = "{$column} = " . DBC::makeLiteral($value);
     }
     $sSet = implode(",", $aSet);
     $table = OA_DB_Sql::modifyTableName($table);
     $sql = "UPDATE {$table} SET {$sSet} WHERE {$idColumn} = {$id}";
     $dbh =& OA_DB::singleton();
     return $dbh->exec($sql);
 }
开发者ID:ballistiq,项目名称:revive-adserver,代码行数:23,代码来源:Sql.php

示例13: addConversion

 /**
  * TODO: Should we refactor this method in more general one?
  * (maybe by creating common abstract class for all summary tables?)
  *
  * @param string $operation  Either + or -
  * @param int $basketValue
  * @param int $numItems
  * @param int $ad_id
  * @param int $creative_id
  * @param int $zone_id
  * @param strin $day
  * @param string $hour
  * @return unknown
  */
 function addConversion($operation, $basketValue, $numItems, $ad_id, $creative_id, $zone_id, $day, $hour, $table = null)
 {
     $prefix = $this->getTablePrefix();
     if ($operation != '-') {
         $operation = '+';
     }
     if ($table == null) {
         $table = $this->table;
     }
     $oDbh = OA_DB::singleton();
     $table = $oDbh->quoteIdentifier($prefix . $table, true);
     $query = '
         UPDATE ' . $table . ' SET conversions=conversions' . $operation . '1
                 , total_basket_value=total_basket_value' . $operation . DBC::makeLiteral($basketValue) . '
                 , total_num_items=total_num_items' . $operation . DBC::makeLiteral($numItems) . '
                 , updated = \'' . OA::getNow() . '\'
             WHERE
                    ad_id       = ' . DBC::makeLiteral($ad_id) . '
                AND creative_id = ' . DBC::makeLiteral($creative_id) . '
                AND zone_id     = ' . DBC::makeLiteral($zone_id) . '
                AND date_time   = ' . DBC::makeLiteral(sprintf("%s %02d:00:00", $day, $hour));
     return DBC::execute($query);
 }
开发者ID:villos,项目名称:tree_admin,代码行数:37,代码来源:Data_intermediate_ad.php

示例14: getAuditLogForAuditWidget

 /**
  * requires permission checks
  *
  * @param array $aParam
  * @return array
  */
 function getAuditLogForAuditWidget($aParam = array())
 {
     $oAudit = OA_Dal::factoryDO('audit');
     // Apply account level filters
     if (!empty($aParam['account_id'])) {
         $oAudit->account_id = $aParam['account_id'];
     }
     if (!empty($aParam['advertiser_account_id'])) {
         $oAudit->advertiser_account_id = $aParam['advertiser_account_id'];
     }
     if (!empty($aParam['website_account_id'])) {
         $oAudit->website_account_id = $aParam['website_account_id'];
     }
     $oDate = new Date();
     $oDate->toUTC();
     $oDate->subtractSpan(new Date_Span('7-0-0-0'));
     $oAudit->whereAdd("username <> 'Maintenance'");
     $oAudit->whereAdd('parentid IS NULL');
     $oAudit->whereAdd("updated >= " . DBC::makeLiteral($oDate->format('%Y-%m-%d %H:%M:%S')));
     $oAudit->orderBy('auditid DESC');
     $oAudit->limit(0, 5);
     $numRows = $oAudit->find();
     $oNow = new Date();
     $aResult = array();
     while ($oAudit->fetch()) {
         $aAudit = $oAudit->toArray();
         $oDate = new Date($aAudit['updated']);
         $oDate->setTZbyID('UTC');
         $oDate->convertTZ($oNow->tz);
         $aAudit['updated'] = $oDate->format('%Y-%m-%d %H:%M:%S');
         $aAudit['details'] = unserialize($aAudit['details']);
         $aAudit['context'] = $this->getContextDescription($aAudit['context']);
         $aResult[] = $aAudit;
     }
     return $aResult;
 }
开发者ID:hostinger,项目名称:revive-adserver,代码行数:42,代码来源:Audit.php

示例15: getBucketTableContent

 /**
  * A method to retrieve the table content as a recordset.
  *
  * @param string $sTableName The bucket table to process
  * @param Date $oEnd A PEAR_Date instance, ending interval_start to process.
  * @return MySqlRecordSet A recordset of the results
  */
 private function getBucketTableContent($sTableName, $oEnd)
 {
     $query = "\n            SELECT\n                *\n            FROM\n                {$sTableName}\n            WHERE\n                date_time <= " . DBC::makeLiteral($oEnd->format('%Y-%m-%d %H:%M:%S'));
     $rsDataRaw = DBC::NewRecordSet($query);
     $rsDataRaw->find();
     return $rsDataRaw;
 }
开发者ID:ballistiq,项目名称:revive-adserver,代码行数:14,代码来源:RawBucketProcessingStrategyMysql.php


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