Файловая структура bitrix framework. Что такое Bitrix. С-Битрикс: Enterprise – решение для крупных интернет-проектов

Я обещал посвятить программным продуктам “1С-Битрикс” отдельную статью, и сейчас я выполняю это обещание. Статья является обзором, в ней я не буду углубляться в технические детали и особенности применения программного кода, для этого существует подробная документация, доступная всем желающим на официальном сайте компании.

Здесь я расскажу о важных особенностях платформы Bitrix Framework, а также о программных продуктах, созданных на этой платформе. Статья предназначена, прежде всего, для пользователей, которые стремятся понять, нужны ли для их бизнеса те или иные разработки Битрикс, и в чем их особенности. Также информация из этой статьи может оказаться полезной разработчикам, которые работают с другими CMS, но хотят также получить некоторое представление о Битрикс.

В последнее время я часто сталкиваюсь с интеграцией сайтов с системами CRM и программами учета движения товаров и денежных средств. Чаще всего в нашей стране интеграция требуется с разными версиями и конфигурациями 1С. Также часто заказчики к моменту обращения ко мне либо уже успели создать Битрикс-сайт, либо интересуются возможностью перехода на этот движок, так как компания 1С рекомендует его как систему, в которой имеется все необходимое для автоматизации обмена данными. Многочисленные вопросы и накопленный практический опыт работы с Битрикс-сайтами стали теми факторами, благодаря которым я вспомнил о давнем обещании подробно поговорить о Битрикс и все же написал эту статью.

Что такое Битрикс?

Начать я предлагаю с определения самого понятия Битрикс. Обычно это название используют в двух вариантах:
  1. Битрикс – название компании разработчика программного обеспечения.
  2. Битрикс – среда для разработки веб-приложений, так называемый, Bitrix Framework.
Немного истории
Для начала поговорим о компании, чтобы понимать, откуда взялся программный продукт «Битрикс» и почему его название оказалось именно таким. Основана компания «Битрикс» была еще в 1998 году сразу после финансового кризиса как веб-студия, специализирующаяся на разработках интернет-сайтов под заказ. В начале 2000-х компания создает и начинает развивать собственную CMS-систему, которую также называет «Битрикс». Первые версии CMS Битрикс ничем принципиально не отличались от множества других движков сайтов, пока в 2007 компания 1С не выкупила контрольный пакет акций «Битрикс», после чего система управления сайтом получила название «1С-Битрикс».

Важно понимать, что после такое слияние компаний и последующее изменение названия продукта произошло на уровне бизнеса и маркетинга, т.е. объединились компании, объединился бренд, а технические решения по большей части остались прежние – у каждого программного продукта (1С и Bitrix) свои.

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

Аналогично и наоборот, если имеется интернет-магазин на Битрикс и владелец приходит к выводу о необходимости автоматизации продаж, то из всех вариантов учетных систем он, скорей всего, выберет программные продукты 1С.

На самом деле, Битрикс и 1С – это разные продукты, созданные разными компаниями, и разработчики этих продуктов работают абсолютно независимо друг от друга. Нельзя даже сказать, что разработчики 1С ориентируются при своей работе на потребности пользователей Битрикс или наоборот, что разработчики Битрикс учитывают в своей работе какие-то нововведения от 1С. А объединение названий является исключительно маркетинговым ходом, надо признать, очень удачным. То есть этот ход можно считать удачным ходом именно с маркетинговой стороны, c технической стороны положительных примеров от объединения я привести не смогу.

Битрикс как программный продукт
Все программные продукты Битрикс созданы на базе Bitrix Framework. Если обратиться к разделу помощи на сайте 1С-Битрикс, то можно увидеть такое определение:
Bitrix Framework - это созданная на основе PHP платформа для разработки веб-приложений. На этой платформе компанией «1C-Битрикс» созданы два популярных продукта: «1C-Битрикс: Управление сайтом» и «1С-Битрикс: Корпоративный портал».

Такое определение понятно для веб-разработчиков, но ничего не говорит пользователям. А потому я попробую пояснить упрощенно, о чем идет речь.

Framework – это некий «каркас», платформа для создания программных продуктов.
PHP – это язык программирования, на котором написан этот «каркас».

На основе этого «каркаса», этой платформы компания Битрикс создала программные продукты «1C-Битрикс: Управление сайтом» и «1С-Битрикс: Корпоративный портал». Это уже готовые CMS, которые можно установить на хостинг, настроить и работать с ними, как и с любой другой системой управления сайтом.

С технической точки зрения программные продукты Битрикс (сайты и мобильные приложения) создаются на основе собственной платформы Bitrix Framework.

  1. Сегодня эти программные продукты представлены следующими решениями:
  2. 1C-Битрикс: Управление сайтом. Система для создания сайтов и интернет-магазинов.
  3. 1С-Битрикс: Корпоративный портал. Платформа для создания мощных корпоративных порталов.
  4. Мобильные приложения на основе Bitrix Framework (мобильные версии сайтов и т.д.)
  5. Различные готовые отраслевые решения.
Кроме того, компания Битрикс поддерживает собственный магазин “App Store” под названием MarketPlace, где также можно купить или скачать бесплатно различные решения, например, шаблоны, дополнительные модули, надстройки для программных продуктов, готовые решения для подключения телефонии, интеграции с другими сервисами и т.д.

Разработкой программных продуктов на платформе Bitrix Framework занимается узкий круг программистов, состоящий из специалистов компании. Это коммерческий продукт, а потому такое ограничение можно считать преимуществом. Обновления программных продуктов предсказуемы и понятны, подход к работе практикуется комплексный, а новые функции обычно работают именно так, как заявлено.

Также компания очень ответственно подходит к работе своего магазина надстроек и приложений MarketPlace. Предложить разработку для этого магазина могут не только сотрудники компании, но и сторонние разработчики. Но любой предложенный продукт проходит строгую премодерацию, решение тестируется специалистами компании “Битрикс”, и только после их одобрения появляется в публичном доступе.

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

Что такое «каркас»? Подробнее о Bitrix Framework

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

Bitrix Framework – решение с открытым кодом, т.е. программист может доработать ваш программный продукт Битрикс как угодно, ограничений по доступу к программным модулям и их коду в этой системе нет. Но при этом Bitrix Framework – решение, поставляющееся на основе лицензий. Т.е. установить и пользоваться программными продуктами на основе Bitrix Framework вы сможете на таком количестве компьютеров, какое количество лицензий вы купили.

Для сравнения: программные продукты 1С также поставляются с лицензированием, но в них доработать можно только конфигурацию, ядро (основа программного продукта) для программистов недоступно. В Битрикс программист может вносить любые изменения, в том числе, в ядро. А, например, DRUPAL - это система с открытым кодом, но без лицензирования.

Для того чтобы понимать, как работают программные решения Битрикс, нужно знать, что каждое из них состоит из ядра (платформы) и модулей-надстроек. Т.е. существует язык программирования (php), на котором написано ядро. В ядре прописаны определенные возможности, правила, созданы инструменты, которыми может пользоваться разработчик. При создании программного продукта необходимые инструменты подключаются и настраиваются, в случае необходимости, ядро также может быть доработано. А при работе с готовым программным продуктом можно также корректировать платформу, но чаще она остается неприкосновенной, а доработки вносятся при помощи различных внешних модулей.

Также нужно учитывать, что платформа уже включает в себя некий перечень базовых модулей, которые могут подключаться или отключаться при необходимости. А потому, например, в корпоративном портале имеется модуль «корзина покупок», казалось бы, совсем там ненужный. Но, так как он вошел в базовый набор, он присутствует во всех программных продуктах Битрикс.
Далее с готовыми уже инструментами может работать пользователь (модератор, администратор сайта и т.д.), и с их помощью создавать контент, выкладывать товары и так далее.

Программные продукты Битрикс

Программные продукты Битрикс отличаются друг от друга преимущественно набором модулей, которые вошли в готовое решение, и делятся на категории по типу сайта, который может потребоваться в том или ином случае:
  1. Решение «1C-Битрикс: Управление сайтом» - это программный продукт, который используют для разработки интернет-магазинов, сайтов-визиток и тому подобных проектов.
  2. Решение «1С-Битрикс: Корпоративный портал» наилучшим образом подходит для крупных компаний и для любого бизнеса, где для работы нужен корпоративный портал.
  3. Отраслевые решения – это специализированные решения на основе Bitrix Framework, в которых предусмотрены модули для организации работы в той или иной отрасли.
1С-Битрикс: Enterprise – решение для крупных интернет-проектов.
Также в отдельное направление стоит выделить продукт «1С-Битрикс: Мобильное приложение», которое используется для создания мобильных версий сайтов или интернет-магазинов, а также других видов приложений для мобильных устройств, которые после создания можно выкладывать для скачивания или продажи в App Store или Google Play. Этот программный продукт также является готовой платформой, благодаря чему создание мобильных приложений происходит намного быстрее и проще, чем работа программиста с нуля.

Также еще раз напомню, что любой продукт 1С-Битрикс после покупки можно дорабатывать на любом уровне, начиная от привычных всем внешних модулей и надстроек и заканчивая доработками ядра.

1С-Битрикс. Управление сайтом
«Управление сайтом» - это программный продукт, предназначенный для создания и управления интернет-магазинов, сайтов-визиток и т.д. Существует огромное количество редакций этого программного продукта, но все они предназначены для одной цели – создания сайта и дальнейшего его обслуживания (наполнения, редактирования и пр.).

Изначально «Битрикс» создавался как движок (CMS) для создания интернет-магазинов, а потому «Управление сайтом» имеет очень широкий перечень возможностей и богатый функционал. С другой стороны, всем богатством возможностей этого движка пользуются нечасто. Редко можно увидеть на битрикс-сайте несколько каталогов, практически не используются возможности маркетинга, так как для большинства интернет-магазинов не нужны все эти функции, но все же они имеются в числе возможностей программного продукта и при возникновении потребности их можно подключить в любой момент.

При создании интернет-магазина с использованием продукта «Управление сайтом» необходимо:

  1. Установить на хостинг сам «движок»;
  2. Установить дизайн, настроить информационные страницы;
  3. Настроить каталог товаров и управление корзиной (оформление покупки);
  4. При необходимости подключить платежные системы, обмен данными с учетной программой и т.п.
Большая часть функционала, который может потребоваться для реализации любого вида Интернет-торговли уже имеется в составе продукта «Управление сайтом», но также можно использовать собственные разработки или покупать решения в MarketPlace.

Важно! Система «1С-Битрикс. Управление сайтом» требует широкого перечня возможностей хостинга, некоторые хостинг-компании даже вводят специальные тарифные планы для «интернет-магазинов на Битрикс», это важно помнить при выборе хостинга и расчете стоимости поддержки сайта.

1С-Битрикс: Корпоративный портал
Корпоративный портал (англ. Enterprise portal) - это, в общем случае, веб-интерфейс для доступа сотрудника к корпоративным данным и приложениям. Википедия

1С-Битрикс: Корпоративный портал – это некая площадка, где собирается информация, информационный центр компании. Это многофункциональный продукт, где можно объединить информацию по самым разным направлениям. Например, бухгалтерские данные компания ведет в 1С. Бухгалтерии, движение товаров по складам и продажи – в 1С. Торговля и склад, работу с потенциальными и реальными клиентами – в CRM-системе, техническую поддержку осуществляют в специализированном сервисе поддержки клиентов.

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

