[Organizations] - каталог организаций (прототип)

Заказчику требовался сайт для продаж на юридические лица. Хранить данные организации и ее скидки в extended полях не слишком удобно. Тем более, что от одной организации с сайтом могут работать несколько пользователей. Никаких, устраивающих меня решений, я не нашел. Может плохо искал, но вроде даже ничего похожего нет. Решил сделать свой компонент [Organizations]. Он сразу планировался на продажу, но, к сожалению, реализовать все что хотел и прилизать код не хватило времени. Заказчика, текущая версия сайта пока радует. И, сейчас, планируется уже совсем другое ПО. Возможно, часть разработчиков устроит текущая версия компонента. Или они сами доработают нужное им.


Organizations — каталог организаций для CMS MODx. С его помощью, можно, например, организовать продажи юридическим лицам.
Реализовано:
В форме регистрации пользователя на сайте и в админке, данные Организации загружаются с сервера DaData.
После отправки формы регистрации, в каталог записываются данные Организации и создается связь между зарегистрированным пользователем MODx и Организацией.
Данные Организации и ее связи с профилями пользователей редактируются в админке сайта (таблица OrgsUsersLink связывает таблицу Orgs с modUser, таблицей стандартного класса пользователей MODx).
Пользователям Организации можно назначить группу прав. Группы прав редактируются в админке.
Группа Администраторов Организации может редактировать права пользователей во фронтэнде и создавать инвайты (приглашения) для сотрудников организации на сайт. При регистрации пользователя с кодом инвайта, содается связь профиля пользователя с организацией и назначается группа прав, заданная при создании инвайта.
Организации можно назначить менеджера и скидку. Менеджеры сайта могут самостоятельно зарегистрировать Организацию на сайте и отправить инвайт для контактного лица Организации. (Так удобнее. Можно сразу назначить скидку и нужные данные Организации. Пользователям остается только придумать свой логин, пароль и начинать работать. Ни менеджерам сайта, ни администраторам организации не нужно придумывать логины и пароли пользователей. И не нужно заботиться об их отправке пользователю и об их сохранности.)
При создании инвайта, его можно автоматически отправить на емаил пользователя.
В админке, для организации можно создать купон, временную или разовую скидку, процентную или фиксированную. Во фронтэнде, использование купонов не реализовано (Пока нам не требуется.). Но разработчикам думаю не составит особого труда написать нужные им сниппеты.

К сожалению, пока нет времени реализовать все задуманное. Да и к совершенству можно двигаться вечно :-). Хотелось бы устранить следующие недоработки:
Переписать запросы AJAX. (Имена процессоров для MODx, как выяснилось должны быть вида name.class.php.)
Вывести управление типами инвайтов и купонов в админку.
Оптимизировать запросы к базе данных.
Не сделаны поиск и фильтрация инвайтов и купонов в админке.
И т.д.

Ссылка на демо http://z9233215.bget.ru/.
https://github.com/touol/Organizations.

Админка компонента:

Настройки:


Для работы с DaData.ru нужно ввести их ключ API в настройках системы. И там же, нужно указать ID групп менеджеров и ID групп пользователей.


Стоимость лицензии 1000 руб. После модерации, надеюсь будет доступен для покупки в магазине modstore.pro.
Я тут решил немного выпендриться :-) и придумал свой тип лицензии :-). Если какие-то проблемы с лицензией возникнут, могу ее сменить на GPL2. Но мне, желательно, чтоб тип лицензии остался моим.

Лицензия Акт Доверия :-)

Отказ от отрицательного стимулирования:
Авторские права на програмное обеспечение, лицензируемое этим документом, не являются
предметом судебных разбирательств. Автор(ы) отказывается от юридической защиты авторских
прав. ПО может использоваться кем угодно, где угодно и совершенно свободно, вне зависимости
от оплаты или не оплаты за его использования. Оплата за использование, в любом виде, этого
програмного обеспечения остается целиком только на совести физических лиц и организаций
использующих это ПО. (Юридическая защита для небольшого ПО все равно стоит неоправданно
дорого. Это и оплата юристам для правильного оформления лицензии, и суды длящиеся месяцами.)
За счет отказа от судебного преследования, «условия» лицензии можно оформлять свободном виде.
В виде пожеланий автора(ов) :-). Которые, не обязательно формулировать строго и юридически
однозначно. (Экономим на юристах :-).) Так же, это позволяет добросовестным пользователям ПО не
бояться санкций в случае не правильного истолкования «условий» лицензии.

Пожелания автора(ов):
Стоимость лицензии на использование одной копии ПО 1000р. без учета коммисий и налогов.
По, каким-то, более или менее, уважительным причинам (например, бюджет не позволяет)
пользоваться ПО можно бесплатно или оплатив часть стоимости.
Разработчики могут свободно дорабатывать это ПО или использовать его как часть своего
ПО. Стоимость лицензии для конечных пользователей 1000р. плюс стоимость вашего вклада.
Цена может быть снижена. При распространении конечного продукта сохранять информацию
об авторе или авторах.
Конечный пользователь оплачивает лицензию, раздельно, по реквизитам авторов. В случае,
если продавец ПО находиться в публичных доверительных (репутационных) списках авторов, то
пользователь может оплатить необходимую сумму продавцу ПО, который распределит ее среди авторов.
Лицензия на конечное ПО может быть другой, но ее смена при небольших доработках ПО не
допустима.
Уведомлять автора(ов) об установке ПО для сбора статистики.

Положительное стимулирование:
В случае приобретения лицензии на ПО, покупателю, при его желании, начисляются баллы вашего в
личном публичном репутационном списке автора(ов). Если, конечно, покупатель желает участвовать в
каких-либо репутационных списках. Список автора(ов) может учитываться в глобальных списках репутаций.
(ПО для репутационных списков пока в проекте, но думаю в обозримом будущем что-нибудь сделаю.)
Добросовестный пользователь может получить консультации, техподдержку и доработку ПО в разумных
пределах. (1000р., в принципе, это час работы програмиста. Так что в данном случае, к сожалению,
разумные пределы как-то низковаты.)
Репутация в списках авторов может подниматься в результате выполнения пожеланий авторов.

Право «Фу»:
В случае недобросовестного использования ПО пользователями, автор имеет право публично высказаться о них
или каким-либо способом выразить свое негодование :-). Это право — неотъемлемое право человека и не может быть
«изъято» каким-либо договором или лицензией.

Отказ от гарантий:
Автор(ы) не несут ответственности за ошибки в ПО и за ошибки неправильного использования ПО.
Александр Туниеков
28 марта 2016, 21:36
modx.pro
1
5 236
+7
Поблагодарить автора Отправить деньги

Комментарии: 37

