I think there is already a solution which handles kind of "Widgets".

Then you call <?= $this->action('my-widget-action', 'my-widget') ?> from
your view, you can have similar effect.
But the downside of this solution is performance.

--
Regards,
Vladas Diržys

On Wed, Jan 20, 2010 at 22:11, Paul <[email protected]> wrote:

>  I know the term Widget is a loaded concept, but was wondering what
> everyone's thoughts on the best way to create reusable
> Controls/Components/Widgets.
>
> To me a Widget is something you can drop into any controller and it would
> be able to handle rendering itself and working with Model.  At first this
> sounds very similar to a View Helper, which is how I have done this so far.
> The issue comes when you need to update the Model.
>
> Updating a model from the view is not really good practice or allowed in
> MVC.
>
> An example situation, may help paint the picture:
>
> A Widget photo selection widget.  This widget would fetch images from some
> Gallery Model.  The view part of the widget would show a thumbnail grid of
> the photos, with some sort of js lightbox modal.  When a user select one
> photo, it would via ajax, post back and add to the image to his favorite
> photos collection, which means we need to update a model.
>
>
> If this widget was just going to be in one system, you would just create a
> view helper, and the controller to handle the ajax.  If you want to make
> this ajax/post reusable you could create an Action Helper.  So to me seems
> like to be able to do this, you would need a way to create an encapsulate
> package that includes a View Helper and Action Helper.
>
> What we want to be able to do, similar to modules, is to just drop a widget
> in place.  It doesn't need to go as far as having to bootstrap itself like a
> module.  It can work like action helper / view helpers do with brokers.  The
> issue I have is that since the package is contained, you are going to add up
> with a bunch of helper paths which is going to really hurt performance if
> you have a bunch of widgets in your system.
>
> Thoughts? Ideas? I am thinking too much about this :)
>
>
>

Reply via email to