aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/AdminTools/include/events.inc.php
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/AdminTools/include/events.inc.php')
-rw-r--r--plugins/AdminTools/include/events.inc.php312
1 files changed, 312 insertions, 0 deletions
diff --git a/plugins/AdminTools/include/events.inc.php b/plugins/AdminTools/include/events.inc.php
new file mode 100644
index 000000000..77c6a8c67
--- /dev/null
+++ b/plugins/AdminTools/include/events.inc.php
@@ -0,0 +1,312 @@
+<?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();
+ }
+}
+
+/**
+ * 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