Ich stell mal meinen Optimierungsvorschlag hier vor.
Vorüberlegung: ich wollte ich die Stufen beibehalten weil kurze Seiten auch was haben aber den Ablauf transparenter machen
gleichzeitig finde ich den Gedanken die Boxen im checkout auszublenden ja ok - aber die volle Breite ist mit den resultierenden Zeilenlängen einfach zu viel um übersichtlich zu sein.
==> Schritt 1: für die checkoutnavi eine neue Box erstellen (erst mal leer) die dann anstelle der anderen Inhalte beim Warenkorb und im checkout statt der anderen eingebunden wird:
{if (strstr ($smarty.server
.PHP_SELF
, 'checkout')) || (strstr ($smarty.server
.PHP_SELF
, 'shopping_cart'))} <div id
="linkespalte"> {$box_CHECKOUTNAVI} </div
> {else} <div id
="linkespalte"> [sonst vorhandene Inhalte der linken Spalte
] </div
> {/if} Die Box sieht dann am Ende so aus (könnte auch grafisch noch mit Pfeilen betont werden)
[ Für Gäste sind keine Dateianhänge sichtbar ]
zuerst mal war das die jetzt vorhandene checkoutnavi - nur gestapelt statt nebeneinander
dazu hier der Warenkorb
wichtig fand ich aber dass die Anmeldung/Kundendaten mit in den Ablauf kommen wenn derjenige noch nicht eingeloggt ist mit einem account - wenn bereits eingeloggt wird der Punkt nicht gezeigt - deshalb jetzt eine selbstnummerierende ol statt der ul.
Bisher ist man ja völlig aus dem Bestellablauf raus wenn man an dieser Stelle sich erst anmeldet.
Nach der Anmeldung finde ich allerdings den redirect in den Warenkorb ganz ok wenn man schon einen account hatte - könnte ja sein dass dort noch Sachen vom letzten (abgebrochenen) Einkauf liegen die man löschen will.
mit den Kundendateneingaben habe ich aber noch Bauchschmerzen
im Moment ist es so, dass ich die entsprechenden Dateien einfach dupliziert habe und einen neuen Dateinamen habe der aus der checkout_shipping aufgerufen wird
if (ACCOUNT_OPTIONS == 'guest') {
xtc_redirect(xtc_href_link(FILENAME_CHECKOUT_CREATE_GUEST_ACCOUNT, '', 'SSL'));
} else {
xtc_redirect(xtc_href_link(FILENAME_CHECKOUT_LOGIN, '', 'SSL'));
}
damit habe ich aber mindestens drei Dateien die doppelt angelegt sind - elegant finde ich das nicht
aber da ich eigentlich gar nicht programmieren kann hab ich grade keine Idee wie es besser geht
hat da vielleicht wer eine Idee?
die box_checkoutnavi.html sieht jetzt so aus
{config_load
file="$language/lang_$language.conf" section
="checkout_navigation"}<h2
class="boxheader" style
="text-align:center">Ihre Schritte zur Bestellung
</h2
><ol id
="checkoutnavigation" style
="list-style-position:inside" type
="1"> <li
{if strstr ($smarty.server
.PHP_SELF
, 'shopping_cart')} class="active" {else} class="inactive" {/if}> {if (strstr ($smarty.server
.PHP_SELF
, 'confirmation')) || (strstr ($smarty.server
.PHP_SELF
, 'payment')) || (strstr ($smarty.server
.PHP_SELF
, 'shipping')) } <span
class="title"><a href
="{$LINK_CART}" title
="hierher zurück">Warenkorb
</a
></span
><br
/> {else} <span
class="title">Warenkorb
</span
><br
/> {/if} <span
class="description">Bestellte Artikel prüfen
</span
> </li
> {if $smarty.session
.customer_id
} {else} <li
{if (strstr ($smarty.server
.PHP_SELF
, 'login')) || (strstr ($smarty.server
.PHP_SELF
, 'account'))} class="active" {else} class="inactive" {/if}> <span
class="title">Kundendaten
</span
><br
/> <span
class="description">Anmelden oder als Gast bestellen
</span
> </li
> {/if} <li
{if strstr ($smarty.server
.PHP_SELF
, 'shipping')} class="active" {else} class="inactive" {/if}> {if (strstr ($smarty.server
.PHP_SELF
, 'confirmation')) || (strstr ($smarty.server
.PHP_SELF
, 'payment')) } <span
class="title"><a href
="{$LINK_SHIPPING}" title
="hierher zurück">{#title_shipping#}</a></span><br />
{else} <span
class="title">{#title_shipping#}</span><br />
{/if} <span
class="description">{#desc_shipping#}</span>
</li
> <li
{if strstr ($smarty.server
.PHP_SELF
, 'payment')} class="active" {else} class="inactive" {/if}> {if strstr ($smarty.server
.PHP_SELF
, 'confirmation')} <span
class="title"><a href
="{$LINK_PAYMENT}" title
="hierher zurück">{#title_payment#}</a></span><br />
{else} <span
class="title">{#title_payment#}</span><br />
{/if} <span
class="description">{#desc_payment#}</span>
</li
> <li
{if strstr ($smarty.server
.PHP_SELF
, 'confirmation')} class="active" {else} class="inactive" {/if}> <span
class="title">{#title_confirmation#}</span><br />
<span
class="description">{#desc_confirmation#}</span>
</li
> <li
{if strstr ($smarty.server
.PHP_SELF
, 'success')} class="active" {else} class="inactive" {/if}> <span
class="title">{#title_success#}</span><br />
<span
class="description">{#desc_success#}</span>
</li
></ol
> Die Links zu den schon durchlaufenen Schritten stehen in der dazugehörigen checkoutnavi.php unter source/boxes
<?php
/* -----------------------------------------------------------------------------------------
checkoutnavi.php
---------------------------------------------------------------------------------------*/
$box_smarty = new smarty;
$box_smarty->assign('tpl_path','templates/'.CURRENT_TEMPLATE.'/');
$box_content='';
$box_smarty->assign('LINK_CART', xtc_href_link(FILENAME_SHOPPING_CART, '', 'SSL'));
$box_smarty->assign('LINK_SHIPPING', xtc_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));
$box_smarty->assign('LINK_PAYMENT', xtc_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL')) ;
$box_smarty->assign('language', $_SESSION['language']);
$box_checkoutnavi = $box_smarty->fetch(CURRENT_TEMPLATE.'/boxes/box_checkoutnavi.html', $cache_id);
$smarty->assign('box_CHECKOUTNAVI', $box_checkoutnavi);
?>
Freu mich auf Kommentare zum Prinzip und Ideen für elegantere Lösungen