ワンクリックで
add-event
Attach a new Omeka S event listener in Module.php. Invoke with a description, e.g. /add-event log media updates
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Attach a new Omeka S event listener in Module.php. Invoke with a description, e.g. /add-event log media updates
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Add a new route and controller action to this Omeka S module. Invoke with a short description, e.g. /add-route admin export endpoint
Add a new Laminas service (with factory) to this Omeka S module. Invoke with the service name, e.g. /add-service MyNewService
Run the full translation workflow — extract strings, update .po files, check for untranslated strings, and compile .mo files.
Package the module for distribution. Invoke with a version number, e.g. /release 1.2.3
Run the full CI verification pipeline locally — lint, unit tests, and 90% coverage check. Use after making changes to confirm they are ready.
| name | add-event |
| description | Attach a new Omeka S event listener in Module.php. Invoke with a description, e.g. /add-event log media updates |
Attach a new event listener for: $ARGUMENTS
Module::attachListeners()public function attachListeners(SharedEventManagerInterface $sharedEventManager)
{
// ... existing listeners ...
$sharedEventManager->attach(
'Omeka\Api\Adapter\MediaAdapter', // identifier (see table below)
'api.update.post', // event name
[$this, 'handleMyEvent']
);
}
Modulepublic function handleMyEvent(Event $event): void
{
$services = $this->getServiceLocator();
$logger = $services->get('Omeka\Logger');
/** @var \Omeka\Api\Request $request */
$request = $event->getParam('request');
/** @var \Omeka\Entity\Media $entity */
$entity = $event->getParam('entity'); // available on api.*.post events
/** @var \Omeka\Api\Response $response */
$response = $event->getParam('response'); // available on api.*.post events
// your logic here
}
| Identifier | Fires for |
|---|---|
Omeka\Api\Adapter\MediaAdapter | Media CRUD operations |
Omeka\Api\Adapter\ItemAdapter | Item CRUD operations |
Omeka\Controller\Admin\Media | Admin media pages |
Omeka\Controller\Admin\Item | Admin item pages |
Omeka\Controller\Site\Item | Public item pages |
* | All controllers (use sparingly) |
| Event | When | Key params |
|---|---|---|
api.hydrate.post | After entity hydration from request | request, entity |
api.create.post | After entity created | request, entity, response |
api.update.post | After entity updated | request, entity, response |
api.delete.pre | Before entity deleted | request, entity |
view.show.after | After show view rendered | view renderer as target |
view.layout | Every page layout | view renderer as target |
$event->getTarget() returns the view renderer on view.* events and the adapter on api.* events.view.* handlers: $view = $event->getTarget();if (!$this->isExeLearningFile($media)) return;$this->getServiceLocator() inside Module methods.