Ensure headers are set correctly for json output
[civicrm-core.git] / CRM / Admin / Page / Admin.php
CommitLineData
6a488035
TO
1<?php
2/*
3 +--------------------------------------------------------------------+
06b69b18 4 | CiviCRM version 4.5 |
6a488035 5 +--------------------------------------------------------------------+
06b69b18 6 | Copyright CiviCRM LLC (c) 2004-2014 |
6a488035
TO
7 +--------------------------------------------------------------------+
8 | This file is a part of CiviCRM. |
9 | |
10 | CiviCRM is free software; you can copy, modify, and distribute it |
11 | under the terms of the GNU Affero General Public License |
12 | Version 3, 19 November 2007 and the CiviCRM Licensing Exception. |
13 | |
14 | CiviCRM is distributed in the hope that it will be useful, but |
15 | WITHOUT ANY WARRANTY; without even the implied warranty of |
16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
17 | See the GNU Affero General Public License for more details. |
18 | |
19 | You should have received a copy of the GNU Affero General Public |
20 | License and the CiviCRM Licensing Exception along |
21 | with this program; if not, contact CiviCRM LLC |
22 | at info[AT]civicrm[DOT]org. If you have questions about the |
23 | GNU Affero General Public License or the licensing of CiviCRM, |
24 | see the CiviCRM license FAQ at http://civicrm.org/licensing |
25 +--------------------------------------------------------------------+
26*/
27
28/**
29 *
30 * @package CRM
06b69b18 31 * @copyright CiviCRM LLC (c) 2004-2014
6a488035
TO
32 * $Id$
33 *
34 */
35
36/**
37 * Page for displaying Administer CiviCRM Control Panel
38 */
39class CRM_Admin_Page_Admin extends CRM_Core_Page {
e0ef6999
EM
40 /**
41 * @return string
42 */
6a488035
TO
43 function run() {
44 $errorMessage = '';
45 // ensure that all CiviCRM tables are InnoDB, else abort
46 // this is not a very fast operation, so we do it randomly 10% of the times
47 // but we do it for most / all tables
48 // http://bugs.mysql.com/bug.php?id=43664
49 if (rand(1, 10) == 3 &&
50 CRM_Core_DAO::isDBMyISAM(150)
51 ) {
52 $errorMessage = ts('Your database is configured to use the MyISAM database engine. CiviCRM requires InnoDB. You will need to convert any MyISAM tables in your database to InnoDB. Using MyISAM tables will result in data integrity issues.');
53 CRM_Core_Session::setStatus($errorMessage, ts('Warning'), "alert");
54 }
55
56 if (!CRM_Utils_System::isDBVersionValid($errorMessage)) {
42daf119 57 CRM_Core_Session::setStatus($errorMessage, ts('Warning'), "alert", array('expires' => 0));
6a488035
TO
58 }
59
60 $groups = array('Customize Data and Screens' => ts('Customize Data and Screens'),
61 'Communications' => ts('Communications'),
62 'Localization' => ts('Localization'),
63 'Users and Permissions' => ts('Users and Permissions'),
64 'System Settings' => ts('System Settings'),
65 );
66
67 $config = CRM_Core_Config::singleton();
68 if (in_array('CiviContribute', $config->enableComponents)) {
69 $groups['CiviContribute'] = ts('CiviContribute');
70 }
71
72 if (in_array('CiviMember', $config->enableComponents)) {
73 $groups['CiviMember'] = ts('CiviMember');
74 }
75
76 if (in_array('CiviEvent', $config->enableComponents)) {
77 $groups['CiviEvent'] = ts('CiviEvent');
78 }
79
80 if (in_array('CiviMail', $config->enableComponents)) {
81 $groups['CiviMail'] = ts('CiviMail');
82 }
83
84 if (in_array('CiviCase', $config->enableComponents)) {
85 $groups['CiviCase'] = ts('CiviCase');
86 }
87
88 if (in_array('CiviReport', $config->enableComponents)) {
89 $groups['CiviReport'] = ts('CiviReport');
90 }
91
92 if (in_array('CiviCampaign', $config->enableComponents)) {
93 $groups['CiviCampaign'] = ts('CiviCampaign');
94 }
95
96 $values = CRM_Core_Menu::getAdminLinks();
97
98 $this->_showHide = new CRM_Core_ShowHideBlocks();
99 foreach ($groups as $group => $title) {
100 $groupId = str_replace(' ', '_', $group);
8ef12e64 101
6a488035
TO
102 $this->_showHide->addShow("id_{$groupId}_show");
103 $this->_showHide->addHide("id_{$groupId}");
104 $v = CRM_Core_ShowHideBlocks::links($this, $groupId, '', '', FALSE);
105 if (isset($values[$group])) {
106 $adminPanel[$groupId] = $values[$group];
107 $adminPanel[$groupId]['show'] = $v['show'];
108 $adminPanel[$groupId]['hide'] = $v['hide'];
109 $adminPanel[$groupId]['title'] = $title;
110 } else {
111 $adminPanel[$groupId] = array();
112 $adminPanel[$groupId]['show'] = '';
113 $adminPanel[$groupId]['hide'] = '';
114 $adminPanel[$groupId]['title'] = $title;
115 }
116 }
117 $this->assign('adminPanel', $adminPanel);
118 $this->_showHide->addToTemplate();
119 return parent::run();
120 }
121}
122