table_prefix . "portal_modules WHERE module_classname = '\\\board3\\\portal\\\modules\\\donation'"; $result = $this->db->sql_query($sql); while ($row = $this->db->sql_fetchrow($result)) { $this->config->set('board3_pay_default_' . $row['module_id'], 'EUR'); } $this->db->sql_freeresult($result); } public function convert_serialize_to_json() { if (!function_exists('obtain_portal_config')) { include ($this->phpbb_root_path . 'ext/board3/portal/includes/functions.' . $this->php_ext); define('PORTAL_CONFIG_TABLE', $this->table_prefix . 'portal_config'); } $portal_config = obtain_portal_config(); $sql = 'SELECT module_id, module_classname FROM ' . $this->table_prefix . 'portal_modules WHERE ' . $this->db->sql_in_set('module_classname', array( '\board3\portal\modules\calendar', '\board3\portal\modules\links', '\board3\portal\modules\main_menu', )); $result = $this->db->sql_query($sql); while ($row = $this->db->sql_fetchrow($result)) { switch ($row['module_classname']) { case '\board3\portal\modules\calendar': $setting = 'board3_calendar_events_' . $row['module_id']; break; case '\board3\portal\modules\links': $setting = 'board3_links_array_' . $row['module_id']; break; case '\board3\portal\modules\main_menu': $setting = 'board3_menu_array_' . $row['module_id']; break; default: // nothing } // Do not try to unserialize empty data if (empty($setting) || empty($portal_config[$setting])) { continue; } // Save json encoded setting set_portal_config($setting, json_encode($this->utf_unserialize($portal_config[$setting]))); } $this->db->sql_freeresult($result); } /** * Add correct module permissions to ACP modules */ public function add_module_permissions() { $sql = 'UPDATE ' . $this->table_prefix . "modules SET module_auth = 'ext_board3/portal && acl_a_manage_portal' WHERE module_basename = '\\\\board3\\\\portal\\\\acp\\\\portal_module' AND module_auth = 'acl_a_manage_portal'"; $this->db->sql_query($sql); } /** * Unserialize links array * * @param string $serial_str Serialized string * * @return array Unserialized string */ private function utf_unserialize($serial_str) { $out = preg_replace_callback('!s:(\d+):"(.*?)";!s', function ($result) { return 's:' . strlen($result[2]) . ":\"{$result[2]}\";"; }, $serial_str); return unserialize($out); } }