aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/AdminTools/include
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/AdminTools/include')
-rw-r--r--plugins/AdminTools/include/MultiView.class.php338
-rw-r--r--plugins/AdminTools/include/events.inc.php360
-rw-r--r--plugins/AdminTools/include/index.php7
3 files changed, 0 insertions, 705 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
diff --git a/plugins/AdminTools/include/events.inc.php b/plugins/AdminTools/include/events.inc.php
deleted file mode 100644
index d11d59ba7..000000000
--- a/plugins/AdminTools/include/events.inc.php
+++ /dev/null
@@ -1,360 +0,0 @@
-<?php
-defined('ADMINTOOLS_PATH') or die('Hacking attempt!');
-
-/**
- * Add main toolbar to current page
- * @trigger loc_after_page_header
- */
-function admintools_add_public_controller()
-{
- global $MultiView, $conf, $template, $page, $user, $picture;
-
- if (script_basename() == 'picture' and empty($picture['current']))
- {
- return;
- }
-
- $url_root = get_root_url();
- $tpl_vars = array();
-
- if ($MultiView->is_admin())
- { // full options for admin
- $tpl_vars['U_SITE_ADMIN'] = $url_root . 'admin.php?page=';
- $tpl_vars['MULTIVIEW'] = $MultiView->get_data();
- $tpl_vars['USER'] = $MultiView->get_user();
- $tpl_vars['CURRENT_USERNAME'] = $user['id']==$conf['guest_id'] ? l10n('guest') : $user['username'];
- $tpl_vars['DELETE_CACHE'] = isset($conf['multiview_invalidate_cache']);
-
- if (($admin_lang = $MultiView->get_user_language()) !== false)
- {
- include_once(PHPWG_ROOT_PATH . 'include/functions_mail.inc.php');
- switch_lang_to($admin_lang);
- }
- }
- else if ($conf['AdminTools']['public_quick_edit'] and
- script_basename() == 'picture' and $picture['current']['added_by'] == $user['id']
- )
- { // only "edit" button for photo owner
- }
- else
- {
- return;
- }
-
- $tpl_vars['POSITION'] = $conf['AdminTools']['closed_position'];
- $tpl_vars['DEFAULT_OPEN'] = $conf['AdminTools']['default_open'];
- $tpl_vars['U_SELF'] = $MultiView->get_clean_url(true);
-
- // photo page
- if (script_basename() == 'picture')
- {
- $url_self = duplicate_picture_url();
- $tpl_vars['IS_PICTURE'] = true;
-
- // admin can add to caddie and set representattive
- if ($MultiView->is_admin())
- {
- $template->clear_assign(array(
- 'U_SET_AS_REPRESENTATIVE',
- 'U_PHOTO_ADMIN',
- 'U_CADDIE',
- ));
-
- $template->set_prefilter('picture', 'admintools_remove_privacy');
-
- $tpl_vars['U_CADDIE'] = add_url_params(
- $url_self,
- array('action'=>'add_to_caddie')
- );
-
- $query = '
-SELECT element_id FROM ' . CADDIE_TABLE . '
- WHERE element_id = ' . $page['image_id'] .'
-;';
- $tpl_vars['IS_IN_CADDIE'] = pwg_db_num_rows(pwg_query($query)) > 0;
-
- if (isset($page['category']))
- {
- $tpl_vars['CATEGORY_ID'] = $page['category']['id'];
-
- $tpl_vars['U_SET_REPRESENTATIVE'] = add_url_params(
- $url_self,
- array('action'=>'set_as_representative')
- );
-
- $tpl_vars['IS_REPRESENTATIVE'] = $page['category']['representative_picture_id'] == $page['image_id'];
- }
-
- $tpl_vars['U_ADMIN_EDIT'] = $url_root . 'admin.php?page=photo-' . $page['image_id']
- .(isset($page['category']) ? '&amp;cat_id=' . $page['category']['id'] : '');
- }
-
- $tpl_vars['U_DELETE'] = add_url_params(
- $url_self, array(
- 'delete'=>'',
- 'pwg_token'=>get_pwg_token()
- )
- );
-
- // gets tags (full available list is loaded in ajax)
- include_once(PHPWG_ROOT_PATH . 'admin/include/functions.php');
-
- $query = '
-SELECT id, name
- FROM '.IMAGE_TAG_TABLE.' AS it
- JOIN '.TAGS_TABLE.' AS t ON t.id = it.tag_id
- WHERE image_id = '.$page['image_id'].'
-;';
- $tag_selection = get_taglist($query);
-
- $tpl_vars['QUICK_EDIT'] = array(
- 'img' => $picture['current']['derivatives']['square']->get_url(),
- 'name' => $picture['current']['name'],
- 'comment' => $picture['current']['comment'],
- 'author' => $picture['current']['author'],
- 'level' => $picture['current']['level'],
- 'date_creation' => substr($picture['current']['date_creation'], 0, 10),
- 'date_creation_time' => substr($picture['current']['date_creation'], 11, 5),
- 'tag_selection' => $tag_selection,
- );
- }
- // album page (admin only)
- else if ($MultiView->is_admin() and @$page['section'] == 'categories' and isset($page['category']))
- {
- $url_self = duplicate_index_url();
-
- $tpl_vars['IS_CATEGORY'] = true;
- $tpl_vars['CATEGORY_ID'] = $page['category']['id'];
-
- $template->clear_assign(array(
- 'U_EDIT',
- 'U_CADDIE',
- ));
-
- $tpl_vars['U_ADMIN_EDIT'] = $url_root . 'admin.php?page=album-' . $page['category']['id'];
-
- if (!empty($page['items']))
- {
- $tpl_vars['U_CADDIE'] = add_url_params(
- $url_self,
- array('caddie'=>1)
- );
- }
-
- $tpl_vars['QUICK_EDIT'] = array(
- 'img' => null,
- 'name' => $page['category']['name'],
- 'comment' => $page['category']['comment'],
- );
-
- if (!empty($page['category']['representative_picture_id']))
- {
- $query = '
-SELECT * FROM '.IMAGES_TABLE.'
- WHERE id = '. $page['category']['representative_picture_id'] .'
-;';
- $image_infos = pwg_db_fetch_assoc(pwg_query($query));
-
- $tpl_vars['QUICK_EDIT']['img'] = DerivativeImage::get_one(IMG_SQUARE, $image_infos)->get_url();
- }
- }
-
-
- $template->assign(array(
- 'ADMINTOOLS_PATH' => './plugins/' . ADMINTOOLS_ID .'/',
- 'ato' => $tpl_vars,
- ));
-
- $template->set_filename('ato_public_controller', realpath(ADMINTOOLS_PATH . 'template/public_controller.tpl'));
- $template->parse('ato_public_controller');
-
- if ($MultiView->is_admin() && @$admin_lang !== false)
- {
- switch_lang_back();
- }
-}
-
-/**
- * Add main toolbar to current page
- * @trigger loc_after_page_header
- */
-function admintools_add_admin_controller()
-{
- global $MultiView, $conf, $template, $page, $user;
-
- $url_root = get_root_url();
- $tpl_vars = array();
-
- $tpl_vars['MULTIVIEW'] = $MultiView->get_data();
- $tpl_vars['DELETE_CACHE'] = isset($conf['multiview_invalidate_cache']);
- $tpl_vars['U_SELF'] = $MultiView->get_clean_admin_url(true);
-
- if (($admin_lang = $MultiView->get_user_language()) !== false)
- {
- include_once(PHPWG_ROOT_PATH . 'include/functions_mail.inc.php');
- switch_lang_to($admin_lang);
- }
-
- $template->assign(array(
- 'ADMINTOOLS_PATH' => './plugins/' . ADMINTOOLS_ID .'/',
- 'ato' => $tpl_vars,
- ));
-
- $template->set_filename('ato_admin_controller', realpath(ADMINTOOLS_PATH . 'template/admin_controller.tpl'));
- $template->parse('ato_admin_controller');
-
- if ($MultiView->is_admin() && @$admin_lang !== false)
- {
- switch_lang_back();
- }
-}
-
-function admintools_add_admin_controller_setprefilter()
-{
- global $template;
- $template->set_prefilter('header', 'admintools_admin_prefilter');
-}
-
-function admintools_admin_prefilter($content)
-{
- $search = '<a class="icon-brush tiptip" href="{$U_CHANGE_THEME}" title="{\'Switch to clear or dark colors for administration\'|translate}">{\'Change Admin Colors\'|translate}</a>';
- $replace = '<span id="ato_container"><a class="icon-cog-alt" href="#">{\'Tools\'|translate}</a></span>';
- return str_replace($search, $replace, $content);
-}
-
-/**
- * Disable privacy level switchbox
- */
-function admintools_remove_privacy($content)
-{
- $search = '{if $display_info.privacy_level and isset($available_permission_levels)}';
- $replace = '{if false}';
- return str_replace($search, $replace, $content);
-}
-
-/**
- * Save picture form
- * @trigger loc_begin_picture
- */
-function admintools_save_picture()
-{
- global $page, $conf, $MultiView, $user, $picture;
-
- if (!isset($_GET['delete']) and !isset($_POST['action']) and @$_POST['action'] != 'quick_edit')
- {
- return;
- }
-
- $query = 'SELECT added_by FROM '. IMAGES_TABLE .' WHERE id = '. $page['image_id'] .';';
- list($added_by) = pwg_db_fetch_row(pwg_query($query));
-
- if (!$MultiView->is_admin() and $user['id'] != $added_by)
- {
- return;
- }
-
- if (isset($_GET['delete']) and get_pwg_token()==@$_GET['pwg_token'])
- {
- include_once(PHPWG_ROOT_PATH . 'admin/include/functions.php');
-
- delete_elements(array($page['image_id']), true);
- invalidate_user_cache();
-
- if (isset($page['rank_of'][ $page['image_id'] ]))
- {
- redirect(
- duplicate_index_url(
- array(
- 'start' =>
- floor($page['rank_of'][ $page['image_id'] ] / $page['nb_image_page'])
- * $page['nb_image_page']
- )
- )
- );
- }
- else
- {
- redirect(make_index_url());
- }
- }
-
- if ($_POST['action'] == 'quick_edit')
- {
- include_once(PHPWG_ROOT_PATH . 'admin/include/functions.php');
-
- $data = array(
- 'name' => $_POST['name'],
- 'author' => $_POST['author'],
- );
-
- if ($MultiView->is_admin())
- {
- $data['level'] = $_POST['level'];
- }
-
- if ($conf['allow_html_descriptions'])
- {
- $data['comment'] = @$_POST['comment'];
- }
- else
- {
- $data['comment'] = strip_tags(@$_POST['comment']);
- }
-
- if (!empty($_POST['date_creation']) and strtotime($_POST['date_creation']) !== false)
- {
- $data['date_creation'] = $_POST['date_creation'] .' '. $_POST['date_creation_time'];
- }
-
- single_update(
- IMAGES_TABLE,
- $data,
- array('id' => $page['image_id'])
- );
-
- $tag_ids = array();
- if (!empty($_POST['tags']))
- {
- $tag_ids = get_tag_ids($_POST['tags']);
- }
- set_tags($tag_ids, $page['image_id']);
- }
-}
-
-/**
- * Save category form
- * @trigger loc_begin_index
- */
-function admintools_save_category()
-{
- global $page, $conf, $MultiView;
-
- if (!$MultiView->is_admin())
- {
- return;
- }
-
- if (@$_POST['action'] == 'quick_edit')
- {
- $data = array(
- 'name' => $_POST['name'],
- );
-
- if ($conf['allow_html_descriptions'])
- {
- $data['comment'] = @$_POST['comment'];
- }
- else
- {
- $data['comment'] = strip_tags(@$_POST['comment']);
- }
-
- single_update(
- CATEGORIES_TABLE,
- $data,
- array('id' => $page['category']['id'])
- );
-
- redirect(duplicate_index_url());
- }
-} \ No newline at end of file
diff --git a/plugins/AdminTools/include/index.php b/plugins/AdminTools/include/index.php
deleted file mode 100644
index ec6605317..000000000
--- a/plugins/AdminTools/include/index.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-$url = '../';
-header( 'Request-URI: '.$url );
-header( 'Content-Location: '.$url );
-header( 'Location: '.$url );
-exit();
-?>