50 заметок с тегом
Bitrix
Получить минимальную цену товара в разделе
7 ноября 2016, 15:04
function getMinPriceBySectionID($sectionID){ $CATALOG_ID = 4; $rsProducts = CIBlockElement::GetList( Array('CATALOG_GROUP_1' => 'ASC'), Array('IBLOCK_ID' => $CATALOG_ID, 'SECTION_ID' => $sectionID), false, Array('nTopCount' => 1), Array('IBLOCK_ID', 'ID', 'NAME', 'CATALOG_GROUP_1') ); $arProducts = $rsProducts->Fetch(); $price = $arProducts["CATALOG_PRICE_1"]; if (!empty( $price)) return App::priceFormat($price); else return false; }
Bitrix: Консольные скрипты
18 октября 2016, 10:40
// эту соль по вкусу #set_time_limit(0); #ini_set('output_buffering','off'); #date_default_timezone_set('Europe/Moscow'); // это мы проверяем что мы запускаемся тока из консольки if (php_sapi_name()!="cli") die(); $_SERVER["DOCUMENT_ROOT"] = realpath(dirname(__FILE__)."/../../"); require_once ($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); //у битрикса тройной буфер, поэтому 3 буфера мы и очищаем-отключаем. ob_end_clean(); ob_end_clean(); ob_end_clean();
Bitrix: Белый экран смерти
2 августа 2016, 10:09
WSOD — White Screen Of Death
Бывает что некорректно написанный скрипт под Битриксом падает белым пустым экраном смерти и никакого намёка на место падения.
В таких случаях надо переопределить PHP Shutdown Function следующим образом,
код можно вставить в init.php
function ShutdownHandler() { if(@is_array($error = @error_get_last())) { return(@call_user_func_array('ErrorHandler', $error)); }; return(TRUE); }; register_shutdown_function('ShutdownHandler'); // ---------------------------------------------------------------------------------------------------- // - Error Handler // ---------------------------------------------------------------------------------------------------- function ErrorHandler($type, $message, $file, $line) { $_ERRORS = Array( 0x0001 => 'E_ERROR', 0x0002 => 'E_WARNING', 0x0004 => 'E_PARSE', 0x0008 => 'E_NOTICE', 0x0010 => 'E_CORE_ERROR', 0x0020 => 'E_CORE_WARNING', 0x0040 => 'E_COMPILE_ERROR', 0x0080 => 'E_COMPILE_WARNING', 0x0100 => 'E_USER_ERROR', 0x0200 => 'E_USER_WARNING', 0x0400 => 'E_USER_NOTICE', 0x0800 => 'E_STRICT', 0x1000 => 'E_RECOVERABLE_ERROR', 0x2000 => 'E_DEPRECATED', 0x4000 => 'E_USER_DEPRECATED' ); if(!@is_string($name = @array_search($type, @array_flip($_ERRORS)))) { $name = 'E_UNKNOWN'; }; return(print(@sprintf("%s Error in file %s at line %d: %s\n", $name, @basename($file), $line, $message))); }; $old_error_handler = set_error_handler("ErrorHandler");
и так мы узнаем где и что упало
LocalRedirect Пользователей
14 июля 2016, 12:56
Перенаправление групп пользователей по домашним директориям
somewhere.php
class UserGroupsRedirect{ /** * @param $fields * После авторизаци перебрасываем пользователя в назначенную его группе директорию */ function OnAfterUserLoginHandler(&$fields) { global $USER; \Bitrix\Main\Diag\Debug::dumpToFile($USER->GetUserGroupArray()); if (!ADMIN_SECTION) { if ((!empty($fields['USER_ID'])) && (in_array('5',$USER->GetUserGroupArray()))){ LocalRedirect("/"); } if ((!empty($fields['USER_ID'])) && (in_array('6',$USER->GetUserGroupArray()))){ LocalRedirect("/vip/"); } if ((!empty($fields['USER_ID'])) && (in_array('8',$USER->GetUserGroupArray()))){ LocalRedirect("/user/profile/"); } } } }
init.php
// обработкчики событий use Bitrix\Main\EventManager; $handler = EventManager::getInstance()->addEventHandler( "main", "OnAfterUserLogin", array( "UserGroupsRedirect", "OnAfterUserLoginHandler" ) );
Bitrix: Пакетное выполнение SQL скриптов
6 июля 2016, 13:58
/** * @param $pathToScript * $pathToScript = $_SERVER["DOCUMENT_ROOT"]."/local/modules/[modname]/install/sql/b_table.sql"; * */ protected function runSqlScript($pathToScript){ global $DB; $arErrors = $DB->RunSqlBatch($pathToScript); return $arErrors; }
Магазин: Получить список файлов в директории
6 июля 2016, 1:49
Получить список файлов в директории
use \Bitrix\Main\IO\Directory; use \Bitrix\Main\Diag\Debug; $dir = new Directory(dirname(__FILE__)); $arDir = $dir->getChildren(); foreach($arDir as $dirItem){ if ($dirItem->isFile() && $dirItem->getName()!="index.php" ) $arMigrations[] = $dirItem->getName(); } Debug::dump($arMigrations);
Интернет магазин: склонения
22 июня 2016, 11:21
Склонения числительных
/** * Функция склонения числительных в русском языке * * @param int $number Число которое нужно просклонять * @param array $titles Массив слов для склонения * @return string * @example: echo 'Я знаю '.declOfNum(5, array('язык', 'языка', 'языков')); */ function declOfNum($number, $titles) { $cases = array (2, 0, 1, 1, 1, 2); return $titles[ ($number%100 > 4 && $number %100 < 20) ? 2 : $cases[min($number%10, 5)] ]; }
Склонения существительных
я использовал библиотеку phpMorphy
Нативная выборка свойства строка
21 июня 2016, 18:02
Нативная выборка свойства строка из таблицы инфоблоков
select e.ID as ORDER_ID, biep.VALUE EMAIL from b_iblock_element e INNER JOIN b_iblock_element_property biep ON e.ID = biep.IBLOCK_ELEMENT_ID WHERE e.IBLOCK_ID=11 AND biep.IBLOCK_PROPERTY_ID = 36
Выборка свойства типа привязка к элементу одиночная
select e.ID as ORDER_ID, biep.VALUE from b_iblock_element e INNER JOIN b_iblock_element_property biep ON e.ID = biep.IBLOCK_ELEMENT_ID WHERE e.IBLOCK_ID=11 AND biep.IBLOCK_PROPERTY_ID = 46
Выборка множественного свойства привязка к элементу
select e.ID as ORDER_ID, biep.VALUE, e2.NAME from b_iblock_element e INNER JOIN b_iblock_element_property biep ON e.ID = biep.IBLOCK_ELEMENT_ID INNER JOIN b_iblock_element e2 ON e2.ID = biep.VALUE WHERE e.IBLOCK_ID=11 AND biep.IBLOCK_PROPERTY_ID = 49
Bitrix: Запросы к БД
21 июня 2016, 11:01
Запросы к БД
use Bitrix\Main\Application; use Bitrix\Main\Diag\Debug; $record = Application::getConnection() ->query("select 1+1;") ->fetch(); Debug::writeToFile($record);
Bitrix: включаемая область
29 мая 2016, 3:11
из файла
<? $APPLICATION->IncludeComponent("bitrix:main.include","",Array( "AREA_FILE_SHOW" => "file", "PATH"=>"address.php" ) );?>
Bitrix: Информационный портал
28 мая 2016, 16:53
Новости
Новости-деталка
Публикация текста статьи в соц. сетях.
WebServices
Bitrix исключения
28 мая 2016, 16:36
в d7 исключения бросаются так
throw new Exception("Сообщение иключения");
Интернет Магазин: Каталог
10 февраля 2016, 19:15
Получить базовую цену товара по его ID
$productID = $arResult["ID"]; $arBasePrice = CPrice::GetBasePrice($productID); dump($arBasePrice["PRICE"]);
Получить список торговых предложений по ID товара из основного каталога
$arOffers = CIBlockPriceTools::GetOffersArray();
Вызов метода с параметрами
$arOffersFilter =array( "IBLOCK_ID"=>$arParams["IBLOCK_ID"], // ID торгового каталога "HIDE_NOT_AVAILABLE"=>"Y", "SHOW_PRICE_COUNT"=>true); $arOffersOrder = array("sort"=>"asc","id"=>"desc"); $arSelectFields = array("NAME"); $arSelectProps = array( "CML2_ARTICLE", "CML2_COLOR", "CML2_SIZE", "PREVIEW_PICTURE", "DETAIL_PICTURE" ); $arOffersLimit = 0; $arOffersPrices = array( "Розница"=> array( "ID"=>1, "TITLE"=>"Цена", "SELECT"=>"CATALOG_GROUP_1", "CAN_VIEW"=>true, "CAN_BUY"=>true) ); $arVat = false; $arOffers = CIBlockPriceTools::GetOffersArray( $arOffersFilter, array($productID), // ID товара из основного каталога $arOffersOrder, $arSelectFields, $arSelectProps, $arOffersLimit, $arOffersPrices, $arVat,array() ); dump($arOffers);
Интернет магазин: Фильтры
9 февраля 2016, 16:54
Фильтр по количеству товара в магазине
$arFilter[">CATALOG_QUANTITY"]=0; // кол-во товаров больше 0
Фильтр по цене товара
$arFilter["=CATALOG_PRICE_1"]=135; // цена = 135 р
Тип свойства инфоблока
6 февраля 2016, 15:13
Памятка
Тип свойства. Возможные значения: S — строка, N — число, F — файл, L — список, E — привязка к элементам, G — привязка к группам(Категориям каталога).
тип E — привязка к элементам
array ( 'IBLOCK_ID' => '4', 'NAME' => 'Регион', 'ACTIVE' => 'Y', 'SORT' => '500', 'CODE' => 'REGION', 'DEFAULT_VALUE' => '', 'PROPERTY_TYPE' => 'E', 'LINK_IBLOCK_ID'=>'2', 'LIST_TYPE' => 'L', 'MULTIPLE' => 'N', 'FILE_TYPE' => '', 'MULTIPLE_CNT' => '1', 'USER_TYPE' => NULL, 'USER_TYPE_SETTINGS' => NULL, 'HINT' => 'Регион', )
Интернет Магазин: Оглавление
6 февраля 2016, 14:58
Оглавление
- Каталог товаров
- Список Разделов
- Деталка или Карточка товара
- Рекомендуемые товары
- Акции
- С эти товаром покупают
- Фильтры
- Интеграция с 1С
- Корзина
- Заказы
- Формат цены
- Склонения
- Работа с файлами