Алексей написал: Я имею в виду, что по заданию не предполагается что у акции есть детальная страница, нужно их только вывести списком, поэтому свойства, предназначенные для показа на детальной странице - детальное описание и детальная картинка - не используются. А в задании сказано, что нужно уменьшенную копию делать как раз таки из детальной картинки.
Поля - это просто поля объекта, не важно как именно они называются и как их эксплуатируют типовые компоненты. Разработчик может использовать любые поля как сочтет нужным. Преемственность и понятность для администрирования - при этом конечно важны.
Цитата
Алексей написал: Это да, но название самого свойства нужно выводить только такое, какое оно указано в админке (получается нужно использовать API) или же можно название свойства задать произвольное в шаблоне через lang?
Алексей написал: Название свойства можно задавать в шаблоне через lang-файлы или нужно обязательно, как например в списке новостей, чтобы название свойства получать из API, т.е. как оно задано в админке?
В данном задании подразумевается управление названием свойства из админки. Через API
Sergey Emelyanov написал: Так что не надо пытаться изменить рынок. На каждого разработчика найдется свой клиент.
Я соглашусь с твоим рассужденим по ситуации, но не очень согласен с выводами. Конечно рынок нельзя изменит по "хотению", и в целом жизнь она такая - какая есть, "потому что". Но влиять и двигать в позитивную сторону можно и нужно. Мне кажется наша партнерская программа уже хороший системообразующий элемент на рынке, который дает ориентиры и разработчикам и клиентам.
Доктор Скальпинг написал: Контент акций недоступен в демо-билетах? Демо-контент акций нужно будет самим придумывать или он уже будет готов?
нет, картинки возьмите с каталога, какой там демо-контент то заранее говорить
Цитата
Доктор Скальпинг написал: ЦитатаДля решения задачи не нужно создавать свой компонент, достаточно расширить возможности штатного компонента через его шаблон.Это задание относится к отложенным функциям, но несколько смутила выделенная фраза, т.е. при решении этой задачи можно исключительно редактировать template.php? Т.е. всё в нём писать, нельзя использовать result_modifier.php, честно не совсем понятно.
Шаблон = template.php ошибочное использование термина. Понимаем что, по архитектуре БУС, шаблон - это все что лежит в соответствующей папке.
Цитата
Доктор Скальпинг написал: Отметил полужирным неоднозначные моменты: т.е. не ясно (по крайней мере мне) должно быть только один единственный параметр кеширования, либо должны быть несколько параметров кеширования (взять из стандартных компонентов), но сделать один из них по умолчанию.
Ответ уже есть в шапке, еще дополню так, подумаю как в билете описать лучше: Параметры кеширования в API функции – только по умолчанию, кеширование не должно зависеть от группы пользователей или других устанавливаемых разработчиком параметров.
Дмитрий Хорев написал: [ex2-t2-3] Реализовать вывод акций на главной станице сайта Получаю ссылку на привязанный к акции товар (PROPERTY_LINK.DETAIL_PAGE_URL) используя стандартный компонент news.list результаты совершенно разные.... на демо сервере [PROPERTY_LINK_DETAIL_PAGE_URL] => //products/1/2 (некорректно, 2 слеша) на своем сервере [PROPERTY_LINK_DETAIL_PAGE_URL] => /catalog/#SECTION_CODE_PATH#/3090/ (некорректно, не обработался SECTION_CODE_PATH) *при этом в ["DISPLAY_PROPERTIES"]["LINK"]["DISPLAY_VALUE"] в обоих случаях ссылка корректная
В рамках экзамена какое решение из этих будет засчитываться? 1. str_replace("//", "/", $arItem["PROPERTY_LINK_DETAIL_PAGE_URL"]) 2. в $arItem["DISPLAY_PROPERTIES"]["LINK"]["DISPLAY_VALUE"] название товара подменить на "подробнее" 3. или полноценный GetList по id товара....
1. Если вы хотите получить связь с помощью компонента, то правильный путь - разобраться и сделать настройки системы, что бы в PROPERTY_LINK_DETAIL_PAGE_URL лежала правильная ссылка 2. GetList всегда можно использовать, но только не в цикле, это практически наверняка - не сдал.
Денис Диденко написал: Если я добавил в resul_modifier.php в arResult какие то данные, они уже по сути закешированы, зачем остальные пляски с бубном?
Потому что не будут закешированы. И это не пляски с бубном, а типовые механизмы платформы. Если по умолчанию пихать в файл кеша весь arResult , то файл может вырасти до размеров, когда парсинг файла уложит сервер и тогда проще кеш выключить, что не опытные разработчики с удовольствием делают.
Я как-то лечил сайт от действий вандалов, которые для построения кастомного "топа товаров" на главной отбирали какое-то жуткое количество данных и пихали (зачем?) все это в кеш, чтобы на выходе не использовать ничего кроме готового HTML. Файл кеша занимал больше 5 мегабайт, сайт просто переставал открываться . Отключали кеш на всем сайте - начинало ехать, но ложилось в другом месте. Так и рождаются байки про "плохой БУС".
Доктор Скальпинг написал: Т.е. нужно выводить акции не в этом блоке? http://prntscr.com/b9pt9f в материалах к экзамену есть верстка, в которой присутствует этот блок с акциями. Логично подумать, что нужно его сделать компонентом, или нужно сделать как вывод самих акций, так и блок к левой колонке? Хоть вы и ответили, что вывести нужно список акций на своё усмотрение, в смысле дизайна, но хотелось бы чтобы была верстка этого списка, либо схема какая-нибудь, и демо-контент, например у акции есть изображение, где его взять?
А вообще по второму экзамену будут свои материалы для подготовки?
На экзамене 2 у вас не будет отдельной верстки, не путайте с первым экзаменом - это материалы к нему. Все задания решаются в рамках шаблона установленного решения. Ответ уже есть в шапке.
Алексей, экзамен - это проверка перечня навыков разработчика по технологиям Bitrix Framework, а не какой-то конкретный "простейший случай" создания сайта. Т.е. мы как бы говорим, продемострируйте нам что вы знаете что такое папка local и умеете с ней работать на практике.
Смотрите под таким углом на все задания. Экзамен, так или иначе будет формализованной проверкой знаний (обобщение правил), вариантов "правильных" решений задач много. Поэтому мы заранее предупреждаем - что хотим увидеть в решении. Хотя я, конечно, стараюсь приблизить задания и способы решения к кейсам из реальной жизни, насколько это возможно в рамках экзамена.
Теперь конкретно по local. То что вы не будете ее использовать в реальных проектах, основываясь на каком-то личном предпочтении не очень хорошо. Использование этой папки - это рекомендуемый нами подход в любых проектах, нет объективных причин (или я не знаю? назовите) не использовать эту папку.
Тема для обсуждения заданий экзамена №2. Здесь можно уточнить условия или как правильно оно решается. Как подготовиться и успешно сдать экзамен - подробно описано здесь.
В этой теме обсуждаем только задания и их решения!, все остальные сообщения будут модерироваться Если у вас есть вопрос по экзамену, но он не относится к заданиям, или вы хотите сообщить, например про опечатки, просьба составить обращение в ТП, такие сообщения тут я буду скрывать.
Помните, что хорошо составленный вопрос уже содержит половину ответа Если вы хотите уточнить условие - то напишите как вы его поняли и что именно требует уточнения, если по решению - то опишите ваш вариант решения, тогда можно обсудить верно оно или нет.
Итоговые ответы, на которые стоит ориентироваться - будут размещаться в шапке темы, в комментариях обсуждаем.
[ex2-t2-3] Реализовать вывод акций на главной станице сайта Q: В материалах для подготовки нет индексной страницы, предоставляется ли шаблон для верстки или на усмотрение автора? A: На усмотрение, просто выведите список с обозначенными полями, на наведение "особой красоты" не стоит отвлекаться.
Q: В данном случае реализовать можно стандартными средствами компоненты и свойства типа привязки к элементам. А можно с помощью result_modifier.php В билете написано, что нужно реализовать с помощью расширения возможностей компоненты, а в правилах, что нужно реализовать по возможности стандартными средствами. Какой вариант в данном случае верный? A: Оба
[ex2-t3-5] Сохранить в кеш типового компонента дополнительные данные Q:Достаточно ли закешировать массив с данными вида idItem=>price? цена должна быть форматированная или нет? A:Форматирование не важно, не стоит тратить на него время. Суть задания все же по навыку помещения в кеш типового компонента доп. данных
[ex2-t4-8] Уведомление при добавления пользователя в группу Q: В событии onBeforeUserUpdate - новая группа еще не записалась и можно сравнить с текущей БД есть ли в ней пользователь. Однако это событие не гарантирует успешное изменение пользователя (если, например, новый пароль не совпал - данные не запишутся). A: При решении подобного типа задания достаточно проверять обработчик onBeforeUserUpdate.
Q: Уведомление при добавления пользователя в группу. При отправке писем в таблице b_events поле SUCCESS_EXEC=F достаточно чтобы считать, что письмо верно отправилось? A: Пока - да. Достаточно даже правильно вызвать API. На сервере уже работает отправка писем в виде текста в папку, но пока не используется для проверки. Когда будет - в задании явно опишем где проверять письма.
[ex2-t8-10] Разработать простой компонент «Список вакансий» - jobs.list Q: Достаточно ли будет в параметрах компонента указать для кеширования только "CACHE_TIME" => array("DEFAULT" => 3600) A: Речь не о настройках компонента, а об осмысленно вызове API, без лишней "копипасты". Параметры же настройки компонента должны быть типовые: Авто+управляемое, кешировать, не кешировать. выключить,
Q: Как быть с элементами, которые находятся в корневом разделе? И нужно ли учитывать вывод новостей, которые находятся в подразделах разделов, т.е в разделах 3 и более уровней вложенности. A: По условию задания вы не создаете там элементов, можете обработать как считаете нужным
[ex2-t8-11] Добавить поддержку технологии Эрмитаж в компоненте «Список вакансий» Q: Кнопку добавления вакансии нужно реализовывать или достаточно только редактирования существующих? A: Нужно
[ex2-t9-12] Создание комплексного компонента «Мои новости» Q:Нужно ли удалять из всех файлов компонента информацию о страницах rss, search, sections , т.е. о тех страницах, которые нужно убрать из компонента? A: Сейчас мы не снижаем напрямую баллы если остаются страницы. На итоговое решение, о прохождении экзамена, влияет и демонстрация высокого качества, такую доработку стоит сделать если вы уже все решили все задания и у вас осталось еще время.
Q: Нужно ли делать компонент добавления новости частью комплексного компонента и соответственно переносить все его параметры в комплексный? A: Не обязательно, хотя по большому счету не так долго внести основные параметры.
Q: Добавление новости должно работать без ЧПУ? A: Да, если не работает без ЧПУ, то это снижение баллов
[ex2-t10-13] Создание фильтра новостей, работа фильтра на AJAX Q: Никогда не пользовались битриксовским ajax, есть ли пример решения подобной задачи? A: Посмотрите, например, работу каталога в интернет-магазине - добавление товара в корзину.
Q: Уточню, стандартным Битриксовым AJAX_MODE пользоваться нельзя, т.е. разрешено/можно писать свой ajax-обработчик? A: Нельзя. Нужен свой обработчик. При этом обработчик "сервер" - это тот же типовой компонент списка новостей.
[ex2-t12-15] Оценить скорость работы сайта Q: Что имеется ввиду - показать данные средствами API или скопировать результат из "Монитора производительности"? A: Скопировать результат из "Монитора производительности"
Поддержка технологии Эрмитаж в шаблоне компонента Q: Можно ли "в ручную" формировать ссылки для Эрмитажа? Я такие видел в типовых компонентах. A: Нет, это значительная ошибка. Суть экзамена - показать кандидату правильные технологии, а кандидат должен показать что он их понял и умеет приемнять на практике. Давно не обновляемый компонент из решений не может быть обоснованием не правильного подхода в решении.
Тема для обсуждения заданий экзамена №1. Здесь можно уточнить условия или как правильно оно решается. Как подготовиться и успешно сдать экзамен - подробно описано здесь.
В этой теме обсуждаем только задания и их решения!, все остальные сообщения будут модерироваться Если у вас есть вопрос по экзамену, но он не относится к заданиям, или вы хотите сообщить, например про опечатки, просьба составить обращение в ТП, такие сообщения тут я буду скрывать.
Помните, что хорошо составленный вопрос уже содержит половину ответа Если вы хотите уточнить условие - то напишите как вы его поняли и что именно требует уточнения, если по решению - то опишите ваш вариант решения, тогда можно обсудить верно оно или нет.
Итоговые ответы, на которые стоит ориентироваться - будут размещаться в шапке темы, в комментариях обсуждаем.
3. Интеграция HTML шаблона Q: Влияет ли использование D7 на результат, и будет ли доступна документация по D7? A: Сегодня использование "старого" API или возможностей D7 - равносильно при оценке. Возможно станет предпочтительнее D7, но тогда это явно будет указано в описании экзамена.
3.2. Настроить отображения шаблона для печати по условию: раздел «Новости» и наличия переменной в URL «DOPRINT». Q: В этом случае нужно создать новый шаблон, специально для печати? Но в верстке он никак не представлен и стилей нет? A: Если такое задание будет на экзамене, то шаблон * печати будет предоставлен готовый
4. Компоненты Q: При внедрении шаблонов компонентов нужно ли CSS стили выносить из общего файла в шаблон компонента? A: В рамках экзамена - нет
Q: Если верстка типовых шаблонов начинает не корретно отображаться из-за стилей или HTML внедренннго шаблона, нужно ли ее исправлять? A: При условии что именно стили или HTML нового шаблона повлияли - нет, не нужно. Но убедитесь что дело не в ошибки внедрения шаблона, вроде пропущенного или не закрытого тега.
4.1. Внедрить в шаблон компонент, реализующий верхнее меню. Должно строиться выпадающее меню, в выпадающем меню может быть 2 уровня...
Q: При внедрении меню, если задать много пунктов или длинное название пунктов, оно может некорректно отображается: последний пункт меню переносится на вторую строку. A: Да, в верстке есть такой ньанс, это не будет засчитано за ошибку
Q: Что подразумевается под "Должен использоваться типовой компонент, без каких–либо модификаций." Означает ли это, что можно редактировать только шаблон компонента, без создания result_modifier.php и component_epilog.php - потому что эти файлы понадобятся при выполнении других задач. ? A: Лишний раз напоминание, что для решения заданий экзамена №1 достаточно стандартных компонентов и не нужно их как-то дорабатывать. Для решения этого задания точно не нужны result_modifier.php и component_epilog.php.
Q: При отключенном режиме правки, интегрированная верстка должна отображаться как в исходнике? Но при этом допускается её некорректное отображение в режиме правки? A: В режиме правки действительно допускается небольшое смещение внедренной верстки.
13.2. В хедере шаблона сайта внедрить компонент авторизации, используя уже готовый шаблон из материалов – папка system.auth.form. ...
Q: В верстке нет шаблона для сообщения с ошибками. При выводе ошибок верстка шапки будет немного некорректно отображаться, за это не вычтут балл? A: Нет
Могу ошибаться, но судя по вопросу, вы используете SQL запросы в файле result_modifier.php, в шаблоне компонента. В рамках правильного подхода разработки под 1С-Битрикс, не нужно так делать. Есть API, которых обычно хватает для решения задачи.
Уколов Алексей пишет: А можно попросить подробнее объяснить этот способ? Что значит "Подключать из него все остальные"? Что-то я не сталкивался с такой терминологией.
В данном подходе папка дефолтного шаблона практически как папка в корне сайте, просто в других шаблонах указываете прямые пути к скриптам и стилям.
Сергей Талызенков пишет: Мое мнение таково, если в проекте создается множество шаблонов "/bitrix/templates/..." то: 1. или хранить все css/js в папке /bitrix/templates/.default 2. или хранить в корне сайта. в ином случае я наблюдал бред в виде дублей файлов в каждом шаблоне.
Согласен про .default, этому на курсах и учим. Не пойму чем лучше корень сайта?
Цитата
Уколов Алексей пишет: - унификация процесса (верстальщику не нужно думать о том как сайт будет поделен на шаблоны, программисту не нужно вырезать css и js из общего файла и делить по шаблонам) - гораздо проще натравить sass-компилятор, js-минификатор и т.д. на одну директорию, чем на n шаблонов - проще ориентироваться в стилях и скриптах, когда все файлы перед глазами - не нужно дублировать спрайты, используемые в нескольких шаблонах, аналогично с общими скриптами
И не нужно делить, дублировать и т.д.. Если на сайте используется несколько шаблонов сайта, то стили, скрипты, картинки - удобнее всего хранить в одном шаблоне (чаще используют .default для хранения всех общих объектов), и подключать из него во все остальные.
В этом случае преимущество хранения в корне вижу - только что верстальщика не "пугать" сложным путем ))
Цитата возьмем случай с компонентом, когда нам необходимо добавить какой-либо функционал за рамками проекта, где еще требуется визуальное оформление с использованием css и js, мы все это дело размещаем в папке bitrix/components/папка компонента
Я надеюсь речь о размещении в шаблоне по пути bitrix/components/папка компонента ? Из курса должны были запомнить что раздел с компонентами из пространства имен bitrix менять нельзя.
Как я писал выше, стили компонентов можно размещать и в общем файле стилей, если в проекте так удобнее, все зависит от задач. Ну и механизм объединения файлов стилей упрощает работу, если удобнее хранить стили в шаблоне компонента.
Мне тоже интересно мнение участников, пока напишу свое.
Цитата
senty пишет: Летом проходил курсы веб-разработчиков битрикс (для начинающих), во всех примерах CSS, JS и прочее хранилось в /templates/папка_шаблона/...
Олично, как тебе обучение?
По мнению:
Цитата
1. потому как на папку /bitrix вполне верятно настроить исключительные права, которые не дадут доступа для низжелащих папок
Не нужно ставить такие права, в папке bitrix много файлов, редактируемых разработчиком. Т.е. выставление таких прав - это ошибка.
Цитата
senty пишет: 2. папку в корне /static/ можно вынести в CDN для оптимизации
в CDN попадает файлы только из /upload/ и /bitrix/
Цитата
senty пишет: 3. простота обновления
Совсем не понятно. Если речь об удобстве редактирования в одном файле, то можно все стили компонентов сложить в один файл в шаблоне. Иногда так действительно удобно. О скриптах так не скажу.
Цитата
senty пишет: 4. нельзя пользователю показывать реальные пути до системных папок
Откуда в путях до скриптов и стилей будут системные папки, они же подключаются от корня сайта ))
Мне эта задача не видеться сложной, если проект - закрытая система закупок, т.е. на сайте покупают только после ввода логина/пароля, и мы заранее знаем всех покупателей (на сайте нельзя просто зарегистрировать и купить).
Если же это для открытого розничного интернет-магазина, тогда придеться изрядно повозиться.