1С-Битрикс: Корпоративный портал позиционируется также как продукт, который позволяет руководителю контролировать весь рабочий процесс компании, для чего используется разнообразная отчетность, также руководитель может выставлять функции, например, начала и завершения рабочего дня, ставить перед подразделениями задачи (проекты), устанавливать для них сроки и основные этапы реализации. Также с порталом может быть интегрирована CRM-система, телефония, бухгалтерские, учетные программы и т.д.

Существует два продукта от компании Битрикс, предназначенных для корпоративной работы:

  • Битрикс24 – SAAS-решение, где вы оплачиваете доступ к «облачному» сервису. Здесь вам не потребуется оплачивать собственный хостинг и услуги специалистов, все обновления сервиса будут вам доступны без каких-либо действий с вашей стороны. Но при этом вы сможете пользоваться только тем функционалом, который предлагает разработчик, а также решениями из MarketPlace. Собственные доработки в Битрикс24 невозможны.
  • Корпоративный портал – это программный продукт с открытым для покупателей кодом, который необходимо после покупки установить на собственный хостинг. Все настройки этого программного продукта вам нужно будет производить самостоятельно. Для получения обновлений вам понадобится их скачать и также своими силами установить. Но при этом у ваших специалистов есть доступ ко всем функциям программного продукта и любые доработки вам будут доступны.
Отраслевые решения
Специализированные отраслевые решения – это система «Управление сайтом» со всеми имеющимися в базовой версии функциями, дополненная предустановленными надстройками для организации работы в той или иной отрасли. Например, такие решения очень популярны для организации работы медицинских учреждений, бюджетных организаций, образовательных учреждений и т.д.

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

1С-Битрикс: Enterprise
Это решение, предназначенное для реализации крупных и сложных проектов, продается по очень высокой цене (от 1 499 900 руб.) Битрикс позиционирует этот продукт как решение для компаний, готовых максимально использовать возможности интернет и электронной коммерции. В продукт включены все существующие модули и надстройки и реализация самых разных возможностей, которые только можно представить. Разработчики утверждают, что продукт одновременно с огромным числом возможностей имеет также невероятную степень масштабируемости и гибкости и гарантируют расширенную техническую поддержку.

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

Несколько слов о MarketPlace

При желании вы также можете также купить или скачать готовые решения для любого из программных продуктов через собственный магазин приложений 1С-Битрикс MarketPlace. Здесь выложено очень много разнообразных шаблонов, решений для интеграции с разными программными продуктами и системами, дополнительных модулей для реализации самых разных функций. Эти решения также поставляются с открытым кодом, т.е. при желании их можно доработать под собственные нужды. Но важно понимать, что после внесения любых изменений в код техническая поддержка для этих решений не предоставляется.
Важно: ядро Битрикс, как и ядро 1С, также регулярно нужно обновлять. Хоть эти обновления не столь критичны, как для программных продуктов 1С, но и здесь есть свои нюансы.

При обновлении ядра программного продукта любые надстройки и приложения из MarketPlace могут перестать работать, а потому после обновления понадобится повторное тестирование этих возможностей и, в случае необходимости, скачивание и установка для них обновлений отдельно. Также обновление становится недоступным или проблематичным в случае внесения изменений в код программного продукта.

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

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

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

Юзабилити продуктов 1С-Битрикс

Юзабилити программных продуктов Битрикс очень своеобразно. Изначально разработчики “Битрикс” для своей CMS применяли особый подход, во многом не совпадающий с другими популярными системами управления контентом сайтов. Количество возможностей, которые заложены в программные продукты Битрикс очень велико и с каждым релизом еще больше увеличивается. И если многие другие CMS устроены по принципу - есть небольшое и относительно простое ядро, к которому можно подключать самые разнообразные решения по мере необходимости, то Битрикс старается вложить в программный продукт “все и сразу”.

В результате наблюдается такое явление, как оверкодинг, в программных решениях “1С-Битрикс” слишком много кода и возможностей, которые чаще всего не используются. Это, в свою очередь, приводит к повышению сложности всей системы. Как итог, не только пользователям, но очень часто даже программистам сложно разобраться в юзабилити программных продуктов и понять, где какая возможность настраивается. К сожалению, этот недостаток является оборотной стороной мощных и многофункциональных решений, что важно учитывать при выборе продукта для создания сайта или корпоративной (совместной) работы.

Резюме

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

Из плюсов помимо перечисленных выше возможностей также стоит отметить, что программные продукты и вся документация русскоязычные, а также наличие множества партнерских решений для интеграции Битрикс с другими системами.

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

Работать или нет с этими программными решениями – личный выбор каждого. Я считаю, что даже для интеграции с 1С использование Битрикса не является необходимым, есть и другие методы организации обмена данных. С другой стороны, для сложных и крупных проектов эта мощная система с широкими возможностями может стать подходящим решением.

О CMS 1С-Битрикс

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

Для хранения данных сайта используется реляционная СУБД . Поддерживаются следующие СУБД: Oracle, MS SQL . Продукт работает на Microsoft Windows и UNIX‐подобных платформах , включая GNU/Linux .

