Понадобилось на одном проекте реализовать, что то на подобии веб-службы. Клиент делает запрос по урлу в ответ получает JSON. Для этих целей быстренько накидал простенький комплексный компонент, забрать можно с гита. Настроек практически ни каких нет, они в принципе не нужны были. Обращение к компоненту происходит по правила rest api:
url
HTTP
Method Operation
/api
GET
Считывание массива книг
/api/:id
GET
Считывание книги с идентификатором :id
/api
POST
Добавление новой книги и ее возврат добавленным атрибутом :id
/api/:id
PUT
Обновление книги с идентификатором :id
/api/:id
DELETE
Удаление книги с идентификатором :id
так как компонент комплексный, то для каждой операции свои шаблоны:
Kryachek Mikhail, мне кажется это нужно делать апдейтом, через PUT /api/:id и в $_REQUEST передать статус. так даже логичнее, потому что это обновление элемента
Если посмотреть в документации по добавлению свойства в умный фильтр (см. пример 4), то необходимо сделать всего лишь апдейт этого свойства с ключом SMART_FILTER = Y, но на практике все как всегда оказалось не так просто.
При чем ошибки не выдавало, и даже наоборот, писало что все окей, свойство обновлено. Но когда переходишь в детальный просмотр свойств, то злополучная галочка оказывалась не отмечена:
Пришлось залезть в исходники и посмотреть, что там не так. И в файлике /bitrix/modules/iblock/classes/general/iblockproperty.php нашел вот такую проверку:
То есть, для того чтоб, добавить свойство в "Умный фильтр", необходимо чтобы у инфоблока поле "SECTION_PROPERTY" было установленно в "Y". Для это добавим не большую проверку перед апдейтом:
Неверное решение, вы просто добавите или нет все свойства в умный фильтр. Для решения этой задачи для разделов каталога нужно использовать CIBlockSectionPropertyLink::Add().
Навеяно статьей 44 Live Templates для Битрикса. Не знаю, многие ли пользуются отличным инструментом для верстки Zen Coding от Сергея Чикуенка, но меня он спас от кучи потраченного времени на дублирование кода. Сейчас конечно но выпустил совершенно новый инструмент Emmet, но к нему я так и не смог привыкнуть.
Так вот, к чему это я.. Так получилось, что я одновременно и верстальщик, и PHP программист. А после прочтения вышеупомянутой статьи я подумал, а почему бы и Zen Coding не прокачать подобными сниппетами для API битрикса. Забыл сказать, пишу в Notepad++, IDE слишком тяжелый и слишком навороченный, да и опять таки дело привычки.
Не много покопавшись в исходниках Zen Coding'а, быстренько нашел алфавит по которому он разворачивает аббревиатуры. Получились следующие наработки:
Собственно сам архив Zen Coding. Установка простая, бросаете содержимое архива в папку Programm Files\Notepad++\plugins, разворачивание по сочетанию клавиш CTRL+E. Кому интересно, пишите в комментариях или в личку, и я расширю список сниппетов
P.S. Огромное спасибо самому Сергею Чикуенку, за устранения не большого пробела в знаниях JavaScript'a P.P.S Новые версии NPP иногда перекрываю сочетание клавиш CTRL+E, поэтому вот версия которая работает 100%, после установки реактора его можно обновить, при этом ничего не слетит.
дико заминусовали идею... буду благодарен, если хоть кто то даст адекватный комментарий, почему так делать не надо, как это сделал Загальский Андрей, за что ему спасибо
Исчезнет универсальность и понятие компонента, будет какой то компонент 3.0 при чём одни в своём роде))) Часто бывает что на вход компонента подаются сформированые в ПХП данные - а если выносить входные данные в модуль то 1 - нужно переписывать кэш в компоненте 2 делать лишние запросы к COption 3 Вы перечёркиваете сразу понятие отделённости компонента и его независимости, сайты бывают разные и бывает много сайтов в одном. Ваша идея имеет смысл на существование - я бы в параметрах компонента по умолчанию выставлял бы данные из такой страницы (на которой описаны все пути)
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».