Битрикс проблемы и решения походу создания сайтов

Я впервые столкнулся с битриксом. Уж я точно не блогер и красиво писать не умею, но в силу потраченного времени хочу написать кое какие вещи по битриксу. Пишу о проблемах и их решениях с которыми я столкнулся. Наверное пишу больше для себя на будущее.



Проблема: В категориях выводятся товары
Решение: в настройках компонента убрать галочку - выводить топ элементов

Проблема: Не работает кнопка сравнение
Решение: Перейти в редактирование компонента каталог - Управление адресами страниц - Таблица сравнения: - стереть все и написать в поле без кавычек "compare/"

Проблема: В списке категорий catalog.section.list - вывести описание категории
Решение: Вставить <? echo $arSection["DESCRIPTION"];?>

Проблема: При ручной установке компонентов в маке не копируются файлы с точкой впереди
Решение: Через виндоус копировать компонент на сайт, либо отобразить скрытые файлы

Проблема: в списке товаров вывести краткое описание
Решение: <?php echo $arItem["PREVIEW_TEXT"] ?>

Задача: В popup окошке списка сравнения необходимо вывести фотографии
Решение: catalog.compare.list - template.php находим код
<table id="<? echo $idCompareTable; ?>" class="compare-items">
<thead><tr><td align="center" colspan="2"><?=GetMessage("CATALOG_COMPARE_ELEMENTS")?></td></tr></thead>
<tbody><?   foreach($arResult as $arElement)
   {
      ?><tr id="<? echo $idCompareRow.$arElement['PARENT_ID']; ?>">

после него и перед строкой
<td><a href="<?=$arElement["DETAIL_PAGE_URL"]?>"><?=$arElement["NAME"]?></a></td>

вставляем:
<td><?   $res = CIBlockElement::GetByID($arElement["PARENT_ID"]);   if($ar_res = $res->GetNext()){
      $im = CFile::ShowImage($ar_res["PREVIEW_PICTURE"], 0, 0, "border=0", "", true);}
   ?>   <?=$im?></td>

В итоге получится

<table id="<? echo $idCompareTable; ?>" class="compare-items">
<thead><tr><td align="center" colspan="2"><?=GetMessage("CATALOG_COMPARE_ELEMENTS")?></td></tr></thead>
<tbody><?   foreach($arResult as $arElement)
   {
      ?><tr id="<? echo $idCompareRow.$arElement['PARENT_ID']; ?>">
         <td><?            $res = CIBlockElement::GetByID($arElement["PARENT_ID"]);            if($ar_res = $res->GetNext()){
               $im = CFile::ShowImage($ar_res["PREVIEW_PICTURE"], 0, 0, "border=0", "", true);}
            ?>            <?=$im?></td>
         <td><a href="<?=$arElement["DETAIL_PAGE_URL"]?>"><?=$arElement["NAME"]?></a></td>
         <td><noindex><a href="javascript:void(0);"  data-id="<? echo $arElement['PARENT_ID']; ?>" rel="nofollow" title="<?=GetMessage("CATALOG_DELETE")?>"><i class="fa fa-times fa-2"></i></a></noindex></td>
      </tr><?   }
?></tbody>
</table>







Получить название раздела:
<?echo $arResult["SECTION"]["PATH"][0]["NAME"]?>

Назад в каталог:
<a href="<? echo "/"."katalog-proektov"."/". $arResult["SECTION"]["CODE"]; ?>"><? echo GetMessage('CATALOG_NAZAD'); ?></a>

Ресайз изображений:
<?foreach ($arItem["PREVIEW_PICTURE"] as $files) {?>   <?$arFile = CFile::GetFileArray($files);?>   <?if( $arFile) {?>      <?      $filess = CFile::ResizeImageGet($files, array('width' => 640, 'height' => 450), BX_RESIZE_IMAGE_EXACT, true);      $imgg = '<img src="' . $filess['src'] . '" width="' . $filess['width'] . '" height="' . $filess['height'] . '" />';?>      <a href = "<?=$arFile["SRC"]?>" data - title = "<?=$arFile["ORIGINAL_NAME"]?>" ><?echo $imgg;?></a >
   <?}?><?}?>

Переключатель список/плитка:

<!--Perekluchatel spisok plitka-->

<?/* переключение шаблонов оформление */?><?/* 1) Сначала считываем из cookie сайта параметр view каталога товаров, который отвечает за выбор шаблона. Если пустые, то ставим шаблон по умолчанию.*/?>
<?$templateName = $APPLICATION->get_cookie('view')?$APPLICATION->get_cookie("view"):"big";?>
<?/*big - это название папки с шаблоном - который по умолчанию: bitrix/имя шаблона/components/bitrix/catalog/имя каталога/bitrix/catalog.section/... */?>
<div class="select_display">
   <?   if(isset($_POST["b1"]))
   {
      $templateName = "big";
      $APPLICATION->set_cookie("view", $templateName);
   }
   if(isset($_POST["b2"]))
   {
      $templateName = "polosa";
      $APPLICATION->set_cookie("view", $templateName);
   }
   if ($templateName != "polosa" )
   {
      $class_select_display_list ="active";
      $class_select_display_galery ="normal";
   }
   else   {
      $class_select_display_list ="normal";
      $class_select_display_galery ="active";
   }
   ?>   <form action="" method="POST" style="display: none">
      <div class="list_<?echo $class_select_display_list;?>">
         <input type="submit" name="b1" value="Список" <? if(isset($_POST["b1"])) echo "disabled"; ?>/>
      </div>
      <div class="galery_<?echo $class_select_display_galery;?>">
         <input type="submit" name="b2" value="Галерея" <? if(isset($_POST["b2"])) echo "disabled"; ?>/>
      </div>
   </form>
</div>


<!--Perekluchatel spisok plitka-->

И не забудьте переменную в вызов компонента въебать - $templateName (вон она внизу в примере):
<?$intSectionID = $APPLICATION->IncludeComponent(
   "bitrix:catalog.section",
   $templateName,

Стили для кнопок:
CSS оформление

.select_display {
position: absolute;
top: 6px;
right: 0px;
width: 160px;
}
.select_display input[type="button"],
.select_display input[type="submit"],
.select_display input[type="reset"],
.select_display input[type="file"]::-webkit-file-upload-button,
.select_display button {
color: #ffffff;
padding: 0;
background: #138ac2;
position: relative;
top: -5px;
margin-right: 5px;
cursor: pointer;
}
.select_display input{
-moz-appearance: none!important;
color: #ffffff;
background: #138ac2!important;
padding: 0;
cursor: pointer;
position: relative;
top: -5px;
}
.select_display input:hover[type="submit"]{
color: #d1d1d1;
}
.select_display input[type="submit"]:disabled {
padding: 0;
background: #138ac2;
}
.select_display .list_normal {
padding: 1px 3px 1px 12px;
float: left;
color: #ffffff;
height: 7px;
background: #138ac2 url(../img/select_display_list.png) no-repeat bottom left;
}
.select_display .list_active {
padding: 1px 3px 1px 12px;
float: left;
height: 7px;
background: #138ac2 url(../img/select_display_list.png) no-repeat top left;
}
.select_display .list_active input[type="submit"],.select_display .galery_active input[type="submit"] {
color: #3d3d3d;
cursor: default;
}
.select_display .galery_normal {
padding: 1px 3px 1px 12px;
float: left;
color: #ffffff;
height: 7px;
background: #138ac2 url(../img/select_display_galery.png) no-repeat bottom left;
}
.select_display .galery_active {
padding: 1px 3px 1px 12px;
float: left;
height: 7px;
background: #138ac2 url(../img/select_display_galery.png) no-repeat top left;
}

как открыть доступ к медиабиблиотеки для группы пользователей(не админов)?

Делаем сначала все отсюда 
http://dev.1c-bitrix.ru/support/forum/forum6/topic34503/
Потом Изменение прав доступа на файлы в папке: bitrix/admin
"fileman_medialib.php"
"fileman_medialib_access.php"
"fileman_medialib_admin.php"
"fileman_medialib_upload.php"
Для зарегистрированных пользователей режим чтения


Вывести автора статьи

Автор статьи: <span><?   $name = trim($USER->GetFullName());
   if (strlen($name) <= 0)
      $name = $USER->GetLogin();

   echo htmlspecialcharsEx($name);
   ?></span>

Комментарии

Популярные сообщения из этого блога

Переключатель список/плитка в Битриксе