public function variations() { $currency = $this->request->get('currency', $this->application->getDefaultCurrencyCode()); $product = Product::getInstanceByID($this->request->get('id'), Product::LOAD_DATA, array('ProductImage', 'Manufacturer', 'Category')); $this->product = $product; $variations = $this->getVariations(); remove_recursion($variations); echo "new Product.Variations(\$('variations'), " . json_encode($variations) . ", {currency: '" . $currency . "'});"; }
function remove_recursion(&$object, &$stack = array()) { if ((is_object($object) || is_array($object)) && $object) { if (!in_array($object, $stack, true)) { $stack[] = $object; foreach ($object as &$subobject) { remove_recursion($subobject, $stack); } } else { $object = "***RECURSION***"; } } return $object; }
public function getData() { remove_recursion($this->data); return json_encode($this->data); }