1С-Битрикс: Управление сайтомНа главную страницу
Клиентам
Маркетплейс
Партнерам
Разработчикам
Интеграция с 1С
Идея?


Личный кабинет
Авторизоваться
Регистрация
(войти) Корзина
Логин:

Пароль:



Забыли свой пароль?
Регистрация
Войти как пользователь:
Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов:
ВКонтакте
Мой Мир
Twitter
Facebook
Google
Livejournal
Яндекс
Rambler
Mail.Ru
Liveinternet
Blogger
OpenID
Используйте вашу учетную запись VKontakte.ru для входа на сайт.
Используйте вашу учетную запись Мой Мир@Mail.ru для входа на сайт.
Используйте вашу учетную запись на Twitter.com для входа на сайт.
Используйте вашу учетную запись на Facebook.com для входа на сайт.
Используйте вашу учетную запись Google для входа на сайт.
.livejournal.com
@yandex.ru
@rambler.ru
@mail.ru
http://www.liveinternet.ru/users/ /
.blogspot.com
OpenID:
  • Документация
    • Управление сайтом
    • Корпоративный портал
    • .NET Forge CMS
    • Отраслевые решения
    • Marketplace
    • Аренда приложений (SaaS)
  • Обучение и сертификация
    • Онлайн-курсы и сертификация
    • Учебные центры
    • Мое обучение
    • Учебные видеоролики
  • Центр поддержки
    • Поддержка
    • FAQ
    • Мои обращения
  • Сообщество
    • Блоги Битрикс
    • Блоги веб-разработчиков
    • Общие форумы
    • Веб-разработчики
      • Моя страница
      • Мои сообщения
      • Группы
      • Найти коллег
  • Cтатьи
    • Архив
Главная / Общение / Блоги / dev.NET
Онлайн-трансляция презентации новой версии «1С-Битрикс: Управление сайтом 11.5»

dev.NET

  • Блоги
  •  » 
  • dev.NET
  • Облако тегов

    .net ASP.NET masterhost orm блоги веб-формы видео интернет-магазин инфоблоки кастомизация медиагалерея Модуль рекламы новая версия обновление установка форумы
  • Лучшие сообщения

    • Видео про 1C-Битрикс: ASP.NET
    • 1С-Битрикс: Управление Сайтом ASP.NET 5.0
  • RSS подписка

  • Архив

    «   Май 2012   »
    Пн Вт Ср Чт Пт Сб Вс
      1 2 3 4 5 6
    7 8 9 10 11 12 13
    14 15 16 17 18 19 20
    21 22 23 24 25 26 27
    28 29 30 31      
  • Поиск

Интернет-магазин на Битрикс ASP.NET - предложения (SKU), составные скидки, интеграция с 1С

14
Dmitry Pyalov [Дмитрий Пялов]
16.02.201111:3716.02.2011 11:37:05


На днях мы подготовили очередное обновление для "1С-Битрикс: Управление сайтом ASP.NET" версии 5.5.1. И хотя номер версии минорный, обновление  вполне себе значительное и несет в себе много нового функционала. Основные изменения коснулись Интернет-магазина. Начнем по порядку.

Читать подробнее...

Dmitry Pyalov [Дмитрий Пялов]
16.02.201111:3716.02.2011 11:37:05
Просмотров:2915 Комментариев:17 14
Теги: .net, ASP.NET, интернет-магазин, новая версия

1С-Битрикс: Управление Сайтом ASP.NET 5.5

3
Заводов Григорий
23.11.201014:5523.11.2010 14:55:47
Вышла новая версия "1С-Битрикс: Управление сайтом ASP.NET 5.5". C 17 ноября она доступна через систему обновлений и в виде дистрибутивов.

Главная задача, которую мы решили – осуществление торговли через Интернет. Теперь нет ничего легче, чем создать свое торговое представительство в Интернете.

Устанавливаем готовое решение "Интернет-магазин" и получаем рабочий сайт со структурой, меню, разделами, страницами и настроенными службами доставки и платёжными системами. Чтобы запустить магазин в работу, достаточно заменить демонстрационный каталог на каталог с вашими товарами.



Модули для осуществления торговли

Функционирование магазина обеспечивают новые модули: "Валюты", "Торговый каталог" и собственно "Интернет-магазин".

Модуль "Валюты" позволяет управлять корзиной валют магазина и обеспечивает автоматический пересчёт цены товара в валюту заказа, в соответствии с текущим курсом.

Модуль "Торговый каталог" обеспечивает поддержку создания и управления витриной товаров. Он отвечает за управление товарами, ставками НДС, типами цен (независимые или производные от базовой) и наценками. При этом поддерживаются многоуровневые цены. Многоуровневые цены – это возможность устанавливать цену товара в зависти от его количества в заказе.
Например, свойства товара в каталоге могут выглядеть так:



