Hallo Community,
Ich finde Isotope ein Shopsystem mit viel potential.
Etwas hat mich jedoch aus Kundensicht gesehen gestört.
Im Adressbuch werden die hinterlegten Adressen aufgelistet,
jedoch kein Bezug angezeigt, ob es sich um eine Liefer-, Rechnungs- oder
Versand- und Rechnungsadresse handelt.
Mit einem Freund zusammen haben wir uns heut Nacht einmal mit dieser Problematik auseinandergesetzt und Folgendes umgesetzt:
Wir haben Änderungen an der ModuleIsotopeAddressBook.php und der mod_iso_addressbook.tpl vorgenommen.
Das ModuleIsotopeAddressBook.php wurde ab Zeile 108 wie folgt geändert:
PHP-Code:
/**
* List all addresses for the current frontend user.
*/
protected function show()
{
global $objPage;
$i = 0;
$arrAddresses = array();
$objAddressLabel = array();
$strUrl = $this->generateFrontendUrl($objPage->row()) . ($GLOBALS['TL_CONFIG']['disableAlias'] ? '&' : '?');
$objAddresses = $this->Database->execute("SELECT * FROM tl_iso_addresses WHERE pid={$this->User->id}");
while( $objAddresses->next() )
{
$arrAddresses[] = array
(
'id' => $objAddresses->id,
'ids' => $objAddresses->isDefaultShipping,
'idb' => $objAddresses->isDefaultBilling,
'class' => (($i%2 ? 'even' : 'odd') . ($i==0 ? ' first' : '')),
'text' => $this->Isotope->generateAddressString($objAddresses->row()),
'edit_url' => ampersand($strUrl . 'act=edit&address=' . $objAddresses->id),
'delete_url' => ampersand($strUrl . 'act=delete&address=' . $objAddresses->id),
);
$i++;
}
if (count($arrAddresses))
{
$arrAddresses[count($arrAddresses)-1]['class'] .= ' last';
}
else
{
$this->Template->mtype = 'empty';
$this->Template->message = $GLOBALS['TL_LANG']['ERR']['noAddressBookEntries'];
}
$this->Template->addressLabel = $GLOBALS['TL_LANG']['MSC']['addressBookLabel'];
$this->Template->addNewAddressLabel= $GLOBALS['TL_LANG']['MSC']['createNewAddressLabel'];
$this->Template->editAddressLabel = $GLOBALS['TL_LANG']['MSC']['editAddressLabel'];
$this->Template->deleteAddressLabel = $GLOBALS['TL_LANG']['MSC']['deleteAddressLabel'];
$this->Template->addresses = $arrAddresses;
$this->Template->addNewAddress = ampersand($strUrl . 'act=create');
}
Es wurden 'ids' für die Liefer- und 'idb' für die Rechnungsadresse
dem $arrAddresses hinzugefügt.
Danach wurde die mod_iso_addressbook.tpl wie folgt geändert:
PHP-Code:
<!-- indexer::stop -->
<div class="<?php echo $this->class; ?>"<?php echo $this->cssID; ?><?php if ($this->style): ?> style="<?php echo $this->style; ?>"<?php endif; ?>>
<div class="my-account">
<div class="page-title title-buttons">
<?php if ($this->headline): ?>
<<?php echo $this->hl; ?>><?php echo $this->headline; ?></<?php echo $this->hl; ?>>
<?php endif; ?>
<a class="button" href="<?php echo $this->addNewAddress; ?>" title="<?php echo $this->addNewAddressLabel; ?>"><?php echo $this->addNewAddressLabel; ?></a> </div>
<ul class="messages">
<li class="success-msg">
<?php if(strlen($this->message)): ?>
<ul>
<li>
<?php { echo $this->message; ?>
<?php } else: { echo "Folgende Adressen wurden eingetragen."; } ?>
</li>
</ul>
<?php endif; ?>
</li>
</ul>
<?php if( count($this-addresses) ): ?>
<div class="adressen">
<?php foreach( $this->addresses as $address ):?>
<div>
<?php $adshipping = $address['ids']; ?>
<?php $adbilling = $address['idb']; ?>
<?php if ($adshipping != 0 && $adbilling != 0 ) { ?>
<div class="box-title">
<h2>Rechnungs- und Lieferadresse </h2>
</div>
<ul>
<li class="<?php echo $address['class']; ?>">
<div class="buttons"> <a class="edit" href="<?php echo $address['edit_url']; ?>" title="<?php echo $this->editAddressLabel; ?>"><?php echo $this->editAddressLabel; ?></a> <a class="delete" href="<?php echo $address['delete_url']; ?>" title="<?php echo $this->deleteAddressLabel; ?>"><?php echo $this->deleteAddressLabel; ?></a> </div>
<?php echo $address['text']; ?> </li>
</ul>
<br />
<?php } ?>
<?php if ($adshipping != 0 && $adbilling != 1 ) { ?>
<div class="box-title">
<h2>Lieferadresse </h2>
</div>
<ul>
<li class="<?php echo $address['class']; ?>">
<div class="buttons"> <a class="edit" href="<?php echo $address['edit_url']; ?>" title="<?php echo $this->editAddressLabel; ?>"><?php echo $this->editAddressLabel; ?></a> <a class="delete" href="<?php echo $address['delete_url']; ?>" title="<?php echo $this->deleteAddressLabel; ?>"><?php echo $this->deleteAddressLabel; ?></a> </div>
<?php echo $address['text']; ?> </li>
</ul>
<br />
<?php } if ($adshipping != 1 && $adbilling != 0 ) { ?>
<div class="box-title">
<h2>Rechnungsadresse </h2>
</div>
<ul>
<li class="<?php echo $address['class']; ?>">
<div class="buttons"> <a class="edit" href="<?php echo $address['edit_url']; ?>" title="<?php echo $this->editAddressLabel; ?>"><?php echo $this->editAddressLabel; ?></a> <a class="delete" href="<?php echo $address['delete_url']; ?>" title="<?php echo $this->deleteAddressLabel; ?>"><?php echo $this->deleteAddressLabel; ?></a> </div>
<?php echo $address['text']; ?> </li>
</ul>
<br />
<?php } ?>
<?php if ($adshipping != 1 && $adbilling !=1 ) { ?>
<div class="box-title"style="color:#999">
<h2>Keine Rechnungs- oder Lieferadresse definiert</h2>
</div>
<ul>
<li class="<?php echo $address['class']; ?>">
<div class="buttons"> <a class="edit" href="<?php echo $address['edit_url']; ?>" title="<?php echo $this->editAddressLabel; ?>"><?php echo $this->editAddressLabel; ?></a> <a class="delete" href="<?php echo $address['delete_url']; ?>" title="<?php echo $this->deleteAddressLabel; ?>"><?php echo $this->deleteAddressLabel; ?></a> </div>
<p style="color:#999"><?php echo $address['text']; ?></p>
</li>
</ul>
<br />
<?php } ?>
</div>
<?php endforeach; ?>
</div>
<?php endif; ?>
</div>
</div>
<!-- indexer::continue -->
Jetzt wird bei jeder Adresse angezeigt, ob es eine Liefer-, Rechnungs-,
Liefer- und Rechnungsadresse oder Keine Rechnungs- oder Lieferadresse handelt.
Für jede Verbesserung oder Vorschläge auch im Bezug auf die Mehrsprachigkeit, die wir in diesem Fall ganz außer Acht gelassen haben, würde ich mich freuen.
Ich wünsch Euch allen einen Guten Rutsch!
Gruß
mrx02de
Lesezeichen