Startseite ist kein Artikel

Wie verwendet man Templates oder erstellt Navigationen und passt diese an.

Startseite ist kein Artikel

Beitragvon ThomasS » 26. Jan 2008, 09:05

Liebes Forum,

meine Idee ist, sehschwachen Besuchern mehr Komfort zu geben. Sie sollen die Möglichkeit haben, die Schriftgröße selbst einzustellen. (Natürlich geht Schriftgrößenänderung auch mit Tastaturkürzeln, aber einige Besucher kennen die Kürzel nicht.)

Der Besucher kann auf drei verschieden große Buchstaben klicken. Dabei wird die CSS-Datei ausgetauscht, so dass die Schrift größer oder kleiner wird.

Das funktioniert auch alles prächtig - nur leider nicht auf der wichtigsten Seite, auf der Startseite.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Ich verwende real url von Nicole Rüdiger (biz-design.biz) und die Navi "<ul>-Navigation für mehrere Benutzerbereiche inc. Breadcrumb" von Peter Reiche (raybeam.de).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Beim ersten Aufruf meiner Website steht oben im Browserpfad:
Code: Alles auswählen
http://meineseite.de


Erst wenn ich auf irgendeinen Link klicke, z.B. auf den Link "Startseite", dann steht im Pfad:
Code: Alles auswählen
http://meineseite.de/index.php?article_id=1


Und erst, wenn das im Pfad steht, dann funktioniert mein PHP Script.
Wie kann ich erreichen, das das Script auch auf der Startseite schon funktioniert?


Bauplan:
Zunächst habe ich drei CSS-Dateien mit verschiedenen Schriftgrößen angelegt:

a.css, b.css und c.css

Dann habe ich ganz oben im Haupttemplate (default) Session Start eingebaut:

Code: Alles auswählen
<?php
// start session
// import variables
session_start();
// set default text size for this page
if (!isset($_SESSION['textsize'])) {
// Hier wird der Name der CSS für die normale Schriftgröße angegeben,
// die immer zuerst erscheinen soll:
$_SESSION['textsize'] = 'a';
}
?>



Diesen Link zur CSS-Datei habe ich ins Haupttemplate eingebaut:

Code: Alles auswählen

<!-- CSS für Schriftgrößenaustausch: -->

<link rel="stylesheet" type="text/css" href="<? echo $REX['HTDOCS_PATH'] ?>redaxo/css/<? echo $_SESSION['textsize']; ?>.css" media="screen">



Anschließend habe ich die resize.php mit folgendem Inhalt eingebaut:

Code: Alles auswählen

<?php
// start session
// import selected size into session
session_start();
$_SESSION['textsize'] = $_GET['s'];
header("Location: " . $_SERVER['HTTP_REFERER']);
?>



Und diese Links habe ich im Body des Haupttemplates eingebaut, darauf klicken die Besucher und wählen die Schriftgröße aus, es ist der Pfad zur resize.php:

Code: Alles auswählen
<!-- Schriftgröße -->

<div class="strich">
Text:
<a href="<? echo $REX['HTDOCS_PATH'] ?>sonstiges/resize.php?&s=aaa" style="font-size: 14px">A</a> &nbsp;   
<a href="<? echo $REX['HTDOCS_PATH'] ?>sonstiges/resize.php?&s=bbb" style="font-size: 18px">A</a> &nbsp; 
<a href="<? echo $REX['HTDOCS_PATH'] ?>sonstiges/resize.php?&s=ccc" style="font-size: 22px">A</a>
</div>




Danke
und herzliche Grüße
Thomas[url][/url]
ThomasS
 
Beiträge: 131
Registriert: 12. Apr 2007, 11:53
Wohnort: Friedberg

Beitragvon Markus.Staab » 26. Jan 2008, 14:41

Hi Thomas,

ich sehe zwar den Fehler nicht, aber ich sehe andere Probleme die du bekommen könntest

Code: Alles auswählen
<?php
// start session
// import selected size into session
session_start();
$_SESSION['textsize'] = $_GET['s'];
header("Location: " . $_SERVER['HTTP_REFERER']);
?>


Du solltest hier auf jeden Fall die Variable $_GET['s'] zuerst validieren, bevor du sie in die session setzt.

Ausserdem musst du auch wissen, dass nicht jeder Browser dir einen REFERER sendet und somit das ganze dann auch nicht funktioniert.

Such doch mal nach styleswitchter o.ä. sowas gabs schonmal soweit ich weiß..

Gruß,
Markus
Benutzeravatar
Markus.Staab
Entwickler
 
Beiträge: 9781
Registriert: 29. Jan 2005, 14:50
Wohnort: Aschaffenburg/Germany

Neuer Styleswitcher funktioniert noch nicht...

Beitragvon ThomasS » 26. Jan 2008, 16:32

Hi Markus,

vielen Dank für die schnelle Antwort!

Ich habe jetzt den Styleswitcher von Peter (pbickel) http://forum.redaxo.de/ftopic965.html&h ... leswitcher eingebaut.

Also ganz oben als Erstes ins Haupttemplate (default):

Code: Alles auswählen
<?php
session_start();
if ( isset($_GET['style']) ) {
$_SESSION['style'] = $_GET['style'];
} elseif ( !isset($_SESSION['style']) ) {
$_SESSION['style'] = '1';
}
?>


Dann den Styleswitcher (im CSS-Bereich):
Code: Alles auswählen
<?
switch ($_SESSION['style']) {

case '1':
$css = 'aaa.css';
break;

case '2':
$css = 'bbb.css';
break;

case '3':
$css = 'ccc.css';
break;

}
?>


Und dann die Links in den body:
Code: Alles auswählen
<?
Schriftgroesse:
echo " <a href='". rex_getUrl( '', '', '&style=1') ."'>1</a> |";
echo " <a href='". rex_getUrl( '', '', '&style=2') ."'>2</a> |";
echo " <a href='". rex_getUrl( '', '', '&style=3') ."'>3</a> |";
?>


Irgend etwas mache ich falsch, denn es erscheint eine weiße Seite mit:

Code: Alles auswählen
Parse error: parse error, unexpected ':' in /homepages/37/d159080232/htdocs/meineseite/redaxo/include/classes/class.article.inc.php(455) : eval()'d code on line 274


Das Switchen scheint ok zu sein, also stimmt vermutlich mit den Links etwas nicht? Ich habe Redaxo 3.2, vielleicht liegt es daran?

Herzlichen Dank
und viele Grüße
Thomas
ThomasS
 
Beiträge: 131
Registriert: 12. Apr 2007, 11:53
Wohnort: Friedberg

Fehler gefunden - Jippi!

Beitragvon ThomasS » 26. Jan 2008, 16:39

Hi Markus,

sorry, ich Depp war zu blöd, die Schriftgröße auszukommentieren.

Peinlich! Jetzt funktioniert alles!

Vielen herzlichen Dank, Du hast mir sehr weitergeholfen!

Viele Grüße
THOMAS
ThomasS
 
Beiträge: 131
Registriert: 12. Apr 2007, 11:53
Wohnort: Friedberg


Zurück zu Templates/Navigationen [R3]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste