Сдавал сегодня второй экзамен 1) На сервере у сайта не было файла htaccess - изза этого долго не мог понять почему на чистой установке половина странниц не работает (прилично времени потерял) 2) phpmyadmin по адресу http://localhost/phpmyadmin/ доступен не был 3) дистрибутива и скрипта bitrixsetup.php в домашней папке также не обнаружил
Во время сдачи экзамена столкнулся с каким-то странным багом при выполнении первого задания. При получении ссылки на детальную страницу товара через свойство привязки она формировалась неправильно. Долго ломал голову над этим. Оказалось что этот баг как-то связан с константой #SITE_DIR# в настройках инфоблока. Когда её убрал адрес стал формироваться правильно. Но пока разбирался с этим ушло не мало времени в итоге не успел сделать последнее задание с AJAX фильтром. И по поводу последнего задания может лучше давать задачу фильтровать по другому свойству, а не по дате добавления, а то там с датами так много возни...
При #SITE_DIR#/products/SECTION_ID/ELEMENT_ID/ примерно так выглядело то что получалось: //products/SECTION_ID/ELEMENT_ID/ Причем адрес получался такой только, когда его получаешь через привязку на самой странице товаров все правильно было.
В лишнем слеше. Мне не понятно почему он появился при получении из свойства из инфоблока который был в системе заранее, а не создан мной. Причем почему слеш появлялся только при получении значения через свойство привязки. Ну если вы считаете что тут бага нет то ладно учту на будущее.
Вобщем разобрался в каталоге адрес правильный не смотря на кривые настройки инфоблока по умолчанию благодаря ЧПУ. А при вызове SITE_DIR создает лишний прямой слеш.
Андрей Николаев написал: Будет ли считаться правильный следующий метод решения:- Копируем шаблон комплексного компонента news- в файле news.php шаблона вставляем фильтр (теги a)- в js-скрипте подвешиваюсь на события click для данных элементов
- кастомизировать компонент не нужно, только шаблон - уже есть стандартный механизм фильтра , нужно его использовать - собственно у вас нет другого пути как получить ответ от компонента ajax запросом и "перерисовать" область комопонента со списоком новостей - компонент нужно научить отличать ajax запрос или "обычное" создание страницы идет, при выполнении условия чистить буфер перед отдачей
Павел Щеглов, давайте разберемся Лучше тикет в ТП - Файл htaccess конечно есть, учитывая что сервера создаются по единой процедуре всем одинаково, куда он мог "пропасть" у вас - это пока тайна - phpmyadmin , нет его кончено, потому что он нее нужен - дистрибутив и скрипта bitrixsetup.php аналогично не нужны
phpmyadmin и файлы для переустановки нужны на машине для подготовки, чтобы иметь возможост установить БУС сколько вам нужно раз, на экзамене уже все установлен и времени даже не будет на переустановку, по большому счету.
Владислав Дворянинов написал: Вобщем разобрался в каталоге адрес правильный не смотря на кривые настройки инфоблока по умолчанию благодаря ЧПУ. А при вызове SITE_DIR создает лишний прямой слеш.
Вот. Не баг все же Кривые ли настройки иблока это тоже пока открытый вопрос. Может же значение SITE_DIR зависеть от еще каких-то настроек?
Иван Малышин написал: - Файл htaccess конечно есть, учитывая что сервера создаются по единой процедуре всем одинаково, куда он мог "пропасть" у вас - это пока тайна - phpmyadmin , нет его кончено, потому что он нее нужен - дистрибутив и скрипта bitrixsetup.php аналогично не нужныphpmyadmin и файлы для переустановки нужны на машине для подготовки, чтобы иметь возможост установить БУС сколько вам нужно раз, на экзамене уже все установлен и времени даже не будет на переустановку, по большому счету.
К сожалению htaccess не было, думаю уже бессмысленно что то выискивать с ТП - я скопировал его из мастера установки (из modules). - phpmyadmin и bitrixsetup.php - да перепутал видимо с "тренировочной" машиной - искал их чтобы переустановить и получить рабочую версию сайта, но потом понял что дело в отсутствии htaccess и они не понадобились
[ex2-t2-3] Реализовать вывод акций на главной станице сайта
Ссылка «подробнее» с элемента акции ведет на детальную страницу товара, которые выводятся в существующем разделе «товары», «/products/». Ссылка выводится только если товар задан.
В DISPLAY_PROPERTTIES есть ссылка на карточку товара, но текст ссылки содержит название элемента, а не "Подробнее". Каким решением будет правильное - оставить текст ссылки в виде названия товара или получить в result_modifier через getlist отдельно ссылки на элементы товаров и вывести их с текстом "Подробнее":
Николай Гайдукевич написал: [ex2-t2-3] Реализовать вывод акций на главной станице сайтаСсылка «подробнее» с элемента акции ведет на детальную страницу товара, которыевыводятся в существующем разделе «товары», «/products/». Ссылка выводится только еслитовар задан.В DISPLAY_PROPERTTIES есть ссылка на карточку товара, но текст ссылки содержит название элемента, а не "Подробнее".Каким решением будет правильное - оставить текст ссылки в виде названия товара или получить в result_modifier через getlist отдельно ссылки на элементы товаров и вывести их с текстом "Подробнее":?
Получив привязанные элементы через параметры компонента - вы уже сделали "доп запросы к БД", компонент получает данные из другого иболка. После этого реализовав в result_modifier получение данных через getlist вы опять нагружаете БД. Это не нормально, чтобы получить правильный текст ссылки и будет не верным. Вы или получаете связанные данные через result_modifier или через настройки компонента. Именно в текущем задании - конкретный текст ссылки не так важен.
Уведомление при добавления пользователя в группу Считаю что задание полностью некорректное, в задании необходимо указать условия, выполнение которых достаточно для засчитывания решения. Причем нужно именно в задаче эти рамки обозначать, не все же читают форум.
Половину времени можно потратить только на это задание, если учитывать:
возможность добавления пользователя в группу из списка пользователей с помощью групповых действий http://joxi.ru/NDrlZlxCz9db2P
изменение самой группы
то, что в событиях перед добавлением или изменением мы можем поймать ошибку, а следовательно добавления/изменения не произойдет, а письма отправятся
учитывать DATE_ACTIVE_FROM и DATE_ACTIVE_TO у группы
еще конечно же не забываем, что формат входных массивов в похожих событиях (обновление, добавление, обновление из списка) всегда отличается
То, сколько вещей разработчику нужно держать в голове ради реализации такой, казалось бы простой вещи говорит нам о том, что в системе что-то не совсем правильно устроено?
Светлана Кузнецова, я уже писал выше, по количеству обработанных вариантов - можно понимать опыт разработчика Подумаю на счет минимальных требований.
Цитата
Светлана Кузнецова написал: То, сколько вещей разработчику нужно держать в голове ради реализации такой, казалось бы простой вещи говорит нам о том, что в системе что-то не совсем правильно устроено?
С этим не в эту ветку форума. Если у вас есть объективно мнение "как надо лучше", пишите на сайт идей/ТП
Спасибо, Иван! Задания на 2 уровень не слишком простые и объем не маленький, а так нам будет проще - сделать сначала по-минимуму, а потом, если останется время, довести до полной работоспособности.
Кстати, из-за привычки уже сложившихся специалистов доводить дело до конца и непонятны такие задания как "Добавить в кэш информацию" Возникают сразу же вопросы "Зачем? Где это в данном задании нужно использовать?". А нигде использовать и не надо, надо просто сделать)
[ex2-t2-3] Реализовать вывод акций на главной станице сайта.
- нужно ли в рамках ЭТОГО задания добавлять в кеш полученные мной дополнительные данные (цену товара, ссылку на детальное описание и само описание) - под "описанием товара" подразумевается текст анонса или детальный, или на моё усмотрение? 2. Задание
Цитата
[ex2-t3-5] Сохранить в кеш типового компонента дополнительные данные
- описание метода как такового отсутствует - только фраза о том, что "это список ключей массива" - и как я должна догадываться об остальном? Что делает сам метод? При вызове - перезаписывает массив ключей, которые будут закешированы, или дополняет существующий? Если перезаписывает - то
- будет уже не корректно, т к удалит из кеша все остальные ключи, если дополняет - то где об этом хоть одно упоминание?
3. Текстовый редактор. Честно скачала демосервер, тренируюсь на нем, Komodo мне уже как родной, но... на экзамене столкнулась с тем, что не могу поменять фон с белого на темный и размер шрифта для вновь открываемых файлов по умолчанию задать не могу - отсутствует меню Preferences. Мне удобнее, когда размер шрифта - 9. Приходилось при открытии каждого нового файла "жмякать" CTRL -.минус Пожалуйста, приведите текстовый редактор на демосервере в соответствии с редактором на экзаменационном, либо расскажите, как мне на экзаменационном сервере выставить требуемые настройки размера шрифта и цвета фона ОДИН раз, чтобы не приходилось терять на это время на каждом вновь открываемом файле.
Сергей Кудрявцев написал: Добрый день. Вопрос по [ex2-t9-12] «Мои новости» /my_news/news_ID/ –детальный просмотр новости имеется ввиду "#news_ID#/" или "#ID#/" ?
/my_news/news_119932/ Думаю этот вариант мало работоспособен =)
Сергей Кудрявцев написал: Добрый день. Вопрос по [ex2-t9-12] «Мои новости» /my_news/news_ID/ –детальный просмотр новости имеется ввиду "#news_ID#/" или "#ID#/" ?
/my_news/news_119932/ Думаю этот вариант мало работоспособен =)
Причем тут /my_news/news_119932/ Я имел ввиду использовать макрос #news_ID# во всей переработке комплексного компонента и в какой то момент подменять его на ID элемента /my_news/19932/ или же сразу использовать стандартный макрос "#ID#. Например на тесте я для себя делал и тот и то вариант, оба рабочих, какой использовать не понятно. В тех же видео уроках в component.php и в параметрах вместо макроса #ELEMENT_ID# используют #SEMINAR_ID#. Но там урок не до конца написан. Макрос #news_ID# не выдаст ID элемента и в какой то момент я так понимаю просто подменять надо на стандартный макрос.
1. - нужно ли в рамках ЭТОГО задания добавлять в кеш Если все новые данные вытащить в result_modifier.php, то всё и так акешируется из без обращения к $this->__component->SetResultCacheKeys(array('NEW_PROP')); Плюс в задании не указано, что нужно кешировать данные, которые могут быть доступны в component_epilog.php - под "описанием товара" подразумевается текст анонса.: Естественно,детальное на то оно и детальное, что в качестве "превью" не может быть использовано.
Светлана Кузнецова написал: Кстати, из-за привычки уже сложившихся специалистов доводить дело до конца и непонятны такие задания как "Добавить в кэш информацию" Возникают сразу же вопросы "Зачем? Где это в данном задании нужно использовать?". А нигде использовать и не надо, надо просто сделать)
Вот тут именно из-за лимита времени не стали делать вывод, но появится такое условие. Сейчас видимо не все понимают что именно надо сделать и необходимость даже просто "распечатать"данные уже должна помочь