The best way to install Venne/Widgets is using Composer:
composer require venne/widgets:@devUse tag venne.widget:
services:
myControlFactory:
class: App\MyControlFactory
tags: [venne.widget: 'myWidget']class ExamplePresenter extends Nette\Application\UI\Presenter
{
use Venne\Widgets\WidgetsControlTrait;
}Template:
...
{control myWidget}
...Register some widgets
$widgetManager = new Venne\Widgets\WidgetManager($systemContainer);
$widgetManager->addWidget('widget1', function() {
return new MyComponent;
});
$widgetManager->addWidget('widget2', new MyFormFactory);
$widgetManager->addWidget('widget3', 'app.myFormFactory'); // service in system containerCreate instance and use it
if ($widgetManager->hasWidget('widget1')) {
$widget = $widgetManager->getWidget('widget1');
$widget->render();
}