Модуль "Интернет-магазин" осуществляет поддержку продажи товаров с сайта: формирование заказа в корзине, его оформление, оплату и доставку.

Работа магазина

Мы постарались сделать магазин удобным для пользователя. Одна из важных особенностей: для начала формирования заказа не требуется предварительной регистрации - вы будете автоматически зарегистрированы при создании первого заказа.

Интуитивно понятный интерфейс "Корзины товаров" облегчает формирование заказа.



Вы можете положить товар в корзину или удалить его. Установить нужное количество заказываемого товара, просмотреть его характеристики, например: вес, цвет или размер упаковки. Просмотреть стоимость каждой товарной позиции заказа по отдельности и их общую стоимость. Также у вас имеется возможность отложить товар (оставив в корзине), чтобы включить в следующий заказ.

От формирования заказа переходим к оформлению. Здесь остаётся только выбрать варианты доставки и  способ оплаты и указать при необходимости другие данные:



Состав данных зависит от типа клиента, к которому принадлежит покупатель. Мастер установки решения при инсталляции создаст два типа клиента: “Физическое лицо” и “Юридическое лицо”. Настроить их можно в Административной части, где модифицируются существующие  и создаются свои новые типы. Для любого типа клиента можно задать индивидуальный набор свойств, содержащих специфическую информацию. Например: ИНН для юридического лица. Эта информация применяется для обработки оплаты и доставки заказа.

В зависимости от выбранного типа клиента предлагаются платёжные системы. Для физического лица -  “Наличные курьеру”, “Квитанция Сбербанка”, а для юридического - “Банковский перевод”. Мастер установки решения создаст эти платёжные системы. Дополнительно, вы можете  активировать платёжную систему “ASSIST” для оплаты кредитной карточкой. Какую бы платёжную систему не выбрал покупатель,  он всегда получит максимум помощи при совершении оплаты.

Варианты доставки  предоставляются службами доставки, которые условно делятся на автоматизированные и настраиваемые. Автоматизированные службы доставки рассчитывают стоимость доставки на основании данных заказа. Например, автоматизированная служба “Почта России” рассчитывает стоимость доставки на основании почтового индекса получателя, веса заказа и типа отправления.  В поставке идёт только одна автоматизированная служба доставки: “Почта России”.

Настраиваемые службы доставки отличает фиксированная стоимость доставки. Мастер установки решения создаст две настраиваемые службы доставки: “Доставка курьером” и “Самовывоз”. Новые настраиваемые службы создаются с помощью простой формы в Панели управления.

Вся введенная при оформлении заказа информация будет сохранена в специальном профиле и используется при следующем оформлении заказа. Покупатель может иметь больше одного профиля, если он заказывает товары, например, на разные адреса.

Отслеживать состояние заказа, отменить или повторить его можно в списке заказов.



Сотрудники магазина обрабатывают заказы клиентов в административной части сайта.
В списке заказов отслеживают подробную информацию о заказе, изменяют его статус, устанавливают флаги отгрузки и оплаты:



В форме детального просмотра заказа меняют состав заказа, службу доставки и систему оплаты и другие данные:



Система статусов заказов не ограничивает владельцев магазина заранее предопределенным набором. Ничто не мешает добавлять собственные статусы, а также определять права на установку статусов для пользователей и групп.

Планы на будущее

До конца года мы планируем сделать интеграцию магазина с 1С, которая позволит представить весь ассортимент товаров на сайте и централизованно управлять продажами.
Заводов Григорий
23.11.201014:5523.11.2010 14:55:47
Просмотров:1172 Комментариев:3 3

Обновление документации для разработчиков

2
Buynyachenko Alexander
24.09.201014:4024.09.2010 14:40:41
Мы обновили документацию для разработчиков на 1C-Битрикс: Управление Сайтом ASP.NET.

Что изменилось:

- Мы написали подробное руководство по созданию собственного модуля, включающее следующие темы:
  • Структура файлов модуля
  • Создание класса модуля
  • Создание инсталлятора модуля
  • Создание сущностей
  • Создание языковых файлов
  • Создание административных страниц
  • Создание компонентов

- Также добавили небольшой раздел, описывающий этапы создания решения.

- Изменения также коснулись документации по API.

Скачать документацию можно здесь.
Buynyachenko Alexander
24.09.201014:4024.09.2010 14:40:41
Просмотров:801 Комментариев:0 2

В свете недавней уязвимости ASP.NET

1
Dmitry Pyalov [Дмитрий Пялов]
23.09.201015:1323.09.2010 15:13:13
Всем, кто еще этого не сделал, рекомендую ознакомиться с недавно опубликованной уязвимостью безопасности в ASP.NET. Уязвимость НЕ ЯВЛЯЕТСЯ уязвимостью продукта 1С-Битрикс: Управление Сайтом ASP.NET - ей подвержены все ASP.NET приложения на базе всех версий Microsoft .NET Framework. Детальное описание можно почитать по нижеприведенным ссылкам:

