Description:
PHP version 5.4.0,
VM: cart.php last svn and before, Jun 05 (https://dev.virtuemart.net/svn/virtuemart/trunk/virtuemart@6054 87cc427b-4a1e-0410-b729-b2260ec0f063)
I got a warning message if I add a product to the cart AND I'm not logged in (guest):
( ! ) Warning: Creating default object from empty value in /home/tkuschel/workspaces/cms/joomla/components/com_virtuemart/helpers/cart.php on line 1304
Remedy: - my proposal 8)
code: function prepareAddressRadioSelection(){
//Just in case
$this->user = VmModel::getModel('user');
$this->userDetails = $this->user->getUser();
// Shipment address(es)
if($this->user){
$_addressBT = $this->user->getUserAddressList($this->userDetails->JUser->get('id') , 'BT');
// Overwrite the address name for display purposes
if(empty($_addressBT)){
$_addressBT[0] = new StdClass();
}
$_addressBT[0]->address_type_name = JText::_('COM_VIRTUEMART_ACC_BILL_DEF');
$_addressST = $this->user->getUserAddressList($this->userDetails->JUser->get('id') , 'ST');
} else {
$_addressBT = array();
$_addressBT[0]->address_type_name = '<a href="index.php'
.'?option=com_virtuemart'
.'&view=user'
.'&task=editaddresscart'
.'&addrtype=BT'
. '">'.JText::_('COM_VIRTUEMART_ACC_BILL_DEF').'</a>'.'<br />';
$_addressST = array();
}
.......
Important note - Bug???:
* The else branch do only enter if the model "VirtueMartModelUser" does not exists. $this->user points to the instance of this model.
Former, I think the "if/else" should decide wheather there is a user or not?
So IMHO, at my site, the else branch is visited at no time!
Regards
Thomas Kuschel
http://www.loytec.com