public function __construct(CController $controller, CFormModel $formModel, $extraHeaderContent = null)
 {
     assert('is_string($extraHeaderContent) || $extraHeaderContent == null');
     $loginview = new LoginView($controller, $formModel, $extraHeaderContent);
     $loginview->setCssClasses(array('clearfix', 'background-' . mt_rand(1, 6)));
     $flashMessageView = new FlashMessageView($controller);
     $gridView = new GridView(3, 1);
     $gridView->setView($flashMessageView, 0, 0);
     $gridView->setView($loginview, 1, 0);
     $gridView->setView(new FooterView(), 2, 0);
     $gridView->setCssClasses(array('login-container'));
     $this->registerScripts();
     parent::__construct($gridView);
 }
 /**
  * Given a contained view, construct the gridview
  * used by the zurmo page view for errors.
  * @param View $containedView
  */
 public static function makeErrorViewForCurrentUser(CController $controller, View $containedView)
 {
     $aVerticalGridView = new GridView(1, 1);
     $aVerticalGridView->setCssClasses(array('AppNavigation', 'clearfix'));
     //navigation left column
     $aVerticalGridView->setView(static::makeMenuView($controller), 0, 0);
     $horizontalGridView = new GridView(2, 1);
     $horizontalGridView->setCssClasses(array('AppContainer', 'clearfix'));
     $horizontalGridView->setView($aVerticalGridView, 0, 0);
     $containedView->setCssClasses(array_merge($containedView->getCssClasses(), array('AppContent', 'ErrorView')));
     //the app itself to the right
     $horizontalGridView->setView($containedView, 1, 0);
     $verticalGridView = new GridView(3, 1);
     $verticalGridView->setView(static::makeHeaderView($controller), 0, 0);
     $verticalGridView->setView($horizontalGridView, 1, 0);
     $verticalGridView->setView(static::makeFooterView(), 2, 0);
     return $verticalGridView;
 }