http://habrahabr.ru/blogs/infosecurity/104511/
http://weblogs.asp.net/scottgu/archive/2010/09/18/important-asp-net-security-vulnerability.aspx

Источники рекомендуют включить в файле web.config режим customErrors. Для версии .NET Framework ниже 3.5 SP1 должна получиться строка вида:

<customErrors mode="On" defaultRedirect="~/404.aspx" />

Для .NET Framework ниже 3.5 SP1 и 4.0 - вида:

<customErrors mode="On" redirectMode="ResponseRewrite" defaultRedirect="~/404.aspx" />

Кроме того, мы выпустили срочное обновление продукта 1С-Битрикс: Управление Сайтом ASP.NET, которое автоматически закрывает основной сценарий использования этой уязвимости. В дальнейшем, когда будет опубликовано официальное решение этой проблемы, мы сообщим об этом.
Dmitry Pyalov [Дмитрий Пялов]
23.09.201015:1323.09.2010 15:13:13
Просмотров:1389 Комментариев:1 1

Очередное обновление ASP.NET версии

1
Dmitry Pyalov [Дмитрий Пялов]
31.08.201015:2331.08.2010 15:23:45
Логотип .NET
Буквально несколько минут назад выложили очередное сервисное обновление за номером 5.0.2  
Из вкусного:
  • Промоутинг пользователей на основе рейтинга (стандартный функционал поддерживает привязку/отвязку пользователей к ролям)
    Промоутинг
  • Поддержка OpenID и LiveID
    OpenID и Live ID
  • Поддержка Яндекс-карт
    Яндекс.Карты
  • Новый шаблон для фотогалереи
    Фотогалерея
По мелочам:
  • Расширенная настройка CAPTCHA
  • Поддержка рейтингов и голосований в форумах и блогах
  • Небольшой тюнинг меню и карты сайта (в карту сайта, например, можно теперь включать более 2-х типов меню и задать несколько параллельных цепочек построения)
  • Компонент регистрации теперь поддерживает пользовательские свойства
  • Может еще что-нибудь, о чем я забыл упомянуть smile:)
Ну и партия исправлений ошибок и внутренних оптимизаций. А мы приступаем к сборке очередного обновления в котором ожидается еще немного интересных фишечек.
Dmitry Pyalov [Дмитрий Пялов]
31.08.201015:2331.08.2010 15:23:45
Просмотров:1761 Комментариев:23 1
Теги: .net, ASP.NET, обновление

Битрикс ASP.NET: продвинутый RSS-агрегатор

0
Герасимюк Антон
02.08.201023:0302.08.2010 23:03:29
Всем привет!

Роберт Басыров написал отличную статью про то, как создать продвинутый RSS-агрегатор.

Особо отмечу, что в этом примере задействован весь спектр технологий нашей CMS: инфоблоки, пользовательские свойства, агенты, обработчики событий, ORM.
Герасимюк Антон
02.08.201023:0302.08.2010 23:03:29
Просмотров:1479 Комментариев:3 0
Теги: ASP.NET

Видео про 1C-Битрикс: ASP.NET

1
Герасимюк Антон
21.07.201000:1021.07.2010 00:10:37
Всем привет! В мае и июне мы выступали с докладами про 1C-Битрикс: Управление Сайтом ASP.NET. Дмитрий Пялов на конференции Remix Антон Герасимюк на летней партнерской конференции 1C-Битрикс
Загрузка плеера
Герасимюк Антон
21.07.201000:1021.07.2010 00:10:37
Просмотров:1886 Комментариев:1 1
Теги: ASP.NET, видео

Кастомизация шаблона iblock.element.webform

1
Дулецкий Вольдэмар
08.06.201018:2208.06.2010 18:22:36
Для PHP версии есть много статей на тему кастомизации шаблонов компонентов. Для ASP.NET версии примеров не так уж много, а точнее нет вообще, за исключением статьи по написанию собственного компонента в документации для разработчиков. В данной статье мы постараемся исправить эту несправедливость. Речь пойдет про компонент bitrix:iblock.element.webform (описание работы этого компонента вы можете найти здесь), он делает то же самое, что и его собрат из PHP версии, а именно, позволяет в публичке добавлять и редактировать элементы инфоблока.
Задача.
Необходимо сделать удобную форму добавления файлов на сайт с привязкой к нескольким разделам инфоблока.

