Интернет-магазин La Flower: обширный каталог живых цветов по низким ценам. Интернет магазином исполняется круглосуточная доставка букетов по всей Украине.
Букеты цветов остаются популярными, вне зависимости от времени года и экономической ситуации в стране: букеты преподносятся на день рождения и остальные значимые события, на свиданье с девушкой и в различных иных обстоятельствах. И, конечно же, все мы стараемся купить букет, соответственно с пожеланиями его получателя, но крайне важно, чтобы это были самые свежие цветы, каковые будут стоять долгое время и радовать своей красотой окружающих. В последнее время в рознице имеется множество предложений, но мы хотели представить самую лучшую компанию, каковая не перестает пользоваться значительным уважением своих стабильных заказчиков.
Обширный ассортимент свежих цветов
Онлайн-магазин Ла Фловер, расположенный по адресу laflower.com.ua, имеет свои отделения во многих регионах Украины, поэтому абсолютно каждый посетитель сумеет оформить заказ на доставку букетов в строго оговоренную дату и к определенному времени. В ассортименте интернет магазина предлагаются живые цветы разнообразных видов. Пользователь сумеет оформить заказ на поставку, как уже готовой композиции, сделанной опытным флористом, так и шикарный букет из растений одного вида.
Для вас в каталоге хризантемы и герберы, розы и гвоздики, гортензии и другие роскошные растения, каковые придутся по вкусу любому заказчику. Весьма важно, что приобретая букеты цветов в рекомендованном интернет-магазине, покупателю обязательно гарантируется их наилучшее качество. И мы можем без колебаний заявить, что букет, приобретенный из каталога рекомендованного магазина и подаренный по какому-то серьезному поводу либо без него, доставят огромную радость его получателю и наиболее ярко расскажут о вашем отношении к нему.
Превосходные условия для клиентов
Ранее мы отметили, что магазин ЛаФловер производит доставку букетов во всех регионах Украине, впрочем это не единственный мотив для обращения именно туда. Приобретение здесь предполагает ряд безусловных преимуществ для посетителей, скажем:
приемлемая цена цветов и шикарных композиций;
круглосуточная поставка букетов;
разные схемы оплаты;
индивидуальный подход к каждому заказчику и высококачественный сервис.
Мы хотим назвать еще массу оснований для прихода в рекомендованный интернет магазин, но будет лучше лично посмотреть впечатляющий каталог и оформить заказ на приглянувшиеся букеты. Надо сказать, на сайте вы найдете много полезных рекомендаций от профессиональных флористов по покупке живых цветов и остальную интересную информацию.
Вкратце: при создании раздела, если в форму редактирования выведена вкладка "Свойства элементов" (или они выведены в какой-нибудь другой вкладке), фасетный индекс начинает требовать обновления. И из-за этого время от времени пропадают товары из публички (особенности работы CIBlockElement::GetList). Ясное дело, меня это не устраивало. (Можно просто скрыть вывод "Свойств элементов", но это слишком просто для таких извращенцев, как я)
Собственно мне помогло вот это в init.php
AddEventHandler("iblock", "OnBeforeIBlockSectionAdd", "OnBeforeIBlockSectionAddHandler");
/*
* Удаляет из массива настройки свойств элементов, если они не изменились.
* Если ничего не изменилось, не придётся пересоздавать фасетный индекс.
*/
function OnBeforeIBlockSectionAddHandler(&$arFields)
{
if(!empty($arFields['SECTION_PROPERTY']))
{
$arPropLinks = CIBlockSectionPropertyLink::GetArray($arFields['IBLOCK_ID'], $arFields['IBLOCK_SECTION_ID']);
// Если у инфоблока есть торговые предложения, пройдёмся по их свойствам тоже
$arCatalog = false;
if (CModule::IncludeModule("catalog"))
$arCatalog = CCatalogSku::GetInfoByProductIBlock($arFields['IBLOCK_ID']);
if (is_array($arCatalog))
$arPropLinks += CIBlockSectionPropertyLink::GetArray($arCatalog['IBLOCK_ID']);
foreach($arFields['SECTION_PROPERTY'] as $propId => $options)
{
if(!empty($arPropLinks[$propId]))
{
// Форма возвращает нам SMART_FILTER и DISPLAY_EXPANDED либо как 'Y', либо как null,
// CIBlockSectionPropertyLink::GetArray может вернуть и 'N'. Не порядок.
if($arPropLinks[$propId]['SMART_FILTER'] === 'N')
$arPropLinks[$propId]['SMART_FILTER'] = null;
if($arPropLinks[$propId]['DISPLAY_EXPANDED'] === 'N')
$arPropLinks[$propId]['DISPLAY_EXPANDED'] = null;
if($arPropLinks[$propId]['FILTER_HINT'] === null) // такое тоже бывает
$arPropLinks[$propId]['FILTER_HINT'] = '';
foreach($options as $key => $value) {
if($arPropLinks[$propId][$key] !== $value)
return;
}
}
}
unset($arFields['SECTION_PROPERTY']);
}
}
CIBlockSectionPropertyLink::GetArray - подсмотрел в /bitrix/modules/iblock/admin/iblock_section_edit.php. Документации нет, но есть хороший комментарий здесь.
В принципе всё. В комментариях в коде самое главное написано. В любом случае, если соберётесь использовать это у себя - перепроверьте. Мало ли что.
P.S. При таком подходе (как и при скрытии вывода "Свойств элементов") у свежесозданных разделов (у которых вы ничего не меняли в "Свойствах элементов" при создании) теряется возможность редактировать эти самые "Свойства элементов", что нормально. Тут что скриптом исключай, что изначально не отображай. И тут уж вам самим выбирать, пересоздавать ли фасетный индекс при добавлении любого раздела, или получить нередактируемые поля.
Всё ещё считаю, что такое поведение GetList'а - это чёрная магия
Странно что до сих пор нет такого свойства в стандартной поставке. Может где-то проскакивало на форуме - не помню, решил написать своё для удобства работы, может кому-то пригодится:
Как использовать: 1. разместить файл CViDiPropSection.php в папке /bitrix/php_interface/lib/ 2. в файле /bitrix/php_interface/init.php добавить код:
AddEventHandler("main", "OnBeforeProlog", "IBlockOnBeforePrologHandler");
function IBlockOnBeforePrologHandler()
{
// Пользовательское свойство - привязка к разделам в виде списка
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/lib/CViDiPropSection.php");
}
После этого на странице настроек свойств инфоблока появится это свойство:
Если разделы имеют вложенную структуру - то они показываются последовательно, один под одним (после выбора раздела первого уровня предлагается выбрать раздел второго уровня, и тд.). Удобно если разделов очень большое количество.
Согласен, если методы юзертайпа не планируется использовать до вызова CIBlockProperty::GetUserType(), то можно обойтись пятым параметром AddEventHandler().
Сколько времени пишу под Битрикс, никогда не знал о существовании константы SITE_TEMPLATE_PATH (не описанной, как всегда, в документации, но любезно подсказанной моим коллегой).
После восстановления пароля, пользователь нажимает на кнопку авторизации, вводит свой логин и новый пароль, но авторизация не происходит. Ошибок не выдает, просто обновляется страница и на этом все. После повторного нажатия на кнопку авторизации - авторизует. В чем может быть проблема?
После восстановления пароля, пользователь нажимает на кнопку авторизации, вводит свой логин и новый пароль, но авторизация не происходит. Ошибок не выдает, просто обновляется страница и на этом все. После повторного нажатия на кнопку авторизации - аторизует. В чем может быть проблема?
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».