@@ -, +, @@
---
Koha/Template/Plugin/HtmlId.pm | 28 +++++++++++++++++++
.../prog/en/includes/prefs-menu.inc | 3 +-
.../prog/en/modules/admin/preferences.tt | 7 +++--
t/Koha_Template_Plugin_HtmlId.t | 25 +++++++++++++++++
4 files changed, 59 insertions(+), 4 deletions(-)
create mode 100644 Koha/Template/Plugin/HtmlId.pm
create mode 100755 t/Koha_Template_Plugin_HtmlId.t
--- a/Koha/Template/Plugin/HtmlId.pm
+++ a/Koha/Template/Plugin/HtmlId.pm
@@ -0,0 +1,28 @@
+package Koha::Template::Plugin::HtmlId;
+
+# This file is part of Koha.
+#
+# Koha is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# Koha is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Koha; if not, see .
+
+use Modern::Perl;
+
+use parent qw( Template::Plugin::Filter );
+
+sub filter {
+ my ( $self, $text ) = @_;
+
+ return $text =~ s/[^a-zA-Z0-9-]+/_/gr
+}
+
+1;
--- a/koha-tmpl/intranet-tmpl/prog/en/includes/prefs-menu.inc
+++ a/koha-tmpl/intranet-tmpl/prog/en/includes/prefs-menu.inc
@@ -1,3 +1,4 @@
+[% USE HtmlId %]