На скриншоте показана структура инфоблока, для которого мы создадим форму добавления файлов. Так как стандартный контрол для редактирования секции нас не устраивает, мы сделаем его более удобным. При привязке к секциям мы должны делать проверку на обязательную привязку по категории и языку программирования. Привязку по технологиям мы сделаем множественной и не обязательной. По соображениям безопасности все присылаемые пользователем файлы мы будем архивировать на лету в zip (вдруг пользователь пришлет aspx станицу на которой сможет выполнить свой код), а ограничивать его по расширению файла мы не хотим. Стоит отметить, что в рамках стандартного функционала дистрибутива можно ограничивать загрузку исполняемых файлов в какую-либо директорию, в нашем случае это папка "/upload".
Немного теории
У каждого элемента инфоблока есть набор стандартных полей (они жестко прописаны в базе данных и не могут быть удалены или добавлены), такие как название элемента, текст описания, дата начала, дата окончания активности и прочее. Так же, мы можем добавлять собственные свойства для каждого инфоблока, с которыми, в последствии, можно будет работать как с полями. Для нашего примера мы будем изменять логику работы контролов, отвечающих за поле (привязка к разделам) и за свойство (загружаемого файла).
Подготовка
1) Создаем инфоблок (с символьным кодом "files") со свойством типа "Файл" (символьный идентификатор FILE)
2) Добавляем в корень 3 секции: технология (указываем "Символьный код : bytechnology"), язык программирования(указываем "Символьный код : bylang") и категория(указываем "Символьный код : bycategory")
3) Заполняем эти три категории подразделами, к которым уже будет привязан каждый загружаемый файл

4) Создаем страницу и бросаем на неё наш компонент Формы добавления / редактирования (iblock.element.webform), в настройках убираем вывод таких необязательных полей, как: картинка для привью, детальная картинка, дата начала активности, дата окончания активности и подробный текст. В результате у нас должно получиться следующее:

Реализация
Сначала нам нужно добавить свой шаблон компонента, делается это в точности так же как в PHP версии: либо копируем через настройки компонента текущий шаблон компонента в директорию шаблона сайта,

либо делаем все то же самое руками. Идем в директорию "/bitrix/templates/%template_name%/components/bitrix/iblock.element.webform", создаем там папочку, например "new-file" и добавляем в неё два файла:
  1. template.ascx - отвечает за генерацию конечного HTML кода, его необходимо скопировать из оригинального шаблона компонента и внести некоторые изменения (для типа поля соответствующего секции и для типа свойства соответствующего файлу).
  2. template.ascx.cs - здесь будет храниться наша "магия", которая будет заключаться в изменении внешнего вида формы и логики обработки полей формы
Чтобы было проще ориентироваться по коду, шаблон мы выкладываем здесь.
Для того, чтобы сделать свои обработчики полей формы, необходимо создать свой класс шаблона унаследованного от IBlockElementWebFormTemplate, в котором задать свои обработчики для стандартных полей инфоблока и его свойств в методе OnInit:
 
protected override void OnInit(EventArgs e)
{
base.OnInit(e);

if (Component.IsPermissionDenied)
Bitrix.Security.BXAuthentication.AuthenticationRequired();
//обработчики полей, таких как название элемента, привязка к секциям и описание.
//Нас конечно же интересуют секции.
Component.CreateFieldPublicEditor += new EventHandler<IBlockElementWebFormComponent.FieldPublicEditorEventArgs(CreateFieldPublicEditor);
//обработчики пользовательских свойств инфоблока,
//в нашем случае это необходимо для свойства типа Файл
Component.CreateCustomTypePublicEditor += new EventHandler<IBlockElementWebFormComponent.CustomTypePublicEditorEventArgs>(CreateCustomTypePublicEditor);
}
Как Вы правильно догадались, CreateFieldPublicEditor и CreateCustomTypePublicEditor - это методы, в которых идет обработка полей. Данные методы должны выглядеть примерно следующим образом:
//переопределяем обработчик для поля типа секции
protected void CreateFieldPublicEditor(object component, IBlockElementWebFormComponent.FieldPublicEditorEventArgs args)
{
//SECTIONS является идентификатором поля
if (args.ID.ToUpper() != "SECTIONS")
return;

args.PublicEditor = new FileElementSections();
}

//переопределяем обработчик для свойства типа файл
protected void CreateCustomTypePublicEditor(object component, IBlockElementWebFormComponent.CustomTypePublicEditorEventArgs args)
{
//FILE является идентификатором свойства
if (args.ID.ToUpper() != "FILE")
return;

args.PublicEditor = new FileUploadCustomType(BXCustomTypeManager.GetCustomType(args.CustomField.CustomTypeId));
}
Класс FileElementSections должен быть унаследован от BXIBlockElementFieldPublicEditor, а класс FileUploadCustomType от BXCustomTypePublicEdit. То есть от стандартных классов редактирования поля элемента и класса редактирования свойства элемента. Теперь поговорим подробнее об этих "родителях". Родители представляю 4 метода которые отвечают за:
  • подгрузка данных для поля (метод Load)
  • вывод поля (метод Render)
  • сохранение данных из поля (метод Save)
  • проверку входных данных поля (метод Validate)
