protected function RegisterFeatures()
 {
     // Get the name of the default from the config
     $config_default = OnePanelConfig::GetDefaultHomePageLayout();
     if (!isset($this->features['HomePageLayoutFeature'])) {
         if (!is_object($config_default)) {
             return false;
         }
         $config_default_name = $config_default->GetName();
         $feature = new HomePageLayoutFeature();
         $this->features['HomePageLayoutFeature'] =& $feature;
         $feature->SetAvailableLayouts(OnePanelConfig::GetHomePageLayouts());
         $feature->SetDefaultLayout($config_default_name);
     } else {
         $this->features['HomePageLayoutFeature']->SetAvailableLayouts(OnePanelConfig::GetHomePageLayouts());
         // Check for file path changes in the default config layout rectify if we need to.
         $our_default = $this->features['HomePageLayoutFeature']->GetDefaultLayout();
         $config_layouts = OnePanelConfig::GetHomePageLayouts();
         $config_equiv = $config_layouts[$our_default->GetName()];
         if (!is_object($config_equiv)) {
             return false;
         }
         if ($config_equiv->GetLocation() != $our_default->GetLocation()) {
             $this->features['HomePageLayoutFeature']->SetDefaultLayout($config_default->GetName());
         }
     }
     if (OnePanelConfig::FeatureIsEnabled('HomePageLayoutFeature')) {
         $this->features['HomePageLayoutFeature']->Enable();
         // Enable the feature
         $this->enabled_features[] = 'HomePageLayoutFeature';
     } else {
         $this->features['HomePageLayoutFeature']->Disable();
         // Disable the feature
     }
 }