navigation MDL-23031 Removed show my history feature from the navigation.... goodbye!

This commit is contained in:
Sam Hemelryk
2010-07-01 03:46:17 +00:00
parent 1af67ecb1a
commit a481b2c60c
3 changed files with 1 additions and 124 deletions
-120
View File
@@ -151,10 +151,6 @@ class block_navigation extends block_base {
}
$this->trim($navigation, $trimmode, $trimlength, ceil($trimlength/2));
if (!empty($this->config->showmyhistory) && $this->config->showmyhistory=='yes') {
$this->showmyhistory();
}
// Get the expandable items so we can pass them to JS
$expandable = array();
$navigation->find_expandable($expandable);
@@ -204,122 +200,6 @@ class block_navigation extends block_base {
return $attributes;
}
/**
* This function maintains a history of the active pages that a user has visited
* and displays it back to the user as part of the navigation structure
*
* @return bool
*/
protected function showmyhistory() {
global $USER, $PAGE;
// Create a navigation cache so that we can store the history
$cache = new navigation_cache('navigationhistory', 60*60);
// If the user isn't logged in or is a guest we don't want to display anything
if (!isloggedin() || isguestuser()) {
return false;
}
// Check the cache to see if we have loaded my courses already
// there is a very good chance that we have
if (!$cache->cached('history')) {
$cache->history = array();
}
$history = $cache->history;
$historycount = count($history);
// Find the initial active node
$child = false;
if ($PAGE->navigation->contains_active_node()) {
$child = $PAGE->navigation->find_active_node();
} else if ($PAGE->settingsnav->contains_active_node()) {
$child = $PAGE->settingsnav->find_active_node();
}
// Check that we found an active child node
if ($child!==false) {
$properties = array();
// Check whether this child contains another active child node
// this can happen if we are looking at a module
if ($child->contains_active_node()) {
$titlebits = array();
// Loop while the child contains active nodes and in each iteration
// find the next node in the correct direction
while ($child!==null && $child->contains_active_node()) {
if (!empty($child->shorttext)) {
$titlebits[] = $child->shorttext;
} else {
$titlebits[] = $child->text;
}
foreach ($child->children as $child) {
if ($child->contains_active_node() || $child->isactive) {
// We have found the active child or one of its parents
// so break the foreach so we can proceed in the while
break;
}
}
}
if (!empty($child->shorttext)) {
$titlebits[] = $child->shorttext;
} else {
$titlebits[] = $child->text;
}
$properties['text'] = join(' - ', $titlebits);
$properties['shorttext'] = join(' - ', $titlebits);
} else {
$properties['text'] = $child->text;
$properties['shorttext'] = $child->shorttext;
}
$properties['action'] = $child->action;
$properties['key'] = $child->key;
$properties['type'] = $child->type;
$properties['icon'] = $child->icon;
// Create a new navigation node object free of the main structure
// so that it is easily storeable and customised
$child = new navigation_node($properties);
// Check that this page isn't already in the history array. If it is
// we will remove it so that it gets added at the top and we dont get
// duplicate entries
foreach ($history as $key=>$node) {
if ($node->key == $child->key && $node->type == $child->type) {
if ($node->action instanceof moodle_url && $child->action instanceof moodle_url && $node->action->compare($child->action)) {
unset($history[$key]);
} else if ($child->action instanceof moodle_url && $child->action->out_omit_querystring() == $node->action) {
unset($history[$key]);
} else if ($child->action == $node->action) {
unset($history[$key]);
}
}
}
// If there is more than 5 elements in the array remove the first one
// We want a fifo array
if (count($history) > 5) {
array_shift($history);
}
$child->nodetype = navigation_node::NODETYPE_LEAF;
$child->children = array();
// Add the child to the history array
array_push($history,$child);
}
// If we have `more than nothing` in the history display it :D
if ($historycount > 0) {
// Add a branch to hold the users history
$mymoodle = $PAGE->navigation->get('myprofile', navigation_node::TYPE_USER);
$myhistorybranch = $mymoodle->add(get_string('showmyhistorytitle', $this->blockname), null, navigation_node::TYPE_CUSTOM, null, 'myhistory');
foreach (array_reverse($history) as $node) {
$myhistorybranch->children->add($node);
}
}
// Cache the history (or update the cached history as it is)
$cache->history = $history;
return true;
}
/**
* Trims the text and shorttext properties of this node and optionally
* all of its children.
+1 -1
View File
@@ -39,7 +39,7 @@ class block_navigation_edit_form extends block_edit_form {
global $CFG;
$mform->addElement('header', 'configheader', get_string('blocksettings', 'block'));
$mods = array('enabledock'=>'yes', 'enablehoverexpansion'=>'no', 'showmyhistory'=>'no');
$mods = array('enabledock'=>'yes');
$yesnooptions = array('yes'=>get_string('yes'), 'no'=>get_string('no'));
foreach ($mods as $modname=>$default) {
$mform->addElement('select', 'config_'.$modname, get_string($modname.'desc', $this->block->blockname), $yesnooptions);
@@ -28,12 +28,9 @@ $string['everything'] = 'Everything';
$string['courses'] = 'Categories and courses';
$string['coursestructures'] = 'Categories, courses, and course structures';
$string['courseactivities'] = 'Categories, courses, and course Activities';
$string['enablehoverexpansiondesc'] = 'Enable mouseover expansion of this block';
$string['enabledockdesc'] = 'Allow the user to dock this block';
$string['expansionlimit'] = 'Generate navigation for the following';
$string['pluginname'] = 'Navigation';
$string['showmyhistorydesc'] = 'Show my history as a branch in the navigation';
$string['showmyhistorytitle'] = 'My history';
$string['trimmode'] = 'Trim mode';
$string['trimmoderight'] = 'Trim characters from the right';
$string['trimmodeleft'] = 'Trim characters from the left';