Вспомогательный класс CdevUtils
Метод CdevUtils::SetArrReplace
Вызываем:
php
use Cdev\Help\CdevUtils;Используем:
php
$arr = CdevUtils::SetArrReplace('iBlockType');Собирается массив со значениями NAME и CODE стандартных полей инфоблока, и другие атрибуты
Информация
Если в метод не передать тип инфоблока, то исподзуется стандартный tagtext
php
[ARR] => Array
(
[IBLOCK_ID] =>
[IBLOCK_TYPE] => tagtext
[ITEMS] => Array
(
[0] => Array
(
[NAME] => 2025
[~NAME] => 2025
[CODE] => cur_year
[~CODE] => cur_year
)
[1] => Array
(
[NAME] => 2026
[~NAME] => 2026
[CODE] => next_year
[~CODE] => next_year
)
)
)public static function SetArrReplace($IBLOCK_TYPE = "tagtext")
Класс полностью
Листинг файла
php
<?php
namespace Cdev\Help;
use Bitrix\Main\Loader;
Loader::includeModule('iblock');
// use Bitrix\Main;
//CModule::IncludeModule("iblock");
IncludeModuleLangFile(__FILE__);
class CdevUtils
{
static public function GetArrString($var, $sep, $key = NULL)
{
$arrVar = explode($sep, $var);
$out = (isset($key)) ? $arrVar[$key] : $arrVar;
return $out;
}
static public function PhoneNumber($phoneNumder)
{
$phone = preg_replace('![^0-9]+!', '', $phoneNumder);
$phone = "+" . $phone;
return $phone;
}
// static public function BreadCrumbs()
// {
// $out = 0;
// $out = ($APPLICATION->GetDirProperty("breadcrumbs") == "Y") ? $out + 1 : $out;
// return $out;
// }
static public function SocialNetIcons($socName)
{
switch ($socName) {
case 'vk':
$out = '<i class="fa fa-vk" aria-hidden="true"></i>';
break;
case 'wa':
$out = '<i class="bi bi-whatsapp"></i>';
break;
case 'tg':
$out = '<i class="bi bi-telegram"></i>';
break;
case 'skype':
$out = '<i class="bi bi-skype"></i>';
break;
default:
# code...
break;
}
return $out;
}
static public function SocialNet($arSocial = [], $style = '', $curPageName = '')
{
if (isset($arSocial) && !empty($arSocial)) {
switch ($style) {
case '1':
#
break;
default:
$start = '<ul class="nav">';
$end = '</ul>';
break;
}
$out = $start;
foreach ($arSocial as $key => $soc) {
switch ($soc['1']) {
case 'vk':
case 'ok':
case 'tt':
$url = $soc['0'];
break;
case 'wa':
$url = 'https://wa.me/' . $soc['0'] . '?text=' . GetMessage("SEND_TEXT") . urlencode($curPageName);
break;
case 'tg':
$url = 'https://t.me/' . $soc['0'] . '?text=' . GetMessage("SEND_TEXT") . urlencode($curPageName);
break;
case 'skype':
$url = 'skype:' . $soc['0'] . '?chat';
break;
default:
# code...
break;
}
$out .= '<li class="nav-item"><a class="nav-link px-1 fs-4" target=_blank href="' . $url . '">' . self::SocialNetIcons($soc['1']) . '</a></li>';
}
$out .= $end;
return $out;
}
}
public static function setSettingsJsonDB($array, $jsonDbUrl)
{
if ($array) {
$array = json_encode($array);
file_put_contents($jsonDbUrl, $array);
}
}
public static function getSettingsJsonDb($jsonDbUrl)
{
$arSettings = file_get_contents($jsonDbUrl);
$arSettings = json_decode($arSettings, true);
return $arSettings;
}
public static function multiMenuArray($arResult)
{
foreach ($arResult as $key => $item) {
$arChild = [];
if ($item['IS_PARENT'] == "1" && $item['DEPTH_LEVEL'] == "1") {
foreach ($arResult as $key1 => $child) {
if ($child['DEPTH_LEVEL'] > "1" && $arResult[$key]['CHAIN']['0'] == $child["CHAIN"]['0']) {
$arChild[] = $child;
}
}
$arResult[$key]['CHILD'] = $arChild;
}
}
$arResult1 = [];
foreach ($arResult as $key => $value) {
if ($value["DEPTH_LEVEL"] == "1") {
$arResult1[$key] = $value;
}
}
$arResult = $arResult1;
return $arResult;
}
public static function SetArrReplace($IBLOCK_TYPE = "tagtext")
{
$arFilter["IBLOCK_TYPE"] = ($IBLOCK_TYPE) ? $IBLOCK_TYPE : false;
$arFilter["ACTIVE"] = "Y";
$arSelect = ["NAME", "CODE"];
$res = \CIBlockElement::GetList(array(), $arFilter, false, array(), $arSelect);
while ($ob = $res->GetNextElement()) {
$arFields[] = $ob->GetFields();
}
$arrFields["IBLOCK_ID"] = $IBLOCK_ID;
$arrFields["IBLOCK_TYPE"] = $IBLOCK_TYPE;
$arrFields["ITEMS"] = $arFields;
$arrFields["RES"] = $res;
return $arrFields;
}
public static function explodeTrim($string)
{
foreach ($string as $key => $value) {
$arPhone = explode('|', $value);
foreach ($arPhone as $key1 => $ph) {
$arPhone[$key1] = trim($ph);
}
$string[$key] = $arPhone;
}
return $string;
}
}