public function filter(WidgetInfo $widget, array &$arguments)
 {
     if ($widget->isA('GroupElement') && isset($arguments['items'])) {
         $newItems = array();
         foreach ($arguments['items'] as $item) {
             if (!is_array($item)) {
                 throw new InvalidGroupElementItemException();
             } else {
                 $newItems[] = $this->widgetFactory->create($item);
             }
         }
         $arguments['items'] = $newItems;
     }
 }
示例#2
0
    return var_export($vars, true);
}, 'template' => <<<PHP
\$obj = new OOUI\\\$class( \$args );
\$wgOut->addHTML( \$obj->toString() );
PHP
), 'javascript' => array('encodeVars' => function (array $vars) {
    return FormatJson::encode($vars, true);
}, 'template' => <<<JS
var widget = new OO.ui.\$class( \$args );
\$( 'body' ).append( widget.\$element );
JS
));
$container['widgetRepository'] = function ($c) {
    return new WidgetRepository($c['classMap']);
};
$container['widgetFactory'] = function ($c) {
    $factory = new WidgetFactory($c['widgetRepository']);
    // Some filters want a WidgetFactory
    $factory->addFilter(new GroupElementFilter($factory));
    return $factory;
};
$container['templating'] = function ($c) {
    $templating = new SimpleLightNCandy(__DIR__ . '/../templates/');
    $templating->addHelper('msg', function (array $args, array $named) {
        $message = null;
        $str = array_shift($args);
        return wfMessage($str)->params($args)->text();
    });
    return $templating;
};
return $container;