Разработка сайтов на 1С-Битрикс
1 subscriber
4 photos
21 links
Меня зовут Лев, занимаюсь разработкой сайтов на 1С-Битрикс 5+ лет

Тут буду публиковать разные мелкие фишечки и лайфхаки которые помогут тем кто работает с сайтам на Битрикс

Качественаня разработка/доработка сайтов

Демидов Лев: https://t.me/LevDemidov
Download Telegram
Стили для вотсапа и телеграма в шапке

.whatss-app img {
width: 40px;
margin-right: 10px;
}

.social {
display: flex;
align-items: center;
}

.pulse {
margin-right: 10px;
display: inline-block;
width: 12px;
height: 12px;
border-radius: 50%;
background: #24d200;
cursor: pointer;
box-shadow: 0 0 0 rgb(204 169 44 / 40%);
animation: pulse 2s infinite;
}
Печать страницы

<a class ="print-doc" href="javascript:(print());"> Распечатать</a>
Обратиться к дочернему элементу, элемента с таким-то классом

.basket-order-wrapper > :nth-child(1)
Ошибка

Cannot access offset of type string on string (0)

Все инструкции в интернете не рабочие, нужно просто переписать вывод как вывод массива

Было

<?if ($arResult["PROPERTIES"]["FUNCTIONS"]["~VALUE"]["TEXT"]) {?>
<section class="w-400">
<div class="h2 detail-line">Функции</div>

<?=$arResult["PROPERTIES"]["FUNCTIONS"]["~VALUE"]["TEXT"]?>
<!--
<ul class="detail-list">
<?foreach ($arResult["PROPERTIES"]["FUNCTIONS"]["VALUE"] as $property) {?>
<li><?=$property?></li>
<?}?>
</ul>
-->
</section>
<?}?>

Должно быть

<?if ($arResult["DISPLAY_PROPERTIES"]) {?>
<section>
<div class="h2 detail-line">Характеристики</div>

<table class="property-list">
<?foreach ($arResult["DISPLAY_PROPERTIES"] as $property) {?>
<tr>
<td><span><?=$property["NAME"]?></span></td>
<td>
<?
$nf = false;
if ($property["MULTIPLE"] == "Y") {
foreach($property["VALUE"] as $value) {
if ($nf) echo(" / ");
echo($value);
$nf = true;
}
} else {
echo($property["VALUE"]);
}?>

</td>
</tr>
<?}?>
</table>
</section>
<?}?>
Получить единицу измерения товара

<?
var_dump($arParams["ELEMENT_ID"]);

$arMeasure = \Bitrix\Catalog\ProductTable::getCurrentRatioWithMeasure($arParams["ELEMENT_ID"]);
echo $arMeasure[$arParams["ELEMENT_ID"]]['MEASURE']['SYMBOL_RUS'];

?>
Правильная проверка на наличие чего-то

<? if ($arQuantityData["TEXT"] != 'Уточнить поступление') {?>
<div class="ostatocc">
<?
$arMeasure = \Bitrix\Catalog\ProductTable::getCurrentRatioWithMeasure($arItem["ID"]);
echo $arMeasure[$arItem["ID"]]['MEASURE']['SYMBOL_RUS'];
?>
</div>
<?}?>
php редирект

<?
if (str_contains($_SERVER['REQUEST_URI'], 'WEB_FORM_ID=16')) {
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://aveon.ru/catalog/");
}
?>
Микроразметка контактов

<script id="eeeeeeeeeee" type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"address": {
"@type": "PostalAddress",
"addressLocality": "Екатеринбург",
"addressRegion": "Свердловская область",
"streetAddress": "Металлистов, 1",
"postalCode":"624006",
"addressCountry": "Russia"
},
"description": "Гуммирование изделий",
"name": "ООО Производственное объединение Вулкан",
"telephone": "+73432166553",
"email": "v2166553@yandex.ru",
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
],
"opens": "08:00",
"closes": "17:00"
}
],
"url":"https://xn----7sbbf4bfen2ayf.xn--p1ai/",
"geo": {
"@type": "GeoCoordinates",
"latitude": 60.767178,
"longitude": 56.718680
}
}
</script>
Редактирование полей в корзине

Рабочий стол - Магазин - Настройки - -Свойства заказа - Список свойств
Здравствуйте, есть два сайта, один на домене https://aveon.ru (старый) и второй на техническом домене https://test.aveon.ru (новый)

Нужно поменять местами домены (файлы переносить не надо) чтобы по адресу aveon.ru открывался новый сайт, а по test.aveon.ru старый

Чтобы не запутаться, записал видео еще hhttps://disk.yandex.ru/i/xBMRtoztEGVY0A

Если потребуются деньги за оплату работы, спишите со счета


Спасибо!
Вывод картинки бренда в категории аспро макс

<?
$res = CIBlockElement::GetByID($arItem["PROPERTIES"]['BRAND']['VALUE']);

if ($ar_res = $res->GetNext())
$phpoto = CFile::GetPath($ar_res['PREVIEW_PICTURE']);

echo $ar_res['PREVIEW_PICTURE'];
echo $phpoto;

?>
if (!empty($arResult["SECTION"]["UF_VID"])) {
switch($arResult["SECTION"]["UF_VID"]) {
case 1:
$temp = "TILE";
break;
case 2:
$temp = "LIST";
break;
case 3:
$temp = "TEXT";
break;
}
}
Получить файл из свойства файл

<?=CFile::GetPath($arItem["PROPERTIES"]["FILE_TEST"]["VALUE"]);?>
Нажать на элемент при загрузке страницы

<script>
$(document).ready(function() {
$(".active .cnt").click();
});
</script>
Если на кастомном шаблоне аспро пропали цены и кнопка купить в категории

Добрый день. Проблема заключается в модифицированном шаблоне, при использовании стандартного шаблона цены отображаются корректно https://skr.sh/sT3jsgquNHa
Возможно вам поможет данная статья https://aspro.ru/kb/article/438/
<?if($arResult['DETAIL_TEXT'] || $bOfferDetailText ):?>
<?endif;?>
Аспро макс, скрыть наличие по складам в карточке