{"id":13435379,"url":"https://github.com/DigitalWand/digitalwand.admin_helper","last_synced_at":"2025-03-18T02:31:51.347Z","repository":{"id":36319619,"uuid":"40624279","full_name":"DigitalWand/digitalwand.admin_helper","owner":"DigitalWand","description":"API для сборки кастомных админок в Битриксе","archived":false,"fork":false,"pushed_at":"2024-12-26T23:43:31.000Z","size":925,"stargazers_count":157,"open_issues_count":17,"forks_count":55,"subscribers_count":36,"default_branch":"2.x","last_synced_at":"2025-02-22T16:24:39.764Z","etag":null,"topics":["admin-ui","bitrix","mvc","orm"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DigitalWand.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-08-12T21:04:18.000Z","updated_at":"2025-02-20T02:09:45.000Z","dependencies_parsed_at":"2025-03-10T02:57:19.733Z","dependency_job_id":"9575c2d1-b668-40fa-8264-10077b0a35de","html_url":"https://github.com/DigitalWand/digitalwand.admin_helper","commit_stats":{"total_commits":451,"total_committers":31,"mean_commits":"14.548387096774194","dds":0.7627494456762749,"last_synced_commit":"06bb0a0c611e456ea09556d490042410b31b7b91"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DigitalWand%2Fdigitalwand.admin_helper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DigitalWand%2Fdigitalwand.admin_helper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DigitalWand%2Fdigitalwand.admin_helper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DigitalWand%2Fdigitalwand.admin_helper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DigitalWand","download_url":"https://codeload.github.com/DigitalWand/digitalwand.admin_helper/tar.gz/refs/heads/2.x","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243982177,"owners_count":20378604,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["admin-ui","bitrix","mvc","orm"],"created_at":"2024-07-31T03:00:35.256Z","updated_at":"2025-03-18T02:31:51.342Z","avatar_url":"https://github.com/DigitalWand.png","language":"PHP","funding_links":[],"categories":["\u003ca id=\"repos-organization\"\u003eGithub, Bitbucket, etc\u003c/a\u003e"],"sub_categories":["Репозитории"],"readme":"# digitalwand.admin_helper\nAPI для сборки кастомных админок в Битриксе\n\nДокументация по модулю доступна по адресу [http://api.digitalwand.ru/admin_helper/](http://api.digitalwand.ru/admin_helper/). Её же можно прочитать в комментариях в коде модуля. \n\nЕсть хорошая вводная статья в блоге: [Генератор админок «Битрикса»](http://samokhvalov.info/blog/all/bitrix-admin-helper/).\n\nПростой рабочий пример реализован отдельным модулем \n[demo.adminhelper](https://github.com/DigitalWand/demo.adminhelper)\n\n\n## Концепция\nДанный модуль реализует подход MVC для создания административного интерфейса.\n\nВозможность построения административного интерфейса появляется благодаря наличию единого API для CRUD-операциями над\nсущностями. Поэтому построение админ. интерфейса средствами данного модуля возможно только для классов, реализующих\nAPI ORM Битрикс. При желании использовать данный модуль для сущностей, не использующих ORM Битрикс, можно\nподготовить для таких сущностей класс-обёртку, реализующий необходимые функции.\n\nОсновные понятия модуля:\n\u003cul\u003e\n\u003cli\u003eМодель: \"model\" в терминах MVC. Класс, унаследованный от DataManager или реализующий аналогичный API.\u003c/li\u003e\n\u003cli\u003eХэлпер: \"view\" в терминах MVC. Класс, реализующий отрисовку интерфейса списка или детальной страницы.\u003c/li\u003e\n\u003cli\u003eРоутер: \"controller\" в терминах MVC. Файл, принимающий все запросы к админке данного модуля, создающий нужные\nхэлперы с нужными настройками. С ним напрямую работать не придётся.\u003c/li\u003e\n\u003cli\u003eВиджеты: \"delegate\" в терминах MVC. Классы, отвечающие за отрисовку элементов управления для отдельных полей\nсущностей. В списке и на детальной.\u003c/li\u003e\n\u003c/ul\u003e\n\nСхема работы с модулем следующая:\n\u003cul\u003e\n\u003cli\u003eРеализация класса AdminListHelper - для управления страницей списка элементов\u003c/li\u003e\n\u003cli\u003eРеализация класса AdminEditHelper - для управления страницей просмотра/редактирования элемента\u003c/li\u003e\n\u003cli\u003eСоздание файла Interface.php с вызовом AdminBaseHelper::setInterfaceSettings(), в которую передается\nконфигурация\nполей админки и классы, используемые для её построения.\u003c/li\u003e\n\u003cli\u003eЕсли не хватает возможностей виджетов, идущих с модулем, можно реализовать свой виджет, унаследованный от любого\nдругого готового виджета или от абстрактного класса HelperWidget\u003c/li\u003e\n\u003c/ul\u003e\n\nРекомендуемая файловая структура для модулей, использующих данный функционал:\n\u003cul\u003e\n\u003cli\u003eКаталог \u003cb\u003eadmin\u003c/b\u003e. Достаточно поместить в него файл menu.php, отдельные файлы для списка и детальной\nсоздавать не надо благодаря единому роутингу.\u003c/li\u003e\n\u003cli\u003eКаталог \u003cb\u003eclasses\u003c/b\u003e (или lib): содержит классы модели, представлений и делегатов.\u003c/li\u003e\n\u003cli\u003e -- \u003cb\u003eclasses/helper\u003c/b\u003e: каталог, содержащий классы \"view\", унаследованные от AdminListHelper и\nAdminEditHelper.\u003c/li\u003e\n\u003cli\u003e -- \u003cb\u003eclasses/widget\u003c/b\u003e: каталог, содержащий виджеты (\"delegate\"), если для модуля пришлось создавать\nсвои.\u003c/li\u003e\n\u003cli\u003e -- \u003cb\u003eclasses/model\u003c/b\u003e: каталог с моделями, если пришлось переопределять поведение стандартных функций getList\nи т.д.\u003c/li\u003e\n\u003c/ul\u003e\n\nИспользовать данную структуру не обязательно, это лишь рекомендация, основанная на успешном опыте применения модуля\nв ряде проектов.\n\n## Разработчики\n\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"http://digitalwand.ru/\"\u003eDigitalWand\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://nota.media/\"\u003eNotamedia\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDigitalWand%2Fdigitalwand.admin_helper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FDigitalWand%2Fdigitalwand.admin_helper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDigitalWand%2Fdigitalwand.admin_helper/lists"}