public function scanForWidget() { $wraw = WidgetObject::loadAll(); $widgets = array(); foreach ($wraw as $w) { $widgets[$w->widget_name] = $w; } $a = method_invoke_all("widget", array(), true); foreach ($a as $k => $v) { $wo = new WidgetObject(); $wo->load($k); $wo->widget_name = $k; $wo->module_name = ""; $wo->callback = implode("::", $v["callback"]); $wo->permissions = $v["permissions"]; $wo->save(); if (isset($widgets[$k])) { unset($widgets[$k]); } } foreach ($widgets as $w) { $wo = new WidgetObject(); $wo->load($k); $wo->delete(); } }