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\GetGlobalButtonEvent;
16:
17: /**
18: * Class ContainerGlobalButtonCallbackListener.
19: *
20: * Handler for the global buttons.
21: *
22: * @package DcGeneral\Contao\Callback
23: */
24: class ContainerGlobalButtonCallbackListener extends AbstractReturningCallbackListener
25: {
26: /**
27: * Retrieve the arguments for the callback.
28: *
29: * @param GetGlobalButtonEvent $event The event being emitted.
30: *
31: * @return array
32: */
33: public function getArgs($event)
34: {
35: return array(
36: $event->getHref(),
37: $event->getLabel(),
38: $event->getTitle(),
39: $event->getClass(),
40: $event->getAttributes(),
41: $event->getEnvironment()->getDataDefinition()->getName(),
42: $event->getEnvironment()->getRootIds()
43: );
44: }
45:
46: /**
47: * Update the event with the information returned by the callback.
48: *
49: * @param GetGlobalButtonEvent $event The event being emitted.
50: *
51: * @param string $value The HTML representation of the button.
52: *
53: * @return void
54: */
55: public function update($event, $value)
56: {
57: if (is_null($value))
58: {
59: return;
60: }
61:
62: $event->setHtml($value);
63: $event->stopPropagation();
64: }
65: }
66: