1: <?php
2: /**
3: * PHP version 5
4: * @package generalDriver
5: * @author Christian Schiffler <c.schiffler@cyberspectrum.de>
6: * @author Stefan Heimes <stefan_heimes@hotmail.com>
7: * @author Tristan Lins <tristan.lins@bit3.de>
8: * @copyright The MetaModels team.
9: * @license LGPL.
10: * @filesource
11: */
12:
13: namespace DcGeneral\Contao\Callback;
14:
15: use DcGeneral\Contao\View\Contao2BackendView\Event\GetOperationButtonEvent;
16:
17: /**
18: * Class ModelOperationButtonCallbackListener.
19: *
20: * Handle the button_callbacks.
21: *
22: * @package DcGeneral\Contao\Callback
23: */
24: class ModelOperationButtonCallbackListener extends AbstractReturningCallbackListener
25: {
26: /**
27: * Retrieve the arguments for the callback.
28: *
29: * @param GetOperationButtonEvent $event The event being emitted.
30: *
31: * @return array
32: */
33: public function getArgs($event)
34: {
35: $attributes = $event->getAttributes();
36:
37: return array(
38: $event->getModel(),
39: $event->getHref(),
40: $event->getLabel(),
41: $event->getTitle(),
42: isset($attributes['icon']) ? $attributes['icon'] : null,
43: $event->getAttributes(),
44: $event->getEnvironment()->getDataDefinition()->getName(),
45: $event->getEnvironment()->getRootIds(),
46: $event->getChildRecordIds(),
47: $event->getCircularReference(),
48: $event->getPrevious()->getId(),
49: $event->getNext()->getId()
50: );
51: }
52:
53: /**
54: * Set the value in the event.
55: *
56: * @param GetOperationButtonEvent $event The event being emitted.
57: *
58: * @param string $value The value returned by the callback.
59: *
60: * @return void
61: */
62: public function update($event, $value)
63: {
64: if (is_null($value))
65: {
66: return;
67: }
68:
69: $event->setHtml($value);
70: $event->stopPropagation();
71: }
72: }
73: