Битрикс и всё, что я о нем (битриксе) думаю.

Некто Добавить статью
Сортировка: По имени Новые Старые 64 записи

CIBLockElement::GetList не возвращает количество элементов CNT

Обязательно должна быть указана сортировка
(или группировка, если верить документации битрикса)
CIBlockElement::GetList возвращает повторяющиеся элементы

CIBlockElement::GetList возвращает повторяющиеся элементы
Если в выборке (arSelect) присутствует множественное свойство - возвращается по элементу на каждое значение свойства.
PAGER_DESC_NUMBERING обратная навигация

PAGER_DESC_NUMBERING = Y|N
При отмеченной опции будет использоваться обратная навигация. Для обратной навигации в системе происходит обратный отсчет страниц (последняя страница считается первой). Таким образом, постоянно меняется лишь последняя страница при добавлении нового элемента. Это верно, если новые элементы попадают всегда вверх списка (отсортированы по дате начала активности по убыванию).
Базовая Аутентификация HTTP Apache

Создание базовой Аутентификации:

1) Создаем файл с паролями пользователей htpasswd
2) Прописать защищаемый ресурс в конфигурацию Apache (в файл httpd.conf или в файле .htaccess)
3) Создать файл для работы с группами и настроить групповой доступ (этот щаг не обязателен).

1) Для создания файла с паролямя имеется в наличии утилита, входящая в стандартную поставку сервера Apache.

htpasswd -c /var/www/html/site/.htpasswd administrator - создает файл с паролем

В .htaccess прописать
AuthType Basic
AuthName "Private Area"
AuthUserFile /www/secretDir/.htpasswd
Require user administrator

*Обязательно указывать полный путь к файлу от корня сервера
Битрикс всегда показывает авторизацию на резервной копии

http://otvet-vopros.ru/programming/bitrix/bitriks-trebuet-avtorizaciyu/
cevent::send битрикс Как отправлять письма

$arFields = array(
"ORDER_ID"=>'1',
"ORDER_DATE"=> 'ORDER_DATE',
"EMAIL"=> 'qqq@qqq.ru',
    );
CEvent::Send("SALE_STATUS_CHANGED_S", SITE_ID, $arFields, 70);

Чтение данных из Exel PHP

http://denweb.org/programming/chtenie-excel-fajlov-php-skriptom/
Дамп базы данных MySQL

Содать дамп базы данных MySQL:
mysqldump -uroot --h -p123 dbname > dump.sql

Распаковать базу из дампа
mysql -uroot -h -p123 dbname < dump.sql
Добавить свойство к элементу заказа в админке битрикс

Для того чтобы добавить в заказ в админку битрикс свойство товара (чтоб в заказе показывалось это свойство) - нужно при вызове компонента каталог заполнить свойство OFFERS_CART_PROPERTIES - массив из кодов нужных свойств торгового предложения.
PS. Там доступны не все свойства.
eee


				

		
Где располагается список агентов битрикс

/bitrix/admin/agent_list.php?PAGEN_1=1
Где настраивается URL (урл) сайта в битрикс

URL Сайта настраивается в
1) Настройки - Сайты - Нужный сайт
2) Настройки - Настройки модулей - Главный модуль
Где настроивается резервное копирование в битрикс

На странице Резервные копии (Настройки > Облако 1С-Битрикс > Резервные копии)

/bitrix/admin/dump_auto.php?lang=ru
grunt не является внутренней или внешней командой

http://sonikelf.com/arhiv-foruma/70-nerabotayut-komandy-cmd-exe-ispravlyaem.html

https://toster.ru/q/146227
https://toster.ru/q/80176
Хороший учебник по GitHub

http://git-scm.com/book/ru/v1/

Исключить из tar архива при аривироварии

$ tar cvf archive.tar --exclude='logs/*' --exclude='tmp/*' ./
Исключить из архива tar (exclude)

Пример вызова $ tar cvf archive.tar --exclude='logs/*' --exclude='tmp/*' ./

Параметр --exclude нужно указывать обязательно после имени файла архива

Если используются символы * или ?, нужно брать их в одинарные апострофы

Дополнительный интересный параметр
-X, --exclude-from=ФАЙЛ исключать шаблоны, перечисленных в ФАЙЛЕ
Как добавить в кеш дополнительные поля из result_modifier.php

$this->__component->SetResultCacheKeys(array("COLORS", "PREVIEW_TEXT", "DETAIL_TEXT"));

Как изменить кодировку MySQL базы данных

Изменяем кодировку для базы данных:
ALTER DATABASE `имя базы` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci;

Изменяем кодировку для таблицы:

ALTER TABLE `tablename` CONVERT TO CHARACTER SET cp1251 COLLATE cp1251_general_ci;
ALTER TABLE `tablename` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci;
Как сделать скриншот активного окна

ALT + PrintScreen
Как скрыть товары, которых нет в наличии битрикс

Настройки модуля Торовый каталог -
Включить резервирование
При отмеченной опции товары с у которых нет доступных торговых предложений показываться не будут.
Как создать архив .tar.gz

Создать архив .tar.gz
tar -czvf file.tar.gz /full/path

распаковать архив .tar.gz
tar -xvf file.tar.gz
Как создать символическую ссылку Linux

# ln -s /var/net/test/ /var/net/test2/ Таким образом по адресу /var/net/ создается папка test2 которая является прямым аналогом нашей директории /var/net/test/
Как вывести торговые предложения в карточке товара Битрикс

Если в дефолтном шаблоне не выводятся торговые предложения - надо указать в настройках компонента не только поля, но и хотя бы одно свойство торгового предложения.
Как запретить доступ к папке через .htaccess

deny from all
Команды SSH

https://vps-server.ru/ssh-commands
Место, где чистить кеш фейсбука при шеринге

https://developers.facebook.com/tools/debug/og/object/
Не работает каталог\обработка адресов после удаления одного из правил

При удалении правил битрик удаляет не только выбраное правило, но и все правила с таким же условием
Не отправляется форма form.result.new после кастомизации шаблона

Есть 2 скрытых значения для отправки формы, которые битриксу очень важны:

<input type="hidden" class="inputtext" name="web_form_submit" value="Сохранить" >
<input type="hidden" class="inputtext" name="web_form_apply" value="Y" >
Не отправляются письма заполнения формы битрикс

http://www.thisis-blog.ru/problema-s-otpravkoj-pisem-v-bitriks/
Не работает обработка адресов при переходе на nginx

Добавить в nginx правило

if (!-e $request_filename)
{
rewrite ^(.*)$ /bitrix/urlrewrite.php last;
}
Не работает CIBlockElement::GetProperties ( GetProperties() )

Не работает CIBlockElement::GetProperties ( GetProperties() ), не удается получить свойства через GetProperties - в arSelectFields (при вызове GetList) нужно вставить ID и IBLOCK_ID, а в arFilter добавить соответствующий IBLOCK_ID (хотя раньше работало и без этого)
не работает обработка адресов в битриксе (404 ошибка)

Первы делом надо проверить адекватность файла .htaccess. В нем должны быть такие правила RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$

Так же рекомендуют проверить настройки apache (/etc/apache2/apache2.conf)
AllowOverride All (вместо None)
Не удалось обнаружить код вызова компонента Ошибка Битрикс

В .htaccess включить две строки:
для не-UTF:
php_value mbstring.func_overload 0
php_value mbstring.internal_encoding latin1
для UTF:
php_value mbstring.func_overload 2
php_value mbstring.internal_encoding UTF-8

Возможно ошибка появляется из-за неправильной расстановки html-тегов (например, какой-то из тегов закрыт не в том месте, где надо)

Убрать все html-комментарии со страницы

Заключить код вызова компонента в отдельные символы <? ?> (то есть, отделить от другого php-кода)

Вставить такую конструкцию перед вызовом компонента: <?/**/?>
Неправильно работает страничник (Пагинация) битрикс

Множественные ошибки, такие как:
Неверный порядок элементов
Неправильно определяется количество элементов на странице и другие решаются параметром в настройках компонента: Использовать обратную навигацию
"PAGER_DESC_NUMBERING" => "N"
Параметр сильно завязан на настройках сортировки
Невозможно изменить количество товара на складе

Скорее всего виновата галочка "Включить количественный учет" в настройках модуля тогровый каталог. Если она включена - править количество вручную нельзя. А если выключена - товар не будет списываться при заказе.
Обработка адресов битрикс с сохранением GET-параметров и настройкой 404 ошибки

#^/catalog/([0-9a-zA-Z-_]+)(\?|/)(\?(.*))?#
Ошибка CAdminTheme не видит классы админки битрикс

Невозможно войти в админку битрикс, выдает что класс не найден
Например Fatal error: Class 'CAdminTheme' not found
Если был настроен SSL, обязательно надо проверить установлена ли в настройках хостинга нового сайта поддержка SSL, иначе не загружаются скрипты админки
Отложенные функции битрикс

Вывести отложенный контент:
$APPLICATION->ShowViewContent('area');

Задать отложенную область область
$this->SetViewTarget('area');
echo 'Это отложенная область битрикс, которую можно вывести раньше по коду.';
$this->EndViewTarget();
Перехват буфера вывода PHP

ob_clean();
ob_start();
echo (111);
$t=ob_get_contents();

Показывать в умном фильтре пропала битрикс

Отмечайте две галочки разом
Показывать на странице редактирования элемента
Показывать в умном фильтре
Получение адреса детальной страницы по элементу корзины(торговому предложению)

if(!$arItem['DETAIL_PAGE_URL'])
{ 
	$mxResult = CCatalogSku::GetProductInfo($arItem["PRODUCT_ID"]); 
	$rsElements=CIBlockElement::GetById($mxResult['ID']); 
	$rsElements->SetUrlTemplates("/catalog/#SECTION_CODE#/#ELEMENT_CODE#/"); 
	if($tempElement = $rsElements->GetNext()) 
	{ 
		$arItem['DETAIL_PAGE_URL']=$tempElement['DETAIL_PAGE_URL']; 
	} 
}
$arNewItems[$k]=$arItem;

Получение новых META свойств для раздела

$ipropValues = new \Bitrix\Iblock\InheritedProperty\SectionValues($arSection["IBLOCK_ID"], $arSection["ID"]);
$arSection["IPROPERTY_VALUES"] = $ipropValues->getValues();
Получить мета(meta) (новые)свойства страницы Элемента битрикс

$ipropValues = new \Bitrix\Iblock\InheritedProperty\ElementValues($arResult["IBLOCK_ID"], $arResult["ID"]);
$arResult["IPROPERTY_VALUES"] = $ipropValues->getValues();
Получить секцию(раздел) по ID(ид) элемента битрикс

$res = CIBlockElement::GetByID($ElementID);
if($arRes = $res->Fetch())
{
	//print_r($arRes);
	$res = CIBlockSection::GetByID($arRes["IBLOCK_SECTION_ID"]);
	if($arRes = $res->Fetch())
	{
		echo $arRes["CODE"];
	}
}

Получить секцию(раздел) с количеством элементов

$resElem = CIBlockElement::GetByID($ElementID);
if($arResElem = $resElem->Fetch())
{
	//print_r($arRes);
	//$res = CIBlockSection::GetByID($arRes["IBLOCK_SECTION_ID"]);
	$rsSections = CIBlockSection::GetList($arOrder, array('ID'=>$arResElem["IBLOCK_SECTION_ID"]), true);
	if($arResSec = $rsSections->Fetch())
	{
		
	}
}

Пользователю показывается меню другого пользователя Битрикс

Проблема в кеше.

Лезем в компонент bitrix:menu
и видим там
($arParams["MENU_CACHE_USE_USERS"] === "Y"? $this->getGenerationCachePath($USER->GetID()): false)

Решение: Добавить в вызов компонента меню параметр
"MENU_CACHE_USE_USERS" => "Y", меню станет кешироваться для каждого пользователя отдельно.

В качестве бонуса получаем огромный кеш меню, если в нем много пунктов и на сайте много пользователей.
размер папки на сервере по SSH

du -sh [путь]

Размер всех папок в текущей
du -sh *

http://howtoit.ru/linux/shell/item/47-kak-uznat-razmer-papki-v-linux.html
С какого почтового адреса будут приходить письма, отправленные сайтом на Битрикс?

В качестве отправителя для большей части писем (#DEFAULT_EMAIL_FROM#) будет использован e-mail, который указан в настройках главного модуля.
Но честь писем(генерируемых интернет-магазином) будет отправляться с e-mail, указанного в настройках модуля "интрнет-магазин".
Поэтому возможны ситуации, когда пользователю подряд приходят письма с разных адресов, например при оформлении заказа, если включена опция регистрации при оформлении заказа.
set_time_limit php

set_time_limit - Устанавливает время в секундах, в течение которого скрипт может работать
SetViewTarget не работает в component_epilog.php ошибка битрикс

http://dev.1c-bitrix.ru/community/webdev/user/94859/blog/11114/
Склонение числительных, правильные окончания

function NumberEnd($number, $titles) { $cases = array (2, 0, 1, 1, 1, 2); return $titles[ ($number%100>4 && $number%100<20)? 2 : $cases[min($number%10, 5)] ]; }
$titles=array('вещь', 'вещи', 'вещей')
Создание сайта на поддомене битрикс

Алгоритм действий:
1) Создать новый сайт в админ-панели сервера
2) В корень сайта вгрузить публичную часть нового сайта
3) В настройках сайтов прописать домен и сервер. Путь к сайту оставить равным "/"
4) Создать символические ссылки у нового сайта на старый bitrix & upload
(ln -s /dirold/ dirnew)
5) В новом сайте open_basedir разрешить доступ к папкам первого сайта
6) Для файлов на старом сайте установить права, разрешающие редактирование из другого пользователя, где это необходимо
Список запущенных процессов Linux

http://www.adodo.ru/blog/linux/93.html
Стандартный код свойства Артикул в битрикс

Стандартный код свойства Артикул в битрикс:
CML2_ARTICLE
У Вас нет прав на просмотр полного текста Битрикс ошибка

Как исправить:
1) в настройках инфоблока на вкладке доступ - выставить нужные права
2) В параметрах компонента поставить "USE_PERMISSIONS" => "N" (Учитывать права доступа = НЕТ)
Указанное местоположение не найдено Битрикс Ошибка

CSaleLocation::proxySaleAjaxLocationsComponent или компонент sale.location.selector в вызове содержат параметр ID, который задает местоположение, которое будет показываться по умолчанию - надо задать id местоположения, которое реально существует в базе (вкладка магазин - пункт местоположения)
Уменьшить изображение на лету ResizeImageGet

$file = CFile::ResizeImageGet($fileID, array('width'=>200, 'height'=>150), BX_RESIZE_IMAGE_PROPORTIONAL, true);

Где $fileID - ID файла или описывающий файл массив (GetFileArray)
Устаноить мета(meta) (новые)свойства страницы Элемента битрикс

//Установка заголовка:
print_R($arResult['IPROPERTY_VALUES']);
$APPLICATION->SetTitle($arResult['IPROPERTY_VALUES']['ELEMENT_META_TITLE']);

//Установка ключевых слов:
$APPLICATION->SetPageProperty("keywords", $arResult['IPROPERTY_VALUES']['ELEMENT_META_KEYWORDS']);

//Установка description(описания)
$APPLICATION->SetPageProperty("description", $arResult['IPROPERTY_VALUES']['ELEMENT_META_DESCRIPTION']);
Устаноить мета(meta) (новые)свойства страницы битрикс

Установка заголовка:
$APPLICATION->SetTitle($arResult['IPROPERTY_VALUES']['SECTION_META_TITLE']);

Установка ключевых слов:
$APPLICATION->SetPageProperty("keywords", $arResult['IPROPERTY_VALUES']['SECTION_META_KEYWORDS']);

Установка description(описания)
$APPLICATION->SetPageProperty("description", $arResult['IPROPERTY_VALUES']['SECTION_META_DESCRIPTION']);
viewport для мобильных устройств

Соотношение 1 к 1
<meta name="viewport" content="initial-scale=1">

все файлы измененные сегодня ssh

find /dirname -mtime -1 -type f
Вывести свойства товара в корзине, которых нет в списке настроек компонента каталог, если товар без торговых предложений

Например, выводим свойство артикул (строка)

$rsElements=CIBlockElement::GetById($arItem["PRODUCT_ID"]); 
			$rsElements->SetUrlTemplates("/catalog/#SECTION_CODE#/#ELEMENT_CODE#/"); 
			if($tempElement = $rsElements->GetNextElement()) 
			{ 
				$ar_res = $tempElement->GetProperties();
				$arItem['PROPS']['ARTICUL']=$ar_res['ARTICUL'];
			} 

Запись в файл вывода ssh

Для начала записи введите в терминале
script /root/text.txt

Для остановки
exit
text code




    Upload File
    Логин или E-mail
    Пароль
    Восстановить пароль
    E-mail
    Пароль
    Повторите пароль
    Уже зарегистрированы?
    Close