public function getIndex()
 {
     $database_structure = $this->_db_messages();
     $search_data = PageSearchData::orderBy('updated_at', 'asc')->first();
     if (!empty($search_data)) {
         $last_indexed_search = DateTimeHelper::display($search_data->updated_at);
     } else {
         $last_indexed_search = false;
     }
     $update = Auth::action('system.update');
     if ($update) {
         $settings = Setting::where('hidden', '=', '0')->orWhere('editable', '=', 1)->get();
     } else {
         $settings = Setting::where('hidden', '=', '0')->get();
     }
     foreach ($settings as $k => $setting) {
         if (!$update) {
             $settings[$k]->editable = 0;
         }
         $note = '';
         switch ($setting->name) {
             case 'frontend.language':
                 $custom = new \stdClass();
                 $custom->selected = $setting->value;
                 $custom->options = Language::selectArray();
                 break;
             case 'frontend.theme':
                 $custom = new \stdClass();
                 $custom->selected = $setting->value;
                 $custom->options = Theme::selectArray();
                 break;
             case 'admin.default_template':
                 $custom = new \stdClass();
                 $custom->selected = $setting->value;
                 $custom->options = Theme::get_template_list($setting->value);
                 break;
             case 'frontend.language_fallback':
             case 'frontend.strong_tags':
             case 'admin.advanced_permissions':
             case 'admin.publishing':
                 $custom = new \stdClass();
                 $custom->selected = $setting->value;
                 $custom->options = [1 => 'On', 0 => 'Off'];
                 break;
             case 'admin.title_block':
                 $custom = new \stdClass();
                 $custom->selected = $setting->value;
                 $custom->options = Block::nameToNameArray();
                 break;
             case 'site.pages':
                 $total_pages = Page::get_total();
                 $note = 'set to 0 for no limit - currently ' . $total_pages . ' normal pages in use';
                 break;
             case 'site.groups':
                 $total_pages = Page::get_total(true);
                 $note = 'set to 0 for no limit on group pages - currently ' . $total_pages . ' pages in use';
                 break;
             case 'site.secure_folders':
                 $note = 'list of comma separated folders, will copy files to secure folders and vice versa on update';
                 break;
             default:
                 $custom = null;
         }
         if (empty($custom)) {
             $settings[$k]->value = $setting->value;
         } else {
             $settings[$k]->value = $custom;
         }
         $settings[$k]->note = !empty($note) ? $note : null;
         $settings[$k]->name = str_replace('.', $this->dot_replace, $setting->name);
     }
     $upgrade = new \stdClass();
     $upgrade->from = config('coaster::site.version');
     $upgrade->to = Setting::latestTag();
     $upgrade->required = version_compare(config('coaster::site.version'), Setting::latestTag(), '<');
     $this->layoutData['content'] = View::make('coaster::pages.system', array('database_structure' => $database_structure, 'last_indexed_search' => $last_indexed_search, 'site_details' => $settings, 'can_index_search' => Auth::action('system.search'), 'can_validate' => Auth::action('system.validate-db'), 'can_upgrade' => Auth::action('system.upgrade'), 'upgrade' => $upgrade));
 }