Back to PhocacartSpecification class

Method getSpecificationGroupsAndSpecifications

public static
getSpecificationGroupsAndSpecifications
(mixed $productId)

Method getSpecificationGroupsAndSpecifications - Source code

/*
public static function storeSpecificationsById($productId, $specsArray) {

	if ((int)$productId > 0) {
		$db =Factory::getDBO();

		$query = ' DELETE '
				.' FROM #__phocacart_specifications'
				. ' WHERE product_id = '. (int)$productId;
		$db->setQuery($query);
		$db->execute();

		if (!empty($specsArray)) {
			$values 	= array();
			foreach($specsArray as $k => $v) {

				// Don't store empty specification
				if ($v['title'] == '') {
					continue;
				}

				if(empty($v['alias'])) {
					$v['alias'] = $v['title'];
				}
				$v['alias'] = PhocacartUtils::getAliasName($v['alias']);

				if(empty($v['alias_value'])) {
					$v['alias_value'] = $v['value'];
				}

				// When no value, then no alias
				if ($v['alias_value'] != '') {
					$v['alias_value'] = PhocacartUtils::getAliasName($v['alias_value']);
				}

				if(empty($v['group_id'])) {
					$v['group_id'] = 0;
				}

				// correct simple xml
				if (empty($v['title'])) 		{$v['title'] 			= '';}
				if (empty($v['alias'])) 		{$v['alias'] 			= '';}
				if (empty($v['value'])) 		{$v['value'] 			= '';}
				if (empty($v['alias_value'])) 	{$v['alias_value'] 		= '';}
				if (empty($v['group_id'])) 		{$v['group_id'] 		= '';}

				$values[] 	= '('.(int)$productId.', '.$db->quote($v['title']).', '.$db->quote($v['alias']).', '.$db->quote($v['value']).', '.$db->quote($v['alias_value']).', '.(int)$v['group_id'].')';
			}

			if (!empty($values)) {
				$valuesString = implode(',', $values);
				$query = ' INSERT INTO #__phocacart_specifications (product_id, title, alias, value, alias_value, group_id)'
						.' VALUES '.(string)$valuesString;
				$db->setQuery($query);
				$db->execute();
			}
		}
	}
}
*/
public static function getSpecificationGroupsAndSpecifications($productId)
{
    $db = Factory::getDBO();
    $query = 'SELECT s.id, s.title, s.alias, s.value, s.alias_value, s.image, s.image_medium, s.image_small, s.color, g.id as groupid, g.title as grouptitle' . ' FROM #__phocacart_specifications AS s' . ' LEFT JOIN #__phocacart_specification_groups AS g ON g.id = s.group_id' . ' WHERE s.product_id = ' . (int) $productId . ' ORDER by g.ordering';
    $db->setQuery($query);
    $specs = $db->loadObjectList();
    $specsA = array();
    if (!empty($specs)) {
        foreach ($specs as $k => $v) {
            $specsA[$v->groupid][0] = $v->grouptitle;
            $specsA[$v->groupid][$v->id]['title'] = $v->title;
            $specsA[$v->groupid][$v->id]['value'] = $v->value;
        }
    }
    return $specsA;
}