/** * Enter description here... * * @param string $class Feg_AbstractView * @param string $view_label ID * @return Feg_AbstractView instance */ static function getView($view_label, Feg_AbstractViewModel $defaults = null) { $active_worker = FegApplication::getActiveWorker(); if (is_null(self::$views)) { self::_init(); } if (self::exists($view_label)) { $model = self::$views[$view_label]; return self::unserializeAbstractView($model); } else { // See if the worker has their own saved prefs @($prefs = unserialize(DAO_WorkerPref::get($active_worker->id, 'view' . $view_label))); // Sanitize if (!empty($prefs) && $prefs instanceof Feg_AbstractViewModel && !empty($prefs->class_name)) { if (!class_exists($prefs->class_name)) { DAO_WorkerPref::delete($active_worker->id, 'view' . $view_label); } $prefs = null; } // If no worker prefsd, check if we're passed defaults if (!$prefs instanceof Feg_AbstractViewModel && !empty($defaults)) { $prefs = $defaults; } // Create a default view if it doesn't exist if ($prefs instanceof Feg_AbstractViewModel) { if (!empty($prefs->class_name) && class_exists($prefs->class_name)) { $view = new $prefs->class_name(); $view->id = $view_label; if (!empty($prefs->view_columns)) { $view->view_columns = $prefs->view_columns; } if (!empty($prefs->renderLimit)) { $view->renderLimit = $prefs->renderLimit; } if (null !== $prefs->renderSortBy) { $view->renderSortBy = $prefs->renderSortBy; } if (null !== $prefs->renderSortAsc) { $view->renderSortAsc = $prefs->renderSortAsc; } self::setView($view_label, $view); return $view; } } } return null; }