KIVagant

Junior Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Цитата: Не подскажите, есть ли какие-то учебные пособия по Bitrix-у? | Да, их немеряно и половина из них бесполезна. http://dev.1c-bitrix.ru/learning/ - Учебные курсы (пробовал учить, скучно, безинтересно и главное - не помогает решить поставленную задачу) http://dev.1c-bitrix.ru/api_help/ - Намного более полезная штука, где можно найти осмысленное описание каталогов, классов, функций, компонентов и другое. Но вот что я не нашел - так это хотя бы одно подробную статью, которая бы нормальным языком рассказала как создать свой собственный сайт на битриксе. Эту дыру восполнять пока не стану, но выскажу собственное мнение по-поводу этой системы. Мне удалось установить и создать сайт (конфа 1С:Франчайзи на основе "1С-Битрикс: Управление сайтом 8.0.5".). Сама процедура создания сайта описана мало, но в целом понять можно: создаем сайт, к нему создаем шаблоны. В чем же проблема? 1. Стиль кодирования, мне ненавистный. Приведу пример: Код: <? $APPLICATION->IncludeFile( '/includes/rss1.php', Array(), Array("MODE"=>"html") );?> <?if ( (file_exists($_SERVER['DOCUMENT_ROOT'].'/includes/rss1.php')) and (file_exists($_SERVER['DOCUMENT_ROOT'].'/includes/rss2.php')) ): ?> <div class="rightSeparator"> </div> <?endif?> | Это у них называется "Шаблоны". В реальности - это подключаемые разными извращенными способами обычные php-файлы, в которы дизайнер с помощью wysiwyg-редактора натурально фигачит компоненты, перемешивая их с html-кодом. В результате, кодирование превращается в настоящий кошмар, т.к элементарные условия if-else разорваны бесчисленными прерываниями php-кода, вставками компонентов и так далее. Подобный бред естественно требует контроля вывода буффера, что конечно и сделали. Это подается как мега-крутая технология "отложенных функций", модно расписанная в документации. Мракобесие. 2. "Структура" файлов или матрешки-невлепёшки. Основа концепции битрикс в том, что не нужно базы данных, давайте все статьи хранить в php-файлах (ах, да, знать php не нужно, есть же компоненты и немного отчаянного маразма). Конечно плюсы в этом есть, какие-то. Но я пока не понял какие. Значит, вот вам ход мысли при создании сайта: - Создаем сайт в панели администрирования. Методом тыка отключаем дефолтовый и включаем созданный нами как сайт по-умолчанию. Папки этого сайта на винте не обнаруживается, но мы верим что так и надо. Потом создаем шаблоны. Шаблоны - это такая штука, которую можно садить на условия (весьма полезно придумано). Условия бывают разными, вплоть до php. - Теперь шаблоны нужно отредактировать. Оказывается, они все состоят из "шапки" (header), "подвала" (footer) и рабочей области. Поскольку сам факт такого разделения уже абсурдный, придумали включаемые области. Включаемые области - по сути точно такие же header и footer, только могут находиться где угодно. (Запомни это, читатель). - Следом нам эти псевдо-шаблоны нужно прикрутить в куда-нибудь. Для этого нужно создать какую нибудь страницу. Конечно можно в панели администрирования в разделе "Контент". Админу для этого прийдется почитать мануалы, программист "вкуряет" быстрее и забив на панель админки мы лезем в корень сайта, создаем нужную папку (например documents), в ней файлик (index.php). Почему index.php - не программист не поймет, но именно такой файл ему и нужно создать для начала. После или до этого мы прописываем правила для применения созданного ранее шаблона к нашему сайту. Например, применять шаблон "main" для всех страниц сайта, а шаблон "pages" - для страниц документации. - В этом index.php (уж конечно не через wysiwyg) мы пишем что? О, да - оформительский html-код нашей страницы. Это если страница хоть на что-то похожа, а не просто содержит один компонент. То есть, мы снова создаем шаблон, на который применяется шаблон. Конечно мы можем в эту страницу писать и просто текст, и просто html и просто php-код в чистом виде. То есть - проектируйте как хотите. И вы, конечно, можете добавить.. включаемую область! Точно также, как и в самом шаблоне. - Компоненты - какая мега-идея и как бездарно убита самим движком. Компоненты - это такие прикручиваемые вызовы готовых наборов решений, которые вы встраиваете в свои страницы, внутрь своих "шаблонов". Настраивая их вы получаете какие-то взаимосвязи. Но сам процесс настройки может стать новым сюрпризом. Компоненты ещё бывают "комплексными" - это значит из нескольких матрешек вы получаете мега-матрешку, которую при любом изменении дизайна полностью копируете (десятки файлов) в свой шаблон. Пример "настройки" компонента новостей: в его параметрах нужно указать три ссылки, которые по-умолчанию заполнены чем-то вроде index.php, list.php и ещё что-то. Зачем это нужно - не сразу и поймешь. Нужно хорошо знать компоненты и логику их взаимосвязей друг с другом, чтобы настроить правильно. На самом деле, это могут знать только сами создатели компонент. Остальные - RTFM и не парьте моцк поддержке, им лениво. Не буду расписывать все неудобство реализации этой идеи, но отмечу, что некоторые моменты все-таки неплохо сделаны. - Построение контента - бррр. Клонирование файловой системы - обязательно нужны папки и файлы. Вот вы скажите - кому в вебе нужны папки (разделы)? Мне нужно статьи помещать внутрь статей, картинки внутрь новостей и так далее. Для того, чтобы создать в комплексном компоненте структуру вида: .О компании .. История .. Вакансии В Битриксе нужно создать папку "О компании", внутри положить статью "О компании", создать ещё две папки "История" и "Вакансии" и внутри положить статью "История" и статьи "Вакансии". Или отказаться от комплексного компонента и формировать всё в виде тупо вложенных файлов и папок, плодя html и php коды. Но тогда автоматическое меню уже вам не доступно. 3. Результат На сегодня я имею следующее: - В корне сайта созданы папки со статьями. Внутри каждой папки - разный код все того же смешанного стиля php+html. documents\ - тут содержится комплексный компонент "новости", включаемая область меню, компонент со списком разделов. 1cv7\ - тут страница, в которую набит html-код вперемешку с текстом и включаемая область с уже другим меню. 1cv8\ - тут тоже самое - В папке bitrix (зачем оно там?) в подпапке templates у меня лежат: шаблон главной страницы, шаблон "pages", шаблон-нешаблон с общими js, css, img и включаемыми файлами. А тексты статей лежат в базе данных. А картинки - в папке upload, в корне, потому что мне их нужно использовать в разных статьях. Вызов каждой статьи из подкаталога требует прописывания полного пути к картинке или выстраивания конструкций вида src="../../upload/logo.jpg". И что мы имеем? - полную кашу из программного кода, верстки и информации. И я создаю собственные includes, в них пишу свои константы и программирую (!) свой движок в движке, чтобы хоть как-то облегчить себе создание этого бреда! Затем ковыряю эти компоненты, пытаясь их шаблоны (которые есть неизвестный программный код, смешанный с версткой) привести в нужный мне вид. Зато отложенные функции. Зато проактивная защита и куча модулей. И даже интеграция с ActiveDirectory. Только как управляться с этим монстром - загадка. P.S.: Для решения этой задачи я полностью создал сайт на своём движке (акцентируясь на дизайне, на информации и на опциях), где люди уже корректируют информацию, обсуждают дизайн. После этого я вожусь с битриксом, пытаюсь собрать до кучи все эти разрозненные шаблокоды, решаю конфликты css и javascript (чуть ли не каждый компонент плодит избыток кодов), пытаюсь получить обычное древовидное меню из статей. И каждый день думаю "когда это кончится?". Тормоза по 1-5 секунд на страницу. P.P.S: Забыл изречь главное: просто программировать легче чем сделать собственный сайт на битриксе. В общем и целом, весь битрикс не является системой, а является набором запчастей, отверток и болтов. Чтобы что-то собрать - нужно конечно пройти курсы обучения. Или заплатить франчайзи. То есть - купили движок - купите программистов. 1С-ный принцип. А если вы и есть франчайзи - ну значит вперед и с песней, терзайте гранит. Овладеете таинством лет через N. | Всего записей: 177 | Зарегистр. 08-06-2004 | Отправлено: 11:34 21-07-2009 | Исправлено: KIVagant, 12:04 21-07-2009 |
|