Компонент будет искать свой шаблон в /bitrix/templates/%шаблон_сайта%/components/bitrix/news.list/subdir/template_name/
Это позволяет упорядоченно раскидать шаблоны по подразделам. Например, положить все шаблоны новостных лент с морды сайта в news.list/1st_page/. Когда у вас много шаблонов, это удобно.
Но есть один большой минус. Назначить компоненту шаблон, лежащий в подразделе, через веб-интерфейс не получится. Только руками.
Монитор качества - позволяет решить задачу обеспечения прозрачного и гибкого процесса сдачи веб-проекта клиенту, повышая уровень гарантированного результата и снижая общие риски. О мониторе качества написано много: - - Но ни где нет отзывов и пожеланий о данной разработке (или я не нашел). В данном посте напишу свое мнение о данном модуле.
Многие разработчики недооценивают важность хорошей верстки, возможно от того, что она легче других работ отдается на аутсорсинг. Многим заказчикам сложно продать хорошую верстку, возможно от того, что довольно сложно объяснить, что это вообще такое и для чего это нужно. Мы же считаем, что верстка дизайна — это очень важный технологичный этап разработки сайтов, не менее важный чем разработка дизайна и программирование.
Новые технологии. Так как решение "Битроник" мы делаем для себя и намереваемся его в дальнейшем активно развивать наращивая функционал, то фундамент заложили инновационный с перспективой развития на несколько лет вперед — верстаем в HTML5 + CSS3! Это позволило нам использовать новейшие передовые возможности браузеров.
Верстка семантическая. Все сверстано div`ами, за исключением нескольких таблиц в блоках с табличными данными (малая корзина, список сравниваемых товаров, вид товара таблицей.)
Верстка резиновая, местами адаптивная. Тянется от 1024 (минимум) до 1600 (максимум) пикселей — в соответствии со . Если интеграторам в дальнейшем потребуется изменить минимум и максимум, то это правится в нескольких классах CSS файла.
В спецблоках на главной странице посетители увидят такое количество товаров, которое помещается на страницу при их разрешении экрана и в этом смысле верстка адаптивная.
Верстка кроссбраузерная. С поправкой на CSS3 и HTML5, которых не поддерживают старые версии браузеров.
В соответствии со — более 60% всех посетителей уже обновили свои браузеры и увидят дизайн во всей его красе, остальные к сожалению увидят кнопки без градиентов, а со сплошной заливкой, где-то не увидят тени у всплывающих слоев итд. Но, в целом все будет работать! А через какое-то время, думаем, что народ уже обновится.
Верстка seo-ориентированная. Ну тут все понятно. Использование тегов <h1>-<h5> в нужных местах и не использование в ненужных
Верстка валидная. Опять же с поправкой на CSS3 и HTML5, которые пока еще не являются стандартом и проверку валидаторами:
не всегда проходят.
Цветовые схемы. Описание расположения объектов хранится в файле: /css/style.css а все настройки цвета в файлах: /css/color-red.css — огненная цветовая схема, /css/color-ice.css — ледяная цветовая схема, /css/color-green.css — цветовая схема жизни.
Благодаря использованию технологии CSS3 очень многое удалось перенести в стили и классы, в результате картинок подгружается очень мало. Кроме того, это позволит при необходимости очень легко добавлять новые цветовые схемы.
Расширяемость решения. Так как это типовое решение на базе коробки 1С-Битрикс, то мы решили, что оно так же должно быть своего рода конструктором.. Про легкость создания дополнительных цветовых схем я уже упомянул. А кроме того, еще этапе разработки дизайна мы использовали преимущественно иконки доступные в .
Этот шрифт совместно с технологией CSS3 (которая позволила легко сделать кнопки резиновыми и по ширине и по высоте) дали нам поистине неограниченные возможности! Представьте: ~76 иконок * 4 вида основных кнопок * 3 состояния кнопки * 3 цветовые схемы = 2376 иконок потребовалось бы нарисовать дизайнеру! А не нужно — все уже есть и весит не более 10Kb! Можно ради такого пожертвовать поддержкой старых версий браузеров? Дополнительно к этим символам интеграторы могут использовать бесконечное количество простых текстовых кнопок. Это очень просто:
если необходимо использовать шрифт Websymbols - добавьте еще класс "sym", пример:
<button class="button2 sym">P</button>
Если кнопка располагается не в форме (ничего не сабмитет), а является ссылкой, то используйте тег <a>:
<a class="button2 sym">Большая кнопка</a>
это тоже работает
Кстати, похожий подход мы использовали еще при разработке типового решения , но там кнопки были нарисованные и состояли из трех частей (резиновые по горизонтали) — .
Кроме того, при верстке мы не использовали "ластиков" вроде:
*{padding: 0; margin: 0;}
что позволяет использовать стандартные теги (таблицы, картинки, списки итд) на статических страницах сайта, которые ведут себя ожидаемо.
Поддержка 1С-Битрикс. Теоретически классы верстки не должны пересекаться с классами панели "Эрмитаж" хранящимися в: /bitrix/themes/.default/pubstyles.css и классами настройки параметров компонетов в публичной части сайта: /bitrix/js/main/core/css/core_admin.css но, это еще предстоит проверить на этапе интеграции.
Под влиянием Студии Лебедева. Все ссылки на сайте имеют полупрозрачное подчеркивание.
Для отображения лебедевского знака рубля мы используем любезно предоставленный Дизайн-бюро Артёма Горбунова.
Страницы:
Это основные моменты, которые нам хотелось бы отметить по верстке "Битроника". Выполнил работу наш удаленный верстальщик, с которым мы успешно сотрудничаем уже много лет — .
PS: Верстка получилась очень сложная, по этому багов остаётся еще очень много — отлавливаем и правим, прямо сейчас..
После принятия решения об участии в новом конкурсе 1С-Битрикс на разработку типового решения мы выбрали тему: интернет-магазина электроники на Битрикс — Битроник (кодовое имя.)
Первый этап проектирования прошёл быстро — обошлись без проектирования , так как Заказчик — это мы сами. По этому его я не описываю.
Сейчас идет второй этап — рисуем дизайн (пыль столбом). Закончиться он должен был 13 февраля, но он почему-то не закончился.. (Это нервное. Все таки проектированию стоило уделить некоторое внимание..)
После разработки и "Битроника" мы приступили к этапу №4 -- программированию.
На программные работы до dead-line (31 марта) проекта у нас оставалось всего 2 недели, из которых на то чтобы запаковать решение в модуль и выложить в MarketPlace нам нужна была 1 неделя, а за оставшуюся 1 неделю нам нужно было успеть выполнить все программные работы по созданию интернет-магазина: натянуть верстку, заложить логику работы, протестировать.
Решено было делать только самое основное, самое главное и самое необходимое, но качественно, чтобы заложить крепкий и надёжный фундамент для дальнейшего наращивания функционала. Так мы сознательно оставили на потом такие вещи как например: AJAX и прочие фичи. Далее я расскажу вам о том, что было сделано уже сейчас.
Честно говоря, думал спустить на тормозах и просто опубликовать отчёт у себя на сайте, однако вспомнил про прошлогодний пост Романа Забродина и решил, что имеет смысл поднять тему вновь.
Прошлым летом мы собрали небольшой . Зимой свершилось долгожданное событие - у "нас" появились котята. С заказчиком мы общаемся постоянно, да я и сам кошатник. Сейчас вот помогаем чем можем со стороны Интернет для поиска хозяев котятам, ну и еженедельно смотрим на новые фотки. Все таки интересно как растут эти зверьки. А вообще если кому нужен домой огромнейший пушистый котяра - остался еще один черно белый А если по существу, от таких, пусть и небольших, но в корне позитивных проектов на душе как то теплее становится. Словами это не выразить.
Забавно. Сегодня зашел на и обнаружил, что примерно половина из 25 компаний - не московские компании, и, что самое интересное, многие из них год назад не были в числе ТОП-25.
Учитывая, что "цена" входа на первую страницу партнеров с каждым годом всё больше и больше, мне кажется, что в скором времени состав рейтинга еще изменится - "старички" будут двигаться вниз, т.к. делают меньше новых проектов, а компании, продающие много битрикса, будет выходить в лидеры.
Для ООО "Полиграфмастер" потребовался калькулятор расчета стоимости тиража. Я взял наш из Marketplace, но оказалось, что применить его для этой задачи без переделки невозможно. Порядок расчета был задан заказчиком вот так:
Как видно требовался расчет по формуле. Но это еще "полбеды". Основная "беда" была в таблице связей коэффициентов. Надо было реализовать логику при которой выбор значений в одном поле - изменял возможность выбора значений в другом. Стало ясно, что универсальный калькулятор далеко не так универсален, как хотелось бы.
Формулу удалось реализовать довольно просто и изящно. Добавил свойство следующего содержания: (K_1*K_4+40+K_2+K_3)*K_5, где K_1 ... N префиксы символьных кодов соответствующих свойств-коэффициентов, а вот с зависимыми полями пришлось попотеть...
В результате родился такой монстр к описанию поля Тип переплета (K2): fr=3&fra=dws&frf=3:1,2;5:1,2&fd=pereplet, что в переводе означает: fr (field relation) = 3 - услуга K_2 имеет связь с услугой K_3 fra (field relation action) = dws - действие по связи - скрыть, когда выбрано (dws - disabled when selected) frf (field relation field) = 3:1,2;5:1,2 - поля 3 и 5 услуги 2 связываются с полями 1 и 2 услуги 3 fd (field dictionary) = pereplet - услуга K_2 связывается со справкой в полиграфическом справочнике с кодом "pereplet" (раздел с кодом "pereplet";)
Пощелкать, как получилось - можно здесь:
Вот так выкрутился. Полный скриншот настройки - приведен ниже. Там есть еще одна настройка fc (field check ) =int, что означает провести проверку поля на целое значение.
В общем появился повод серьезно задуматься над качественной и системной переработкой инструментария калькулятора, чтобы он оправдывал свое гордое название "универсальный".
Иногда возникает необходимость получения массива $arComponentParameters из .parameters.php внутри файла component.php Например, в файле .parameters.php может храниться список режимов работы компонента (удалить избранное, добавить в избранное, обновить избранное) и нам нужно его вытащить ...
Использую 2 месяца 7” планшет с Андроидом. Первые впечатления – все сайты сделаны плохо, но со смартфонами и рядом не стоит, работать в интернете можно полноценно, есть даже флэш. Встроенный броузер довольно хитро устроен – он умеет масштабировать дизайн под размер экрана, поэтому при использовании фиксированной вёрстки примерно совпадающей с размерами планшетов проблем быть не должно. Недавно поставил оперу под андроид – броузер более хитрый, там свои нюансы Поскольку в броузерах для планшетов постоянно происходят изменения, каких-то стандартов пока нет. Самое простое решение – иметь под рукой несколько популярных моделей и на них всё проверять. Отладка, конечно, будет затруднена отсутствием у конкретных разработчиков самих планшетов, а лишь наличием замечаний от заказчиков/руководителей проектов. Считаю, для удобства работы с планшетами главное – пересмотреть юзабилити относительно мыши. Нужно учесть, что у пользователя есть только палец: - нет «наведения» на объекты, сопутствующих подсветки, выпадения и т.д. - довольно трудно попадать в мелкие объекты. Да, есть приближение щепоткой, но на всё подряд ненаприближаешься. В связи с чем становятся очень актуальны ссылки «Следующая/предыдущая страницы», которые никогда до этого не использовал - довольно странно ведут себя различные «контролы» - выпадающие списки, чекбоксы и т.д. - в целом к java-script нужно относиться осторожнее, к всевозможным слайдерам, затенениям, всплывающим окнам. - 3G работает не везде, «бесплатный» wi-fi бывает тормозит, соответственно, страницы и картинки нужно максимально оптимизировать, вместо длинных лент лучше разбивать на разделы и подразделы. Т.е. мои рекомендации сводятся к тому, чтобы двигаться от очень интерактивного web2.0 двигаться в обратную сторону, компенсируя недостаток красочными яркими картинками Примеры скриншотов сайта одного из моих заказчиков . В Опере смотрится неплохо при любой ориентации экрана, а вот в стандартном броузере неверно определяется граница из-за чего часть правого края уезжает.
Как-то попросили меня добавить на один сайт пару плюшечек. До этого сайт разрабатывался партнерами с золотыми сертификатами, и не так уж давно. И вот начал я разбираться, что где находится и что же я увидел. Просто мрак, словно разработчики обучались на 4-5 версии БУС и о том, что поменялось ведать не ведают. Вот так выглядит раздел фотогалереи:
Ни компонентов, ни кеша. Чистая работа с инфоблоками.
А еще например, файлики со стилями лежат в /css, скрипты в /js, картинки в /img. Есть ли у кого какие мысли, по поводу того, как можно более объективно оценивать работу разработчиков того или иного партнера. А то человек приходит, видит кучу сертификатов, кучу красивых портфолио. Потом заказывает у них сайт. А через некоторое время обращается к другому партнеру/разработчику для изменения/обновления сайта, а тут такая гадость.
Доброго времени суток! Не смотря на простоту и удобство работы с механизмом кеширования в продукте, у него есть один существенный недостаток: не удаляется устаревший кеш. Связано это с тем, что при работе с компонентами продукт формирует уникальный путь к файлу с кешем на основании входящего параметра $cache_id, т.е. файл с кешем создаётся по определённому пути, либо перезаписывается актуальными данными, удаления какого-либо произвольного файла не предполагается по определению.
В данной статье предлагается агент, который периодически запускается, сканирует директории с кешем, вычисляет устаревший и удаляет его.
С момента получения фрилансером предоплаты не должно пройти слишком много времени..
– Стыдно убивать безволосого детеныша. Кроме того, он станет отличной забавой для вас, когда подрастет. Балу замолвил за него слово. А я к слову Балу прибавлю буйвола, жирного, только что убитого буйвола, всего в полумиле отсюда, если вы примете человечьего детеныша в Стаю, как полагается по закону. Разве это так трудно? Тут поднялся шум, и десятки голосов закричали разом: – Что за беда? Он умрет во время зимних дождей. Его сожжет солнце. Что может нам сделать голый Лягушонок? Пусть бегает со Стаей. А где буйвол, Багира? Давайте примем детеныша! ... ... – Мало того: когда его принимали в Стаю, в уплату за него я отдала буйвола. Буйвол стоит немного, но честь Багиры, быть может, стоит того, чтобы за нее драться, – промурлыкала Багира самым мягким голосом. – Буйвол, отданный десять лет назад! – огрызнулась Стая. – Какое нам дело до костей, которым уже десять лет?
В процессе разработки и поддержки сайта часто возникает необходимость в отслеживании истории изменений какого-либо файла и, возможно, в откате, то есть возвращении к более старой версии файла.
Необходимость эта может во многих случаях, вот некоторые из них:
Понадобилось сделать кратковременное изменение дизайна (например, под новый год)
Редактор сайта случайно испортил какую-нибудь страницу (а то и не одну) и нужно “вернуть, как раньше было”
Не дай бог завелся вирус, который записался в кучу файлов и теперь нужно найти все эти файлы и вернуть их в исходное состояние.
Год назад из дизайна удалили кусок, решив, что он больше не пригодится, но он таки вдруг понадобился.
До работы с сайтом допустили посторонних людей (например, seo-оптимизаторов), которые внесли свои изменения и нужно проверить, что же они в действительности поменяли.
Подобные задачи можно решать с помощью встроенной в 1С-Битрикс функциональности бэкапов, но это не очень удобно - нужно скачивать архив с бэкапом, вручную разыскивать изменившиеся файлы, затем, если нужно, опять их заливать на сайт. Более правильным способом будет использование систем контроля версий таких так subversion или git. Они всем хороши, но, к сожалению, не на каждый хостинг их поставишь, а даже если поставишь, то работать с ними придется через коммандную строку, что не очень удобно. Решением этих проблем (не всех, но многих) может стать новый модуль “”. Если вы знаете, что такое svn, то этот модуль представляет из себя примерно то же самое, только попроще (пока что, планы по развитию наполеоновские), но зато встроено в админку битрикса.
На данный момент модуль умеет:
помещать в свое хранилище (репозиторий) файлы из настроенных источников данных, то есть из определенных папок на диске (см. ниже)
находить файлы, которые изменились по сравнению с последней версией, помещенной в репозиторий
показывать, что же изменилось в файле
помещать в репозиторий новую версию файла(ов) - это называется создать новую ревизию
по вашей просьбе восстанавливать файл из любой предыдущей ревизии
показывать историю изменений (ревизий) файла
добавлять в верхнюю панель кнопку для быстрого создания точки восстановления и отката к последней созданной точке восстановления
выгружать файлы, изменившиеся после определенной ревизии (поможет разработчикам модулей для Marketplace при сборке обновлений)
Теперь о том, как с этим модулем работать. Сначала нужно настроить “источники данных” - попросту говоря папку на диске, файлы из которой будут помещены в репозиторий. Добраться до настройки источников данных можно через настройки модуля. Там же можно включить, чтобы ссылка на настройку источников была в меню.
Как видно на скриншоте, нужно указать директорию, в которой будет производиться поиск файлов, расширения файлов, которые будут помещаться в репозиторий, а также поддиректории, в которых нужно и в которых не нужно искать файлы. При установке модуля автоматически настраиваются несколько источников - ядро (то есть то, что лежит в папке /bitrix), а также по одному источнику на каждый заведенный в системе сайт. Их можно использовать по умолчанию - туда попадут шаблоны, самописные компоненты, а также публичные части сайтов системы.
Итак, после того, как источники данных настроены, можно приступать к работе с модулем. Отправной точкой послужит пункт меню “Проверка изменившихся файлов” .
Сначала нужно выполнить проверку источников данных на изменения (красная стрелочка 1 на скриншоте), в процессе которой будут найдены все новые, изменившиеся и удаленные файлы. Результаты проверки будут представлены здесь же. Дальше нужно поработать с результатами проверки, то есть решить, какие изменившиеся файлы достойны занесения в репозиторий, а какие нет. Также здесь можно обнаружить файлы, которые нужно “вернуть как было” и тут же восстановить их в источнике из репозитория. Те файлы, которые изменились в источнике, но которые пока нет нужды заносить в репозиторий можно удалить из результатов проверки. У новых файлов можно посмотреть содержимое, а у удаленных - последнее содержимое из репозитория. У измененных же файлов можно что конкретно изменилось
Зеленым цветом подсвечены строки, которые появились, а красным - которые были удалены.
После того, как определен список файлов, достойный занесения в репозиторий, нужно зафиксировать (сохранить) эти изменения в репозитоирии (зеленая стрелочка 2). При сохранении нужно будет обязательно ввести описание сохраняемых изменений. В результате будет создана новая ревизия. Каждая ревизия получает свой порядковый номер (ID). Номер новой ревизии всегда больше номера прпедыдущей.
При первом использовании модуля репозиторий будет пустой, поэтому все файлы, найденные в результате проверки, будут новыми.
Следующим пунктом, про который нужно рассказать это “Файлы в репозитории”. Как понятно из названия это список всех файлов хранящихся в репозитории с возможностью разнообразной фильтрации.
Здесь можно посмотреть текущее содержимое файла в репозитории, изменения файла с предыдущей ревизии, перейти в историю изменений файла.
“Первая ревизия” - это номер ревизии, в которой файл был добавлен в репозиторий.
“Ревизия” - это номер ревизии в которой файл последний раз изменялся.
“Количество ревизий” - это число, показывающее в скольких ревизиях файл изменялся.
При удалении из репозитория фактически файл не удаляется, просто помечается удаленным и при проверке на изменения более не учитывается. Вся его история изменений в репозитории остается.
Далее идет пункт меню “Ревизии”. Это, банально, список всех ревизий. Можно перейти к просмотру файлов, входящих в ревизию, а можно восстановить все файлы измененные после данной ревизии - то есть переписать их в источнике такими, какими они были в выбранной ревизии.
Есть в модуле приятная фишка для разработчиков модулей для Marketplace. С ее помощью можно выгрузить список файлов, изменившихся после определенной ревизии
И мало того, что только выгрузить, так еще и проделать над этими файлами всякие действия, для этого есть специальное событие OnDriverAfterExport. У меня для сборки обновлений модуля в init.php прописан такой код:
AddEventHandler("karudo.vcs", "OnDriverAfterExport", "OnDriverAfterExport");
function OnDriverAfterExport($doc_root, $driver_code, $arFiles) {
global $APPLICATION;
if ('karudo_vcs' !== $driver_code) {
return;
}
foreach ($arFiles as $i) {
if (false !== strpos($i, '/lang/ru/')) {
if (file_exists($doc_root . $i)) {
$str = file_get_contents($doc_root . $i);
$str = $APPLICATION->ConvertCharset($str, 'UTF-8', 'CP1251');
file_put_contents($doc_root . $i, $str);
}
}
if (false !== strpos($i, '/install/js/')) {
if (false === strpos($i, 'compiled.js')) {
unlink($doc_root . $i);
}
}
}
}
Здесь языковые файлы перекодируются в кодировку Win1251, а также из выгрузки удаляются всякие служебные скрипты.
Еще в настройках модуля можно включить отображение специального меню в панели в пользовательской части сайта
"Создание точки восстановления" - это комбинация кнопок "Проверить на изменения" и "Зафиксировать изменения" из проверки на измененияю, а "Откат к предыдущей точке" восстанавливает из репозитория все файлы изменившиеся с последней ревизии.
Напоследок, о планах развития модуля на ближайшее время:
сохранение свойств инфоблоков в репозитории
сохранение элементов инфоблоков в репозитории
возможность синхронизации репозиториев между двумя разными битриксами