Эти методы то нам и нужны.
Итак, давайте рассмотрим класс FileElementSections, он нам более интересен, так как позволяет творить чудеса с внешним видом инпутов формы добавления/редактирования и их содержимым. Рассмотрим методы по порядку:
public override void Load(BXIBlockElement iblockElement, BXParamsBag<object> settings)
{
required = settings.ContainsKey("required") ? (bool)settings["required"] : true;
fieldTitle = settings.ContainsKey("fieldTitle") ? (string)settings["fieldTitle"] : String.Empty;
textBoxSize = settings.ContainsKey("textBoxSize") ? (int)settings["textBoxSize"] : 30;
iblockId = settings.ContainsKey("iblockId") ? (int)settings["iblockId"] : 0;
onlyLeafSelect = settings.ContainsKey("onlyLeafSelect") ? (bool)settings["onlyLeafSelect"] : false;
maxSectionSelect = settings.ContainsKey("maxSectionSelect") ? (int)settings["maxSectionSelect"] : 3;
multiple = maxSectionSelect > 1;

categories = GetFileSections("bycategory");
languages = GetFileSections("bylang");
technologies = GetFileSections("bytechnology");

if (iblockElement != null)
{
foreach (BXIBlockElement.BXInfoBlockElementSection section in iblockElement.Sections)
fieldValues.Add(section.SectionId);
}
}
В этом методе мы вначале забираем свойства контрола, которые по большей части относятся к свойствам секций инфоблока. В конце метод смотрит - мы редактируем поле или нет, если редактируем, то сохраняем секции.
Наверно, ниже приведен самый вкусный метод, так как позволяет самостоятельно менять внешний вид контрола:
public override string Render(string formFieldName, string uniqueID)
{
 
/* задаем вспомогательные перменные, которые нам понадобятся для построения select-ов и чекбоксов */
string fieldHeader = @"<tr field field-sections{1}""><td align=right width=30% valign=top><label class=""field-title"">{0}</label></td><td valign=top>";
string fieldFooter = "</td></tr>";
string dropDownStart = @"<select name=""{0}"" class=""custom-field-list"">";
string dropDownOption = @"<option value=""{0}""{1}>{2}</option>";
string dropDownEnd = "</select>";
string checkbox = @"<input name=""{0}"" type=""checkbox"" value=""{1}"" id=""{2}""{3}/> <label for=""{2}"">{4}</label><BR>";
 
StringBuilder result = new StringBuilder(String.Empty);
 
//Categories
//формируем список отвечающий за вывод категории в виде DropDown
result.AppendFormat(fieldHeader, @"Категория<span style=""color: red;"">*</span>", isCategorySet ? "" : " field-error");
result.AppendFormat(dropDownStart, HttpUtility.HtmlEncode(formFieldName));
result.AppendFormat(dropDownOption, 0, String.Empty, "(выберите категорию)");
 
for (int i = 0; i < categories.Count; i++)
{
SectionTreeItem section = (SectionTreeItem)categories[i];
 
result.AppendFormat(
dropDownOption,
section.Id,
fieldValues.Contains(section.Id) ? " selected=\"selected\"" : String.Empty,
section.Name
);
}
 
result.Append(dropDownEnd);
result.AppendFormat(fieldFooter);
 
//Languages
//такой же селект для языков программирования
result.AppendFormat(fieldHeader, @"Язык программирования<span style=""color: red;"">*</span>", isCategorySet ? "" : " field-error");
result.AppendFormat(dropDownStart, HttpUtility.HtmlEncode(formFieldName));
result.AppendFormat(dropDownOption, 0, String.Empty, "(выберите язык)");
 
for (int i = 0; i < languages.Count; i++)
{
SectionTreeItem section = (SectionTreeItem)languages[i];
 
result.AppendFormat(
dropDownOption,
section.Id,
fieldValues.Contains(section.Id) ? " selected=\"selected\"" : String.Empty,
section.Name
);
}
 
result.Append(dropDownEnd);
result.AppendFormat(fieldFooter);
 
//Technologies
//а технологии сделаем ка мы чек боксами
result.AppendFormat(fieldHeader, @"Технологии", "");
 
 
for (int i = 0; i < technologies.Count; i++)
{
SectionTreeItem section = (SectionTreeItem)technologies[i];
result.AppendFormat(
checkbox,
HttpUtility.HtmlEncode(formFieldName),
section.Id,
HttpUtility.HtmlEncode(formFieldName) + section.Id,
fieldValues.Contains(section.Id) ? " checked=\"checked\"" : String.Empty,
section.Name
);
}
 
result.AppendFormat(fieldFooter);
 
return result.ToString();
}
 

