2namespace Bitrix\Landing;
4use \Bitrix\Landing\Internals\TemplateRefTable;
18 private const CACHE_DIR =
'/landing/is_area/';
32 'ID',
'AREA',
'LANDING_ID'
36 '=ENTITY_TYPE' =>
$type
39 while (($row =
$res->fetch()))
41 if (isset(
$data[$row[
'AREA']]) &&
$data[$row[
'AREA']] > 0)
43 if ($row[
'LANDING_ID'] !=
$data[$row[
'AREA']])
45 TemplateRefTable::update($row[
'ID'],
array(
46 'LANDING_ID' =>
$data[$row[
'AREA']]
50 unset(
$data[$row[
'AREA']]);
54 TemplateRefTable::delete($row[
'ID']);
58 foreach (
$data as $area => $lid)
62 TemplateRefTable::add(
array(
64 'ENTITY_TYPE' =>
$type,
79 protected static function get($id,
$type)
81 static $staticData =
array();
84 if (!isset($staticData[
$type . $id]))
95 '=ENTITY_TYPE' =>
$type
98 while (($row =
$res->fetch()))
100 $data[$row[
'AREA']] = $row[
'LANDING_ID'];
107 return $staticData[
$type . $id];
145 return self::get($id, self::ENTITY_TYPE_SITE);
155 return self::get($id, self::ENTITY_TYPE_LANDING);
167 $cache = new \CPHPCache();
169 $cacheId = is_array($lid) ? md5(serialize($lid)) : (int)$lid;
171 if ($cache->InitCache($cacheTime, $cacheId, self::CACHE_DIR))
177 $cache->StartDataCache();
179 $res = TemplateRefTable::getList([
181 'LANDING_ID' => $lid,
188 foreach ($lid as $id)
192 while ($row =
$res->fetch())
194 $result[$row[
'LANDING_ID']] =
true;
222 while ($row =
$res->fetch())
224 TemplateRefTable::delete($row[
'ID']);
236 if (
$type == self::ENTITY_TYPE_SITE)
238 return '\Bitrix\Landing\Site';
240 else if (
$type == self::ENTITY_TYPE_LANDING)
242 return '\Bitrix\Landing\Landing';
static hasAccessForLanding($landingId, $accessType)
static hasAccessForSite($siteId, $accessType, $deleted=false)
static getForLanding($id)
static landingIsArea(int|array $lid)
static resolveClassByType($type)
static set($id, $type, array $data=array())
const ENTITY_TYPE_LANDING
static setForLanding($id, array $data=array())
static setForSite($id, array $data=array())
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
BXClearCache($full=false, $initdir='')