Skip to content

Instantly share code, notes, and snippets.

@NoxArt
Last active March 18, 2025 09:08
Show Gist options
  • Save NoxArt/8085521 to your computer and use it in GitHub Desktop.
Save NoxArt/8085521 to your computer and use it in GitHub Desktop.
AdminerRestoreMenuScroll plugin for Adminer
<?php
/**
* Remembers and restores scrollbar position of side menu
*
* Changes (2025-03-18):
* - Added nonce()
* - Changed load event binding
*
* @author Jiří @NoxArt Petruželka
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
*/
class AdminerRestoreMenuScroll {
protected $script;
/**
* @param string text to append before first calendar usage
*/
public function __construct() {
$this->script = "
<script type='text/javascript' " . Adminer\nonce() .">
(function(){
var executed = false;
var saveAndRestore = function() {
if( executed ) {
return;
}
executed = true;
var menu = document.getElementById('menu');
var scrolled = localStorage.getItem('_adminerScrolled');
if( scrolled && scrolled >= 0 ) {
menu.scrollTop = scrolled;
}
window.addEventListener('unload', function(){
localStorage.setItem('_adminerScrolled', menu.scrollTop);
});
};
window.addEventListener('load', saveAndRestore);
})();
</script>";
}
public function head() {
echo $this->script;
}
}
@NoxArt
Copy link
Author

NoxArt commented Mar 18, 2025

Done, thank you

I also done some changes very recently to it since it seemed to had some issues, can you please re-check it? It should still be hopefully ok. I kept the nonce you've added

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment