Антон Арефьев написал: Скажите, пожалуйста, правильно ли я понимаю, что делаем только то, что указано в билете? Ну например, базовый экзамен, билет №1. Создали новый шаблон сайта, в билете так же говорится про создание шаблона компонента верхнего меню, а про левое меню ничего не говорится. Т.е. левое меню так и оставляем в виде обычного HTML в шаблоне сайта?
В этой теме обсуждаем только организационные вопросы! . Если у вас вопрос по заданиям - выше указаны ссылки на соответствующие темы. Правила прохождения подробно изложены в документе, обязательно его прочитайте.
Формат экзамена - Сдается удаленно. Нужна отдельная комната, компьютер с веб-камерой и хороший интернет - Нельзя будет пользоваться своими справочными материалами и "гуглить". Мы разместим документацию по API BitrixFramefork и PHP в виде локальных chm-файлов. - Экзамены будут приниматься на нашем веб-сервере с графической оболочкой, подключение будет идти по терминалу. - Потребуется установить и настроить ПО для организации системы контроля.
Сдается удаленно Можно сдавать как в офисе так и дома. Найти подходящую комнату на 4 часа гораздо проще чем ездить в командировку для сдачи экзамена Хороший интернет. В правилах пишем про 10/2 Мбит на исходящий и входящий канал. При этом на практике сдают и на меньшем, важнее всего пинг до серверов.
Нельзя будет пользоваться своими справочными материалами и "гуглить" Чаще всего именно тут возникает недопонимание, зачем так. Очень просто - нужна объективность, иначе в чем смысл экзамена. Объясню.
Первый аспект. Разработчик конечно должен уметь находить готовые решения, а не писать свои велосипеды. Например, если условная задача связана с алгоритмом быстрой сортировки, то конечно сначала нужно "нагуглить" уже разработанные алгоритмы, выбрать подходящий и скопипастить вдумчиво реализовать. Но наша задача другая. Искать "как внедрить компонент для вывода последнего отзыва?" или "как сделать обработчик событий..."? Мы не задаем "каверзные" задачи, мы оцениваем навык работы с платформой, все нужные технологии кандидат должен уже знать, чтобы получить соответствующий уровень разработчика Bitrix Framework.
Второй аспект. Ответы на любые вопросы быстро появятся в сети, бороться с этим бессмысленно. Мы будем пополнять билеты разными заданиями, но это не решит вопрос. При возможности гуглить и копипастить ответы - будет не понятно, это полностью готовый ответ скопирован бездумно или нет. Никакой объективности не получится, что сводит "на нет" смысл экзамена как объективной оценки знаний.
Третий аспект. Учить на память API функции конечно не нужно. Локальный файл документации, доступный на экзамене должен этот вопрос решать. Если вы считаете, что для решения задания нужны API, которых нет в доступной документации, материалам к заданию, пример не найти в типовом компоненте - пишите нам, такого не должно быть.
Сервер На сервере доступны программы: Браузер Chromium, веб-сервер LAMP, установленный БУС, редактор кода Komodo Edit, файловый менеджер с графическим интерфейсом, MC, консоль. Так же будет документация по API, API D7, PHP в виде chm-файлов Доступен демо-сервер для подготовки. Подробнее о сервере и демо-сервере на на странице.
Установка и настройка ПО Потребуется: клиент терминала – NoMachine, браузер Chrome, расширение для браузера. Подробно о настройке на странице.
Частые вопросы и ответы Типовые вопросы собрали на странице.
Алексей написал: Я имею в виду, что по заданию не предполагается что у акции есть детальная страница, нужно их только вывести списком, поэтому свойства, предназначенные для показа на детальной странице - детальное описание и детальная картинка - не используются. А в задании сказано, что нужно уменьшенную копию делать как раз таки из детальной картинки.
Поля - это просто поля объекта, не важно как именно они называются и как их эксплуатируют типовые компоненты. Разработчик может использовать любые поля как сочтет нужным. Преемственность и понятность для администрирования - при этом конечно важны.
Цитата
Алексей написал: Это да, но название самого свойства нужно выводить только такое, какое оно указано в админке (получается нужно использовать 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 для хранения всех общих объектов), и подключать из него во все остальные.
В этом случае преимущество хранения в корне вижу - только что верстальщика не "пугать" сложным путем ))