Re: Extend Base Classes in Typo3
Posted: 18 Dec 2017, 10:39
Ok i solve it now like this:
what must i now do to root aimoes to this subclass so i dont have to change every update the core.
i try this:
but dosent work...
Code: Select all
namespace Mantik\MShop\Customer\Item;
class Base extends \Aimeos\MShop\Customer\Item\Base {
/**
* Initializes the customer item object
*
* @param \Aimeos\MShop\Common\Item\Address\Iface $address Payment address item object
* @param array $values List of attributes that belong to the customer item
* @param \Aimeos\MShop\Common\Lists\Item\Iface[] $listItems List of list items
* @param \Aimeos\MShop\Common\Item\Iface[] $refItems List of referenced items
* @param \Aimeos\MShop\Common\Item\Address\Iface[] $addresses List of referenced address items
*/
public function __construct( \Aimeos\MShop\Common\Item\Address\Iface $address, array $values = [],
array $listItems = [], array $refItems = [], $addresses = [] )
{
parent::__construct( 'customer.', $values, $listItems, $refItems );
foreach( $values as $name => $value )
{
switch( $name )
{
case 'customer.salutation': $address->setSalutation( $value ); break;
case 'customer.company': $address->setCompany( $value ); break;
case 'customer.vatid': $address->setVatId( $value ); break;
case 'customer.title': $address->setTitle( $value ); break;
case 'customer.firstname': $address->setFirstname( $value ); break;
case 'customer.lastname': $address->setLastname( $value ); break;
case 'customer.address1': $address->setAddress1( $value ); break;
case 'customer.address2': $address->setAddress2( $value ); break;
case 'customer.address3': $address->setAddress3( $value ); break;
case 'customer.postal': $address->setPostal( $value ); break;
case 'customer.city': $address->setCity( $value ); break;
case 'customer.state': $address->setState( $value ); break;
// MANTIK
case 'customer.languageid':
switch($value){
case 0:
$value = 'de';
break;
case 1:
$value = 'fr';
break;
case 2:
$value = 'it';
break;
}
$address->setLanguageId( $value );
break;
// MANTIK
case 'customer.countryid': $address->setCountryId( $value ); break;
case 'customer.telephone': $address->setTelephone( $value ); break;
case 'customer.telefax': $address->setTelefax( $value ); break;
case 'customer.website': $address->setWebsite( $value ); break;
case 'customer.longitude': $address->setLongitude( $value ); break;
case 'customer.latitude': $address->setLatitude( $value ); break;
case 'customer.email': $address->setEmail( $value ); break;
}
}
// set modified flag to false
$address->setId( $this->getId() );
parent::billingaddress($address);
parent::addresses($addresses);
parent::data($values);
}
}
i try this:
Code: Select all
config.tx_extbase {
persistence {
classes {
Aimeos\MShop\Customer\Item\Base {
subclasses {
0 = Mantik\MShop\Customer\Item\Base
}
}
}
}
}