Теперь рассмотрим следующий метод, который отвечает за сохранение. Он очищает привязку к секциям для элемента инфоблока и пишет новые:
public override void Save(string formFieldName, BXIBlockElement iblockElement, BXCustomPropertyCollection properties)
{
if (iblockElement == null)
return;

BXIBlockElement.BXInfoBlockElementSectionCollection sections = iblockElement.Sections;
sections.Clear();
foreach (int sectionId in fieldValues)
sections.Add(sectionId);
}
Ну и проверка входных данных производится так для нашего элемента:
public override bool Validate(string formFieldName, ICollection<string> errors)
{
postValues = HttpContext.Current.Request.Form.GetValues(formFieldName);
if (postValues == null || postValues.Length < 1)
{
fieldValues.Clear();
errors.Add("Не указана категория файла");
return false;
}

isCategorySet = false;
isLangSet = false;

fieldValues = new List<int>(postValues.Length);
foreach (string value in postValues)
{
int sectionId;
if (!int.TryParse(value, out sectionId) || sectionId < 1)
continue;

if (categories.Contains(sectionId))
{
isCategorySet = true;
fieldValues.Add(sectionId);
}
else if (languages.Contains(sectionId))
{
isLangSet = true;
fieldValues.Add(sectionId);
}
else if (technologies.Contains(sectionId))
{
fieldValues.Add(sectionId);
}
}

if (!isCategorySet)
errors.Add(String.Format("Не указана категория файла", fieldTitle));
else if (!isLangSet)
errors.Add(String.Format("Не указан язык программирования", fieldTitle));

return isCategorySet && isLangSet;
}
Вспомогательный класс SectionTreeItem хранит в себе нужную нам информацию о секции. Он есть в архиве с шаблоном
Класс FileUploadCustomType построен по тому же принципу, только в нем идет сжатие файла + вызов родительских функций. Рассмотрим только тот метод, где происходит сжатие:
private BXFile ValidateFile(HttpPostedFile file, ICollection<string> errors)
{
bool result = true;
if (maxSize > 0 && file.ContentLength > maxSize)
{
result = false;
errors.Add(HttpUtility.HtmlEncode(string.Format(
"Размер файла {0} превышает {1}",
file.FileName,
BXStringUtility.BytesToString(maxSize)
)));
}
if (allowedExtensions.Count != 0)
{
string ext = Path.GetExtension(file.FileName);
if (ext != null)
ext = ext.TrimStart('.').ToLowerInvariant();
if (!allowedExtensions.Contains(ext))
{
result = false;
errors.Add(HttpUtility.HtmlEncode(string.Format(
"Тип загружаемого файла {0} не является допустимым ({1})",
file.FileName,
string.Join(", ", allowedExtensions.ToArray())
)));
}
}
if (!result)
return null;

BXFile f = null;
string fileName = Path.GetFileName(file.FileName);
if (!String.IsNullOrEmpty(fileName))
{
if (fileName.EndsWith(".zip") || fileName.EndsWith(".rar"))
f = new BXFile(file, "files", "iblock", string.Empty);
else
//сжимаем файл из текущего
f = new BXFile(new BXZip.ZipStream(file.InputStream, fileName, ushort.MaxValue / 2), fileName + ".zip", "files", "iblock", "");

if (!BXSecureIO.CheckUpload(f.FileVirtualPath))
{
errors.Add(HttpUtility.HtmlEncode(string.Format("Недостаточно прав для загрузки файла {0}", fileName)));
return null;
}
}

return f;
}
В этом методе сначала идет проверка по размеру файла, затем по расширение и пустоту названия файла. Если все хорошо, то мы сжимаем файл и регистрируем его в системе.
Так будет выглядеть наша форма после кастомизации.
Дулецкий Вольдэмар
08.06.201018:2208.06.2010 18:22:36
Просмотров:2591 Комментариев:8 1
Теги: .net, веб-формы, инфоблоки, кастомизация

1С-Битрикс: Управление Сайтом ASP.NET 5.0

0
Герасимюк Антон
03.06.201010:2103.06.2010 10:21:47
Всем привет! С момента последнего выпуска (в конце февраля мы выпустили версию 4.6) от нас не было никаких новостей. Но мы не сидели без дела, а сделали много нового функционала. Но обо всем по порядку.

1. Новый установщик продукта. Выбор установки готового решения сайта.

Первое, что изменилось в новом релизе – это полностью новый мастер установки продукта, который предлагает установить на выбор одно из трех решений: персональный сайт, сайт компании и сайт сообщества.

выбор установки решения

Мастер больше не устанавливает безусловно демонстрационный сайт, как это было раньше. Теперь пользователь имеет возможность установить готовое решение или оставить продукт с минимальным набором данных для создания сайта с нуля (эта опция для продвинутых разработчиков).

2. Персональный сайт

Выбрав это решение, вы получите готовый сайт для «домашней странички». Персональный блог и фотогалерея с множественной загрузкой – это то, что нужно личного сайта пользователя.

персональный сайт

Решение идет с 4-мя разными шаблона и 5 цветовыми схемами для каждого шаблона.

3. Сайт компании

Сайт компании представлен двумя примерами: сайтом банка и сайтом мебельной компании. Структура этих решений типичная для корпоративных сайтов: новости, вакансии, каталог продукции и услуг.

сайт мебельной компании

сайт банка


4. Сайт сообщества

Примером для этого сайта послужил сайт gotdotnet.ru. Многопользовательские блоги, форумы, персональные сообщения, рейтинги – все это представлено в этом решении.

сайт сообщества

5. Персональные сообщения

Обмен сообщениями между пользователями - одна из базовых функций всех сайтов сообществ и социальных сетей. И мы просто не могли не добавить подобный функционал в наш продукт. Новая система персональных сообщений позволяет:
  • нескольким участникам общаться в рамках одной темы.
  • группировать переписки в папки
  • устанавливать ограничения на количество писем в «почтовом ящике»
  • получать уведомления на e-mail и на сайте


персональные сообщения

6. Рейтинги и голосования

Теперь пользователь может оценить любой комментарий и запись в блоге

голосование в блогах

А также сообщение и тему форума

голосование в форуме

Результаты голосований, а также активность пользователя на сайте можно аккумулировать в рейтинг пользователя

настройки рейтинга пользователя

7. Новые компоненты

  • Google Maps – компонент в визуальном режиме позволяет настроить страницу с картой
    проезда к офису.

    Google Maps

  • Комплексный компонент однопользовательского блога
  • Регистрация с подтверждением по E-mail
  • Комментарии к элементам инфоблока


Качаем пробные и коммерческие дистрибутивы.

Герасимюк Антон
03.06.201010:2103.06.2010 10:21:47
Просмотров:2833 Комментариев:10 0
Теги: .net

Модуль Рекламы

0
Герасимюк Антон
23.07.200923:4423.07.2009 23:44:49
Приятная новость для .NET-разработчиков - вышел новый модуль "Рекламы"! Прямо сейчас вы можете его скачать через систему обновлений.

Данный модуль позволяет организовать на сайте эффективную баннерную сеть. Сперва необходимо определить в дизайне сайта рекламные области, а затем загрузить для них произвольное число баннеров. Баннеры могут быть графическими, Flash или представлять собой произвольный HTML (например, текстовый баннер в виде таблицы или HTML-код рекламы от Google Adsense).



Приоритетность показа баннера для конкретной рекламной области зависит от выбранного режима показа:

- По весу. Чем больше вес, тем выше вероятность показа баннера.
- С равномерной скоростью. Заданное количество показов баннера будет равномерно распеределено по заданому периоду времени.



Кроме этого, для баннера доступны следующие виды таргетинга:

1. По времени суток. Рекламные материалы будут показываться только в отведенные часы. Например, только с 9 до 19.00.
2. По дня неделям. Баннеры будут показываться только в определенные дни. Например, только в будние дни.
3. По разделам сайта. Можно указать, чтобы баннер показывался только в форуме.
4. По группам (ролям) пользователей сайта. Для анонимных будет показываться один баннер, а для зарегистрированных - другой.



Герасимюк Антон
23.07.200923:4423.07.2009 23:44:49
Просмотров:2457 Комментариев:9 0
Теги: .net, Модуль рекламы

1С-Битрикс: Управление сайтом ASP.NET 4.0 доступна для скачивания

0
Dmitry Pyalov [Дмитрий Пялов]
29.05.200919:0029.05.2009 19:00:35
Новая версия продукта 1C-Битрикс: Управление сайтом ASP.NET 4.0 доступна через систему обновлений и в виде дистрибутивов.

При обновлении через систему обновлений не забудьте обновить страницу системы обновлений в браузере после установки обновления системы обновлений. smile:)

Новый функционал версии описан в соответствующем посте в блогах.

Краткий список изменений:
- Модуль "Форум"
- Модуль "Блог"
- Усовершенствованный визуальный редактор
- Усовершенствованная ORM
- Компоненты просмотра/редактирования профиля
- Исправление различных ошибок

Демо-версию продукта можно скачать с нашего сайта:
- Полный Windows-инсталлятор (+ .NET Framework 2.0 SP1, ASP.NET AJAX, SQL Server 2005 Express) - 74,9 Мб
- Облегченный Windows-инсталлятор - 14,1 Мб
- ZIP-архив для установки на хостинге - 15,9 Мб
Dmitry Pyalov [Дмитрий Пялов]
29.05.200919:0029.05.2009 19:00:35
Просмотров:1398 Комментариев:3 0
Теги: .net, новая версия

