本文整理汇总了PHP中CCatalogGroup::CheckFields方法的典型用法代码示例。如果您正苦于以下问题:PHP CCatalogGroup::CheckFields方法的具体用法?PHP CCatalogGroup::CheckFields怎么用?PHP CCatalogGroup::CheckFields使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CCatalogGroup
的用法示例。
在下文中一共展示了CCatalogGroup::CheckFields方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: Update
function Update($ID, $arFields)
{
global $DB;
global $CACHE_MANAGER;
global $stackCacheManager;
global $CATALOG_BASE_GROUP;
$ID = intval($ID);
if (0 >= $ID) {
return false;
}
if (!CCatalogGroup::CheckFields("UPDATE", $arFields, $ID)) {
return false;
}
$db_events = GetModuleEvents("catalog", "OnBeforeGroupUpdate");
while ($arEvent = $db_events->Fetch()) {
if (ExecuteModuleEventEx($arEvent, array($ID, &$arFields)) === false) {
return false;
}
}
if (isset($arFields["BASE"]) && $arFields["BASE"] == "Y") {
$strSql = "UPDATE b_catalog_group SET BASE = 'N' WHERE ID != " . $ID . " AND BASE = 'Y'";
$DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
if (isset($CATALOG_BASE_GROUP)) {
unset($CATALOG_BASE_GROUP);
}
}
$strUpdate = $DB->PrepareUpdate("b_catalog_group", $arFields);
$strSql = "UPDATE b_catalog_group SET " . $strUpdate . " WHERE ID = " . $ID;
$DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
if (isset($arFields["USER_GROUP"]) && is_array($arFields["USER_GROUP"]) && !empty($arFields["USER_GROUP"])) {
$DB->Query("DELETE FROM b_catalog_group2group WHERE CATALOG_GROUP_ID = " . $ID . " AND BUY <> 'Y'");
foreach ($arFields["USER_GROUP"] as &$intValue) {
$strSql = "INSERT INTO b_catalog_group2group(CATALOG_GROUP_ID, GROUP_ID, BUY) VALUES(" . $ID . ", " . $intValue . ", 'N')";
$DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
}
if (isset($intValue)) {
unset($intValue);
}
}
if (isset($arFields["USER_GROUP_BUY"]) && is_array($arFields["USER_GROUP_BUY"]) && !empty($arFields["USER_GROUP_BUY"])) {
$DB->Query("DELETE FROM b_catalog_group2group WHERE CATALOG_GROUP_ID = " . $ID . " AND BUY = 'Y'");
foreach ($arFields["USER_GROUP_BUY"] as &$intValue) {
$strSql = "INSERT INTO b_catalog_group2group(CATALOG_GROUP_ID, GROUP_ID, BUY) VALUES(" . $ID . ", " . $intValue . ", 'Y')";
$DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
}
if (isset($intValue)) {
unset($intValue);
}
}
if (isset($arFields["USER_LANG"]) && is_array($arFields["USER_LANG"]) && !empty($arFields["USER_LANG"])) {
$DB->Query("DELETE FROM b_catalog_group_lang WHERE CATALOG_GROUP_ID = " . $ID);
foreach ($arFields["USER_LANG"] as $key => $value) {
$strSql = "INSERT INTO b_catalog_group_lang(CATALOG_GROUP_ID, LID, NAME) " . "VALUES(" . $ID . ", '" . $DB->ForSql($key) . "', '" . $DB->ForSql($value) . "')";
$DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
}
}
if (!defined("CATALOG_SKIP_CACHE") || !CATALOG_SKIP_CACHE) {
$CACHE_MANAGER->CleanDir("catalog_group");
$CACHE_MANAGER->Clean("catalog_group_perms");
}
$stackCacheManager->Clear("catalog_GetQueryBuildArrays");
$stackCacheManager->Clear("catalog_discount");
$events = GetModuleEvents("catalog", "OnGroupUpdate");
while ($arEvent = $events->Fetch()) {
ExecuteModuleEventEx($arEvent, array($ID, $arFields));
}
return true;
}
示例2: Update
function Update($ID, $arFields)
{
global $DB, $CACHE_MANAGER, $stackCacheManager;
$ID = (int) $ID;
if ($ID <= 0) {
return false;
}
foreach (GetModuleEvents("catalog", "OnBeforeGroupUpdate", true) as $arEvent) {
if (ExecuteModuleEventEx($arEvent, array($ID, &$arFields)) === false) {
return false;
}
}
if (!CCatalogGroup::CheckFields("UPDATE", $arFields, $ID)) {
return false;
}
$strUpdate = $DB->PrepareUpdate("b_catalog_group", $arFields);
if (!empty($strUpdate)) {
if (isset($arFields["BASE"]) && $arFields["BASE"] == "Y") {
$strBaseUpdate = "BASE = 'N', TIMESTAMP_X = " . $DB->GetNowFunction();
if (array_key_exists('MODIFIED_BY', $arFields)) {
$strBaseUpdate .= ", MODIFIED_BY = " . $arFields["MODIFIED_BY"];
}
$strSql = "UPDATE b_catalog_group SET " . $strBaseUpdate . " WHERE ID != " . $ID . " AND BASE = 'Y'";
$DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
self::$arBaseGroupCache = array();
if (defined('CATALOG_GLOBAL_VARS') && 'Y' == CATALOG_GLOBAL_VARS) {
global $CATALOG_BASE_GROUP;
$CATALOG_BASE_GROUP = self::$arBaseGroupCache;
}
}
$strSql = "UPDATE b_catalog_group SET " . $strUpdate . " WHERE ID = " . $ID;
$DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
}
if (isset($arFields["USER_GROUP"]) && is_array($arFields["USER_GROUP"]) && !empty($arFields["USER_GROUP"])) {
$DB->Query("DELETE FROM b_catalog_group2group WHERE CATALOG_GROUP_ID = " . $ID . " AND BUY <> 'Y'");
foreach ($arFields["USER_GROUP"] as &$intValue) {
$strSql = "INSERT INTO b_catalog_group2group(CATALOG_GROUP_ID, GROUP_ID, BUY) VALUES(" . $ID . ", " . $intValue . ", 'N')";
$DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
}
if (isset($intValue)) {
unset($intValue);
}
}
if (isset($arFields["USER_GROUP_BUY"]) && is_array($arFields["USER_GROUP_BUY"]) && !empty($arFields["USER_GROUP_BUY"])) {
$DB->Query("DELETE FROM b_catalog_group2group WHERE CATALOG_GROUP_ID = " . $ID . " AND BUY = 'Y'");
foreach ($arFields["USER_GROUP_BUY"] as &$intValue) {
$strSql = "INSERT INTO b_catalog_group2group(CATALOG_GROUP_ID, GROUP_ID, BUY) VALUES(" . $ID . ", " . $intValue . ", 'Y')";
$DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
}
if (isset($intValue)) {
unset($intValue);
}
}
if (isset($arFields["USER_LANG"]) && is_array($arFields["USER_LANG"]) && !empty($arFields["USER_LANG"])) {
$DB->Query("DELETE FROM b_catalog_group_lang WHERE CATALOG_GROUP_ID = " . $ID);
foreach ($arFields["USER_LANG"] as $key => $value) {
$strSql = "INSERT INTO b_catalog_group_lang(CATALOG_GROUP_ID, LANG, NAME) VALUES(" . $ID . ", '" . $DB->ForSql($key) . "', '" . $DB->ForSql($value) . "')";
$DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
}
}
if (!defined("CATALOG_SKIP_CACHE") || !CATALOG_SKIP_CACHE) {
$CACHE_MANAGER->CleanDir("catalog_group");
$CACHE_MANAGER->Clean("catalog_group_perms");
}
$stackCacheManager->Clear("catalog_GetQueryBuildArrays");
$stackCacheManager->Clear("catalog_discount");
foreach (GetModuleEvents("catalog", "OnGroupUpdate", true) as $arEvent) {
ExecuteModuleEventEx($arEvent, array($ID, $arFields));
}
return true;
}
示例3: Update
/**
* <p>Функция изменяет параметры типа цены с кодом ID на значения из массива arFields. При этом сохраняются как языкозависимые параметры типа, так и параметры, которые не зависят от языка. Так же есть возможность указать группы пользователей, члены которых могут просматривать и покупать товары по ценам этого типа. </p>
*
*
*
*
* @param int $ID Код изменяемого типа цены.
*
*
*
* @param array $arFields Ассоциативный массив параметров типа цены, ключами которого
* являются названия параметров, а значениями - новые значения.
* Допустимые параметры: <ul> <li>BASE - флаг (Y/N) является ли тип
* базовым;</li> <li>NAME - внутреннее название типа цены;</li> <li>SORT - индекс
* сортировки;</li> <li>XML_ID - внешний код;</li> <li>MODIFIED_BY - ID последнего
* изменившего тип цен;</li> <li>USER_GROUP - массив кодов групп
* пользователей, члены которых могут видеть цены этого типа;</li>
* <li>USER_GROUP_BUY - массив кодов групп пользователей, члены которых могут
* покупать товары по ценам этого типа;</li> <li>USER_LANG - ассоциативный
* массив языкозависимых параметров типа цены, ключами которого
* являются коды языков, а значениями - названия этого типа цены на
* соответствующем языке.</li> </ul>
*
*
*
* @return bool <p>Возвращает <i>true</i> в случае успешного изменения параметров типа
* цени и <i>false</i> - в случае ошибки.</p><a name="examples"></a>
*
*
* <h4>Example</h4>
* <pre>
* <?
* $arFields = array(
* "NAME" => "retail",
* "SORT" => 100,
* "USER_GROUP" => array(2, 4), // видят цены члены групп 2 и 4
* "USER_GROUP_BUY" => array(2), // покупают по этой цене
* // только члены группы 2
* "USER_LANG" => array(
* "ru" => "Розничная",
* "en" => "Retail"
* )
* );
*
* if (!CCatalogGroup::Update($ID, $arFields))
* echo "Ошибка добавления типа цены";
* ?>
* </pre>
*
*
* @static
* @link http://dev.1c-bitrix.ru/api_help/catalog/classes/ccataloggroup/ccataloggroup__update.a6d06df4.php
* @author Bitrix
*/
public static function Update($ID, $arFields)
{
global $DB;
global $CACHE_MANAGER;
global $stackCacheManager;
global $CATALOG_BASE_GROUP;
global $USER;
$ID = intval($ID);
if (0 >= $ID)
return false;
$arFields1 = array();
if (array_key_exists('CREATED_BY',$arFields))
unset($arFields['CREATED_BY']);
if (array_key_exists('DATE_CREATE',$arFields))
unset($arFields['DATE_CREATE']);
if (array_key_exists('TIMESTAMP_X', $arFields))
unset($arFields['TIMESTAMP_X']);
$intUserID = 0;
if (CCatalog::IsUserExists())
{
$intUserID = intval($USER->GetID());
if (!array_key_exists('MODIFIED_BY', $arFields) || intval($arFields["MODIFIED_BY"]) <= 0)
$arFields["MODIFIED_BY"] = $intUserID;
}
$arFields1['TIMESTAMP_X'] = $DB->GetNowFunction();
if (!CCatalogGroup::CheckFields("UPDATE", $arFields, $ID))
return false;
foreach(GetModuleEvents("catalog", "OnBeforeGroupUpdate", true) as $arEvent)
{
if (ExecuteModuleEventEx($arEvent, array($ID, &$arFields))===false)
return false;
}
if (isset($arFields["BASE"]) && $arFields["BASE"] == "Y")
{
$strUpdate = "BASE = 'N', TIMESTAMP_X = ".$DB->GetNowFunction();
if (array_key_exists('MODIFIED_BY', $arFields))
{
$strUpdate .= ", MODIFIED_BY = ".$arFields["MODIFIED_BY"];
}
$strSql = "UPDATE b_catalog_group SET ".$strUpdate." WHERE ID != ".$ID." AND BASE = 'Y'";
//.........这里部分代码省略.........