// blog
$temp = new admin_settingpage('blog', get_string('blog','blog'));
$temp->add(new admin_setting_configcheckbox('useblogassociations', get_string('useblogassociations', 'blog'), get_string('configuseblogassociations','blog'), 1));
- $temp->add(new admin_setting_configselect('bloglevel', get_string('bloglevel', 'admin'), get_string('configbloglevel', 'admin'), 4, array(5 => get_string('worldblogs','blog'),
+ $temp->add(new admin_setting_bloglevel('bloglevel', get_string('bloglevel', 'admin'), get_string('configbloglevel', 'admin'), 4, array(5 => get_string('worldblogs','blog'),
4 => get_string('siteblogs','blog'),
1 => get_string('personalblogs','blog'),
0 => get_string('disableblogs','blog'))));
$optionalsubsystems->add(new admin_setting_configcheckbox('enablerssfeeds', get_string('enablerssfeeds', 'admin'), get_string('configenablerssfeeds', 'admin'), 0));
- $optionalsubsystems->add(new admin_setting_configselect('bloglevel', get_string('bloglevel', 'admin'),
+ $optionalsubsystems->add(new admin_setting_bloglevel('bloglevel', get_string('bloglevel', 'admin'),
get_string('configbloglevel', 'admin'), 4, array(5 => get_string('worldblogs','blog'),
4 => get_string('siteblogs','blog'),
- 3 => get_string('courseblogs','blog'),
- 2 => get_string('groupblogs','blog'),
1 => get_string('personalblogs','blog'),
0 => get_string('disableblogs','blog'))));
$context = $PAGE->get_context();
if (empty($CFG->bloglevel)) {
- $this->content->text = '';
+ $this->content->text = get_string('blogdisable', 'blog');
return $this->content;
}
// don't display menu block if block is set at site level, and user is not logged in
if ($CFG->bloglevel < BLOG_GLOBAL_LEVEL && !(isloggedin() && !isguest())) {
- $this->content->text = '';
+ $this->content->text = get_string('blogdisable', 'blog');
return $this->content;
}
}
}
+/**
+ * Select for blog's bloglevel setting: if set to 0, will set blog_menu
+ * block to hidden.
+ *
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+class admin_setting_bloglevel extends admin_setting_configselect {
+ /**
+ * Updates the database and save the setting
+ *
+ * @param string data
+ * @return string empty or error message
+ */
+ public function write_setting($data) {
+ global $DB;
+ if ($data['bloglevel'] == 0) {
+ $DB->set_field('block', 'visible', 0, array('name' => 'blog_menu'));
+ } else {
+ $DB->set_field('block', 'visible', 1, array('name' => 'blog_menu'));
+ }
+ return parent::write_setting($data);
+ }
+}
+
/**
* Special select - lists on the frontpage - hacky
*