本文整理汇总了PHP中CCurrency::CheckFields方法的典型用法代码示例。如果您正苦于以下问题:PHP CCurrency::CheckFields方法的具体用法?PHP CCurrency::CheckFields怎么用?PHP CCurrency::CheckFields使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CCurrency
的用法示例。
在下文中一共展示了CCurrency::CheckFields方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: Update
/**
* <p>Функция изменяет параметры валюты <b>currency</b> на параметры, указанные в массиве <i>arFields</i>. Языкозависимые параметры (название, формат и прочее) обновляются отдельно, через класс <a href="http://dev.1c-bitrix.ru/api_help/currency/developer/ccurrencylang/ccurrencylang__update.8a1e7a7b.php">CCurrencyLang</a></p> <p>Сбрасывает кеш <b>currency_currency_list</b> и <b>currency_base_currency</b> в случае успешного обновления (только если произошел запрос к базе). Так же сбросит тегированный кеш <b>currency_id_КОД_ВАЛЮТЫ</b>.</p>
*
*
*
*
* @param string $currency Код валюты, параметры которой нужно изменить.
*
*
*
* @param array $arFields Массив новых параметров валюты. <ul> <li>CURRENCY - трехсимвольный код
* валюты (обязательный). Должно совпадать с кодом <b>currency</b>
* изменяемой валюты;</li> <li>AMOUNT_CNT - количество единиц валюты
* по-умолчанию, которое участвует в задании курса валюты (например,
* если 10 Датских крон стоят 48.7 рублей, то 10 - это количество
* единиц);</li> <li>AMOUNT - курс валюты по-умолчанию (одна из валют сайта
* должна иметь курс 1, она называется базовой, остальные валюты
* имеют курс относительно базовой валюты);</li> <li>SORT - порядок
* сортировки;</li> <p>Если в массиве нет ни одного из полей, то
* обращения к базе данных не будет, но вернет код валюты.</p> </ul>
*
*
*
* @return bool <p>Код валюты, параметры которой изменили, или <i>false</i> в случае
* ошибки (текст получается через <code>$APPLICATION->GetException()</code>).</p><br><br>
*
* @static
* @link http://dev.1c-bitrix.ru/api_help/currency/developer/ccurrency/ccurrency__update.16586d51.php
* @author Bitrix
*/
public static function Update($currency, $arFields)
{
global $DB;
global $CACHE_MANAGER;
if (!CCurrency::CheckFields('UPDATE', $arFields, $currency))
return false;
$strCurrencyID = substr($currency, 0, 3);
if (is_set($arFields, 'CURRENCY'))
unset($arFields['CURRENCY']);
$strUpdate = $DB->PrepareUpdate("b_catalog_currency", $arFields);
if (!empty($strUpdate))
{
$strSql = "UPDATE b_catalog_currency SET ".$strUpdate.", DATE_UPDATE = ".$DB->GetNowFunction()." WHERE CURRENCY = '".$DB->ForSql($strCurrencyID)."' ";
$DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__);
$CACHE_MANAGER->Clean("currency_base_currency");
$CACHE_MANAGER->Clean("currency_currency_list");
$rsLangs = CLanguage::GetList(($by="lid"), ($order="asc"));
while ($arLang = $rsLangs->Fetch())
{
$CACHE_MANAGER->Clean("currency_currency_list_".$arLang['LID']);
}
if (defined("BX_COMP_MANAGED_CACHE"))
$CACHE_MANAGER->ClearByTag("currency_id_".$strCurrencyID);
}
return $strCurrencyID;
}
示例2: Update
public static function Update($currency, $arFields)
{
global $DB;
foreach (GetModuleEvents("currency", "OnBeforeCurrencyUpdate", true) as $arEvent) {
if (ExecuteModuleEventEx($arEvent, array($currency, &$arFields)) === false) {
return false;
}
}
$currency = Currency\CurrencyManager::checkCurrencyID($currency);
if (!CCurrency::CheckFields('UPDATE', $arFields, $currency)) {
return false;
}
$strUpdate = $DB->PrepareUpdate("b_catalog_currency", $arFields);
if (!empty($strUpdate)) {
$strSql = "update b_catalog_currency set " . $strUpdate . " where CURRENCY = '" . $DB->ForSql($currency) . "'";
$DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
Currency\CurrencyManager::updateBaseRates($currency);
Currency\CurrencyManager::clearTagCache($currency);
if (isset(self::$currencyCache[$currency])) {
unset(self::$currencyCache[$currency]);
}
}
if (isset($arFields['LANG'])) {
foreach ($arFields['LANG'] as $lang => $settings) {
if ($settings['IS_EXIST'] == 'N') {
CCurrencyLang::Add($settings);
} else {
CCurrencyLang::Update($currency, $lang, $settings);
}
}
unset($settings, $lang);
}
if (!empty($strUpdate) || isset($arFields['LANG'])) {
Currency\CurrencyManager::clearCurrencyCache();
}
foreach (GetModuleEvents("currency", "OnCurrencyUpdate", true) as $arEvent) {
ExecuteModuleEventEx($arEvent, array($currency, $arFields));
}
return $currency;
}
示例3: while
$db_result_lang = CLangAdmin::GetList($by = "sort", $order = "asc");
$iCount = 0;
while ($db_result_lang_array = $db_result_lang->Fetch()) {
$arLangsLID[$iCount] = $db_result_lang_array["LID"];
$arLangNamesLID[$iCount] = htmlspecialcharsbx($db_result_lang_array["NAME"]);
$iCount++;
}
$aTabs = array(array("DIV" => "edit1", "TAB" => GetMessage("currency_curr"), "ICON" => "main_user_edit", "TITLE" => GetMessage("currency_curr_settings")));
$tabControl = new CAdminTabControl("tabControl", $aTabs);
if ($_SERVER["REQUEST_METHOD"] == "POST" && $CURRENCY_RIGHT == "W" && strlen($Update) > 0 && check_bitrix_sessid()) {
$arFields = array("AMOUNT" => $_POST['AMOUNT'], "AMOUNT_CNT" => $_POST['AMOUNT_CNT'], "SORT" => $_POST['SORT']);
if (isset($_POST['CURRENCY'])) {
$arFields["CURRENCY"] = $_POST['CURRENCY'];
}
$strAction = $ID ? 'UPDATE' : 'ADD';
$bVarsFromForm = !CCurrency::CheckFields($strAction, $arFields, $ID);
if (!$bVarsFromForm) {
$arMsg = array();
for ($i = 0; $i < $iCount; $i++) {
if (!isset(${"FORMAT_STRING_" . $arLangsLID[$i]}) || strlen(${"FORMAT_STRING_" . $arLangsLID[$i]}) <= 0) {
$arMsg[] = array("id" => "FORMAT_STRING_" . $arLangsLID[$i], "text" => GetMessage("currency_format_string", array("#LANG#" => $arLangNamesLID[$i])));
continue;
}
}
if (!empty($arMsg)) {
$bVarsFromForm = true;
$e = new CAdminException($arMsg);
$APPLICATION->ThrowException($e);
$e = $APPLICATION->GetException();
$message = new CAdminMessage(GetMessage("currency_error"), $e);
} else {