Все что необходимо по битриксу и не только
-
Header/Footer.php 6
Head<title><?$APPLICATION->ShowTitle()?></title> <? $APPLICATION->ShowHead(); ?> <meta http-equiv="Content-Type" content="text/html; charset=<?=LANG_CHARSET;?>" /> <? $APPLICATION->ShowMeta("keywords") ?> <? $APPLICATION->ShowMeta("description") ?>
Ссылки и другое<a href="<?=SITE_DIR?>index.php"> ссылка на корень <?=SITE_TEMPLATE_PATH?>/ - подставляет путь к шаблону <?$APPLICATION->ShowPanel();?> - выводит панель управления администратора <?$APPLICATION->ShowTitle(false);?> - заголовок (в h1 например использовать)
Включаемые областиДля страницы
<?$APPLICATION->IncludeComponent( "bitrix:main.include", "", Array( "AREA_FILE_SHOW" => "page", "AREA_FILE_SUFFIX" => "zagolovok", "EDIT_TEMPLATE" => "" ) );?>
Создаст файл с префиксом zagolovok для страницы. пример kontakty_zagolovok.php
Из файла<?$APPLICATION->IncludeComponent( "bitrix:main.include", "", Array( "AREA_FILE_SHOW" => "file", "PATH" => "/include/logo.php", "EDIT_TEMPLATE" => "" ), false );?>
Создан файл logo.php в папке includeВывод информации только на главной странице в Битриксе<?if($APPLICATION->GetCurPage() == "/"):?> #Ваш код <?endif;?>
Или такой вариант:<?if($APPLICATION->GetCurPage() == "/index.php"){ #Ваш код }?>
Вместо GetCurPage() можем попробовать GetCurDir():<?if($APPLICATION->GetCurDir() == "/") {}?>
Отобразить информацию везде кроме главной страницыВ новых шаблона Битрикса:
<?$curPage = $APPLICATION->GetCurPage(true);?> <?if ($curPage != SITE_DIR."index.php"):?> #Ваш код <?endif?>
Вывод информации: If главная - Else не главная<?if($APPLICATION->GetCurDir()==SITE_DIR):?> #Ваш код главная <?else:?> #Ваш код не главная <?endif;?>
Битрикс source 7
Полезные скрипты 1С-Битрикс- Скрипт для установки 1С-Битрикс на хостинг: bitrixsetup.php (более подробно здесь)
- Скрипт для тестирование хостинга на соответствие требованиям: bitrix_server_test.php (более подробно здесь)
- Скрипт для диагностики проблем интеграции с 1С: bx_1c_import.php
- Скрипт для тестирования магазина: bx_sale_test.zip (более подробно здесь)
- Конвертация сайта из cp1251 в UTF8: convert_utf8.php (более подробно здесь)
- Скрипт для создания символьных ссылок на /bitrix и /upload: symlink.php (более подробно здесь)
- Скрипт для восстановления резервной копии: restore.php (более подробно здесь)
Чистая рабочая страница<? require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php"); $APPLICATION->SetTitle("Бизнес"); ?> Text here.... <?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>
Открытие ссылок меню Битрикс в новом окне\" target=\"_blank
Пример:Array( "Название пункта меню", "http://web-as-group.org/\" target=\"_blank", Array(), Array(), "" )
Вывод блока только для определенного пользователяЕсли пользователь авторизован, то даем информацию
<?if($USER->IsAuthorized()): // Если пользователь авторизован, то?> Здесь информация только для авторизованных пользователей. <?endif;?>
Если пользователь не авторизован, то даем информацию<?if(!$USER->IsAuthorized()): // Если пользователь не авторизован, то?> Здесь информация только для не авторизованных пользователей. <?endif;?>
Выводить информацию только пользователю с конкретным ID<?if($USER->GetID()==$ID):?> <?endif?>
Больше пользователей<?if( ($USER->GetID()==$ID1) || ($USER->GetID()==$ID2) ):?> ... <?endif?>
или<?$uID = $USER->GetID(); if( ($uID==$ID1) || ($uID==$ID2) ):?> ... <?endif?>
Выводить информацию только группе с конкретным ID<?if(in_array($GROUP_ID, $USER->GetUserGroupArray())):?> <?endif?>
Показываем 404 страницуbitrix/php_interface/init.php нужно написать следующий обработчик:
<? AddEventHandler('main', 'OnEpilog', '_Check404Error', 1); function _Check404Error(){ if (defined('ERROR_404') && ERROR_404 == 'Y') { global $APPLICATION; $APPLICATION->RestartBuffer(); include $_SERVER['DOCUMENT_ROOT'] . SITE_TEMPLATE_PATH . '/header.php'; include $_SERVER['DOCUMENT_ROOT'] . '/404.php'; include $_SERVER['DOCUMENT_ROOT'] . SITE_TEMPLATE_PATH . '/footer.php'; } } ?>
Форма попап Обратной связиКод у footer.php перед body
<a href="#x" class="overlay" id="win1"></a> <div class="popup"> <?$APPLICATION->IncludeComponent( "bitrix:main.feedback", "", Array( "EMAIL_TO" => "Ваш@меил", "EVENT_MESSAGE_ID" => array(), "OK_TEXT" => "Спасибо, ваше сообщение принято.", "REQUIRED_FIELDS" => array("NAME", "EMAIL", "MESSAGE"), "USE_CAPTCHA" => "N" ) );?> <a class="close" title="Закрыть" href="#close"></a> </div>
ссылка в любое место<a href="#win1" class="btn btn-info" >ЗАКАЗАТЬ</a>
стили сss.overlay { background-color: rgba(0, 0, 0, 0.7); bottom: 0; cursor: default; left: 0; opacity: 0; position: fixed; right: 0; top: 0; visibility: hidden; z-index: 1; -webkit-transition: opacity .5s; -moz-transition: opacity .5s; -ms-transition: opacity .5s; -o-transition: opacity .5s; transition: opacity .5s; } .overlay:target { visibility: visible; opacity: 1; } .popup { background-color: #fff; border: 3px solid #fff; display: inline-block; left: 50%; opacity: 0; padding: 15px; position: fixed; text-align: justify; font: 14px Helvetica, Arial, Sans-Serif; top: 40%; visibility: hidden; z-index: 10; -webkit-transform: translate(-50%, -50%); -moz-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); -o-transform: translate(-50%, -50%); transform: translate(-50%, -50%); -webkit-border-radius: 10px; -moz-border-radius: 10px; -ms-border-radius: 10px; -o-border-radius: 10px; border-radius: 10px; -webkit-box-shadow: 0 1px 1px 2px rgba(0, 0, 0, 0.4) inset; -moz-box-shadow: 0 1px 1px 2px rgba(0, 0, 0, 0.4) inset; -ms-box-shadow: 0 1px 1px 2px rgba(0, 0, 0, 0.4) inset; -o-box-shadow: 0 1px 1px 2px rgba(0, 0, 0, 0.4) inset; box-shadow: 0 1px 1px 2px rgba(0, 0, 0, 0.4) inset; -webkit-transition: opacity .5s, top .5s; -moz-transition: opacity .5s, top .5s; -ms-transition: opacity .5s, top .5s; -o-transition: opacity .5s, top .5s; transition: opacity .5s, top .5s; } .overlay:target+.popup { top: 50%; opacity: 1; visibility: visible; } .close { background-color: rgba(0, 0, 0, 0.8); border: 2px solid #ccc; height: 24px; line-height: 24px; position: absolute; right: -13px; font-weight: bold; text-align: center; text-decoration: none; top: -15px; width: 24px; -webkit-border-radius: 15px; -moz-border-radius: 15px; -ms-border-radius: 15px; -o-border-radius: 15px; border-radius: 15px; -moz-box-shadow: 1px 1px 3px #000; -webkit-box-shadow: 1px 1px 3px #000; box-shadow: 1px 1px 3px #000; } .close:before { color: rgba(255, 255, 255, 0.9); content: "X"; font-size: 14px; text-shadow: 0 -1px rgba(0, 0, 0, 0.9); } .close:hover { background-color: rgba(64, 128, 128, 0.8); }
Автоматическая генерация символьного кода из названия элемента в БитриксДобавим свой обработчик для событий в файл /bitrix/php_interface/init.php вашего сайта:
<?function slugTranslit(&$arFields) { // Если заполнено имя и не заполнен символьный код if (strlen($arFields["NAME"]) > 0 && strlen($arFields["CODE"]) <= 0) { $arParams = array( "max_len" => "100", // обрезаем символьный код до 100 символов "change_case" => "L", // приводим к нижнему регистру "replace_space" => "-", // меняем пробелы на тире "replace_other" => "-", // меняем плохие символы на тире "delete_repeat_replace" => "true", // удаляем повторяющиеся тире "use_google" => "false", // отключаем использование google ); $arFields["CODE"] = Cutil::translit($arFields["NAME"], "ru", $arParams); } } AddEventHandler("iblock", "OnBeforeIBlockElementAdd", 'slugTranslit'); AddEventHandler("iblock", "OnBeforeIBlockElementUpdate", 'slugTranslit');?>
В шаблонах компонентов 12
В шаблонах компонентов components/template.php<img src="<?=$arSection["PICTURE"]["SRC"]?>" title="<?=$arSection["NAME"]?>" border="0"/> - картинка раздела инфоблока. <?$APPLICATION->ShowTitle(false)?> заголовок в шаблоне <?=$arSection["DESCRIPTION"]?> - описание раздела инфоблока <? if ($arSection["PICTURE"]["SRC"]){?><img src="<?=$arSection["PICTURE"]["SRC"]?>" title="<?=$arSection["NAME"]?>" border="0"/><?}?> изображения раздела <?=$arResult["NAME"]?> - название раздела <?echo $arItem["NAME"]?> - название (заголовок элемента) <?echo $arItem["DETAIL_PAGE_URL"]?> - ссылка на детальную новость (статью) <?echo $arItem["PREVIEW_TEXT"];?> - текст анонса <?echo $arResult["DETAIL_TEXT"];?> - детальный текст <?=$arItem["PREVIEW_PICTURE"]["SRC"]?> - изображение анонса <?=$arItem["DETAIL_PICTURE"]["SRC"]?> - изображение детальное <?=$arResult['DISPLAY_ACTIVE_FROM']?> - дата начала активности <?=$arItem['DATE_CREATE']?> - Дата создания элемента инфолока <?=$arElement["TAGS"]?> - Теги <? echo $arResult['DISPLAY_PROPERTIES']['СВОЙСТВО']['DISPLAY_VALUE'];?> - Выводит определенное свойство в шаблона компонента <?=$arItem["PROPERTIES"]["author"]["VALUE"]?> или <?=$arItem["DISPLAY_PROPERTIES"]["author"]["DISPLAY_VALUE"]?>
Вывод названия рубрики элемента в шаблоне catalog.top<? $res = CIBlockSection::GetByID($arElement["IBLOCK_SECTION_ID"]); if($ar_res = $res->GetNext()) echo $ar_res['NAME']; ?>
Вывод описания и изображения раздела БитриксДля того, чтобы вывести описание раздела (категории) в компоненте catalog.section, необходимо разместить код в шаблоне компонента:
<?if($arResult['DESCRIPTION']):?><?=$arResult['DESCRIPTION']?><?endif;?>
Также можно в компоненте вывести изображение раздела (категории) , необходимо добавить следующий код :<img src="<?=$arResult["PICTURE"]["SRC"]?>" alt="<?=$arResult["NAME"]?>" title="<?=$arResult["NAME"]?>" />
Настройки инфоблока для новостей Bitrix:newsURL страницы информационного блока: #SITE_DIR#/blog/ URL страницы раздела: #SITE_DIR#/blog/#SECTION_CODE# URL страницы детального просмотра: #SITE_DIR#/blog/#ELEMENT_CODE#
чпу в настройке комплексного компонента bitrix:newsКаталог ЧПУ (относительно корня сайта): /blog/ Страница общего списка: Страница раздела: Страница детального просмотра: #ELEMENT_CODE#/ Деталка в настройке компонента bitrix:news:list - #SITE_DIR#/blog/#ELEMENT_CODE#/
Настройки инфоблока для новостей Bitrix:catalogURL страницы информационного блока: #SITE_DIR#/dovidnuk/index.php?ID=#IBLOCK_ID# URL страницы раздела: #SITE_DIR#/dovidnuk/list.php?SECTION_ID=#SECTION_ID# URL страницы детального просмотра: #SITE_DIR#/dovidnuk/detail.php?ID=#ELEMENT_ID#
чпу в настройке комплексного компонента bitrix:catalogКаталог ЧПУ (относительно корня сайта): /dovidnuk/ Список разделов: Pаздел: #SECTION_CODE#/ Детальная информация: #SECTION_CODE#/#ELEMENT_CODE#/ Таблица сравнения: compare.php?action=#ACTION_CODE# Url раздела для умного фильтра: #SECTION_ID#/filter/#SMART_FILTER_PATH#/apply/
Вывод в комплексном компоненте "Новости" нужный раздел по символьному кодуОткрыть файл \bitrix\templates\нужный шаблон сайта\components\bitrix\news\шаблон компонента\.parameters.php Вставить туда:
"SECTION_CODE" => array( "NAME" => GetMessage("IBLOCK_SECTION_CODE"), "TYPE" => "STRING", "DEFAULT" => '', ),
Дальше в этом же шаблоне открыть файл \lang\ru\.parameters.php и вставить туда$MESS ['IBLOCK_SECTION_CODE'] = "Код раздела";
Дальше открыть файл в корне папки - news.php и добавить в том месте, где подключается bitrix:news.list строчку:"PARENT_SECTION_CODE" => $arParams["SECTION_CODE"],
После этого в настройках компонента добавляется нужная строка!Простой ресайз изображений (News.list)<? $renderImage = CFile::ResizeImageGet($arItem["PREVIEW_PICTURE"], Array("width" => НОВАЯ_ШИРИНА, "height" => НОВАЯ_ВЫСОТА), BX_RESIZE_IMAGE_EXACT, false); echo '<img alt="'.$arItem["NAME"].'" src="'.$renderImage["src"].'" class="img-responsive" />'; ?>
BX_RESIZE_IMAGE_EXACT - масштабирует в прямоугольник $arSize без сохранения пропорций;
BX_RESIZE_IMAGE_PROPORTIONAL - масштабирует с сохранением пропорций, размер ограничивается $arSize;
BX_RESIZE_IMAGE_PROPORTIONAL_ALT - масштабирует с сохранением пропорций, размер ограничивается $arSize, улучшенная обработка вертикальных картинок.Вывод доп изображений MORE_PHOTO (News.list)Отключите в настройках компонента вывод св-ва доп. картинок для списка. Пропишите в шаблоне
<? foreach($arItem["PROPERTIES"]["MORE_PHOTO"]["VALUE"] as $key => $photo): $img = CFile::ResizeImageGet($photo, array("width"=>100, "height"=>100), BX_RESIZE_IMAGE_EXACT, true); ?> <img src="<?=$img["src"]?>" alt="" /> <?endforeach?>
При отсутствии фото товара показывать "нет фото"if (true == is_array($arElement["PREVIEW_PICTURE"])) { ?><img border="1" src="<?=$arElement["PREVIEW_PICTURE"]["SRC"]?>" width="<?=$arElement["PREVIEW_PICTURE"]["WIDTH"]?>" height="<?=$arElement["PREVIEW_PICTURE"]["HEIGHT"]?>" alt="<?=$arElement["NAME"]?>" title="<?=$arElement["NAME"]?>" /><? } else { // тут выводим картинку "нет изображения" }
Ограничение количества символов в названии элементаМеняем
<?=$arItem["NAME"];?>
на<?=TruncateText($arItem["NAME"], 100);?>
Другой стиль для первого елемента News:list<?foreach($arResult["ITEMS"] as $key => $arItem):?> <?if ($key==0):?> шаблон вывода для первого элемента <?else:?> шаблон вывода для остальных элементов <?endif?> <?endforeach;?>
Пример шаблона компонента навигационной цепочки: template.php<? if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); if(empty($arResult)) return ""; $strReturn = '<ul class="breadcrumb-navigation">'; for($index = 0, $itemSize = count($arResult); $index < $itemSize; $index++) { if($index > 0) $strReturn .= '<li><span> > </span></li>'; $title = htmlspecialcharsex($arResult[$index]["TITLE"]); if($arResult[$index]["LINK"] <> "") $strReturn .= '<li><a href="'.$arResult[$index]["LINK"].'" title="'.$title.'">'.$title.'</a></li>'; else $strReturn .= '<li>'.$title.'</li>'; } $strReturn .= '</ul>'; return $strReturn; ?>