Hallo zusammen,
ich möchte gerne, dass die Benutzer einer Webseite, die Schrift vergrößern oder verkleinern können.
Ich weiß, der Firefox kann das mit strg und + bzw. -
Allerdings viele Benutzer nicht, denen einfach nur die Schrift zu klein ist.
Auf der http://www.greenpeace.de- Seite habe ich eine Lösung gesehen. Buttons, die man zum Vergrößern oder Verkleinern anklicken kann.
Da ist die Funktion nicht identisch mit der Strg/+ - Geschichte, denn die Vergrößerung funktioniert dort noch, wo die Firefox-Funktion schon Navigation und Inhalt ineinanderfließen lässt.
Hat jemand eine Idee dazu?
Gruß
Andrea
url]
Die Setzen die Schriftart einfach per JavaScript und schreiben noch ein Cookie in der die aktuelle Schriftgröße steht. Das können Sie dann auf jeder Seite auslesen.
War das deine Frage?
i.d.R. benutzt man dafür einen Styleswitcher. Je nachdem wie Du die Links auszeichnest, kannst Du auch mit Accesskey arbeiten.
Hallo ihr zwei,
vielen Dank für die Antworten.
Tja, ich glaube, ich brauche eine Gebrauchsanweisung.
Ich würde mich freuen, wenn ihr mir da weiterhelfen könntet.
Gruß
Andrea
Schau dir doch einfach den Quellcode der Seite an. Da stehts drin und ist nichmal schwer zu verstehen (find ich jetzt).
Vielleicht hilft dir auch http://typo3.org/extensions/repository/search/gov_accessibility/ damit läßt sich ua. auch die Schriftart vergrößern.
Hi Woida,
mache ich. Halte euch über meine "Erfolge" auf dem Laufenden.
Erst mal danke,
Andrea
Hi,
ich habe mir dieses gov_accessibility mal angeguckt, aber es gibt dort einige Fehlermeldungen, die mir nichts sagen. Die TOols Tipps konnten mir auch nicht wirklich weiterhelfen:
The XCLASS filename-key "ext/tt_guest/pi/class.tx_ttguest.php" was different from "ext/gov_accessibility/class.ux_tx_ttguest.php" which it should have been!
Dadrunter werden die Fehler benannt:
pages pages
0 user_typolink
0 class.user_typolink.php
The XCLASS filename-key "ext/tt_guest/pi/class.tx_ttguest.php" was different from "ext/gov_accessibility/class.ux_tx_ttguest.php" which it should have been!
Extension physikalisch löschen, neu installieren und wenn der Fehler immer noch auftritt, ignorieren.
Hallole!
Es gibt eine Extension: fontresize. Voraussetzung: JS
Ich habe sie mal testweise installiert und die normalen Inhaltstexte wurden größer/kleiner dargestellt. Passt schon.
Header blieben unverändert, aber das dürfte eher an dem nicht mehr ganz sauberen CSS meiner Spielwiese liegen. Aufräumen wäre mal angesagt.
Schau Dir doch mal die Extension an und berichte.
Danke
Erwin
Sowas kann man sich doch auch ohne JS bauen.
Man schreibt eine Extension:
2 Methoden:
Eine stellt eine Auswahlfeld mit den möglichen Schriftarten dar. Wird da eine angeklickt, wird eine Sessionvariable mit der ausgewählten Schriftart gesetzt und von mir aus noch ein Cookie (wenn der Besucher wiederkommt).
Die zweite wertet die Sessionvariable (bzw. auch das Cookie aus) und gibt dann in deren abhängigkeit eine andere CSS-Datei zurück, oder schreibt die gleich CSS-Anweisungen gleich in den Header.
oh man woida, du bist gut. Genau das will ich bzw. hab ich eigentlich schon umgesetzt, aber eben noch nicht in Typo3 reinbekommen. Ich weiss nicht wie ich es anstellen soll. Die Methoden habe ich.
Vielleicht kannst du dir das mal anschauen:
#382856
Vielleicht kannst du mir helfen, wie ich das in Typo bekomme?
Wäre sehr dankbar.
Grüße,
Stephan
Im Prinzip gehts so:
Kickstarter -> Extension Key ausfüllen (sagen wir mal, 'tx_styleswitcher') -> Frontend Plugins anklicken -> "Just include library" auswählen (ganz unten) -> Update -> View Result -> Write -> Extension installieren.
Dann öffnet du die Datei class.tx_txstyleswitcher_pi1.php und schreibst die Main-Methode:
$content='<div style="z-index:55855;background-color: #FF0000;left:426px;top:31px;width:204px;height:230px;position:absolute;">';
$size = $GLOBALS['TSFE']->fe_user->getKey('ses',$this->extKey);
if (isset($this->piVars['size'])) {
$size=intval($this->piVars['size']);
$GLOBALS['TSFE']->fe_user->setKey('ses',$this->extKey,$size);
}
if ($size) {
$content.='Sie haben '.$size.' gewählt<br />';
$GLOBALS['TSFE']->additionalHeaderData[$extKey]='<link rel="stylesheet" type="text/css" href="fileadmin/css/'.$size.'.css" media="screen" />';
}
$content.='Bitte währen Sie die Ihre Bildschirmgröße:<br />';
$this->piVars['size'] = '1024';
$content.= $this->pi_linkTP_keepPIvars('1024x768').'<br />';
$this->piVars['size'] = '800';
$content.= $this->pi_linkTP_keepPIvars('800x600').'<br />';
$content.='</div>';
return $content;
Dann im Template einfach sowas wie:
page.4 < plugin.tx_txstyleswitcher_pi1
Jetzt hast du auf jeder Seite eine hübsche rote Box ( #giggle# ) in der du dich zwischen 1024x768 und 800x600 entscheiden kannst. Wenn du eins auswählst, wird die entsprechende CSS-Datei eingebunden und eine Sessionvariable gesetzt, so daß die gleiche CSS-Datei auf den anderen Seiten auch geladen wird.
Das ganze kann man noch verfeinern:
Nach dem Auswählen hat man die Variable tx_txstyleswitcher_pi1[size]=1024 in der URI. Man könnte z.B. dann die Seite automatische ohne der Variable neu laden.
Du kannst noch ein Cookie setzen, daß der Besucher der morgen wieder vorbeikommt, den gleiche Auflösung hat wie heute.
...
Ohne Gewähr und Support ....
vielen Dank. Wenn ich anstatt
$this->piVars['size'] = '1024';
$content.= $this->pi_linkTP_keepPIvars('1024x768').'';
folgendes ändere:
$this->piVars['size'] = 'standard';
$content.= $this->pi_linkTP_keepPIvars('standard').'';
dann schreibt er nicht mehr den additionalHeaderData. Dürfen das nur Zahlen sein, eigentlich nicht, oder? Hab hier auch was empfohlen bekommen, da geht es auch mit Text:
$this->piVars['mood'] = 'great';
http://typo3.org/development/articles/using-links-in-frontend-plugins/page/5/
oh, hat sich erledigt. habs hinbekommen. Vielen Dank woida! Hast mir sehr geholfen.
Noch was: Wie müßte es aussehen, wenn ich einen permanenten cookie setzen möchte?
Das was du da rausgefunden hast, nutze ich ja auch ...
Den Text kanst du nur wegen der Zeile $size=intval($this->piVars['size']); nicht setzen, da der Übergabeparameter in einen Integer umgewandelt wird (Sicherheitsgründe).
Zum Thema Cookie: http://www.php.net/manual/de/function.setcookie.php
danke, habs hinbekommen mit dem hinweis.
Hallo zusammen,
ich verfolge mit Interesse eure nette Diskussion.
Wenn ich mit dem Style-Switcher arbeite (n würde), dann habe ich ein CSS für 1024 und 800 - Auflösung.
Ist das korrekt?
Wenn ich aber eine Seite (s. Greenpeace) mit nur vergrößerten Texten haben will, dann brauche ich für jede Größe auch ein CSS.
Stimmmt das so?
Die Navigation zu dem jeweiligen CSS läuft dann über Buttons (die der Styleswitcher mitliefert und im Template irgendwie gelayoutet werden?) - die ich frei definieren kann? Wenn ja wie?
Liege ich da ungefähr richtig?
--> Wenn ich mit dem Style-Switcher arbeite (n würde), dann habe ich ein CSS für 1024 und 800 - Auflösung. Ist das korrekt?
stimmt. ich habe ein "standard.css" und ein "kontrast.css". Mit der Lösung von woida geht das sehr gut.
--> Wenn ich aber eine Seite (s. Greenpeace) mit nur vergrößerten Texten haben will, dann brauche ich für jede Größe auch ein CSS.
daran arbeite ich auch gerade. Für jede Größe ein neues css, wäre mir zu blöd. In meinen normalen css (standard und kontrast) verwende ich relative Größenangaben (z.Bsp: em), dann müsste es auch anders gehen. Wenn ich schlauer bin, werde ich es posten
--> Die Navigation zu dem jeweiligen CSS läuft dann über Buttons (die der Styleswitcher mitliefert und im Template irgendwie gelayoutet werden?) - die ich frei definieren kann? Wenn ja wie?
In dem Beispiel von woida sind die Links schon drin. probier es aus und du wirst eine rote box sehen mit den Links. Die Ausgabe kannst du sehr leicht anpassen, z.Bsp. die Links in einer Liste ausgeben und per css formatieren.
#angry#
irgendwie schreibt er bei mir den cookie nicht und ich versteh zum teufel nicht warum.
function main($content,$conf){
$style = $_COOKIE["design"];
if (isset($this->piVars['style'])) {
$style=$this->piVars['style'];
setcookie("design", $style, time()+60*60*24*365);
$GLOBALS['TSFE']->additionalHeaderData[$extKey]='<link rel="stylesheet" type="text/css" href="fileadmin/template/main/'.$style.'.css" media="screen" />';
}
elseif (!isset($this->piVars['style'])) {
if ($style) {
$GLOBALS['TSFE']->additionalHeaderData[$extKey]='<link rel="stylesheet" type="text/css" href="fileadmin/template/main/'.$style.'.css" media="screen" />';
}
else {
$GLOBALS['TSFE']->additionalHeaderData[$extKey]='<link rel="stylesheet" type="text/css" href="fileadmin/template/main/standard.css" media="screen" />';
}
}
$this->piVars['style'] = 'standard';
$content.= '<ul><li>';
$content.= $this->pi_linkTP_keepPIvars('Standard').'';
$content.= '</li><li>';
$this->piVars['style'] = 'kontrast';
$content.= $this->pi_linkTP_keepPIvars('Kontrast').'';
$content.= '</li></ul>';
return $content;
}
}
wenn ich die seite zum 1. mal aufrufe kommt korrekt das standard.css.
Nehme ich Kontrast wechselt er korrekt das css. Rufe ich jetzt im Menü andere Seiten auf nimmt er wieder standard.css
Schreibt er das cookie nicht? Aber so müsste es doch stimmen? Oder liegt der Fehler woanders?
Stephan
mmm, woida.
Also irgendwas scheint da gehörig schief zu gehen bei mir. Wenn ich dein Beispiel ausprobiere liest er mal den einen Wert, mal den anderen wert. Das gibt für mich keinen Sinn, ich probier da jetzt den ganzen Tag dran rum, habe zig Möglichkeiten durch, mit deinem Session cookie und mit festem cookie. Im cookie steht der richtige Wert, aber wenn ich in meinem Menü "wild" durch die Seite klicke, nimmt er zum Teil trotzdem hin und wieder den Wert der gar nicht im Cookie steht. Wie kann denn das sein?