Цель Gitify — обеспечить двунаправленную синхронизацию данных, обычно хранящихся в базе данных MODX, что позволит версионировать код через Git.
полное описание для посвященного в идеалогию git. Но если развернуть это предложение на пару абзацев, в поиске найти Gitify будет гораздо проще.
Для текущих задач, ChangePack мне подходит. Работает как и задумывался. Хотя интересно сделать лучше. Можно выделять на каждую копию сайта пул id и после создания ресурса перезаписывать его id разрешенным id. Возможно подойдет для 2-5 разработчиков. Но это уже без «версионировать код через Git». Неясно будет ли компонент полезным. И захотят ли его, например, купить :). Сейчас буду текущим проектом заниматься. Дорабатывать нет времени.
Так же с версии 0.9 Gitify build автоматически пытается решить проблему дублирования id и первичных ключей для контента и других объектов. Когда находится объект, первичный ключ которого (обычно это ID) уже существует, этот объект временно сохраняется в памяти. После полного завершения остальной сборки, включающей очистку, будет произведена попытка разрешить этот конфликт. В случае перемещения или переименования объекта/ресурса, благодаря очистке «старый» объект будет удален, в результате чего новый будет вставлен правильно. Если же конфликт на самом деле есть (возможно два разработчика добавили новый ресурс или объект в разных ветках), сохраненный в памяти объект будет вставлен с новым ID. Так же в этом случае для него будет запущена команда Gitify extract.
Ничего не понятно. С честь чего «объект временно сохраняется в памяти». Мм… это понял — билд же делается. Схема работы: с базы локального сайта делается extract в файлы Gitify, файлы Gitify синхронизируются с репозиторием git, другой разработчик синхронизирует репозиторий git со своими файлами Gitify и делает билд данных в свою копию сайта.
Интересно :). Только как быть с рабочим сайтом, который находиться где-то на хостинге где есть только apache и ftp. Как его обновлять?
сохраненный в памяти объект будет вставлен с новым ID. Так же в этом случае для него будет запущена команда Gitify extract.
Не слишком приятно :(. В коде может ссылка на id ресурса. При изменении его id нужно править код.
Довольно мало во фронте и несколько неупорядоченно. Хотя больше то наверно не нужно.
сниппеты:
getDefaultUserOrg — Показывает форму редактирования или просмотра данных организации.
Если пользователь в группе Администраторы, то есть права на редактирование, показывает чанк editOrgOuter со строками из чанка editOrgRow. Иначе форму просмотра viewOrgOuter. Параметр onlyView ='1' также показывает viewOrgOuter с editOrgRow для вставки данных организации в какую-нибудь другую форму. (Планировалось, что один пользователь может находиться в разных организациях. Но пришлось урезаться, а название сниппета осталось.)
В форме editOrgOuter, кнопка пользователи переход на страницу пользователей организации со сниппетом
editOrgsUsers — Показывает пользователей организации и инвайты в нее.
Сниппет — показывает таблицу пользователей. Чанки editUserOrgOuter и editUserOrgRow. В таблице кнопки:
Редактирование группы прав пользователя и отключение пользователя. При отключении пользователя его права становятся нулевыми.
То есть функция $Orgs->testAccess($access) из класса organizations.class.php вернет false на любое право. Право — это строка вида «edit_org_data». Настраивается в админке.
$Orgs->getDefaultOrg($userId); возвращает id организации.
В чанке editUserOrgOuter так же таблица инвайтов организации, модальная форма редактирования прав пользователя и модальная форма создания инвайта. Про инвайты пока пропустим.
Сниппет checkAccess проверяет права. Если успешно, то возвращает чанк trueTpl. Иначе параметр falseMsg. Можно перед показом какого-либо ресурса проверить права.
CheckConteiner inviteReg и loginRegisterHook используются при регистрации пользователя. Написаны под [Login] и как они подойдут для других компонентов не знаю. Я их не юзал.
Для подсказок DaData нужно bootstrap, bootstrap3-typeahead.min.js, orgs.js из папки assets\components\organizations\js
Посмотреть код и как это выглядит можно на демо-сайте http://z9233215.bget.ru/
Как разработчику компонента мне кажется все очевидным. Я еще не знаю какие проблемы и вопросы у Вас могут возникнуть. Попробуйте разобраться. Задавайте вопросы. Может Вы потом захотите написать хороший урок по компоненту :-).
«Выпад» в сторону Modstore и др. был просто примером моего первоначального понимания GPL.
Текст моей «лицензии» несет в себе совсем другую цель, чем лицензия GPL. Поэтому я и не планировал разбираться с ней. Но Ваш пост полезен. Еще раз спасибо.
Цель моей «лицензии», в общем — то, несколько уменьшить влияние власти и госструктур на общество. Они мне как-то не нравятся :-).
Может быть вам это не сильно нужно? Может зачем компонент вы уже поняли, а использовать пока не планируете?
У MODx, например, далеко не все возможности задокументированы. Приходиться искать информацию в поиске. Есть своя цена и за внятное описание и своя цена за освоение информации. Если вы хотите разобраться, то я постараюсь вам помочь. А если в этом нет насущной необходимости, то зачем напрягаться и мне и вам? :-)
Я конечно умныйблин повыпендриваться полезло. Не понял, что к чему. В праве продавать вроде никто не сомневается. Речь только об обязанности исходники предоставить.Транспортный пакет — это не Source Code. _build нет. В лицензии сказано предоставь Source Code.
modstore.pro как услуга продавца. Тем кто хочет оплатить труд автора. Что-то я не догоняю суть претензии. GPL вроде распространять код под своей лицензией не заставляет. Ссылка на Source Code есть. Что мешает продаваться в modstore.pro?
А вдруг я хочу голый под под лучами солнца позагарать? :-)
Не знаю, только купившим или вообще всем, но скорей всего у них это где-то прописано и учитывается.
На modstore.pro чувствуется, что GPL далеко не всем понятна. Возможно, и владельцу магазина. Умиляют авторы, что пишут что-то вроде «вот мы тут вам исходник предоставили, пожертвовали так сказать собой, можете ставить бесплатно». Просто по условиям GPL, они обязаны предоставить исходник пользователям и они могут свободно его изменять и свободно распространять. И дрюкнуть через суд их может любой пользователь.
Я пример просто привел. Мне зарабатывать на чужих багах нет желания. Я типо умный, гордый. Типо и так на хлеб с маслом себе заработаю :-).
Надеюсь мои сложносочиненные предложения Вас не запутали ;-).
2) В принципе, я, думаю, людям можно доверять. Хотя, конечно, бывает разное, но, большая часть неблаговидных поступков, как я думаю, совершается либо из нужды либо при недостаточной информированности.
Например, лицензия MODx — GPL. Она требует, чтобы любое ПО производное от MODx было доступно всем для скачивания модифицирования и распространения. Де-юре, магазин modstore.pro уже сам по себе противоречит GPL. ПО не является свободно доступным для скачивания. Теоретически, я могу как пользователь ПО производного от MODx подать в суд магазин и отсудить энную сумму у магазина за нарушение магазином моих прав по лицензии GPL :-). К счастью, русская правовая система до таких извращений еще не дошла. Но в общем-то активно к ним стремиться.
Моя «лицензия» нацелена на то, чтобы вообще отвязать покупку и продажу ПО от правового поля. Умение доверять необходимо и для бизнеса и для общества в целом. Никакие договора отсутствие извратов не гарантируют. Строить доверительные отношения на принципе правового насилия изначально ущербно :-).
Пожалуйста. Хотя эпитет титаническая работа удивляет. 3 месяца — это не так много, для путного компонента.
Для текущих задач, ChangePack мне подходит. Работает как и задумывался. Хотя интересно сделать лучше. Можно выделять на каждую копию сайта пул id и после создания ресурса перезаписывать его id разрешенным id. Возможно подойдет для 2-5 разработчиков. Но это уже без «версионировать код через Git». Неясно будет ли компонент полезным. И захотят ли его, например, купить :). Сейчас буду текущим проектом заниматься. Дорабатывать нет времени.
Умная фраза :). С налета не поймешь, что это такое Gitify умеет делать и зачем он нужен. Да и в поиске modx синхронизация копий сайта Gitify не отсвечивал :).
Ладно это я несколько раздражен. Зацепила ваша фраза :).
Можно несколько поподробней как Gitify разрешает конфликты с Id.
Ничего не понятно. С честь чего «объект временно сохраняется в памяти». Мм… это понял — билд же делается. Схема работы: с базы локального сайта делается extract в файлы Gitify, файлы Gitify синхронизируются с репозиторием git, другой разработчик синхронизирует репозиторий git со своими файлами Gitify и делает билд данных в свою копию сайта.
Интересно :). Только как быть с рабочим сайтом, который находиться где-то на хостинге где есть только apache и ftp. Как его обновлять?
Не слишком приятно :(. В коде может ссылка на id ресурса. При изменении его id нужно править код.
Вообщем, если дорабатывать компонент, нужно довольно много продумать. Когда буду и буду ли вообще я этим заниматься пока неясно :).