«1С-Битрикс: Управление сайтом» продаётся в одной из семи составленных фирмой-разработчиком редакций (Старт, Стандарт, Эксперт, Малый бизнес, Бизнес, Портал, Большой бизнес), определяющих набор модулей и функциональность системы. На сегодняшний день в системе доступны 26 модулей: Главный модуль, Управление структурой, Информационные блоки, Поиск, Социальные сети, Проактивная защита, Компрессия, Веб-формы, Форумы, Подписка, Рассылки, Опросы, Блоги, Фотогалерея 2.0, Веб-аналитика , Реклама, Техподдержка, Почта, Обучение, Тестирование, Перевод, Валюты, Веб-сервисы, Торговый каталог, Интернет-магазин, Документооборот, AD/LDAP, Монитор производительности.

Для корректной работы с данной системой управления пользователям без знания языков HTML и PHP требуется предварительная настройка системы (создание шаблона на базе графического дизайна, создание структуры разделов и страниц, а также подключение модулей системы). Данную возможность предоставляют партнёры компании 1С-Битрикс .

Идеология системы представляет собой разделение логики на модули и компоненты. Модули в «1С-Битрикс: Управление сайтом» - это набор программных компонентов, отвечающих за работу с различными типами баз данных, а также предоставляющих унифицированный API системы. Компоненты служат для связи конечного представления информации на сайте с программным ядром системы. Они используют API, созданный модулями, для организации выборки, модификации, управления информацией в базе данных. Компоненты гораздо проще модулей, поэтому изменение логики работы сайта довольно простое. В то же время, предоставляемый функционал API довольно гибкий и каждый компонент может использовать его по-своему. Например, на базе модуля «Инфоблоки» можно организовать любые каталоги: новости, каталог товаров, каталог партнёров, фотогалерею. Для организации отдельного типа каталогов отвечает свой компонент, хотя модуль один и тот же.

Первая версия системы выпущена в 2001 году. На системе создано более 20000 сайтов. В России и СНГ сайты на «1С-Битрикс» разрабатывают более 3000 веб-студий.

На настоящий момент доступна версия 8.0.3.

О корпоративном портале 1С-Битрикс

«1С-Битрикс: Корпоративный портал» - программный продукт для создания внутрикорпоративного информационного ресурса, решающего коммуникационные, организационные и HR-задачи компании. В составе которого 23 модуля для управления информационным наполнением, структурой, форумами, рекламой и другими возможностями сайта.

Недостатки системы

Список изменений версий модулей 1С-Битрикс

Версии модулей (на 09.05.2009)

МОДУЛЬ - ВЕРСИЯ - ИЗМЕНЕНИЕ
Главный модуль - 8.0.4 - 21.04.2009
Проактивная защита - 8.0.5 - 21.04.2009
Управление структурой - 8.0.3 - 14.04.2009
Информационные блоки - 8.0.2 - 22.04.2009
Поиск - 8.0.2 - 20.04.2009
Компрессия - 8.0.0 - 07.04.2009
Веб-формы - 8.0.2 - 07.04.2009
Форум - 8.0.8 (beta) - 05.05.2009 (new)
Подписка, рассылки - 8.0.1 - 20.04.2009
Опросы, голосования - 8.0.2 - 23.04.2009
Блоги - 8.0.3 - 23.04.2009
Фотогалерея 2.0 - 8.0.0 - 07.04.2009
Социальная сеть - 8.0.3 - 23.04.2009
Статистика - 8.0.1 - 21.04.2009
Реклама, баннеры - 8.0.4 - 06.05.2009 (new)
Техподдержка - 8.0.1 - 21.04.2009
Почта - 8.0.1 - 21.04.2009
Обучение - 8.0.1 - 21.04.2009
Перевод - 8.0.1 - 21.04.2009
Валюты - 8.0.1 - 21.04.2009
Веб-сервисы - 8.0.0 - 27.03.2009
Торговый каталог - 8.0.1 - 21.04.2009
Интернет-магазин - 8.0.1 - 21.04.2009
Документооборот - 8.0.2 - 21.04.2009
AD/LDAP интеграция - 8.0.0 - 07.04.2009
Монитор производительности - 8.0.0 - 28.03.2009

См. также

Ссылки

Информация от разработчика

  • www.1c-bitrix.ru - сайт фирмы-разработчика.
  • dev.1c-bitrix.ru - центр поддержки разработчиков.

Статьи и примеры программирования для 1С-Битрикс

Мнения об 1С-Битрикс

  • «1С-Битрикс»: 6 млн хитов - Какую нагрузку выдержит сайт?

Примечания

Wikimedia Foundation . 2010 .

Книги

  • 1С-Битрикс. Корпоративный портал. Повышение эффективности компании , Роберт Басыров , В книге рассказывается о том, как повысить эффективность компании при помощи продукта «1С-Битрикс: Корпоративный портал». Новый продукт поможет вашей компании организовать командную работу,… Категория: Программы Издатель: Питер , электронная книга (fb2, fb3, epub, mobi, pdf, html, pdb, lit, doc, rtf, txt)

Вопрос: Почему допускается хранение контента в файловой системе, пусть даже статичного? Не место ли контенту в базе данных?

При должном умении публичная часть может состоять из десятка физических файлов. Весь контент может быть в инфоблоках, включая меню. Но обычно статические страницы (например, О компании ) удобнее редактировать как файл, а не как запись БД. Но если таких статических страниц становится неограниченно много, то это повод, чтобы структурировать их и разместить не на диске, а в инфоблоках.

Размер системы довольно большой, так как в её состав включено множество компонентов необходимых для быстрого старта и работы административной части. Компоненты не консолидированы, потому что система модульная. Модули, компоненты и шаблоны имеют определенную структуру. Это важно и для обновлений системы и для разработки своих компонентов.

Большое количество файлов - свойство аналогичных систем. (У ZendFramework есть такая же особенность). При правильной конфигурации хостинга эту проблему возьмут на себя прекомпиляторы php. Критичным может оказаться размер выделяемого хостером места и большое число файлов системы. (Проблемой становится не штатная работа Bitrix Framework, а, например, работа систем бэкапов у хостеров. На большом количестве файлов они начинают себя чувствовать не очень хорошо.) Поэтому для выбора хостера рекомендуем пользоваться списком рекомендуемых хостингов .

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

  • Файл дает больше свободы разработчику сайта. Поскольку файл в системе - это просто исполняемый файл.
  • Так понятнее для управления. В корне такого представления - структура статических страниц HTML, разложенных по папкам. Путем некоторого совершенствования (внедряя небольшое количество PHP-кода), мы из такого сайта сразу получаем работающий на Bitrix Framework проект.
  • В какой-то мере это - традиция, которая имела большое значение на заре становления CMS.
  • Такое представление соответствует опыту контент-менеджеров, которые работают с локальными файловыми системами (папки и файлы).

Структура сайта также может быть и в БД (инфоблоки), но управлять иерархией в реляционной БД не очень-то удобно.

Рассмотрим использование файлов в Bitrix Framework на примерах:

  1. Файловая система и меню . Меню в файлах позволяет не подключать БД там, где это реально не нужно. То же самое относится к свойствам страниц и разделов, а также правам доступа к файлам. Теоретически можно собрать информационный сайт, где вообще не будет ни одного обращения к БД. Будет работать быстрее, особенно на разделяемом хостинге. Есть и бонусы: при копировании раздела сразу естественным образом копируются меню, права доступа, свойства раздела.
  2. Файловая система и пользователи . Пользователям из административного раздела открыт доступ к файлам ядра и другим программным файлам. Но пользователи бывают разные. Например, техподдержка 1С-Битрикса. Если веб-разработчик не уверен в своих пользователях, то он всегда может запретить им как редактирование кода PHP, так и целых разделов (ядра). По современной концепции Bitrix Framework в публичной части не должно быть кода PHP - все должно быть инкапсулировано в компоненты. Тогда пользователь редактирует или "голую" статику, или настраивает компонент.
  3. Файловая система и языковые версии . Было бы трудно сопровождать языковую информацию в БД. Информация в языковых файлах меняется крайне редко - проще раз в год отредактировать строчку в языковом файле, чем хранить эти статические фразы в базе. И повторимся: база данных - это медленно и избыточно.

Структура файлов

Файловая структура Bitrix Framework организована таким образом, что программные компоненты ядра продукта были отделены от пользовательских файлов, а также файлов, определяющих внешнее представление сайта. Данная особенность позволяет:

  • избежать нежелательной модификации ядра продукта при работе с файлами системы;
  • исключить возможность изменения публичной части сайта при загрузке обновлений продукта.
  • настроить внешний вид сайта практически под любую вашу задачу

Вся система целиком лежит в каталоге /bitrix/ , в него входят следующие подкаталоги и файлы:

  • /admin/ - административные скрипты;
  • /cache/ - файлы кэша;
  • /activities/ - папки действий для бизнес-процессов;
  • /components/ - папка для системных и пользовательских компонентов;
  • /gadgets/ - папки гаджетов;
  • /js/ - файлы javascript модулей;
  • /stack_cache/ - файлы кеша "с вытеснением";
  • /themes/ - темы административного раздела;
  • /wizards/ - папки мастеров;
  • /images/ - изображения используемые как системой в целом, так и отдельными модулями;
  • /managed_cache/ - управляемый кеш;
  • /modules/ - каталог с модулями системы, каждый подкаталог которого имеет свою строго определённую структуру;
  • /php_interface/ - вспомогательный служебный каталог, в него входят следующие каталоги и файлы:
    • dbconn.php - параметры соединения с базой;
    • init.php - дополнительные параметры портала;
    • after_connect.php - подключается сразу же после создания соединения с базой;
    • dbconn_error.php - подключается при ошибке в момент создания соединения с базой;
    • dbquery_error.php - подключается при ошибке в момент выполнения SQL запроса;
    • / ID сайта /init.php - дополнительные параметры сайта; файл подключается сразу же после определения специальной константы c идентификатором сайта - SITE_ID ;
  • /templates/ - каталог с шаблонами сайтов и компонентов, в него входят следующие подкаталоги:
    • /.default/ - подкаталог с общими файлами, используемыми тем или иным шаблоном по умолчанию, структура данного каталога аналогична нижеописанной структуре каталога содержащего конкретный шаблон;
    • /ID шаблона сайта/ - подкаталог с шаблоном сайта, в него входят следующие подкаталоги и файлы:
      • /components/ - каталог с кастомизированными шаблонами компонентов;
      • /lang/ - принадлежащие как данному шаблону в целом, так и отдельным компонентам;
      • /images/ - каталог с изображениями данного шаблона;
      • /page_templates/ - каталог с шаблонами страниц и их описанием хранящимся в файле .content.php . Когда пользователь создает новую страницу, он может выбрать, по какому шаблону из представленных в этом каталоге это будет сделано;
      • header.php - пролог данного шаблона;
      • footer.php - эпилог данного шаблона;
      • template_styles.css - основной файл стилей для шаблона;
      • styles.css - CSS стили шаблона для визуального редактора (вкладка Стили сайта);
  • /tools/ - при инсталляции в этот каталог копируются дополнительные страницы, которые могут быть непосредственно использованы на любых страницах сайта: помощь, календарь, показ изображения и т.п.;
  • /updates/ - каталог, автоматически создаваемый системой обновлений;
  • header.php - стандартный файл, подключающий в свою очередь конкретный пролог текущего шаблона сайта; данный файл должен использоваться на всех страницах публичной части;
  • footer.php - стандартный файл, подключающий в свою очередь конкретный эпилог текущего шаблона сайта; данный файл должен использоваться на всех страницах публичной части;
  • license_key.php - файл с лицензионным ключом;
  • spread.php - файл используемый главным модулем для переноса куков посетителя на дополнительные домены различных сайтов;
  • redirect.php - файл используемый модулем Статистика для фиксации событий перехода по ссылке;
  • rk.php - файл по умолчанию используемый модулем Реклама для фиксации событий клика по баннеру;
  • stop_redirect.php - файл используемый модулем Статистика для выдачи какого либо сообщения посетителю, попавшему в стоп-лист;
  • activity_limit.php - файл используемый модулем Статистика для выдачи сообщения роботу при превышении им лимита активности;
  • и другие служебные файлы и папки.

В зависимости от используемой редакции некоторые каталоги и файлы могут отсутствовать.



Любовь

Kosta
Доступно написал,…
Сергей
Спасибо

Администратор
Конечно можно. Достаточно в журнале выбрать отбор "Текущее состояние" - "Только…
Лариса
Здравствуйте! Подскажите пожалуйста, можно ли скрыть закрытые заказы из списка Заказы…
Администратор
Видимо я хотел завязаться на сесии битрикса. Но так не сделал. В итоге эта строчка…
Андрей
Добрый день, спасибо за статью. По мере прочтения возник вопрос, для чего в коде обработки…
Администратор
Проблемным место связи 2х программ всегда является обмен. Редко когда получается настроить обмен и…
Марина
Здравствуйте!Сейчас работаем в ут 11, стоит ли перходить на связку УТ+розница? Какие подводные…
Аhn
Присоединяюсь к вопросу о актах расхождений после…
Любовь
Кассовой книги в УНФ нет (строка 159). Сформировать можно только через внешние отчеты, которых нет…
Kosta
Доступно написал,…
Сергей
Спасибо

Последние статьи

Инфоблок - это сущность объединяющая в себе несколько таблиц в базе данных. Он позволяет работать с базой данных не задумываясь о структуре таблиц и взаимосвязях между ними. Для работы с инфоблоком существует специальное API. Так же инфоблок представлен в административной части сайта и имеет весь необходимый набор визуальных команд для просмотра и редактирования информации в инфоблоке. Практически всё, что делается в системе в той или иной мере завязано на этот модуль, даже если это и не отображается явно.

Давайте посчитаем сколько таблиц входит в инфоблок, чтобы получить представление на сколько это мощная и надо сказать тяжелая сущность.

  • Типы информационных блоков (b_iblock_type )
  • Информационные блоки (b_iblock )
  • Элементы (b_iblock_element )
  • Группы (разделы) информационных блоков (b_iblock_section )
  • Привязка элементов к разделам. Автоматическая таблица. (b_iblock_section_element )
  • Свойства разделов инфоблока (b_iblock_section_property )
  • Поля элементов инфоблока (b_iblock_fields )
  • Свойства элементов инфоблока (b_iblock_property )
  • Варианты значений свойств типа "список" (b_iblock_property_enum )
  • Значения cвойств (b_iblock_element_property )
  • SEO свойства (b_iblock_iproperty )
  • Привязка инфоблоков к сайтам (b_iblock_site )
  • Права доступа к инфоблоку в стандартном режиме прав (b_iblock_group )
  • Права доступа к инфоблоку в расширенном режиме прав (b_iblock_right )
  • Расширенные права доступа к разделам. Автоматическая таблица. (b_iblock_section_right )
  • Расширенные права доступа к элементам. Автоматическая таблица. (b_iblock_element_right )
  • Блокировка элементов. Используется модулем Бизнес-процессов (b_iblock_element_lock )
  • Таблица генераторов последовательностей для свойства типа "Счётчик". Автоматическая. (b_iblock_sequence )
  • Языкозависимые параметры типов информационных блоков (b_iblock_type_lang )
Впечатляет да? Конечно не все таблицы используются всегда, но тем не менее надо понимать, что инфоблок это универсальная сущность гибкая, но и тяжелая. Любое обращение к базе данных приводит к тяжелым и долгим запросам. Отсюда и требования к высокопроизводительному хостингу у Битрикс и необходимость использования кеширование. Это основной минус Инфоблоков Битрикс.
И давайте сразу поговорим о плюсах и минусах такого подхода.

Плюсы

  • Универсальность работы и API
  • Одинаковая структура данных для любого проекта
  • Быстрое визуальное проектирование структуры данных
  • Доступ из административной части и из публичной (не нужно разрабатывать свои интерфейсы)
Минусы
  • Повышенные требования к производительности
  • Не оптимальность для простых реализаций (это когда ради простой структуры данных приходится использовать кучу таблиц инфоблока)
Давайте от теории перейдем к практике, а точнее к созданию инфоблока и наполнению его данными.

Создание инфоблока

Я не буду подробно останавливаться ни работе с Инфоблоком в админки Битрикс, я думаю с этим можно разобраться самостоятельно. Я только опишу то, что будет нам необходимо для разработки нашего магазина StartShop. А сам инфоблок мы загрузим готовый из XML файла, чтобы вы имели уже наполненный инфоблок товаром с картинками и могли с ним работать, не тратили время на наполнение.
Управление инфоблоками находится в разделе Контент .
Нам потребуется отдельный Тип инфоблока , назовем его Каталог, он должен быть древовидным.
Тип инфоблока, это своего рада группировка которой удобно отделять одни инфоблоки от других. У нас будет как минимум 2 типа инфоблока: Каталог и Сервис .
Далее нам потребуется инфобок, который мы назовем Товары .
Помимо обязательных полей Название , Символьный код , привязка к сайту хочу обратить внимание на настройку ЧПУ (URL страниц) это важно. Настройки URL определяют адрес по которой будет выдаваться элемент инфоблока или список элементов. Ведь страниц товаров не существует, как отдельных страниц на сайте. Они генерируются динамически, компонент делает запрос к инфоблоку, получает данные и выдает виртуальную страницу по определенному адресу. Шаблон адреса, по которому нужно сделать запрос к инфобоку будет настроен в параметрах компонента (например Новости) и этот шаблон должен совпадать с настройками инфоблока. В противном случае откроется пустая страница.
Давайте пока просто настроем, как у меня, а при настройке вывода данных вам станет понятно, как все работает.
  • URL страницы информационного блока: #SITE_DIR#/catalog/
  • URL страницы раздела: #SITE_DIR#/catalog/#SECTION_CODE#/
  • URL страницы детального просмотра: #SITE_DIR#/catalog/#SECTION_CODE#/#ELEMENT_CODE#/
Следующее, что нам понадобится настроить дополнительные поля Свойства инфоблока.

Про все свойства я буду рассказывать по мере потребности в них. Сейчас же обращу внимание только на два первых: Цена и Количество , это те данные которые потребуются для товара. Оба свойства будут иметь тип Число .
Если раскроете выпадающий список Тип увидите, что у свойства могут иметь различные типы данных. Не только примитивные типы (булево, строка, число, дата), а также и сложные типы (видео, файл, текст, привязка к элементам инфоблока, привязка к картам и др.). Т.е. о чем я говорил выше инфоблок очень универсальная сущность способная хранить различные данные в себе.

Импорт / экспорт инфоблоков

Академия Битрикс (материалы для инфоблока)

И так, интернет магазин у нас будет продавать одежду. Данные инфоблока я возьму из Битрикс академии .


Очень рекомендую посмотреть их видео уроки. Очень все четко и на высоком уровне. Не так подробно, как у меня, но зато потратив пару часов можно охватить очень много информации.
Инфоблок мы возьмем из материалов курса Быстрый старт разработчика . Там находятся те же изображения (надо сказать очень симпатичных девушек), что и в demo-данных типового интернет-магазина Битрикс. Все материалы курса в том числе и инфоблок можно скачать с сайта 1c-bitrix . Я же немного подкорректировал инфоблок, и выкладываю только его на своем сайте.

Экспорт Инфоблока

Экспорт и импорт инфоблоков это ещё одна очень удобная возможность работы с инфоблоками, особенно при изучении Битрикс. И сейчас расскажу почему. Когда у вас нет лицензии, установка Битрикс работает всего 30 дней. Чтобы продолжить разработку вы можете поставить новое веб-окружение Битрикс снова на 30 дней (об этом был Урок 2). Но что делать с данными. вносить в ручную? Вот тут нас спасет возможность экспорта и импорта данных ифоблока. Таким образом на демо-версии можно работать достаточно долго. Инфоблоки загрузить через экспорт/импорт, а структуру сайта и папку local просто скопировать со старого проекта.
Чтобы экспортировать Инфоблок нужно перейти в админке Битрикс в раздел Контент .


Есть возможность экспортировать в 2 формата CSV и XML . Особенности экспорта в этих форматах следующие:

CSV

При экспорте в CSV есть возможность настроить поля, которые будут выгружаться в файл. Но при этом картинки выгружены не будут.

Соответственно при импорте нужно сначала создать ифноблок со всеми полями и в настройках импорта указать в какие поля загружать данные из файла.
Такой импорт удобно осуществлять в уже существующий инфоблок, который может отличаться по структуре. Например, через импорт можно скопировать данные каталога со старого сайта в новый с другой структурой. Можно даже в Exel преобразовать или дополнить данные в файле, а потом загрузить.

XML

При экспорте в XML возможностей настраивать выгружаемые поля нет, инфоблок будет выгружен полностью, но зато вместе с изображениями.
Изображения будут выгружены в туже директорию в папку catalog_files в виде папки iblock .
При импорте из XML возможности выбрать поля для импорта нет. Будет создан новый или обновлен существующий инфоблок целиком. Даже не обязательно указывать Тип инфоблока при импорте, он будет создан автоматически.
Данный способ отлично подходит для переноса наработок с одного сайта на другой. Например обработали данные на тестовом сайте, потом перенесли их на рабочий. Ну или, как я писал выше, таким образом можно переносить данные на демо-установку и продолжать ей пользоваться. Для изучения Битрикс это просто незаменимый механизм. Им мы и воспользуемся. Скачайте архив с данными инфоблока и загрузите в свой проект, например в папку uplod. Распакуйте архив в текущую папку.


После выполните импорт через XML, как на картинке выше выбрав для импорта файл catalog.xml . Будет загружен инфобок со всеми картинками из папки catalog_files. (Одно замечание, при загрузки картинки не обновляются и если изначально инфоблок загружен без них, то они не добавятся. В этом случае нужно удалить полностью инфоблоки или элементы из него и загрузить сразу с картинками.)
Перейдите в инфоблок Товары и проверьте, должно получится следующее.
А чтобы сразу в списке увидеть изображения список нужно настроить. Для этого в списке в правом верхнем углу нажмите кнопку настройки.


И выберете нужные для отображения поля. В данном случае Картинка для анонса. (в дальнейшем можно будет вывести количество и цену для удобства).

От автора:
Ну вот разобрались Инфоблоками - главной сущностью Битрикс. С ними мы будем работать на протяжение всего курса. Все нужные данные будут хранится в инфоблоках. Это и список банеров, и комментарии и подписки и все, что нам ещё понадобится. И уже в следующей статье мы выведем информацию из инфоблока с помощью компонента bitrix:news . Подписывайтесь если ещё не подписались и до новых уроков!

Немного теории:

В системе Bitrix заложена довольно популярная архитектура: разделения данных, представления и обработки действий пользователя на три отдельных компонента.
Данная архитектура именуется как MVC (Model-view-controller, «Модель-представление-поведение»), и широко применяется для проектирования различных программных продуктов.

В свою очередь шаблон MVC для Bitrix Framework формируется из следующих частей:
Модель — это API;
Представление — это шаблоны;
Контроллер — это компонент;

В данной статье мы поговорим о компоненте Bitrix .
Компонент — это контроллер и представление для использования в публичном разделе. Компонент с помощью API одного или нескольких модулей манипулирует данными. Шаблон компонента (представление) выводит данные на страницу.

Структура компонента

Стандартные компоненты Bitrix хранятся в каталоге /bitrix/components/bitrix/. Как утверждают разработчики: компоненты находящиеся в данном каталоге могут перезаписываться при обновлении, и для кастомизации компонентов предпочтительно заводить отдельный каталог для своих компонентов.

В связи с этим в каталоге /bitrix/components/ заводим новый каталог, в котором будут храниться наши компоненты.

Дадим ему имя custom. Теперь создадим каталог для нашего компонента /bitrix/components/custom/sections.list/. Привычная структура папок и файлов простого компонента выглядит так:
— help
— images
— lang
— templates
.description.php
.parameters.php
component.php

Рассмотрим всё это по порядку.
В папке help обычно лежит файл .tooltips.php , содержащий массив всплывающих подсказок для настроек компонента. Не будем на нём останавливаться, пример этого файла можно посмотреть в других компонентах.
В папке images обычно лежит иконка компонента.
В папке lang лежат подпапки для языковых параметров компонента.
В папке templates — все шаблоны компонента.
Можно сразу сделать шаблон по умолчанию для нашего компонета. Полный путь до него будет выглядеть так: /bitrix/components/custom/sections.list/templates/.default/template.php.
Вставим туда пока одну единственную строчку «Это шаблон компонента custom:sections.list».

В файл .description.php прописываем следующий код:

"Custom: список разделов инфоблока", "DESCRIPTION" => "Список разделов инфоблока", "ICON" => "/images/sections_list.gif", "CACHE_PATH" => "Y", "PATH" => array("ID" => "utility",),); ?>

Итак, файл содержит массив с описанием компонента.
Далее следует файл — .parameters.php :

array("IBLOCK_ID" => array("NAME" => "Id инфоблока", "TYPE" => "STRING", "MULTIPLE" => "N", "PARENT" => "BASE",), "CACHE_TIME" => array("DEFAULT"=>3600),),); ?>

Рассмотрим содержимое файла более подробно. Ключ PARAMETERS массива $arComponentParameters представляет собой массив с описанием параметров. Наш компонент будет содержать только один основной параметр — IBLOCK_ID (ID инфоблока, из которого будут показываться разделы).
Ключи:
NAME — название параметра;
TYPE – тип;
MULTIPLE — множественность (если ‘Y’, то наш параметр сможет принимать массив значений);
PARENT — родитель (параметры можно делить на группы);

Обратите внимание на второй параметр CACHE_TIME — он по умолчанию для компонентов Bitrix и устанавливает время кеширования.

Из массива $arComponentParameters будет сгенерирован массив $arParams, который будет использоваться в основном файле нашего компонента — component.php

Содержимое файла component.php :

"; print_r($arParams); echo ""; CModule::IncludeModule("iblock"); if ($this->StartResultCache(3600)) { $iblock_id = $arParams["IBLOCK_ID"]; $arFilter = array("IBLOCK_ID"=>$iblock_id); $db_list = CIBlockSection::GetList(array("NAME"=>"ASC"), $arFilter, true, array("ID", "NAME", "CODE")); while($ar_result = $db_list->GetNext()) { $arResult = array("ID" => $ar_result["ID"], "CODE" => $ar_result["CODE"], "NAME" => $ar_result["NAME"], "ELEMENT_CNT" => $ar_result["ELEMENT_CNT"]); } // echo "

"; print_r($arResult); echo "
"; $this->IncludeComponentTemplate(); } ?>

Файл component.php содержит всю логику компонента, основная задача этого файла — сформировать из полученных параметров ($arParams) массив $arResult, который впоследствии будет передан в шаблон компонента. Обратите внимание на два комментария. Раскомментировав их, вы всегда сможете наблюдать за тем, какие параметры приходят в компонент, и какой результат получает шаблон.
Код созданного нами компонента не сложен — в зависимости от полученого параметра (ID инфоблока) мы делаем выборку разделов и сохраняем их в массив $arResult. Следует обратить внимание на вызов метода $this->StartResultCache(). Он проверяет, есть ли у нашего компонента актуальный кеш. Если он есть, то выводится информация из кеша. Следовательно, запроса к базе нету, массив $arResult не генерируется, и даже шаблон не подлючается (метод $this->IncludeComponentTemplate()).

Шаблон компонента

Следующий шаг — создание шаблона для компонента. Шаблон принимает массив $arResult, сгенерированный в файле component.php и выводит его содержимое в браузер. Файл шаблона нашего компонента будет находиться по следующему пути: /bitrix/components/custom/sections.list/templates/.default/template.php
Код в шаблоне компонента:

Рубрики блога

()

Вызов компонента

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

IncludeComponent("custom:sections.list", ".default", array("IBLOCK_ID" => 1), false); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php"); ?>

Для параметра IBLOCK_ID необходимо указать ID инфоблока, содержащего разделы. Записав параметры в файле, следует запросить скрипт посредством браузера, и просмотреть результат./strong




Top