Create event for directory_item hook
This commit is contained in:
parent
20a1d22620
commit
88929bb307
5 changed files with 20 additions and 3 deletions
|
@ -63,6 +63,7 @@ final class HookEventBridge
|
|||
ArrayFilterEvent::DETECT_LANGUAGES => 'detect_languages',
|
||||
ArrayFilterEvent::RENDER_LOCATION => 'render_location',
|
||||
ArrayFilterEvent::ITEM_PHOTO_MENU => 'item_photo_menu',
|
||||
ArrayFilterEvent::DIRECTORY_ITEM => 'directory_item',
|
||||
ArrayFilterEvent::CONTACT_PHOTO_MENU => 'contact_photo_menu',
|
||||
ArrayFilterEvent::PROFILE_SIDEBAR_ENTRY => 'profile_sidebar_enter',
|
||||
ArrayFilterEvent::PROFILE_SIDEBAR => 'profile_sidebar',
|
||||
|
@ -136,6 +137,7 @@ final class HookEventBridge
|
|||
ArrayFilterEvent::DETECT_LANGUAGES => 'onArrayFilterEvent',
|
||||
ArrayFilterEvent::RENDER_LOCATION => 'onArrayFilterEvent',
|
||||
ArrayFilterEvent::ITEM_PHOTO_MENU => 'onArrayFilterEvent',
|
||||
ArrayFilterEvent::DIRECTORY_ITEM => 'onArrayFilterEvent',
|
||||
ArrayFilterEvent::CONTACT_PHOTO_MENU => 'onArrayFilterEvent',
|
||||
ArrayFilterEvent::PROFILE_SIDEBAR_ENTRY => 'onProfileSidebarEntryEvent',
|
||||
ArrayFilterEvent::PROFILE_SIDEBAR => 'onArrayFilterEvent',
|
||||
|
|
|
@ -76,6 +76,8 @@ final class ArrayFilterEvent extends Event
|
|||
|
||||
public const ITEM_PHOTO_MENU = 'friendica.data.item_photo_menu';
|
||||
|
||||
public const DIRECTORY_ITEM = 'friendica.data.directory_item';
|
||||
|
||||
public const CONTACT_PHOTO_MENU = 'friendica.data.contact_photo_menu';
|
||||
|
||||
public const PROFILE_SIDEBAR_ENTRY = 'friendica.data.profile_sidebar_entry';
|
||||
|
|
|
@ -15,6 +15,7 @@ use Friendica\Core\Hook;
|
|||
use Friendica\Core\Renderer;
|
||||
use Friendica\Core\Search;
|
||||
use Friendica\DI;
|
||||
use Friendica\Event\ArrayFilterEvent;
|
||||
use Friendica\Model;
|
||||
use Friendica\Model\Profile;
|
||||
use Friendica\Network\HTTPException;
|
||||
|
@ -161,13 +162,22 @@ class Directory extends BaseModule
|
|||
|
||||
];
|
||||
|
||||
$hook = ['contact' => $contact, 'entry' => $entry];
|
||||
$eventDispatcher = DI::eventDispatcher();
|
||||
|
||||
Hook::callAll('directory_item', $hook);
|
||||
$hook_data = [
|
||||
'contact' => $contact,
|
||||
'entry' => $entry,
|
||||
];
|
||||
|
||||
$hook_data = $eventDispatcher->dispatch(
|
||||
new ArrayFilterEvent(ArrayFilterEvent::DIRECTORY_ITEM, $hook_data),
|
||||
)->getArray();
|
||||
|
||||
$entry = $hook_data['entry'] ?? $entry;
|
||||
|
||||
unset($profile);
|
||||
unset($location);
|
||||
|
||||
return $hook['entry'];
|
||||
return $entry;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -52,6 +52,7 @@ class HookEventBridgeTest extends TestCase
|
|||
ArrayFilterEvent::DETECT_LANGUAGES => 'onArrayFilterEvent',
|
||||
ArrayFilterEvent::RENDER_LOCATION => 'onArrayFilterEvent',
|
||||
ArrayFilterEvent::ITEM_PHOTO_MENU => 'onArrayFilterEvent',
|
||||
ArrayFilterEvent::DIRECTORY_ITEM => 'onArrayFilterEvent',
|
||||
ArrayFilterEvent::CONTACT_PHOTO_MENU => 'onArrayFilterEvent',
|
||||
ArrayFilterEvent::PROFILE_SIDEBAR_ENTRY => 'onProfileSidebarEntryEvent',
|
||||
ArrayFilterEvent::PROFILE_SIDEBAR => 'onArrayFilterEvent',
|
||||
|
@ -466,6 +467,7 @@ class HookEventBridgeTest extends TestCase
|
|||
[ArrayFilterEvent::DETECT_LANGUAGES, 'detect_languages'],
|
||||
[ArrayFilterEvent::RENDER_LOCATION, 'render_location'],
|
||||
[ArrayFilterEvent::ITEM_PHOTO_MENU, 'item_photo_menu'],
|
||||
[ArrayFilterEvent::DIRECTORY_ITEM, 'directory_item'],
|
||||
[ArrayFilterEvent::CONTACT_PHOTO_MENU, 'contact_photo_menu'],
|
||||
[ArrayFilterEvent::PROFILE_SIDEBAR, 'profile_sidebar'],
|
||||
[ArrayFilterEvent::PROFILE_TABS, 'profile_tabs'],
|
||||
|
|
|
@ -49,6 +49,7 @@ class ArrayFilterEventTest extends TestCase
|
|||
[ArrayFilterEvent::DETECT_LANGUAGES, 'friendica.data.detect_languages'],
|
||||
[ArrayFilterEvent::RENDER_LOCATION, 'friendica.data.render_location'],
|
||||
[ArrayFilterEvent::ITEM_PHOTO_MENU, 'friendica.data.item_photo_menu'],
|
||||
[ArrayFilterEvent::DIRECTORY_ITEM, 'friendica.data.directory_item'],
|
||||
[ArrayFilterEvent::CONTACT_PHOTO_MENU, 'friendica.data.contact_photo_menu'],
|
||||
[ArrayFilterEvent::PROFILE_SIDEBAR_ENTRY, 'friendica.data.profile_sidebar_entry'],
|
||||
[ArrayFilterEvent::PROFILE_SIDEBAR, 'friendica.data.profile_sidebar'],
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue