header

content

Сделать первую букву заглавной
php (php)
Сделать первую букву заглавной
function upFirstLetter($str, $encoding = 'UTF-8')
{
    return mb_strtoupper(mb_substr($str, 0, 1, $encoding), $encoding)
    . mb_substr($str, 1, null, $encoding);
}

echo upFirstLetter('дом'); // выведет "Дом"
console.log и php
php (php)
console.log и php
function debug_to_console($data) {
    $output = $data;
    if (is_array($output))
        $output = implode(',', $output);
    echo "<script>console.log('Debug Objects: " . $output . "' );</script>";
}
Оставить только цифры
php (php)
Оставить только цифры
$str = '{"10":"OK"}';
$strWithoutChars = preg_replace('/[^0-9]/', '', $str);
echo $strWithoutChars;
Убрать двойные пробелы
php (php)
Убрать двойные пробелы
$text = preg_replace('/[^\S\r\n]+/', ' ', $text);
Убрать нули в начале числа
php (php)
Убрать нули в начале числа
$y = '000000011';
echo (int)$y;

или

$y = '000000011';
print ltrim($y,'0');
Даты в Битриксе
Даты в Битриксе
Форматы дат

для полей: dd.mm.YYYY hh:ii:ss
DATE_ACTIVE_FROM

для свойств: YY-mm-dd hh:ii:ss
PROPERTY_*

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// текущая дата
$date_this = date('d.m.Y');  // дата сегодня
$datetime_this = date('d.m.Y H:i:s'); // дата и время сейчас

$date_next = date('d.m.Y H:i:s', strtotime(date('d.m.Y') . ' +1 day')); // дата на завтра
$datetime_next = date('d.m.Y H:i:s', strtotime(date('d.m.Y') . ' +1 day')); // дата и время на завтра с 0 часов

$date_nextnext = date('d.m.Y H:i:s', strtotime(date('d.m.Y') . ' +2 days')); // дата на послезавтра

$date_next = date('d.m.Y H:i:s', strtotime(date('d.m.Y H:i:s') . ' +1 hour')); // дата и время через час

$date_this_f = date('Y-m-d');  // дата сегодня в формате год-месяц-день
$datetime_this_f = date('Y-m-d H:i:s'); // дата и время сейчас

$year = date('Y'); // год
$month = date('m'); // месяц
$day = date('d'); // день

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

ФИЛЬТРЫ

Из полей

из поля даты начала публикации (с 1 числа месяца)
    ">=DATE_ACTIVE_FROM" => '01.' .$month. '.' . $year. ' 00:00:00',

из поля даты начала публикации (за весь текущий день)
    ">=DATE_ACTIVE_FROM" => $date_this.' 00:00:00',
    "<=DATE_ACTIVE_FROM" => $date_this.' 23:59:59',

из поля даты начала публикации (за весь текущий день) или если дата начала уже прошла, а дата окончания еще не наступила (для календаря событий)
       array(
           "LOGIC" => "OR",
           array(">=DATE_ACTIVE_FROM" => $date_this . " 00:00:00", "<=DATE_ACTIVE_FROM" => $date_this . " 23:59:59"),
           array("<=DATE_ACTIVE_FROM" => $date_this . " 23:59:59", ">=DATE_ACTIVE_TO" => $date_this . " 23:59:59"),
       ),

Из свойств

из пользовательского свойства "Дата" с кодом START (с сегодняшнего дня и далее)
    ">=PROPERTY_START" => $year . '-' . $month . '-' . $day . ' 00:00:00',

по дате за месяц
    ">=PROPERTY_START" => $year . '-' . $month . '-01',
    "<=PROPERTY_START" => $year . '-' . $month . '-31',



404
Настройка компонента и страницы 404

Во первых перейдите к настройкам вашего компонента (обычно это bitrix.catalog или bitrix.news), блоке «настройки 404 ошибки» отметьте галочку «Устанавливать статус 404».

Затем в файл /bitrix/php_interface/init.php добавьте следующий код:
    
AddEventHandler("main", "OnEpilog", "error_page");
function error_page()
{
    $page_404 = "/404.php";
    GLOBAL $APPLICATION;
    if(strpos($APPLICATION->GetCurPage(), $page_404) === false && defined("ERROR_404") && ERROR_404 == "Y")
    {
        $APPLICATION->RestartBuffer();
        CHTTP::SetStatus("404 Not Found");
        include($_SERVER["DOCUMENT_ROOT"].SITE_TEMPLATE_PATH."/header.php");
        include($_SERVER["DOCUMENT_ROOT"].$page_404);
        include($_SERVER["DOCUMENT_ROOT"].SITE_TEMPLATE_PATH."/footer.php");
        die();
    }
}

в файле /404.php

$APPLICATION->SetTitle("404 Not Found");
$APPLICATION->SetPageProperty("title", "404 Страница не найдена");
$APPLICATION->SetPageProperty("description", "404 Нет такой страницы :(");


///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


Текст для разных языковых версий сайта (русский - в корне, английский - в папке /en/)

<? if (substr($APPLICATION->GetCurDir(), 0, 4) == '/en/') { ?>
    <div style="margin:25px 0;">
        404 Page not found
    </div>
    <div>
        The page you requested may have been deleted or moved. <a href="/en/">Go back to the main page?</a>
    </div>
<? } else { ?>
    <div style="margin:25px 0;">
        404 Страница не найдена
    </div>
    <div>
        Возможно запрашиваемая вами страница была удалена или перемещена. <a href="/">Вернуться на главную?</a>
    </div>
<? } ?>


///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


Для компонента news.list, если в несуществующем разделе вываливается весь список новостей без фильтрации

В настройках выставить параметр «Строгая проверка раздела».
Или в коде вызова компонента:
"STRICT_SECTION_CHECK" => "Y",


///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Настройка часового пояса
Настройка часового пояса
В админке: 
Настройка
- Настройки продукта
-- Настройка модулей 
--- Главный модуль
Вкладка "Настройки", секция "Часовые пояса". Выбрать свой часовой пояс, например Pacific/Samoa

Если есть расхождения при редактировании и при отображении на сайте:
в файл /bitrix/php_interface/dbconn.php добавить строку:
date_default_timezone_set('Pacific/Samoa');
часовой пояс указать свой.

Страница с блоком фотографий в fancybox. В шаблон компонента news.detail
Страница с блоком фотографий в fancybox. В шаблон компонента news.detail
Подключить jquery в шаблоне сайта.
Загрузить fancybox из архива на сервер.
В шаблоне компонента news.detail подправить пути до расположения библиотеки fancybox
<?
// локальные настройки
$field_photos_code = 'PHOTOS'; // код пользовательского поля для фотографий (тип "файл" множественное)
$tmb_width = 250;  // ширина превью
$tmb_height = 250; // высота превью
$img_width = 800;  // ширина фото
$img_height = 600; // высота фото
?>

<link rel="stylesheet" type="text/css" href="/fancybox/jquery.fancybox.min.css">
<script src="/fancybox/jquery.fancybox.min.js"></script>
<script src="/fancybox/custom.js"></script>

<? if(isset($arResult["PROPERTIES"][$field_photos_code]["VALUE"]) && $arResult["PROPERTIES"][$field_photos_code]["VALUE"]) { // вывод данных из свойства PHOTOS ?>
    <?
    $arPhotos = array();
    foreach($arResult["PROPERTIES"][$field_photos_code]["VALUE"] as $key=>$value) {
        $arPhotos[$key]['ID'] = $value;
    }

    // если используются описания для изображений - добавляем их в общий массив по ключу
    if(isset($arResult["PROPERTIES"][$field_photos_code]["DESCRIPTION"]) && $arResult["PROPERTIES"][$field_photos_code]["DESCRIPTION"]) {
        foreach($arResult["PROPERTIES"][$field_photos_code]["DESCRIPTION"] as $key=>$value) {
            $arPhotos[$key]['DESCRIPTION'] = $value;
        }
    }
    ?>

    <?
    /* Задаем размеры для миниатюры */
    $arrTmbSizes = array();
    $arrTmbSizes['width'] = $tmb_width;
    $arrTmbSizes['height'] = $tmb_height;

    /* Задаем размеры для фото */
    $arrPictureSizes = array();
    $arrPictureSizes['width'] = $img_width;
    $arrPictureSizes['height'] = $img_height;
    ?>

    <div class="news_item_photos_wrapper">
        <? foreach($arPhotos as $photos_item) { ?>
            <?
            $tmb = CFile::ResizeImageGet($photos_item['ID'], $arrTmbSizes, BX_RESIZE_IMAGE_EXACT );
            $img = CFile::ResizeImageGet($photos_item['ID'], $arrPictureSizes, BX_RESIZE_IMAGE_PROPORTIONAL_ALT );

            if(isset($photos_item['DESCRIPTION']) && $photos_item['DESCRIPTION']) {
                $img_desrciption = $photos_item['DESCRIPTION'];
            } else {
                $img_desrciption = $arResult["NAME"];
            }
            ?>
            <a href="<? echo $img['src']; ?>" data-fancybox="group" data-caption="<? echo $img_desrciption;?>">
                <img src="<? echo $tmb['src']; ?>" alt="<? echo $img_desrciption; ?>" title="<? echo $img_desrciption; ?>">
            </a>
        <? } ?>
    </div>
<? } ?>
.news_item_photos_wrapper{display:flex;flex-wrap:wrap;justify-content:center;}
.news_item_photos_wrapper a{display:block;margin:2px;}

Новости 31 - 39 из 39
Начало | Пред. | 1 2 | След. | Конец