Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
| Total | |
0.00% |
0 / 59 |
|
0.00% |
0 / 1 |
CRAP | |
0.00% |
0 / 1 |
| acp_help_phpbb | |
0.00% |
0 / 57 |
|
0.00% |
0 / 1 |
306 | |
0.00% |
0 / 1 |
| main | |
0.00% |
0 / 57 |
|
0.00% |
0 / 1 |
306 | |||
| 1 | <?php |
| 2 | /** |
| 3 | * |
| 4 | * This file is part of the phpBB Forum Software package. |
| 5 | * |
| 6 | * @copyright (c) phpBB Limited <https://www.phpbb.com> |
| 7 | * @license GNU General Public License, version 2 (GPL-2.0) |
| 8 | * |
| 9 | * For full copyright and license information, please see |
| 10 | * the docs/CREDITS.txt file. |
| 11 | * |
| 12 | */ |
| 13 | |
| 14 | /** |
| 15 | * @ignore |
| 16 | */ |
| 17 | if (!defined('IN_PHPBB')) |
| 18 | { |
| 19 | exit; |
| 20 | } |
| 21 | |
| 22 | class acp_help_phpbb |
| 23 | { |
| 24 | var $u_action; |
| 25 | |
| 26 | function main($id, $mode) |
| 27 | { |
| 28 | global $config, $request, $template, $user, $phpbb_dispatcher, $phpbb_admin_path, $phpbb_root_path, $phpEx; |
| 29 | |
| 30 | if (!class_exists('phpbb_questionnaire_data_collector')) |
| 31 | { |
| 32 | include($phpbb_root_path . 'includes/questionnaire/questionnaire.' . $phpEx); |
| 33 | } |
| 34 | |
| 35 | $collect_url = "https://www.phpbb.com/statistics/send"; |
| 36 | |
| 37 | $this->tpl_name = 'acp_help_phpbb'; |
| 38 | $this->page_title = 'ACP_HELP_PHPBB'; |
| 39 | |
| 40 | $submit = ($request->is_set_post('submit')) ? true : false; |
| 41 | |
| 42 | $form_key = 'acp_help_phpbb'; |
| 43 | add_form_key($form_key); |
| 44 | $error = array(); |
| 45 | |
| 46 | if ($submit && !check_form_key($form_key)) |
| 47 | { |
| 48 | $error[] = $user->lang['FORM_INVALID']; |
| 49 | } |
| 50 | // Do not write values if there is an error |
| 51 | if (count($error)) |
| 52 | { |
| 53 | $submit = false; |
| 54 | } |
| 55 | |
| 56 | // generate a unique id if necessary |
| 57 | if (!isset($config['questionnaire_unique_id'])) |
| 58 | { |
| 59 | $install_id = unique_id(); |
| 60 | $config->set('questionnaire_unique_id', $install_id); |
| 61 | } |
| 62 | else |
| 63 | { |
| 64 | $install_id = $config['questionnaire_unique_id']; |
| 65 | } |
| 66 | |
| 67 | $collector = new phpbb_questionnaire_data_collector($install_id); |
| 68 | |
| 69 | // Add data provider |
| 70 | $collector->add_data_provider(new phpbb_questionnaire_php_data_provider()); |
| 71 | $collector->add_data_provider(new phpbb_questionnaire_system_data_provider()); |
| 72 | $collector->add_data_provider(new phpbb_questionnaire_phpbb_data_provider($config)); |
| 73 | |
| 74 | /** |
| 75 | * Event to modify ACP help phpBB page and/or listen to submit |
| 76 | * |
| 77 | * @event core.acp_help_phpbb_submit_before |
| 78 | * @var boolean submit Do we display the form or process the submission |
| 79 | * @since 3.2.0-RC2 |
| 80 | */ |
| 81 | $vars = array('submit'); |
| 82 | extract($phpbb_dispatcher->trigger_event('core.acp_help_phpbb_submit_before', compact($vars))); |
| 83 | |
| 84 | if ($submit) |
| 85 | { |
| 86 | $config->set('help_send_statistics', $request->variable('help_send_statistics', false)); |
| 87 | $response = $request->variable('send_statistics_response', ''); |
| 88 | |
| 89 | $config->set('help_send_statistics_time', time()); |
| 90 | |
| 91 | if (!empty($response)) |
| 92 | { |
| 93 | $decoded_response = json_decode(html_entity_decode($response, ENT_COMPAT), true); |
| 94 | |
| 95 | if ($decoded_response && isset($decoded_response['status']) && $decoded_response['status'] == 'ok') |
| 96 | { |
| 97 | trigger_error($user->lang('THANKS_SEND_STATISTICS') . adm_back_link($this->u_action)); |
| 98 | } |
| 99 | else |
| 100 | { |
| 101 | trigger_error($user->lang('FAIL_SEND_STATISTICS') . adm_back_link($this->u_action), E_USER_WARNING); |
| 102 | } |
| 103 | } |
| 104 | |
| 105 | trigger_error($user->lang('CONFIG_UPDATED') . adm_back_link($this->u_action)); |
| 106 | } |
| 107 | |
| 108 | $template->assign_vars(array( |
| 109 | 'U_COLLECT_STATS' => $collect_url, |
| 110 | 'S_COLLECT_STATS' => (!empty($config['help_send_statistics'])) ? true : false, |
| 111 | 'S_STATS' => $collector->get_data_raw(), |
| 112 | 'S_STATS_DATA' => json_encode($collector->get_data_raw()), |
| 113 | 'U_ACP_MAIN' => append_sid("{$phpbb_admin_path}index.$phpEx"), |
| 114 | 'U_ACTION' => $this->u_action, |
| 115 | // Pass earliest time we should try to send stats again |
| 116 | 'COLLECT_STATS_TIME' => intval($config['help_send_statistics_time']) + 86400, |
| 117 | )); |
| 118 | |
| 119 | $raw = $collector->get_data_raw(); |
| 120 | |
| 121 | foreach ($raw as $provider => $data) |
| 122 | { |
| 123 | if ($provider == 'install_id') |
| 124 | { |
| 125 | $data = array($provider => $data); |
| 126 | } |
| 127 | |
| 128 | $template->assign_block_vars('providers', array( |
| 129 | 'NAME' => htmlspecialchars($provider, ENT_COMPAT), |
| 130 | )); |
| 131 | |
| 132 | foreach ($data as $key => $value) |
| 133 | { |
| 134 | if (is_array($value)) |
| 135 | { |
| 136 | $value = utf8_wordwrap(serialize($value), 75, "\n", true); |
| 137 | } |
| 138 | |
| 139 | $template->assign_block_vars('providers.values', array( |
| 140 | 'KEY' => utf8_htmlspecialchars($key), |
| 141 | 'VALUE' => utf8_htmlspecialchars($value), |
| 142 | )); |
| 143 | } |
| 144 | } |
| 145 | } |
| 146 | } |