403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/zverushki.seofilter/lib/sections/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/zverushki.seofilter/lib/sections/section.php
<?php
/**
 * Created by PhpStorm.
 * User: luk
 * Date: 21.02.2021
 * Time: 21:06
 */
namespace Zverushki\Seofilter\Sections;

use Bitrix\Main\Loader,
	Bitrix\Main\Localization\Loc;

Loader::includeModule('iblock');

class Section
{
	private static $fields = [];
	private static $sections = [];
	public static function initMainFields(){
		static::$fields = [
			'ID' => Loc::getMessage('SEOFILTER_SECTION_TITLE_ID'),
			'NAME' => Loc::getMessage('SEOFILTER_SECTION_TITLE_NAME'),
			'CODE' => Loc::getMessage('SEOFILTER_SECTION_TITLE_CODE'),
			'SECTION_PAGE_URL' => Loc::getMessage('SEOFILTER_SECTION_TITLE_SECTION_PAGE_URL')
		];
		return static::$fields;
	}

	/**
	 * Получить список полей для раздела
	 * @param Ид Инфоблока $iblockId
	 * @param bool $all
	 *
	 * @return array
	 */
	public static function initFields($iblockId, $all = true){
		$fields = static::initMainFields();
		if($all){
			$rs = \CUserTypeEntity::GetList(['SORT' => 'ASC', 'NAME' => 'ASC'], ['ENTITY_ID' => 'IBLOCK_'.$iblockId.'_SECTION', 'LANG' => LANGUAGE_ID]);
			while($arUserField = $rs->Fetch())
			{
				if(in_array($arUserField['USER_TYPE_ID'], ['file', 'video', 'boolean', 'iblock_section', 'iblock_element', 'hlblock']))
					continue;

				$fields[$arUserField['FIELD_NAME']] = $arUserField['LIST_COLUMN_LABEL'] ? $arUserField['LIST_COLUMN_LABEL'] : $arUserField['FIELD_NAME'];
			}
		}
		return $fields;
	}

	/**
	 * Получить значения полей раздела для подмены
	 * @param Ид Инфоблока $iblockId
	 * @param Ид раздела   $sectionId
	 * @param bool $all
	 *
	 * @return mixed
	 */
	public static function initSectionFields($iblockId, $sectionId, $all = true){
		$code = ($all ? 'all' : 'not');
		if(static::$sections[$code][$iblockId][$sectionId])
			return static::$sections[$code][$iblockId][$sectionId];

		$fields = static::initFields($iblockId, $all);
		return static::$sections[$code][$iblockId][$sectionId] = \CIBlockSection::GetList(['ID' => 'ASC'], ['IBLOCK_ID' => $iblockId, 'ID' => $sectionId], false, array_keys($fields), ['nTopCount' => 1])->GetNext(false, false);
	}

	public static function replace(&$setting, &$seo = []){
		if(
			!empty($seo) ||
			preg_match('/\#SECTION_(.+?)\#/i', $setting['TAG_NAME']) ||
			preg_match('/\#SECTION_(.+?)\#/i', $setting['TAG_SECTION_NAME'])
		)
			$section = Section::initSectionFields($setting['IBLOCK_ID'], $setting['SECTION_ID']);
		elseif(preg_match('/\#SECTION_(.+?)\#/i', $setting['URL_CPU'])){
			$section = Section::initSectionFields($setting['IBLOCK_ID'], $setting['SECTION_ID'], false);
		}

		if($section)
			foreach($section as $code => $val){
				if($setting['URL_CPU'])
					$setting['URL_CPU'] = str_replace('//', '/', str_replace('#SECTION_' . $code . '#', $val, $setting['URL_CPU']));

				if($setting['TAG_NAME'])
					$setting['TAG_NAME'] = str_replace('#SECTION_' . $code . '#', $val, $setting['TAG_NAME']);

				if($setting['TAG_SECTION_NAME'])
					$setting['TAG_SECTION_NAME'] = str_replace('#SECTION_' . $code . '#', $val, $setting['TAG_SECTION_NAME']);

				if($setting['ZVERUSHKI_SEOFILTER_INTERNALS_SETTINGS_SETTING_PAGE_TITLE'])
					$setting['ZVERUSHKI_SEOFILTER_INTERNALS_SETTINGS_SETTING_PAGE_TITLE'] = str_replace('#SECTION_' . $code . '#', $val, $setting['ZVERUSHKI_SEOFILTER_INTERNALS_SETTINGS_SETTING_PAGE_TITLE']);

				if($seo){
					if(!is_array($val))
						$val = [ $val ];

					foreach($seo as $c => $l)
						$seo[$c] = preg_replace('/\#SECTION_' . $code . '\#/i', implode(', ', $val), $l);
				}
			}
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit