本文整理汇总了PHP中Bitrix\Sale\Location\LocationTable::update方法的典型用法代码示例。如果您正苦于以下问题:PHP LocationTable::update方法的具体用法?PHP LocationTable::update怎么用?PHP LocationTable::update使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Bitrix\Sale\Location\LocationTable
的用法示例。
在下文中一共展示了LocationTable::update方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: stageIntegrityPreserve
protected function stageIntegrityPreserve()
{
$lay = $this->getRemoteLayout(true);
$this->restoreIndexes('IX_B_SALE_LOC_PARENT');
$res = Location\LocationTable::getList(array('select' => array('ID', 'CODE'), 'filter' => array('=PARENT_ID' => 0)));
$relations = array();
$code2id = array();
while ($item = $res->fetch()) {
if (isset($lay[$item['CODE']]) && (string) $lay[$item['CODE']]['PARENT_CODE'] != '') {
$relations[$item['CODE']] = $lay[$item['CODE']]['PARENT_CODE'];
}
// relations is a match between codes from the layout file
$code2id[$item['CODE']] = $item['ID'];
}
$parentCode2id = $this->getLocationCodeToIdMap($relations);
foreach ($code2id as $code => $id) {
if (isset($parentCode2id[$relations[$code]]) && (string) $parentCode2id[$relations[$code]] != '') {
$res = Location\LocationTable::update($id, array('PARENT_ID' => $parentCode2id[$relations[$code]]));
if (!$res->isSuccess()) {
throw new Main\SystemException('Cannot make element become a child of its legal parent');
}
}
}
$this->nextStage();
}
示例2: RebindLocationTriplet
protected static function RebindLocationTriplet($fields = array())
{
$country = intval($fields['COUNTRY_ID']);
$region = intval($fields['REGION_ID']);
$city = intval($fields['CITY_ID']);
foreach (GetModuleEvents('sale', 'OnBeforeLocationAdd', true) as $arEvent) {
if (ExecuteModuleEventEx($arEvent, array($fields)) === false) {
return false;
}
}
if ($region && $country) {
$uRes = \Bitrix\Sale\Location\LocationTable::update($region, array('PARENT_ID' => $country));
}
if ($city) {
if ($region) {
$uRes = \Bitrix\Sale\Location\LocationTable::update($city, array('PARENT_ID' => $region));
} elseif ($country) {
$uRes = \Bitrix\Sale\Location\LocationTable::update($city, array('PARENT_ID' => $country));
}
}
if (intval($fields['SORT'])) {
$loc2Update = $city ? $city : ($region ? $region : ($country ? $country : false));
if ($loc2Update) {
$uRes = \Bitrix\Sale\Location\LocationTable::update($loc2Update, array('SORT' => $fields['SORT']));
}
}
foreach (GetModuleEvents('sale', 'OnLocationAdd', true) as $arEvent) {
ExecuteModuleEventEx($arEvent, array($loc2Update, $fields));
}
return $loc2Update;
}
示例3: AddLocation
/**
* <p>Метод добавляет новое местоположение на основании параметров массива <i> arFields</i>. Метод динамичный.</p> <p class="note"><b>Внимание!</b> Начиная с версии 14.10.0 метод не обновляется и обратная совместимость не поддерживается. Рекомендуется использовать методы нового ядра D7. Примеры работы с новым ядром можно увидеть <a href="https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&LESSON_ID=3570" >здесь</a>.</p>
*
*
* @param array $arFields Ассоциативный массив параметров местоположения с ключами: <ul> <li>
* <b>SORT</b> - индекс сортировки; </li> <li> <b>COUNTRY_ID</b> - код страны;</li> <li>
* <b>REGION_ID</b> - код региона;</li> <li> <b>CITY_ID</b> - код города.</li> </ul>
*
* @return int <p>Возвращается код добавленного местоположения или <i>false</i> у
* случае ошибки.</p> <a name="examples"></a>
*
* <h4>Example</h4>
* <pre>
* Параметры вызова
* </h
* <tr>
* <th width="15%">Параметр</th>
* <th>Описание</th>
* </tr>
* <tr>
* <td>arFields</td>
* <td>Ассоциативный массив параметров местоположения с ключами:
* <ul>
* <li>
* <b>SORT</b> - индекс сортировки; </li>
* <li>
* <b>COUNTRY_ID</b> - код страны;</li>
* <li>
* <b>REGION_ID</b> - код региона;</li>
* <li>
* <b>CITY_ID</b> - код города.</li>
* </ul>
* </td>
* </tr>
*
*
*
* <?
* // Добавим местоположение из страны с кодом 2 и города с кодом 10
* $ID = CSaleLocation::AddLocation(
* array(
* "COUNTRY_ID" => 2,
* "CITY_ID" => 10
* )
* );
* ?>
* </pre>
*
*
* @static
* @link http://dev.1c-bitrix.ru/api_help/sale/classes/csalelocation/csalelocation__addlocation.21fe0465.php
* @author Bitrix
*/
public static function AddLocation($arFields)
{
global $DB;
if (!CSaleLocation::LocationCheckFields("ADD", $arFields)) {
return false;
}
if (self::isLocationProMigrated()) {
return self::RebindLocationTriplet($arFields);
}
// make IX_B_SALE_LOC_CODE feel happy
$arFields['CODE'] = 'randstr' . rand(999, 99999);
foreach (GetModuleEvents('sale', 'OnBeforeLocationAdd', true) as $arEvent) {
if (ExecuteModuleEventEx($arEvent, array($arFields)) === false) {
return false;
}
}
$arInsert = $DB->PrepareInsert("b_sale_location", $arFields);
$strSql = "INSERT INTO b_sale_location(" . $arInsert[0] . ") " . "VALUES(" . $arInsert[1] . ")";
$DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
$ID = IntVal($DB->LastID());
// make IX_B_SALE_LOC_CODE feel happy
Location\LocationTable::update($ID, array('CODE' => $ID));
foreach (GetModuleEvents('sale', 'OnLocationAdd', true) as $arEvent) {
ExecuteModuleEventEx($arEvent, array($ID, $arFields));
}
return $ID;
}
示例4: AddLocationPart
private static function AddLocationPart($creat, $type, $parent, $sort)
{
$langs = self::getLanguages();
$types = self::getTypes();
$creatFlds = array();
if(is_numeric($creat))
{
// check whether location exists...
$res = Location\LocationTable::getList(array('filter' => array('='.$type.'_ID' => $creat, 'TYPE_ID' => $types[$type]), 'select' => array('ID'), 'limit' => 1))->fetch();
if($res['ID'])
{
$parent = intval($res['ID']);
}
else
{
if($type == 'COUNTRY')
$res = self::GetCountryByID($creat); //!!!
elseif($type == 'REGION')
$res = self::GetRegionByID($creat); //!!!
elseif($type == 'CITY')
$res = self::GetCityByID($creat); //!!!
if(!$res) // no such type exists, smth strange
throw new Exception('No such '.$type);
// create location using type found
$creatFlds[$type.'_ID'] = $res['ID'];
$creatFlds['NAME'] = array();
foreach($langs as $lid)
{
if($type == 'COUNTRY')
$name = self::GetCountryLangByID($res['ID'], $lid); //!!!
elseif($type == 'REGION')
$name = self::GetRegionLangByID($res['ID'], $lid); //!!!
elseif($type == 'CITY')
$name = self::GetCityLangByID($res['ID'], $lid); //!!!
$creatFlds['NAME'][$lid] = array(
'NAME' => $name['NAME'],
'SHORT_NAME' => $name['SHORT_NAME']
);
}
}
}
elseif(is_array($creat)) // should create type
{
$creatFlds[$type.'_ID'] = self::getFreeId($type);
$creatFlds['NAME'] = array();
foreach($creat as $lid => $name)
{
$creatFlds['NAME'][$lid] = array(
'NAME' => $name['NAME'],
'SHORT_NAME' => $name['SHORT_NAME']
);
}
}
if(!empty($creatFlds))
{
$creatFlds['PARENT_ID'] = $parent;
$creatFlds['TYPE_ID'] = $types[$type];
$creatFlds['CODE'] = rand(999,99999999);
if($sort !== false)
$creatFlds['SORT'] = $sort;
$res = Location\LocationTable::add($creatFlds);
if(!$res->isSuccess())
throw new Exception('Cannot add location');
$parent = $res->getId();
Location\LocationTable::update($parent, array('CODE' => $parent));
}
return $parent;
}
示例5: AddLocation
function AddLocation($arFields)
{
global $DB;
if (!CSaleLocation::LocationCheckFields("ADD", $arFields))
return false;
// make IX_B_SALE_LOC_CODE feel happy
$arFields['CODE'] = 'randstr'.rand(999, 99999);
$db_events = GetModuleEvents("sale", "OnBeforeLocationAdd");
while ($arEvent = $db_events->Fetch())
if (ExecuteModuleEventEx($arEvent, array($arFields))===false)
return false;
$arInsert = $DB->PrepareInsert("b_sale_location", $arFields);
$strSql =
"INSERT INTO b_sale_location(".$arInsert[0].") ".
"VALUES(".$arInsert[1].")";
$DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__);
$ID = IntVal($DB->LastID());
// make IX_B_SALE_LOC_CODE feel happy
Location\LocationTable::update($ID, array('CODE' => $ID));
$events = GetModuleEvents("sale", "OnLocationAdd");
while ($arEvent = $events->Fetch())
ExecuteModuleEventEx($arEvent, array($ID, $arFields));
return $ID;
}