Dashboard Widget: Access widget settings from controller / service
found a way to solve the problem.

feels a bit 'dirty' to iterate over all active widgets to get the one i need (in the service class). the other option is craft()-&gt;dashboard-&gt;getUserWidgetById(), but how the heck can i get the id of the widget by given type in a simple way?

how ever, this solution works:

controller method (requested through ajax)

public function actionUpdateWidget()
{
    $this-&gt;requireAjaxRequest();

    try
    {
        echo craft()-&gt;showcase_widget-&gt;get()-&gt;getBodyHtml();
    }
    catch (Exception $ex)
    {
        echo $ex-&gt;getMessage();
    }

    craft()-&gt;end();
}


service class

&lt;?

namespace craft;

use Exception;

class Showcase_WidgetService extends BaseApplicationComponent
{
    protected $widgetType = 'Showcase_Feedback';

    public function get()
    {
        $widget = null;
        $userWidgets = craft()-&gt;dashboard-&gt;getUserWidgets();

        foreach ($userWidgets as $userWidget)
        {
            if ($userWidget-&gt;type === $this-&gt;widgetType)
            {
                $widget = craft()-&gt;dashboard-&gt;populateWidgetType($userWidget);
                break;
            }
        }

        if (!$widget)
        {
             throw new Exception(craft::t('Widget not found'));
        }

        return $widget;
    }
}