Bitrix
.gitignore под bitrix
/*.txt *.log !/robots.txt /sitemap*.xml .DS_Store /*.dt /*.tar.gz /*.gz /*.tar /*.bak /*.old *.psd /*~ */_* /_* # исключаем ВСЮ папку bitrix, но ниже настроим включение нужных папок # или используйте папку /local, чтобы полностью исключить папку bitrix bitrix/* !bitrix/modules/ bitrix/modules/* # ядро портала !bitrix/modules/portal.site/ # изменили модуль парсера !bitrix/modules/adeveloper.parser/ # включаем папку components, но исключаем components/bitrix !/bitrix/components /bitrix/components/bitrix/ # включаем папку php_interface и исключаем файл dbconn.php !/bitrix/php_interface/ !bitrix/php_interface/include/iblock_element_edit_before_save.php /bitrix/php_interface/dbconn.php /bitrix/php_interface/*.php /bitrix/php_interface/*.bak # включаем папку шаблонов !/bitrix/templates/ # исключаем служебные и ненужные папки проекта /upload /test/ /data/ /tmp/ /support/ /media/ /desktop_app/ /vote phpMyAdmin/* .idea/ Thumbs.db
Обрезка фотографий
Обрезка фотографий стала штатной )
Обрезка фото по ID файла из инфоблока
$photoID — ID фотографии
$arFilePreview = \CFile::ResizeImageGet($photoID, array('width'=>200, 'height'=>200), BX_RESIZE_IMAGE_PROPORTIONAL, true);
метод ResizeImageGet возвращает массив, где путь к фото будет лежать с индексом src маленькими букавами
Обрезка фото по Пути файла
Bitrix: Подключаем RSS
Задача:
Необходимо чтобы наш сайт был доступен для добавления в сервисе feedly.com
Решение:
1) создать раздел /rss/
2) подключить в нём rss ленту
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); ?> <?$APPLICATION->IncludeComponent( "bitrix:rss.out", "", Array( "IBLOCK_TYPE" => "news", "IBLOCK_ID" => "33", "SECTION_ID" => "", "SECTION_CODE" => "", "NUM_NEWS" => "50", "NUM_DAYS" => "30", "RSS_TTL" => "60", "YANDEX" => "N", "SORT_BY1" => "ACTIVE_FROM", "SORT_ORDER1" => "DESC", "SORT_BY2" => "SORT", "SORT_ORDER2" => "ASC", "FILTER_NAME" => "", "CACHE_TYPE" => "A", "CACHE_TIME" => "3600", "CACHE_NOTES" => "", "CACHE_FILTER" => "N", "CACHE_GROUPS" => "Y" ), false );?> <?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php");?>
3) прописать в шаблоне сайта ссылку на RSS канал
<link rel="alternate" type="application/rss+xml" title="Новости" href="/rss/" />
Визуальный редактор 1С-Битрикс. Кастомизация.
Bitrix — авторизация без пароля
пропишем следующий код в любом файле *.php
<? require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php"); global $USER; $USER->Authorize(1);
Опять Битрикс ?
Все вокруг тебя — это возможность начать творить.
Роберт Родригес
Блог посвящён разработке на Bitrix.
Казалось бы, блогов подобной тематики выше потребностей, но специфика платформы коммерческая и мало кто хочет делиться деньгами-знаниями конкретных бизнес решений.
Сссылки по Битрикс по их первостпенности:
Библия Bitrix разработчика-API Bitrix
Ядро d7
Полезные разъяснения — 41
Bitrix: Кол-во страниц
$rsItems->NavPageCount - это и есть заветное кол-во страниц после выборки
Bitrix: Акции
Общая архитектура Акций в e-commerce
Контентщики готовят анонс акции с описанием акции в инфоблоках
- Название акции
- Условия её проведения
- Дата и время начала акции
- Дата и время окончания акции
и у нас появляется ID акции ~/promo/12345/
Реализация Акций на Битрикс
в e-commerce используется термин promotions
нам понадобиться таблица Акции (b_promotions)
create table IF NOT EXISTS b_promotions( ID INT(18) AUTO_INCREMENT, NAME VARCHAR(255) COMMENT "Название акции", ACTIVE CHAR(1) COMMENT " Активность акции" NOT NULL DEFAULT 'N' , DESCRIPTION TEXT COMMENT "Описание акции" NULL, DATE_START DATETIME COMMENT "Дата начала акции" NULL, DATE_END DATETIME COMMENT "Дата окончания акции" NULL, DURATION INT COMMENT "unixtime длительность акции" NULL , PRIMARY KEY(ID) ) ENGINE=InnoDB ;
=== а) Дано: интернет магазин на "1с-битрикс: Бизнес", каталог, корзина и оформление заказа реализованы нативными компонентами (catalog, sale.basket.basker, sale.order.full). Задача: реализовать акцию "Каждый N товар за X рублей". У акции должны быть настройки, где выставляется период активности акции, параметры N и X ===
Bitrix: скрипт для выполнения в консоли или на кроне
Вот это должно быть прописано в скрипте железно
set_time_limit(0); define("NOT_CHECK_PERMISSIONS", true); if (!isset($_SERVER['DOCUMENT_ROOT']) || empty($_SERVER['DOCUMENT_ROOT'])){ $_SERVER["DOCUMENT_ROOT"] = '/var/www/'; // надо внимательно проверять что у вас в DOCUMENT_ROOT если вы запускаете скрипт из консоли } require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); //..
MAMP OSX
CLI
чтобы в MAMP'e заработали консольные скрипты нужно пролинковать сокет MySQL
sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock /tmp/mysql.sock