aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/AdminTools/include/MultiView.class.php
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/AdminTools/include/MultiView.class.php')
-rw-r--r--plugins/AdminTools/include/MultiView.class.php338
1 files changed, 0 insertions, 338 deletions
diff --git a/plugins/AdminTools/include/MultiView.class.php b/plugins/AdminTools/include/MultiView.class.php
deleted file mode 100644
index 56240b811..000000000
--- a/plugins/AdminTools/include/MultiView.class.php
+++ /dev/null
@@ -1,338 +0,0 @@
-<?php
-defined('ADMINTOOLS_PATH') or die('Hacking attempt!');
-
-/**
- * Class managing multi views system
- */
-class MultiView
-{
- /** @var bool $is_admin */
- private $is_admin = false;
-
- /** @var array $data */
- private $data = array();
- private $data_url_params = array();
-
- /** @var array $user */
- private $user = array();
-
- /**
- * Constructor, load $data from session
- */
- function __construct()
- {
- global $conf;
-
- $this->data = array_merge(
- array(
- 'view_as' => 0,
- 'theme' => '',
- 'lang' => '',
- 'show_queries' => $conf['show_queries'],
- 'debug_l10n' => $conf['debug_l10n'],
- 'debug_template' => $conf['debug_template'],
- 'template_combine_files' => $conf['template_combine_files'],
- 'no_history' => false,
- ),
- pwg_get_session_var('multiview', array())
- );
-
- $this->data_url_params = array_keys($this->data);
- $this->data_url_params = array_map(create_function('$d', 'return "ato_".$d;'), $this->data_url_params);
- }
-
- /**
- * @return bool
- */
- public function is_admin()
- {
- return $this->is_admin;
- }
-
- /**
- * @return array
- */
- public function get_data()
- {
- return $this->data;
- }
-
- /**
- * @return array
- */
- public function get_user()
- {
- return $this->user;
- }
-
- /**
- * Save $data in session
- */
- private function save()
- {
- pwg_set_session_var('multiview', $this->data);
- }
-
- /**
- * Returns the current url minus MultiView params
- *
- * @param bool $with_amp - adds ? or & at the end of the url
- * @return string
- */
- public function get_clean_url($with_amp=false)
- {
- if (script_basename() == 'picture')
- {
- $url = duplicate_picture_url(array(), $this->data_url_params);
- }
- else if (script_basename() == 'index')
- {
- $url = duplicate_index_url(array(), $this->data_url_params);
- }
- else
- {
- $url = get_query_string_diff($this->data_url_params);
- }
-
- if ($with_amp)
- {
- $url.= strpos($url, '?')!==false ? '&' : '?';
- }
-
- return $url;
- }
-
- /**
- * Returns the current url minus MultiView params
- *
- * @param bool $with_amp - adds ? or & at the end of the url
- * @return string
- */
- public function get_clean_admin_url($with_amp=false)
- {
- $url = PHPWG_ROOT_PATH.'admin.php';
-
- $get = $_GET;
- unset($get['page'], $get['section'], $get['tag']);
- if (count($get) == 0 and !empty($_SERVER['QUERY_STRING']))
- {
- $url.= '?' . str_replace('&', '&amp;', $_SERVER['QUERY_STRING']);
- }
-
- if ($with_amp)
- {
- $url.= strpos($url, '?')!==false ? '&' : '?';
- }
-
- return $url;
- }
-
- /**
- * Triggered on "user_init", change current view depending of URL params.
- */
- public function user_init()
- {
- global $user, $conf;
-
- $this->is_admin = is_admin();
-
- $this->user = array(
- 'id' => $user['id'],
- 'username' => $user['username'],
- 'language' => $user['language'],
- 'theme' => $user['theme'],
- );
-
- // inactive on ws.php to allow AJAX admin tasks
- if ($this->is_admin && script_basename() != 'ws')
- {
- // show_queries
- if (isset($_GET['ato_show_queries']))
- {
- $this->data['show_queries'] = (bool)$_GET['ato_show_queries'];
- }
- $conf['show_queries'] = $this->data['show_queries'];
-
- if ($this->data['view_as'] == 0)
- {
- $this->data['view_as'] = $user['id'];
- }
- if (empty($this->data['lang']))
- {
- $this->data['lang'] = $user['language'];
- }
- if (empty($this->data['theme']))
- {
- $this->data['theme'] = $user['theme'];
- }
-
- // view_as
- if (!defined('IN_ADMIN'))
- {
- if (isset($_GET['ato_view_as']))
- {
- $this->data['view_as'] = (int)$_GET['ato_view_as'];
- }
- if ($this->data['view_as'] != $user['id'])
- {
- $user = build_user($this->data['view_as'], true);
- if (isset($_GET['ato_view_as']))
- {
- $this->data['theme'] = $user['theme'];
- $this->data['lang'] = $user['language'];
- }
- }
- }
-
- // theme
- if (isset($_GET['ato_theme']))
- {
- $this->data['theme'] = $_GET['ato_theme'];
- }
- $user['theme'] = $this->data['theme'];
-
- // lang
- if (isset($_GET['ato_lang']))
- {
- $this->data['lang'] = $_GET['ato_lang'];
- }
- $user['language'] = $this->data['lang'];
-
- // debug_l10n
- if (isset($_GET['ato_debug_l10n']))
- {
- $this->data['debug_l10n'] = (bool)$_GET['ato_debug_l10n'];
- }
- $conf['debug_l10n'] = $this->data['debug_l10n'];
-
- // debug_template
- if (isset($_GET['ato_debug_template']))
- {
- $this->data['debug_template'] = (bool)$_GET['ato_debug_template'];
- }
- $conf['debug_template'] = $this->data['debug_template'];
-
- // template_combine_files
- if (isset($_GET['ato_template_combine_files']))
- {
- $this->data['template_combine_files'] = (bool)$_GET['ato_template_combine_files'];
- }
- $conf['template_combine_files'] = $this->data['template_combine_files'];
-
- // no_history
- if (isset($_GET['ato_no_history']))
- {
- $this->data['no_history'] = (bool)$_GET['ato_no_history'];
- }
- if ($this->data['no_history'])
- {
- add_event_handler('pwg_log_allowed', create_function('', 'return false;'));
- }
-
- $this->save();
- }
- }
-
- /**
- * Returns the language of the current user if different from the current language
- * false otherwise
- */
- function get_user_language()
- {
- if (isset($this->user['language']) && isset($this->data['lang'])
- && $this->user['language'] != $this->data['lang']
- )
- {
- return $this->user['language'];
- }
- return false;
- }
-
- /**
- * Triggered on "init", in order to clean template files (not initialized on "user_init")
- */
- public function init()
- {
- if ($this->is_admin)
- {
- if (isset($_GET['ato_purge_template']))
- {
- global $template;
- $template->delete_compiled_templates();
- FileCombiner::clear_combined_files();
- }
- }
- }
-
- /**
- * Mark browser session cache for deletion
- */
- public static function invalidate_cache()
- {
- global $conf;
- conf_update_param('multiview_invalidate_cache', true, true);
- }
-
- /**
- * Register custom API methods
- */
- public static function register_ws($arr)
- {
- $service = &$arr[0];
-
- $service->addMethod(
- 'multiView.getData',
- array('MultiView', 'ws_get_data'),
- array(),
- 'AdminTools private method.',
- null,
- array('admin_only' => true, 'hidden' => true)
- );
- }
-
- /**
- * API method
- * Return full list of users, themes and languages
- */
- public static function ws_get_data($params)
- {
- global $conf;
-
- // get users
- $query = '
-SELECT
- '.$conf['user_fields']['id'].' AS id,
- '.$conf['user_fields']['username'].' AS username,
- status
-FROM '.USERS_TABLE.' AS u
- INNER JOIN '.USER_INFOS_TABLE.' AS i
- ON '.$conf['user_fields']['id'].' = user_id
- ORDER BY CONVERT('.$conf['user_fields']['username'].', CHAR)
-;';
- $out['users'] = array_from_query($query);
-
- // get themes
- include_once(PHPWG_ROOT_PATH.'admin/include/themes.class.php');
- $themes = new themes();
- foreach (array_keys($themes->db_themes_by_id) as $theme)
- {
- if (!empty($theme))
- {
- $out['themes'][] = $theme;
- }
- }
-
- // get languages
- foreach (get_languages() as $code => $name)
- {
- $out['languages'][] = array(
- 'id' => $code,
- 'name' => $name,
- );
- }
-
- conf_delete_param('multiview_invalidate_cache');
-
- return $out;
- }
-} \ No newline at end of file