%PDF- %PDF-
Server IP : 37.220.80.31 / Your IP : 3.144.7.151 Web Server : Apache/2.4.52 (Ubuntu) System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64 User : www-root ( 1010) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/modules/seo/lib/ |
Upload File : |
<?php /** * Bitrix Framework * @package bitrix * @subpackage seo * @copyright 2001-2013 Bitrix */ namespace Bitrix\Seo; use Bitrix\Main\Entity; /** * Class SitemapEntityTable * @package Bitrix\Seo * * DO NOT WRITE ANYTHING BELOW THIS * * <<< ORMENTITYANNOTATION * @method static EO_SitemapEntity_Query query() * @method static EO_SitemapEntity_Result getByPrimary($primary, array $parameters = array()) * @method static EO_SitemapEntity_Result getById($id) * @method static EO_SitemapEntity_Result getList(array $parameters = array()) * @method static EO_SitemapEntity_Entity getEntity() * @method static \Bitrix\Seo\EO_SitemapEntity createObject($setDefaultValues = true) * @method static \Bitrix\Seo\EO_SitemapEntity_Collection createCollection() * @method static \Bitrix\Seo\EO_SitemapEntity wakeUpObject($row) * @method static \Bitrix\Seo\EO_SitemapEntity_Collection wakeUpCollection($rows) */ class SitemapEntityTable extends Entity\DataManager { const ENTITY_TYPE = 'ENTITY'; protected static $entityCache = array(); public static function getFilePath() { return __FILE__; } public static function getTableName() { return 'b_seo_sitemap_entity'; } public static function add(array $data) { $sitemapId = $data['SITEMAP_ID']; $entityId = $data['ENTITY_ID']; return parent::add(array( 'ENTITY_TYPE' => static::ENTITY_TYPE, 'ENTITY_ID' => $entityId, 'SITEMAP_ID' => $sitemapId, )); } public static function getMap() { $fieldsMap = array( 'ID' => array( 'data_type' => 'integer', 'primary' => true, 'autocomplete' => true, ), 'ENTITY_TYPE' => array( 'data_type' => 'string', 'required' => true, ), 'ENTITY_ID' => array( 'data_type' => 'integer', 'required' => true, ), 'SITEMAP_ID' => array( 'data_type' => 'integer', 'required' => true, ), 'SITEMAP' => array( 'data_type' => 'Bitrix\Seo\SitemapTable', 'reference' => array('=this.SITEMAP_ID' => 'ref.ID'), ) ); return $fieldsMap; } public static function getSitemapsByEntityId($entityId) { if(!isset(self::$entityCache[$entityId.'Sitemaps'])) { self::$entityCache[$entityId] = array(); $dbRes = self::getList(array( 'filter' => array( 'ENTITY_TYPE' => static::ENTITY_TYPE, 'ENTITY_ID' => $entityId ), 'select' => array( 'SITEMAP_ID', 'SITE_ID' => 'SITEMAP.SITE_ID', 'SITEMAP_SETTINGS' => 'SITEMAP.SETTINGS' ) )); $arSitemaps = array(); while($arRes = $dbRes->fetch()) { $arRes["SITEMAP_SETTINGS"] = unserialize($arRes['SITEMAP_SETTINGS'], ['allowed_classes' => false]); self::$entityCache[$entityId][] = $arRes; if ($arRes["SITEMAP_SETTINGS"][static::ENTITY_TYPE."_ACTIVE"] && $arRes["SITEMAP_SETTINGS"][static::ENTITY_TYPE."_ACTIVE"][$entityId] == "Y") { $arSitemaps[] = array( 'SITEMAP_ID' => $arRes['SITEMAP_ID'], 'SITE_ID' => $arRes['SITE_ID'], 'PROTOCOL' => $arRes["SITEMAP_SETTINGS"]['PROTO'] == 1 ? 'https' : 'http', 'DOMAIN' => $arRes["SITEMAP_SETTINGS"]['DOMAIN'], 'ROBOTS' => $arRes["SITEMAP_SETTINGS"]['ROBOTS'], 'SITEMAP_DIR' => $arRes["SITEMAP_SETTINGS"]['DIR'], 'SITEMAP_FILE' => $arRes["SITEMAP_SETTINGS"]['FILENAME_INDEX'], 'SITEMAP_FILE_'.static::ENTITY_TYPE => $arRes["SITEMAP_SETTINGS"]['FILENAME_'.static::ENTITY_TYPE], 'SITEMAP_SETTINGS' => $arRes["SITEMAP_SETTINGS"] ); } } self::$entityCache[$entityId.'Sitemaps'] = $arSitemaps; } return self::$entityCache[$entityId.'Sitemaps']; } public static function clearBySitemap($sitemapId) { $connection = \Bitrix\Main\Application::getConnection(); $connection->query(" DELETE FROM ".self::getTableName()." WHERE SITEMAP_ID=".intval($sitemapId)." AND ENTITY_TYPE='".static::ENTITY_TYPE."' "); } }