forked from fa/breadcrumb-the-shire
Migrates addressbook service classes from core namespace (MintyPHP\Service\AddressBook\*) to proper module namespace (MintyPHP\Module\AddressBook\Service\*), consistent with the bookmarks module pattern. Moved to module: - AddressBookService → modules/addressbook/lib/Module/AddressBook/Service/ - AddressBookServicesFactory → modules/addressbook/lib/Module/AddressBook/Service/ - AddressBookServiceTest → modules/addressbook/tests/Module/AddressBook/Service/ - Pages, templates, CSS, JS all in module directory All module PHP classes now live under MintyPHP\Module\<Name>\*, enforced by ModuleStructureContractTest::testModuleClassesUseModuleNamespace. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
101 lines
3.0 KiB
PHP
101 lines
3.0 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Address Book module manifest.
|
|
*
|
|
* Contributes routes, sidebar slots, search entry, user-edit aside action,
|
|
* layout context data, and session lifecycle.
|
|
*/
|
|
return [
|
|
'id' => 'addressbook',
|
|
'version' => '1.0.0',
|
|
'enabled_by_default' => false,
|
|
'load_order' => 10,
|
|
|
|
'routes' => [
|
|
// Keep canonical route stable without forcing a /index target to avoid Router redirect loops.
|
|
['path' => 'address-book', 'target' => 'address-book'],
|
|
['path' => 'address-book/data', 'target' => 'address-book/data'],
|
|
// Legacy aliases for existing bookmarks/links.
|
|
['path' => 'addressbook', 'target' => 'address-book'],
|
|
['path' => 'adressbook', 'target' => 'address-book'],
|
|
],
|
|
'public_paths' => [],
|
|
'container_registrars' => [
|
|
\MintyPHP\Module\AddressBook\AddressBookContainerRegistrar::class,
|
|
],
|
|
|
|
'ui_slots' => [
|
|
'aside.tab_panel' => [
|
|
[
|
|
'key' => 'people',
|
|
'label' => 'Address book',
|
|
'icon' => 'bi-people',
|
|
'href' => 'address-book',
|
|
'permission' => 'can_view_address_book',
|
|
'panel_template' => __DIR__ . '/templates/aside-people-panel.phtml',
|
|
'details_storage' => 'aside-people-tenant',
|
|
'details_open_active' => true,
|
|
'order' => 110,
|
|
],
|
|
],
|
|
'search.resource_item' => [
|
|
[
|
|
'key' => 'address-book',
|
|
'label' => 'Address book',
|
|
'base_url' => 'address-book',
|
|
'permission' => 'can_view_address_book',
|
|
'order' => 110,
|
|
],
|
|
],
|
|
'user.edit.aside_action' => [
|
|
[
|
|
'key' => 'address-book-view-user',
|
|
'type' => 'link',
|
|
'label' => 'View in address book',
|
|
'href' => 'address-book/view/{user_uuid}',
|
|
'permission' => 'can_view_address_book',
|
|
'order' => 110,
|
|
],
|
|
],
|
|
],
|
|
|
|
'authorization_policies' => [
|
|
\MintyPHP\Module\AddressBook\AddressBookAuthorizationPolicy::class,
|
|
],
|
|
|
|
'layout_capabilities' => [
|
|
'can_view_address_book' => 'addressbook.view',
|
|
],
|
|
|
|
'search_resources' => [
|
|
\MintyPHP\Module\AddressBook\Providers\AddressBookSearchProvider::class,
|
|
],
|
|
|
|
'asset_groups' => [
|
|
'address-book' => [
|
|
'modules/addressbook/css/pages/address-book-view.css',
|
|
],
|
|
],
|
|
'scheduler_jobs' => [],
|
|
|
|
'layout_context_providers' => [
|
|
\MintyPHP\Module\AddressBook\Providers\AddressBookLayoutProvider::class,
|
|
],
|
|
|
|
'session_providers' => [
|
|
\MintyPHP\Module\AddressBook\Providers\AddressBookSessionProvider::class,
|
|
],
|
|
|
|
'permissions' => [
|
|
[
|
|
'key' => 'address_book.view',
|
|
'description' => 'Can view address book',
|
|
'active' => true,
|
|
'is_system' => true,
|
|
],
|
|
],
|
|
|
|
'migrations_path' => 'db/updates',
|
|
];
|