(Post) Variable in _header.tpl transportieren und nutzen

Hallo,

ich möchte gerne im _header.tpl eine Variable setzen und nutzen.
Das ganze soll mir bei der Auswahl von Templates für verschiedene Ansichten (2 Spalten oder 3 Spalten) dienen.

Das ganze habe ich mir in etwa so vorgestellt:

<body>

<div id="page">
<br>

<form method="post" action="[{ oxgetseourl ident=$oViewConf->getSelfLink() }]">
<input type="hidden" name="columns" value="2">
<input type="submit" value="2 Spalten">
</form>
<form method="post" action="[{ oxgetseourl ident=$oViewConf->getSelfLink() }]">
<input type="hidden" name="columns" value="3">
<input type="submit" value="3 Spalten">
</form>

<br>Columns:[{$smarty.post.columns}]<br>

Leider geht so die Post-Variable beim weiteren Navigieren durch die Seite verloren.
Wie schaffe ich es die Post Variable dauerhaft zu setzen?

Danke vorab für Eure Mühe.

Mfg,
eXo

[QUOTE=eXo3k;32539]Hallo,

ich möchte gerne im _header.tpl eine Variable setzen und nutzen.
Das ganze soll mir bei der Auswahl von Templates für verschiedene Ansichten (2 Spalten oder 3 Spalten) dienen.

Das ganze habe ich mir in etwa so vorgestellt:

<body>

<div id="page">
<br>

<form method="post" action="[{ oxgetseourl ident=$oViewConf->getSelfLink() }]">
<input type="hidden" name="columns" value="2">
<input type="submit" value="2 Spalten">
</form>
<form method="post" action="[{ oxgetseourl ident=$oViewConf->getSelfLink() }]">
<input type="hidden" name="columns" value="3">
<input type="submit" value="3 Spalten">
</form>

<br>Columns:[{$smarty.post.columns}]<br>

Leider geht so die Post-Variable beim weiteren Navigieren durch die Seite verloren.
Wie schaffe ich es die Post Variable dauerhaft zu setzen?

Danke vorab für Eure Mühe.

Mfg,
eXo[/QUOTE]
Ja, sicher geht die verloren.

Aber Du kannst die POST-Variable in die SESSION speichern, dann bleibt die erhalten.

Und hier die dazu passende Klasse: http://docu.oxid-esales.com/CE/sourcecodedocumentation/4.3.2.27884/oxutilsserver_8php_source.html

edit: Fehlt noch die Klasse, welche die Methode besitzt, um eine Server Session zu speichern: http://docu.oxid-esales.com/CE/sourcecodedocumentation/4.3.2.27884/ (oxSession::setVar(), Zeile 426)

[QUOTE=Michael Keiluweit;32542]Und hier die dazu passende Klasse: http://docu.oxid-esales.com/CE/sourcecodedocumentation/4.3.2.27884/oxutilsserver_8php_source.html

edit: Fehlt noch die Klasse, welche die Methode besitzt, um eine Server Session zu speichern: http://docu.oxid-esales.com/CE/sourcecodedocumentation/4.3.2.27884/ (oxSession::setVar(), Zeile 426)[/QUOTE]
Warum immer mit Kanonen auf Spatzen schießen???

Ein wenig PHP im Template reicht dafür voll aus, und erspart mir das ganze Modul-Gedöns…

[{PHP}]
if (isset($_POST['columns'])
{
    $_SESSION['columns']=$_POST['columns'];
}
[{/PHP}]

Mit

[{$smarty.session.columns}]

kann man dann im Template darauf zugreifen.