Aртур Чикин
29 марта 2016, 04:50
0
Какой то бред, а не лицензия. В чем потребность использовать dadata.ru и сливать им информацию о ком либо? В целом, спасибо. Титаническая работа.
    Александр Туниеков
    29 марта 2016, 17:11
    0
    В чем потребность использовать dadata.ru и сливать им информацию о ком либо?
    Хм… других способов сильно облегчить ввод данных я не знаю :-). И отключение от сервиса даже не предусмотрел. Хотя для параноиков, наверно, галочку стоит ввести.
    В целом, спасибо. Титаническая работа.
    Пожалуйста. Хотя эпитет титаническая работа удивляет. 3 месяца — это не так много, для путного компонента.
      Любовь
      13 сентября 2016, 14:51
      0
      Просветите, пожалуйста. Каким образом им сливается информация? Или тут речь о том, что при вводе организации — идет запрос их сервису, чтобы получить остальную информацию?
      Воеводский Михаил
      29 марта 2016, 11:59
      +1
      1) Каша вместо описания. В целом, интересный компонент и хочется понять, что он уже умеет. Но в текущем виде глаза отказываются это читать.
      2) «Лицензия» весьма сомнительна, хотя автор, конечно же, имеет право распространять свой труд под любой лицензией.
        Александр Туниеков
        29 марта 2016, 18:18
        0
        1) Ну, во первых, я довольно ленив и стремлюсь писать кратко и сжато. В итоге получаются обрывки мыслей — тезисы. Во вторых, я люблю попридумывать что-нибудь не стандартное и в процессе, незаметно для себя, сдвигаю значения понятий. Есть риск, что более разжеванное описание запутает читателя еще больше. Проще сделать подробное описание уже в процессе общения с заинтересованными собеседниками.
        Надеюсь мои сложносочиненные предложения Вас не запутали ;-).

        2) В принципе, я, думаю, людям можно доверять. Хотя, конечно, бывает разное, но, большая часть неблаговидных поступков, как я думаю, совершается либо из нужды либо при недостаточной информированности.
        Например, лицензия MODx — GPL. Она требует, чтобы любое ПО производное от MODx было доступно всем для скачивания модифицирования и распространения. Де-юре, магазин modstore.pro уже сам по себе противоречит GPL. ПО не является свободно доступным для скачивания. Теоретически, я могу как пользователь ПО производного от MODx подать в суд магазин и отсудить энную сумму у магазина за нарушение магазином моих прав по лицензии GPL :-). К счастью, русская правовая система до таких извращений еще не дошла. Но в общем-то активно к ним стремиться.
        Моя «лицензия» нацелена на то, чтобы вообще отвязать покупку и продажу ПО от правового поля. Умение доверять необходимо и для бизнеса и для общества в целом. Никакие договора отсутствие извратов не гарантируют. Строить доверительные отношения на принципе правового насилия изначально ущербно :-).
          Сергей Шлоков
          29 марта 2016, 20:26
          0
          Теоретически, я могу как пользователь ПО производного от MODx подать в суд магазин и отсудить энную сумму у магазина за нарушение магазином моих прав по лицензии GPL :-). К счастью, русская правовая система до таких извращений еще не дошла.
          НУ можно попробовать разбогатеть на исках к extras.io и modmore.com.
            Александр Туниеков
            29 марта 2016, 21:01
            0
            Ну мне не охота долго разбираться, но они должны предоставлять исходники. Вроде это:
            Package providers are free for everyone, and we use the revenue from our Premium Extras to help sustain that service.
            Не знаю, только купившим или вообще всем, но скорей всего у них это где-то прописано и учитывается.
            На modstore.pro чувствуется, что GPL далеко не всем понятна. Возможно, и владельцу магазина. Умиляют авторы, что пишут что-то вроде «вот мы тут вам исходник предоставили, пожертвовали так сказать собой, можете ставить бесплатно». Просто по условиям GPL, они обязаны предоставить исходник пользователям и они могут свободно его изменять и свободно распространять. И дрюкнуть через суд их может любой пользователь.
            Я пример просто привел. Мне зарабатывать на чужих багах нет желания. Я типо умный, гордый. Типо и так на хлеб с маслом себе заработаю :-).
            Василий Наумкин
            29 марта 2016, 20:55
            +1
            Она требует, чтобы любое ПО производное от MODx было доступно всем для скачивания модифицирования и распространения. Де-юре, магазин modstore.pro уже сам по себе противоречит GPL
            У меня сразу 2 замечания.

            1. Свободное != бесплатное. У нас код не обфусцирован, в бинарники не зажат, никаких проверок лицензий нет. При загрузке пакета ты получаешь исходный PHP, с которым можешь делать, что хочешь.

            2. А иначе, если мы де-юре нехорошие люди, а ты такой красивый со своей странной «лицензией», как ты собрался продаваться в modstore.pro?

            Как говориться, или трусы надень, или крестик сними.
              Александр Туниеков
              29 марта 2016, 21:35
              0
              Ну, во первых, я тут просто выкладываю свое мнение. Возможно оно ошибочно. Буду рад если меня поправят. Цапаться мне не всегда интересно. Во вторых, я никого не хотел обидеть. Даже если получиться поцапаться :-).

              1. Свободное != бесплатное. У нас код не обфусцирован, в бинарники не зажат, никаких проверок лицензий нет. При загрузке пакета ты получаешь исходный PHP, с которым можешь делать, что хочешь.
              Транспортный пакет — это не Source Code. _build нет. В лицензии сказано предоставь Source Code.

              2. А иначе, если мы де-юре нехорошие люди, а ты такой красивый со своей странной «лицензией», как ты собрался продаваться в modstore.pro?
              modstore.pro как услуга продавца. Тем кто хочет оплатить труд автора. Что-то я не догоняю суть претензии. GPL вроде распространять код под своей лицензией не заставляет. Ссылка на Source Code есть. Что мешает продаваться в modstore.pro?

              Как говориться, или трусы надень, или крестик сними.
              А вдруг я хочу голый под под лучами солнца позагарать? :-)
                Василий Наумкин
                30 марта 2016, 04:57
                0
                А вдруг я хочу голый под под лучами солнца позагарать? :-)
                Видимо и тут нужно пояснить.

                Ты отправил свой пакет в modstore.pro на продажу. И тут же обвинил магазин в нарушении и не понимании лицензии GPLv2. Но тебе так важны лицензии, что ты придумал свою собственную.

                И вот тут нужно определиться, ты либо сильно уважаешь лицензии, и не должен сотрудничать с людьми, которые по твоему мнению их нарушают. Или тебе это не так уж и важно, и тогда я вообще не понимаю этого перфоманса.

                То есть, «они как-бы нарушают, типа, но я всё равно хочу с ними работать».

                В любом случае, пытаться начинать сотрудничать с кем-то с обвинений в нарушениях — не очень умно. Тем более, когда эти обвинения беспочвенны.
                  Александр Туниеков
                  31 марта 2016, 02:07
                  0
                  Ошибки есть и думаю всегда будут. Мне не хотелось бы извиняться за то, что я вообще ошибся. Я могу извиниться за то, что мой пример вышел не совсем политкорректным. Но и пообещать, что таких примеров больше не будет я тоже не могу.
                  В любом случае, пытаться начинать сотрудничать с кем-то с обвинений в нарушениях — не очень умно.
                  Иногда это эффективно. Например для привлечения внимания. Я не ожидал и не планировал, что у вас будет такая реакция. Но может быть подсознание постаралось :-). Прет счас агрессия.
                  То есть, «они как-бы нарушают, типа, но я всё равно хочу с ними работать»
                  Мне все равно кто и что нарушает. У всех есть свобода воли. Если кто-то что-то и нарушает это просто проявление их каких-либо проблем и ошибок. Может быть. Не мне их судить.
                  Вы ничего не нарушаете :-). Закона о свободных лицензиях в России нет. Нет закона нет нарушения. Судить вас за то, что вы отрыли замечательный сайт? За то что пишете хорошие уроки? За то что вы успешно ведете свой бизнес?..
                  Черт. Блин. Заколебало. Перфоманс есть перфоманс. Не всем он нравиться. Смена идеологии — это как-бы «дикая агрессия» от инициатора процесса. Потом будет попроще. Хотел же блин вроде только немного повыпедриваться, а получилось как всегда :-).
                    Василий Наумкин
                    31 марта 2016, 05:58
                    +1
                    Мне не хотелось бы извиняться за то, что я вообще ошибся.
                    То есть, нахамил, но извиняться не хочу.

                    Отличная позиция.

                    Прет счас агрессия.
                    А ты обвини меня в нарушении еще каких-нибудь лицензий, расскажи как я не совсем их понимаю. Это только у детей всё в шутку, а мне уже 4й десяток идёт.

                    Хотел же блин вроде только немного повыпедриваться, а получилось как всегда :-).
                    Хотел привлечь внимание — привлёк. Хотел повыпендриваться — повыпендривался.

                    Неясно только, почему ты решил, что кому-то это понравится?
                      Александр Туниеков
                      31 марта 2016, 18:12
                      -1
                      Я не обязан кому-то нравиться. Просто тупо не обязан.
                      Я хочу себе такую лицензию. Я, вполне уверен, что из-за этого ни я ни покупатели ничего не потеряют.
                      Вы можете обижаться на мои высказывания сколько вам угодно. Мне, конечно, слегка тоже обидно, но обижаться или не обижаться может каждый. Прям не знаю что дальше написать. Мне хотелось бы чтоб вы меня простили, но и прогибаться под ваше мировоззрение тоже не хочется.…
                        Александр Туниеков
                        08 мая 2016, 09:23
                        0
                        Мне хотелось бы чтоб вы меня простили, но и прогибаться под ваше мировоззрение тоже не хочется.…
                        Отделять человека от его мировозрения как-то не айс. Прокосячил.
                        Извините пожалуйста. С допущенными здесь ошибками вроде разобрался и подобных ошибок постараюсь избежать. Опыт как говориться плод ошибок горьких.
              Воеводский Михаил
              29 марта 2016, 22:15
              +2
              1. Этот абзац понятен. Однако, желания читать пост, увы, не появилось :(
              2. GPL обязывает предоставлять исходники только тем, кто получил копию программы. И то — по запросу. Открытое выкладывание исходников — это исключительно добрая воля авторов. Таким образом, если пользователем программы являются только покупатели магазина, они могут попросить автора предоставить исходник. И только в таком случае обязанность автора предоставлять исходник действует.

              Что касается сайтов и прочих работ на MODX: заказчик (пользователь программы) всегда получает исходник своей программы, так как это особенность php. И более того: если автор обязан предоставить коды MODX, то любые модули, поставляемые с ним, вполне могут быть и обфусцированными, и с закрытым кодом. Просто в таком случае нужно будет позиционировать не «Сайт под ключ», а «Настроенный MODX + модуль NN».

              Надеюсь, мой коммент отвечает и на все выпады в сторону Modstore.
                Александр Туниеков
                29 марта 2016, 23:09
                0
                Вау :-) спасибо. Мне всерьез разбираться было лень. Такой четкий ответ радует.
                «Выпад» в сторону Modstore и др. был просто примером моего первоначального понимания GPL.
                Текст моей «лицензии» несет в себе совсем другую цель, чем лицензия GPL. Поэтому я и не планировал разбираться с ней. Но Ваш пост полезен. Еще раз спасибо.
                Цель моей «лицензии», в общем — то, несколько уменьшить влияние власти и госструктур на общество. Они мне как-то не нравятся :-).

                1. Этот абзац понятен. Однако, желания читать пост, увы, не появилось :(
                Может быть вам это не сильно нужно? Может зачем компонент вы уже поняли, а использовать пока не планируете?
                У MODx, например, далеко не все возможности задокументированы. Приходиться искать информацию в поиске. Есть своя цена и за внятное описание и своя цена за освоение информации. Если вы хотите разобраться, то я постараюсь вам помочь. А если в этом нет насущной необходимости, то зачем напрягаться и мне и вам? :-)
                  Воеводский Михаил
                  29 марта 2016, 23:19
                  0
                  Я под один из проектов планировал написать модуль работы с контрагентами, на данный момент достаточно лишь простейшей таблицы в бд и вывода на фронт. Все дальнейшее развитие моей задумки я уже увидел в Вашей админке. Соответственно, свой модуль писать не вижу уже ни малейшего смысла.

                  По Organizations меня интересует, какие возможности для фронта у него есть из коробки.
                    Александр Туниеков
                    30 марта 2016, 01:55
                    0
                    Ага. А это пример, что очень нужно поэтому и не понятно. (извиняюсь, что-то на морализаторство потянуло.)
                    Довольно мало во фронте и несколько неупорядоченно. Хотя больше то наверно не нужно.
                    сниппеты:
                    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/
                    Как разработчику компонента мне кажется все очевидным. Я еще не знаю какие проблемы и вопросы у Вас могут возникнуть. Попробуйте разобраться. Задавайте вопросы. Может Вы потом захотите написать хороший урок по компоненту :-).
                      Александр Туниеков
                      30 марта 2016, 02:20
                      +1
                      Задали вопрос программисту, а он попытался запрограммировать в вас код ответа :)
                      Я перед тем как задавать вопросы пробую сам разобраться. Диалог с техподдержкой сразу становиться конструктивней :-).
                        Воеводский Михаил
                        30 марта 2016, 12:26
                        0
                        Не увидел в ответе и на сайте простейшей возможности — вывода списка контрагентов. Это не реализовано?
                        Предполагается ли добавление контрагентов (пользователи не нужны) из фронта обычным пользователем, не внешним? Тоже не увидел об этом упоминания.
                          Александр Туниеков
                          30 марта 2016, 23:47
                          0
                          У Вас задачка немного другая, чем я решал.
                          Конечно у меня нет вывода списка контрагентов. Мне он не нужен был.
                          Если просто нужен список контрагентов, то
                          $Orgs = $modx->getIterator('Orgs', array());
                          И вперед. Но просто список не всегда нужен. Кому показывать? Доступен всем зашедшим на сайт без разбора? Или допустим продавцам на фронте? Или им не список нужен, а комбокс?
                          Предполагается ли добавление контрагентов (пользователи не нужны) из фронта обычным пользователем, не внешним?
                          Нет не предполагалось. Но могу сделать. В принципе, подготовить компонент под ваш тип задач, наверно, день два работы. Но все нюансы вашей задачи мне еще не понятны. Может и две недели на обдумывание и 3 дня на программирование.
                          И, как всегда, денежный вопрос :-). За работу над компонентом я некоторую сумму уже получил. Просто я его еще сразу и на продажу и для всех запланировал. Иначе бы не парился над его универсальностью.
                          Ну общем понимаете, что работа денег стоит. Просто так, рассчитывая потом продать, делать нет смысла. Получиться нечто никому не нужное. У каждой задачи своя специфика. Делать универсальное, не зная специфики всех возможных задач, не круто.
                          Ну надеюсь моя позиция ясна. Вы можете поработать над задачей вашего клиента сами. Или поработать на этим вместе со мной :-). Как мне кажется, моя заготовка уже облегчила вам жизнь. Хотя не знаю на сколько. Фронт для продавцов, например, мне не кажется таким уж совсем легким. Не пробовал. Не знаю. Но если, что мне интересно…
                            Воеводский Михаил
                            01 апреля 2016, 11:17
                            0
                            В моем случае задача проста:
                            1) Вывести список контрагентов в выпадающем списке (простой сниппет вывода списка с поддержкой чанков для оформления)
                            2) Добавить контрагента обычным пользователем сайта (простой сниппет, обрабатывающий данные с формы и вызывающий процессор создания организации)

                            Если добавить в свой компонент оба пункта, спектр областей применения сразу же значительно возрастет. Привязка внешних пользователей нужна не всегда, как и работа со всем этим в админке, но как центральное звено для хранения и вывода списка контрагентов для использования в разных местах на фронте компонент подойдет прекрасно.
                              Александр Туниеков
                              08 мая 2016, 09:32
                              0
                              Ок. В течении месяца постараюсь сделать. Сейчас занят проэктированием автоматизации склада. Головняки на чем делать, на VBA Excel или на Modx или на чем-то другом разбираю.
                              Если вы уже используете компонент, если можно покажите пожалуйста где и как в личку. Для развития компонента полезно будет.
                              Воеводский Михаил
                              08 мая 2016, 11:53
                              0
                              Этот компонент не использую, потому наглядно могу показать только ту заготовку, о которой говорил ранее.
                              Сам проект перешел в состояние вялотекущей поддержки, потому в ближайшее время приобретение компонентов под него не планируется.
                              Александр Туниеков
                              08 мая 2016, 13:56
                              0
                              Ясно. Я приобретать компонент не требую. Вообще планирую зарабатывать на его техподдержке. Например интеграцию с Shopkeeper или minishop делать.
                              Если когда-либо компонент вам потребуется, мне, если что, посмотреть на варианты его использования будет интересно :-).
                    Сергей Шлоков
                    30 марта 2016, 08:36
                    0
                    Я тоже планировал, только для бэкенда.
              Александр Туниеков
              29 марта 2016, 20:13
              0
              Пример гарантий: запрещается создавать на основе свободной программы под GPL другой проект, не предоставляя его исходники пользователям. Таким образом, данная лицензия вовсе не позволяет делать с программами «что угодно», как могут ошибочно трактовать данную лицензию плохо знакомые с ней.
              https://ru.wikipedia.org/wiki/GNU_General_Public_License
                Василий Наумкин
                29 марта 2016, 21:02
                0
                www.gnu.org/licenses/old-licenses/gpl-2.0-faq.ru.html#DoesTheGPLAllowMoney
                Позволяет ли мне GPL продавать копии программы за деньги?

                Да, GPL разрешает делать это всем. Право продавать копии — часть определения свободной программы.
                Кроме одной особой ситуации, на цену, которую вы можете взимать, не налагается ограничений (это единственное исключение — обязательное письменное предложение поставки исходного текста, которое должно сопровождать выпуск только двоичных файлов).

                Что к PHP никак не относится.
                  Александр Туниеков
                  29 марта 2016, 21:43
                  0
                  Я конечно умный блин повыпендриваться полезло. Не понял, что к чему. В праве продавать вроде никто не сомневается. Речь только об обязанности исходники предоставить.
                    Василий Наумкин
                    30 марта 2016, 04:44
                    0
                    Давай еще раз:
                    обязательное письменное предложение поставки исходного текста, которое должно сопровождать выпуск только двоичных файлов

                    Транспортный пакет — это zip архив, который ты загружаешь при покупке себе. Ты можешь его установить через MODX, можешь распаковать простым unzip. В любом случае — ты загружаешь архив с исходным кодом программы, который потом можно выполнять через PHP.

                    Это не скопилированные бинарники, не нужно отдельно предлагать и поставлять исходный код, так как транспортный пакет — это он и есть, в архиве.

                    Ну а уж скрипты архивации этих исходников никто поставлять не обязан, это не часть приложения.
                      Александр Туниеков
                      31 марта 2016, 01:10
                      -2
                      Давай еще раз
                      Какие причины вам обсуждать это еще раз?
                      Пример зацепил и хочется полностью убедить в своей правоте…
                      Вы правы конечно. Но и я тоже прав. Проблема в вере в справедливость суда. Я как-то в это не очень верю. При некоторой наглости адвокатов и при некоторой смазанной «некомпетентности» суда, все что угодно произойти может. И на мой взгляд адекватный контроль таких ситуацией невозможен.
                      Source code — это исходный код программы. Из которого, сделав нужные изменения кода и компиляцию, можно получить работающею программу. В транспортном пакете, папки _build нет. Для того чтобы сделать другой транспортный пакет с нужными правками функционала программы, нужно восстанавливать папку _build. Программу с закрытым кодом тоже можно восстановить. Смысл говорить, что транспортный пакет — это Source code, если для получения другого экземпляра установочного пакета программы нужно восстанавливать часть исходного кода. Таким образом транспортный пакет не может быть определен как Source code. Уважаемый судья компания «рога и копыта» отказывается предоставить мне Source code программы распространяемой по всеми любимой и уважаемой, достоянием общественности, Высшим достижением демократии, полностью Свободной Лицензии GPL. Они не уважаю Законы. Прошу Вас компенсировать нам наш моральный ущерб на 1 000 000$ чтоб впредь они не смели нарушать наши Законы. И не подвергали нас опасности погрузиться во власть беззакония и Хаоса.

                      Чет я разошелся :-). Именно так как я написал вряд ли будет, но что-нибудь похожее кто-нибудь и может попробовать провернуть. Пример наглого наезда, с моей точки зрения, я написал. Надеюсь моя точка зрения понятна. Не хотелось бы эту тему растягивать. Все таки наверно для политических дебатов сайт не предназначен.
                        Василий Наумкин
                        31 марта 2016, 05:50
                        1
                        +1
                        Транспортный пакет, не поверишь — это транспортный пакет, а не программа.

                        1. Качаем любой пакет из либого репозитория, не устанавливаем
                        2. Заходим в директорию core/packages, смотрим, что там появился
                        — транспортный пакет
                        — директория с компонентом, распакованная из пакета
                        3. Копируем имя zip-пакета, удаляем сам файл — он больше не нужен.
                        4. Чтобы установщик MODX работал, создаём пустой файл с тем же именем, вместо удалённого zip
                        5. И спокойно устанавливаем пакет

                        Что отсюда получается? Что zip файл нужен только для загрузки из репозитория, а все исходники и скрипты установки находятся в одной директории, в открытом виде. Ты можешь их просматривать, модифицировать, копировать и что там тебе еще нужно.

                        _build — это скрипты для удобной сборки пакета, но ты можешь его собирать и вручную. Написать ресолверы, и всё такое, а потом запоковать в zip.
                        Учитывая, что в той директории лежит уже всё готовое — ты можешь это модифицировать и снова упаковывать в zip.

                        А можешь и не париться с zip, а копировать директорию и пустой transport.zip файл, который нужен только из-за того, что его наличие (но не содержимое) проверяем установщик MODX.

                        Требовать предоставлять _build, это тоже самое, что требовать мой рабочий ноутбук с установленным PhpStorm — потому что с ними тебе будет удобнее собирать пакет.

                        Это не часть приложения, это прикладная программа для удобной работы, не более того.

                        Ну, теперь опять будешь говорить, что тебе не предоставляют исходники, мы нарушаем лицензию и проецировать вымышленный суд из своей головы в вакууме?
            Илья Уткин
            29 марта 2016, 12:40
            +3
            Очень классное решение с настройкой типов полей для формы в админке. Мне нравится!))
              Сергей Шлоков
              30 марта 2016, 08:37
              0
              Не доработано в плане безопасности. Я вот взял и отключил просмотр пользователей.
                Александр Туниеков
                30 марта 2016, 23:53
                0
                В смысле? :-) А права себе ограниченные поставили :-). Да есть такая проблема :-). Но это не безопасность это защиту от дураков поленился доделать :-).
                Любовь
                14 сентября 2016, 12:23
                0
                Хотелось бы поинтересоваться нам нужно в личном кабинете менеджера на сайте вывести все связанные с ним организации с возможностью добавления новых и редактирования существующих.
                  Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                  37