-
Notifications
You must be signed in to change notification settings - Fork 2
/
edittags.php
109 lines (102 loc) · 3.68 KB
/
edittags.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
<?php
/**
*
* @package mahara
* @subpackage core
* @author Catalyst IT Ltd
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL version 3 or later
* @copyright For copyright information on Mahara, please see the README file distributed with this software.
*
*/
define('INTERNAL', 1);
define('MENUITEM', 'myportfolio');
require('init.php');
require_once('pieforms/pieform.php');
define('TITLE', get_string('edittags'));
$tags = get_my_tags();
if ($tag = param_variable('tag', null)) {
$edittagform = pieform(array(
'name' => 'edit_tag',
'elements' => array(
'tagname' => array(
'type' => 'text',
'size' => 30,
'title' => get_string('name'),
'defaultvalue' => $tag,
'rules' => array('required' => true),
),
'submit' => array(
'type' => 'submit',
'value' => get_string('submit'),
),
),
));
$deletetagform = pieform(array(
'name' => 'delete_tag',
'renderer' => 'oneline',
'elements' => array(
'submit' => array(
'type' => 'submit',
'value' => get_string('delete'),
'confirm' => get_string('confirmdeletetag'),
),
),
));
}
$smarty = smarty();
$smarty->assign('PAGEHEADING', TITLE);
$smarty->assign('tags', $tags);
if ($tag) {
$smarty->assign('tag', $tag);
$smarty->assign('tagsearchurl', get_config('wwwroot') . 'tags.php?tag=' . urlencode($tag));
$smarty->assign('edittagform', $edittagform);
$smarty->assign('deletetagform', $deletetagform);
}
$smarty->display('edittags.tpl');
function edit_tag_submit(Pieform $form, $values) {
global $SESSION, $USER, $tag;
if (!$userid = $USER->get('id')) {
redirect(get_config('wwwroot') . 'edittags.php?tag=' . urlencode($tag));
}
if ($values['tagname'] == $tag) {
redirect(get_config('wwwroot') . 'edittags.php?tag=' . urlencode($tag));
}
db_begin();
execute_sql(
"UPDATE {view_tag} SET tag = ? WHERE tag = ? AND \"view\" IN (SELECT id FROM {view} WHERE \"owner\" = ?)",
array($values['tagname'], $tag, $userid)
);
execute_sql(
"UPDATE {collection_tag} SET tag = ? WHERE tag = ? AND \"collection\" IN (SELECT id FROM {collection} WHERE \"owner\" = ?)",
array($values['tagname'], $tag, $userid)
);
execute_sql(
"UPDATE {artefact_tag} SET tag = ? WHERE tag = ? AND artefact IN (SELECT id FROM {artefact} WHERE \"owner\" = ?)",
array($values['tagname'], $tag, $userid)
);
db_commit();
$SESSION->add_ok_msg(get_string('tagupdatedsuccessfully'));
redirect(get_config('wwwroot') . 'tags.php?tag=' . urlencode($values['tagname']));
}
function delete_tag_submit(Pieform $form, $values) {
global $SESSION, $USER, $tag;
if (!$userid = $USER->get('id')) {
redirect(get_config('wwwroot') . 'edittags.php?tag=' . urlencode($tag));
}
db_begin();
execute_sql(
"DELETE FROM {view_tag} WHERE tag = ? AND view IN (SELECT id FROM {view} WHERE \"owner\" = ?)",
array($tag, $userid)
);
execute_sql(
"DELETE FROM {collection_tag} WHERE tag = ? AND collection IN (SELECT id FROM {collection} WHERE \"owner\" = ?)",
array($tag, $userid)
);
execute_sql(
"DELETE FROM {artefact_tag} WHERE tag = ? AND artefact IN (SELECT id FROM {artefact} WHERE \"owner\" = ?)",
array($tag, $userid)
);
db_commit();
$SESSION->add_ok_msg(get_string('tagdeletedsuccessfully'));
redirect(get_config('wwwroot') . 'tags.php');
}