Rose debug info
---------------

О веб-разработке

Простая стилизация checkbox, radio через псевдокласс :checked

Простым способом стилизовать checkbox, radio можно через псевдокласс :checked

input[type="checkbox"] {
   width: 25px;
    height: 25px;
    background: #030514;
    border: #1e2132 1px solid;
    border-radius: 2px;
    -webkit-appearance: none;
    -moz-appearance: none;
}
input[type="checkbox"]:checked {
    background: #030514 url(../img/check.webp) no-repeat center;
}
 Нет комментариев    10   1 мес   css   html
 Нет комментариев    11   1 мес   js

Как поменять цвет меток на Яндекс Картах через geoObjects

Возникает ситуация, когда необходимо по определенному событию изменить цвет у меток, которые выведены на карте.
Есть пример в документации ЯндексКарт:
https://yandex.ru/dev/maps/archive/doc/jsapi/2.0/ref/reference/option.Manager.html#method_detail__unsetAll

И небольшой пример из моего кода, где по клику на кнопке, перекрашивались определенные метки

geographyMap.geoObjects.each(function (geoObject) {
        if (geoObject instanceof ymaps.Placemark) {          
          if(geoObject.options.get('iconId') == '2023') {
            // Во избежание двойной реакции геообъекта на изменение опций сначала вызываем freeze, а после задания  всех значений вызываем unfreeze.
            geoObject.options.freeze()
            .unset(['preset','iconLayout'])
            .set('preset','islands#greenIcon')
            .unfreeze();
          }
        }
      });

Как распарсить <yandex:full-text>

Cуть задачи: есть xml, отдаваемый для Яндекс.Новости, необходимо из него получить содержимое тега при помощи SimpleXML. Трудность возникает из-за использования в данном случае пространства имен (namespace).

Решение, на самом деле, простое, главное хорошо прочитать мануал:

<?php
// Создать контекст и получить XML с сайта
$path = 'http://inforos.ru/yandex.xml';
$ctx = stream_context_create( array(
  'http' => array( 'timeout' => 6 )
) );
$file = file_get_contents( $path, 0, $ctx );
if ( $file ) {
    // Распарсить полученный XML
    $rss = simplexml_load_string( $file );
    foreach ( $rss->channel->item as $item ){
        $namespaces = $item->getNameSpaces( true );
        $yandex = $item->children( $namespaces[ 'yandex' ] );
        $full_text = (string) $yandex->{'full-text'};
        echo ( $full_text );
        echo ( "\n\n<hr />\n\n" );
    }
}
?>
 Нет комментариев    19   3 мес   php

Битрикс — как перезаписать картинку анонса из детальной?

Что делать, если при импорте или при любых других условиях у вас не записывается свойство картинка анонса?

Как в битриксе заново сгенерировать картинки анонса
Для этого создадим файл в корне сайта, например import.php — в который запишем код:

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
CModule::IncludeModule("iblock");
CModule::IncludeModule("file");

$ID = 1;//id инфоблока

$arFilter = Array("IBLOCK_ID"=>$ID);
$rsEl = CIBlockElement::GetList(Array(), $arFilter);
while($arEl = $rsEl->GetNext()){ 
   $el = new CIBlockElement;
        $arFields = Array();
   if($arEl["DETAIL_PICTURE"]){
      $arFields['PREVIEW_PICTURE'] = CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"] . CFile::GetFileArray($arEl["DETAIL_PICTURE"])["SRC"]);
      $arFields['PREVIEW_PICTURE']["del"] = "Y";
         $el->Update($arEl["ID"], $arFields);
   }
}

Указываем ID информационного блока и после запуска в браузере и окончания выполнения скрипта в поле для анонса запишется та же самая картинка что и в детальном.

Если вам необходимо записать фото в превью с учетом ресайза, то скрипт придется доработать.

Сортировка у Битрикс компонента catalog.section.list

У компонента есть скрытая настройка «CUSTOM_SECTION_SORT», которую можно прописать в ручную в вызове компонента

<?$APPLICATION->IncludeComponent(
   "bitrix:catalog.section.list",
   "",
   Array(
      "CUSTOM_SECTION_SORT" => array("NAME" => "DESC"), // Передаём массив вида ["Название свойства" => "как сортировать (ASC, DESC, RAND)"]
      ... // Другие настройки компонента
   )
);?>
 Нет комментариев    61   4 мес  

Битрикс и PDF

Самый простой способ вывода информации в pdf. Скачиваем архив MPDF https://github.com/lynxbee/mpdf .
Загружаем все файлы к себе на сайт в директорию, например, /local/libs/mpdf/.

<?
// подключение служебной части пролога для работы API Битрикса
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
include($_SERVER["DOCUMENT_ROOT"]."/local/libs/mpdf/mpdf.php");

$html = '<div>Здесь содержимое PDF в виде html-кода.</div>';

//настройки для работы с кириллическими символами
$mpdf = new mPDF('utf-8', 'A4', '10', 'Arial');
$mpdf->charset_in = 'utf-8'; 

//генерируем PDF
$mpdf->WriteHTML($html);
$mpdf->Output();

// подключение служебной части эпилога
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php");
exit;
?>

Если необходимо, чтобы сгенерированный файл скачался, то заменим строку

$mpdf->Output('download.pdf', 'D');

Как сдвинуть слайды в swiper.js

Когда необходимо показать в слайдере часть другого/других слайдов. Для этого можно использовать такие параметры:

slidesPerView:1.5,
centeredSlides: true
 Нет комментариев    66   9 мес   swiper
Ранее Ctrl + ↓