Про ORM

0
Dmitry Pyalov [Дмитрий Пялов]
26.05.200913:0926.05.2009 13:09:15
Сегодня я расскажу про такую составляющую системы "1С-Битрикс: Управление сайтом ASP.NET", как сущности. Этот механизм - один из основополагающих механизмов системы, претерпел значительные изменения к 4-й версии.

Читать подробнее...

Dmitry Pyalov [Дмитрий Пялов]
26.05.200913:0926.05.2009 13:09:15
Просмотров:2448 Комментариев:5 0
Теги: .net, orm, новая версия

Битрикс.NET 4.0: Новые возможности

0
Герасимюк Антон
26.05.200909:1326.05.2009 09:13:19
В четвертой версии 1С-Битрикс: Управление сайтом .NET появилась масса нового, но мне хотелось бы остановиться на ключевых вещах, над которыми мы последние три месяца плодотворно работали.

Читать подробнее...

Герасимюк Антон
26.05.200909:1326.05.2009 09:13:19
Просмотров:3689 Комментариев:5 0
Теги: orm, блоги, форумы

Инфоблоки, веб-формы и не только

0
Герасимюк Антон
06.02.200914:0106.02.2009 14:01:01
Информационные блоки де-факто являются самым используемым модулем. Без них не обходится ни один сайт на базе Битрикса. Новости, статьи, каталог товаров, фотогалерея - это лишь малая часть из того, что делают с помощью этого модуля.

И ведь действительно, информационные блоки позволяют создавать произвольные структуры однородной информации, наделять ее разнообразными свойствами и атрибутами. Первое, с чем должен разобраться начинающий Битрикс-разработчик, – это информационные блоки (или как часто любят сокращать - инфоблоки).

В последнем обновлении продукта 1С-Битрикс: Управление сайтом .NET вышла серия компонентов, позволяющая посетителю сайта редактировать элементы информационного блока. О технической стороне новых компонентов писал Дмитрий Пялов, а я же хочу остановиться на их практическом применении.

Читать подробнее...

Герасимюк Антон
06.02.200914:0106.02.2009 14:01:01
Просмотров:5466 Комментариев:3 0

Битрикс.NET 3.0.12: Веб-формы

0
Dmitry Pyalov [Дмитрий Пялов]
06.02.200900:0006.02.2009 00:00:00
Недавно в публичный доступ было выложено очередное обновление продукта "1С-Битрикс: Управление сайтом ASP.NET". В этом посте пойдет речь об API для редактирования набираемых свойств элементов инфоблоков в публичной части сайта и компоненте bitrix:iblock.element.webform.

Читать подробнее...

Dmitry Pyalov [Дмитрий Пялов]
06.02.200900:0006.02.2009 00:00:00
Просмотров:1974 Комментариев:0 0
Теги: .net, обновление, веб-формы

Битрикс.NET 3.0.12: Медиагалерея

0
Dmitry Pyalov [Дмитрий Пялов]
05.02.200900:0005.02.2009 00:00:00
Недавно в публичный доступ было выложено очередное обновление продукта "1С-Битрикс: Управление сайтом ASP.NET". В этом посте пойдет речь о новом API для вывода медиа-данных и о соответствующих компонентах.

Читать подробнее...

Dmitry Pyalov [Дмитрий Пялов]
05.02.200900:0005.02.2009 00:00:00
Просмотров:2933 Комментариев:2 0
Теги: .net, медиагалерея, обновление

Установка 1С-Битрикс: Управление сайтом .NET на виртуальный хостинг .masterhost

0
Dmitry Pyalov [Дмитрий Пялов]
30.09.200815:1830.09.2008 15:18:31

В этой статье будет детально описано, как развернуть дистрибутив демо версии продукта 1С-Битрикс: Управление сайтом.NET на виртуальной площадке хостинга .masterhost. С незначительными поправками эта инструкция может быть применена к любому другому виртуальному ASP.NET хостингу.

Читать подробнее...

Dmitry Pyalov [Дмитрий Пялов]
30.09.200815:1830.09.2008 15:18:31
Просмотров:3937 Комментариев:0 0
Теги: .net, masterhost, установка
 
Технологии Эрмитаж
BitrixMobile
Автокеширование
SiteUpdate
Производительность Виртуальная машина
Веб-окружение
Результаты тестов
Выбрать хостинг
Веб-кластер
Безопасность Проактивная защита
Веб-антивирус
Аутентификация

Контакты Поиск Карта сайта
Телефон: +7 (495) 229-14-41
Оставайтесь с нами: Facebook Twitter Habrahabr VKontakte Developers Google 1+
Как распознать QR код?Контакты QR


© 2001-2012 «Битрикс», «1С-Битрикс». Работает на 1С-Битрикс: Управление сайтом.
Английская версия Немецкая версия