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?
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?
Für die Nachwelt: Ich antworte mal in #38874
Hallo, Forum/woida,
ich habe deinen geposteten Code für den Styleswitcher bei mir in die generierte Extension eingefügt.
Soblad ich aber den Link für den Darstellungswechsel betätige bekomme ich eine Fehlermeldung, mit der ich nicht viel anfangen kann:
Warning: Cannot modify header information - headers already sent by (output started at /.../typo3conf/ext/tx_styleswitcher/pi1/class.tx_txstyleswitcher_pi1.php:82) in /.../typo3_src-4.0/typo3/sysext/cms/tslib/class.tslib_fe.php on line 2767
(im Quelltext steht vor der Fehlermeldung ein Zeilenumbruch: br )
Die Seite wird korrekt dargestellt bzw. das Stylesheet wird auch gewechselt. Ich bekomme einfach (nur) zusätzlich diese Fehlermeldung.
Eingebunden habe ich die Extension (nach der Beschreibung) an einem Marker:
page.10.marks.main < plugin.tx_txstyleswitcher_pi1
Hat evtl. jemand eine Idee oder Lösung?
Achim
ok, ich hab *ge-spam-t*...
...ich hab den Fehler selbst gefunden.
Wie war das noch?...nach x Stunden vor dem Bildschirm sollte eine kurze Pause eingelegt werden?
Am Ende des Scripts "class.tx_txstyleswitcher_pi1.php" waren zwei "Tabs".
Nach der Pause fiel mir dann ein, wonach ich im Forum suchen musste...
Achim