Commit | Line | Data |
---|---|---|
b57d3959 | 1 | <?php |
b57d3959 NC |
2 | // This file is part of Moodle - http://moodle.org/ |
3 | // | |
4 | // Moodle is free software: you can redistribute it and/or modify | |
5 | // it under the terms of the GNU General Public License as published by | |
6 | // the Free Software Foundation, either version 3 of the License, or | |
7 | // (at your option) any later version. | |
8 | // | |
9 | // Moodle is distributed in the hope that it will be useful, | |
10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 | // GNU General Public License for more details. | |
13 | // | |
14 | // You should have received a copy of the GNU General Public License | |
15 | // along with Moodle. If not, see <http://www.gnu.org/licenses/>. | |
16 | ||
17 | ||
18 | /** | |
19 | * List of external blogs for current user. | |
20 | * | |
21 | * @package moodlecore | |
22 | * @subpackage blog | |
23 | * @copyright 2009 Nicolas Connault | |
24 | * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later | |
25 | */ | |
26 | ||
27 | require_once('../config.php'); | |
28 | require_once('lib.php'); | |
29 | ||
30 | require_login(); | |
41b38360 | 31 | $context = context_system::instance(); |
880c5073 | 32 | $PAGE->set_context(context_user::instance($USER->id)); |
2713c6bd SH |
33 | $PAGE->set_url(new moodle_url('/blog/external_blogs.php')); |
34 | require_capability('moodle/blog:manageexternal', $context); | |
b57d3959 NC |
35 | |
36 | $delete = optional_param('delete', null, PARAM_INT); | |
37 | ||
2b6e53e8 AD |
38 | $strexternalblogs = get_string('externalblogs', 'blog'); |
39 | $straddnewexternalblog = get_string('addnewexternalblog', 'blog'); | |
40 | $strblogs = get_string('blogs', 'blog'); | |
b57d3959 NC |
41 | $message = null; |
42 | ||
43 | if ($delete && confirm_sesskey()) { | |
02ce2e41 SB |
44 | $externalblog = $DB->get_record('blog_external', array('id' => $delete)); |
45 | if ($externalblog->userid == $USER->id) { | |
2b6e53e8 | 46 | // Delete the external blog. |
b57d3959 | 47 | $DB->delete_records('blog_external', array('id' => $delete)); |
4db11a24 | 48 | |
2b6e53e8 | 49 | // Delete the external blog's posts. |
4db11a24 AD |
50 | $deletewhere = 'module = :module |
51 | AND userid = :userid | |
52 | AND ' . $DB->sql_isnotempty('post', 'uniquehash', false, false) . ' | |
53 | AND ' . $DB->sql_compare_text('content') . ' = ' . $DB->sql_compare_text(':delete'); | |
2b6e53e8 AD |
54 | $DB->delete_records_select('post', $deletewhere, array('module' => 'blog_external', |
55 | 'userid' => $USER->id, | |
56 | 'delete' => $delete)); | |
4db11a24 | 57 | |
02ce2e41 SB |
58 | // Log this action. |
59 | $eventparms = array('context' => $context, 'objectid' => $delete); | |
60 | $event = \core\event\blog_external_removed::create($eventparms); | |
61 | $event->add_record_snapshot('blog_external', $externalblog); | |
62 | $event->trigger(); | |
b57d3959 | 63 | $message = get_string('externalblogdeleted', 'blog'); |
6f5e0852 | 64 | } |
b57d3959 NC |
65 | } |
66 | ||
67 | $blogs = $DB->get_records('blog_external', array('userid' => $USER->id)); | |
68 | ||
880c5073 | 69 | $PAGE->set_heading(fullname($USER)); |
b57d3959 | 70 | $PAGE->set_title("$SITE->shortname: $strblogs: $strexternalblogs"); |
897aa80c | 71 | $PAGE->set_pagelayout('standard'); |
b57d3959 NC |
72 | |
73 | echo $OUTPUT->header(); | |
74 | echo $OUTPUT->heading($strexternalblogs, 2); | |
75 | ||
76 | if (!empty($message)) { | |
77 | echo $OUTPUT->notification($message); | |
78 | } | |
79 | ||
80 | echo $OUTPUT->box_start('generalbox boxaligncenter'); | |
81 | ||
82 | if (!empty($blogs)) { | |
83 | $table = new html_table(); | |
84 | $table->cellpadding = 4; | |
16be8974 | 85 | $table->attributes['class'] = 'generaltable boxaligncenter'; |
2b6e53e8 AD |
86 | $table->head = array(get_string('name'), |
87 | get_string('url', 'blog'), | |
88 | get_string('timefetched', 'blog'), | |
89 | get_string('valid', 'blog'), | |
90 | get_string('actions')); | |
b57d3959 NC |
91 | |
92 | foreach ($blogs as $blog) { | |
b57d3959 | 93 | if ($blog->failedlastsync) { |
c3847443 | 94 | $validicon = $OUTPUT->pix_icon('i/invalid', get_string('feedisinvalid', 'blog')); |
1ba862ec | 95 | } else { |
c3847443 | 96 | $validicon = $OUTPUT->pix_icon('i/valid', get_string('feedisvalid', 'blog')); |
b57d3959 NC |
97 | } |
98 | ||
a6855934 | 99 | $editurl = new moodle_url('/blog/external_blog_edit.php', array('id' => $blog->id)); |
c63923bd | 100 | $editicon = $OUTPUT->action_icon($editurl, new pix_icon('t/edit', get_string('editexternalblog', 'blog'))); |
8ae8bf8a | 101 | |
0e32a565 | 102 | $deletelink = new moodle_url('/blog/external_blogs.php', array('delete' => $blog->id, 'sesskey' => sesskey())); |
f07e428c R |
103 | $action = new confirm_action(get_string('externalblogdeleteconfirm', 'blog')); |
104 | $deleteicon = $OUTPUT->action_icon($deletelink, new pix_icon('t/delete', get_string('deleteexternalblog', 'blog')), | |
105 | $action); | |
8ae8bf8a | 106 | |
2b6e53e8 AD |
107 | $table->data[] = new html_table_row(array($blog->name, |
108 | $blog->url, | |
109 | userdate($blog->timefetched), | |
110 | $validicon, | |
f07e428c | 111 | $editicon . $deleteicon)); |
b57d3959 | 112 | } |
16be8974 | 113 | echo html_writer::table($table); |
b57d3959 NC |
114 | } |
115 | ||
a6855934 | 116 | $newexternalurl = new moodle_url('/blog/external_blog_edit.php'); |
75015e5f | 117 | echo html_writer::link($newexternalurl, $straddnewexternalblog); |
b57d3959 | 118 | echo $OUTPUT->box_end(); |
02ce2e41 SB |
119 | |
120 | // Log this page. | |
121 | $event = \core\event\blog_external_viewed::create(array('context' => $context)); | |
122 | $event->trigger(); | |
b57d3959 | 123 | echo $OUTPUT->footer(); |