/** * This is a very time consuming function. * It fetches the category flypage for a specific product id * * @param int $product_id * @return string The flypage value for that product */ function get_flypage($product_id) { if( empty( $_SESSION['product_sess'][$product_id]['flypage'] )) { $db = new ps_DB; $productParentId = (int)$product_id; do { $q = "SELECT `#__{vm}_product`.`product_parent_id` AS product_parent_id, `#__{vm}_category`.`category_flypage` FROM `#__{vm}_product` LEFT JOIN `#__{vm}_product_category_xref` ON `#__{vm}_product_category_xref`.`product_id` = `#__{vm}_product`.`product_id` LEFT JOIN `#__{vm}_category` ON `#__{vm}_product_category_xref`.`category_id` = `#__{vm}_category`.`category_id` WHERE `#__{vm}_product`.`product_id`='$productParentId' "; $productParentId = $db->f("product_parent_id"); $db->query($q); $db->next_record(); } while( $db->f("product_parent_id") && !$db->f("category_flypage")); if ($db->f("category_flypage")) { $_SESSION['product_sess'][$product_id]['flypage'] = $db->f("category_flypage"); } else { $_SESSION['product_sess'][$product_id]['flypage'] = FLYPAGE; } } return $_SESSION['product_sess'][$product_id]['flypage']; }