Schriftgröße per Mausklick ändern

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB2 oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
jensdd
Mitglied
Beiträge: 82
Registriert: 16.08.2008 21:23
Wohnort: Dresden
Kontaktdaten:

Schriftgröße per Mausklick ändern

Beitrag von jensdd »

In meinem phpBB 2.0.23 habe ich versuchsweise den Code aus phpBB 3 zur Schriftgrößenänderung eingebaut.

Codeteile in der overall_header.tpl

Code: Alles auswählen

<link href="templates/{T_NAME}/normal.css" rel="stylesheet" type="text/css" title="A" />
<link href="templates/{T_NAME}/normal.css" rel="alternate stylesheet" type="text/css" title="A" />
<link href="templates/{T_NAME}/medium.css" rel="alternate stylesheet" type="text/css" title="A+" />
<link href="templates/{T_NAME}/large.css" rel="alternate stylesheet" type="text/css" title="A++" />

Code: Alles auswählen

<script type="text/javascript">
<!--
var style_cookie = 'phpBBstyle';
var onload_functions = new Array();
var onunload_functions = new Array();

window.onload = function()
{
for (var i = 0; i < onload_functions.length; i++)
{
eval(onload_functions[i]);
}
}

window.onunload = function()
{
for (var i = 0; i < onunload_functions.length; i++)
{
eval(onunload_functions[i]);
}
}

function fontsizeup() {
var active = getActiveStyleSheet();
switch (active)
{
case 'A--':
setActiveStyleSheet('A-');
break;

case 'A-':
setActiveStyleSheet('A');
break;

case 'A':
setActiveStyleSheet('A+');
break;

case 'A+':
setActiveStyleSheet('A++');
break;

case 'A++':
setActiveStyleSheet('A');
break;

default:
setActiveStyleSheet('A');
break;
}
}

function fontsizedown() {
active = getActiveStyleSheet();
switch (active)
{
case 'A++' : 
setActiveStyleSheet('A+');
break;

case 'A+' : 
setActiveStyleSheet('A');
break;

case 'A' : 
setActiveStyleSheet('A-');
break;

case 'A-' : 
setActiveStyleSheet('A--');
break;

case 'A--' : 
break;

default :
setActiveStyleSheet('A--');
break;
}
}

function setActiveStyleSheet(title) {
var i, a, main;
for (i = 0; (a = document.getElementsByTagName('link')[i]); i++)
{
if (a.getAttribute('rel').indexOf('style') != -1 && a.getAttribute('title'))
{
a.disabled = true;
if (a.getAttribute('title') == title)
{
a.disabled = false;
}
}
}
}

function getActiveStyleSheet() {
var i, a;
for (i = 0; (a = document.getElementsByTagName('link')[i]); i++)
{
if (a.getAttribute('rel').indexOf('style') != -1 && a.getAttribute('title') && !a.disabled)
{
return a.getAttribute('title');
}
}
return null;
}

function getPreferredStyleSheet() {
return ('A');
}

function createCookie(name, value, days) {
if (days)
{
var date = new Date();date.setTime(date.getTime() + (days*24*60*60*1000));
var expires = '; expires=' + date.toGMTString();
}
else
{
expires = '';
}
document.cookie = name + '=' + value + expires;
}

function readCookie(name) {
var nameEQ = name + '=';var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++)
{
var c = ca[i];while (c.charAt(0) == ' ')
{
c = c.substring(1, c.length);
}
if (c.indexOf(nameEQ) == 0)
{
return c.substring(nameEQ.length, c.length);
}
}
return null;
}

function load_cookie() {
var cookie = readCookie('style_cookie');
var title = cookie ? cookie : getPreferredStyleSheet();
setActiveStyleSheet(title);
}

function unload_cookie() {
var title = getActiveStyleSheet();createCookie('style_cookie', title, 365);
}

onload_functions.push('load_cookie()');onunload_functions.push('unload_cookie()');
//--></script>
Folgendes Problem tritt im Firefox auf: Wenn ich Formulareingaben über die Suchfunktion abschicke wird die Ergebnisseite zunächst richtig angezeigt und verliert dann sofort ihre CSS-Formatierung. Speichere ich die Ergebnisseite, sind offline alle Dateien vorhanden und die Seite wird richtig angezeigt. Das verwendete Stylesheet ist aber nicht wie üblich im Quelltext zu finden, sondern nur als Link. Eingaben im Postingformular funktionieren.
Wo könnte der Fehler liegen? Im IE und in Opera gibts keine Probleme.

Gruß Jens
Antworten

Zurück zu „phpBB 2.0: Mod-Bastelstube“