Beispiel #1
0
 function getLensPowerListsFromArray($arr)
 {
     $params = JRequest::getVar('params', null);
     //print_r($params);
     // $toric = $params['toric'];
     $refraction = $params['refraction'][0];
     $clRx = $params['clRx'][0];
     $vertex = 1;
     if (isset($params['clRx'][0])) {
         $vertex = 0;
         $refraction = $clRx;
     }
     if (!isset($refraction)) {
         return null;
     }
     //print_r($refraction);
     $user =& JFactory::getUser();
     $query = "\n(SELECT pnl.pn_tid, pnl.pn_name as name, pnl.pn_image as image, pnlc.pn_comp_name as company, pnl.pn_cosmetic,  pnl.pn_toric as toric, pnl.pn_dk, pop.score, pnl.pn_discontinued as discontinued,  1 AS favorite\nFROM pn_lenses pnl \nLEFT JOIN pn_lenses_companies pnlc ON (pnl.pn_comp_id = pnlc.pn_comp_tid) \nLEFT JOIN pn_lenses_polymers pnlp ON (pnl.pn_poly_id = pnlp.pn_poly_tid) \nLEFT JOIN pn_lenses_user_favorites c ON c.item_id = pnl.pn_tid \nLEFT JOIN pn_lenses_popularity pop ON (pop.itemID = pnl.pn_tid) \nWHERE c.user_id = {$user->id} AND c. favorite = 1\nAND pnl.pn_tid IN (" . implode(',', $arr) . ") \nAND pnl.pn_name NOT LIKE '%synergeye%' AND pnl.pn_name NOT LIKE '%softperm%' \nAND pn_bifocal = 0)\nUNION DISTINCT\n(SELECT pnl.pn_tid, pnl.pn_name as name, pnl.pn_image as image, pnlc.pn_comp_name as company, pnl.pn_cosmetic, pnl.pn_toric as toric,  pnl.pn_dk, pop.score, pnl.pn_discontinued as discontinued, 0 as favorite\nFROM pn_lenses pnl \nLEFT JOIN pn_lenses_companies pnlc ON (pnl.pn_comp_id = pnlc.pn_comp_tid) \nLEFT JOIN pn_lenses_polymers pnlp ON (pnl.pn_poly_id = pnlp.pn_poly_tid) \nLEFT JOIN pn_lenses_popularity pop ON (pop.itemID = pnl.pn_tid) \nWHERE NOT EXISTS (SELECT *\n                   FROM   pn_lenses_user_favorites f\n                   WHERE  f.item_id = pnl.pn_tid\nAND f.user_id = {$user->id} AND f.favorite=1\n)\nAND pnl.pn_tid IN (" . implode(',', $arr) . ") \nAND pnl.pn_name NOT LIKE '%synergeye%' AND pnl.pn_name NOT LIKE '%softperm%' \nAND pn_bifocal = 0)\n\n order by favorite DESC, score DESC, name ASC";
     $db = databaseObj();
     $db->setQuery($query);
     $lenses = $db->loadAssocList();
     //echo $query;
     //print_r($lenses);
     $returnLenses = array();
     if (!empty($lenses)) {
         foreach ($lenses as $k => $v) {
             //comvert image string to an array
             if (strstr($v['image'], ',')) {
                 $images = explode(',', $v['image']);
                 $v['image'] = trim($images[count($images) - 1]);
             }
             //get an array for this lens's powers
             $powerQuery = "SELECT lpl.sphere, lpl.cylinder, lpl.axis, lp.diameter, lp.baseCurve FROM pn_lenses_power_lists lpl LEFT JOIN pn_lenses_powers lp ON lpl.id=lp.id WHERE lpl.lensID = " . $v['pn_tid'];
             $db->setQuery($powerQuery);
             $lensPowerArr = $db->loadAssocList();
             //print_r($lensPowerArr[0]);
             //$lensPowers = $this->getPowerArrayForLens ($v['pn_tid']);
             $resultArray = getBestCLPowerForParams($refraction, $lensPowerArr, $v['toric'], $vertex);
             foreach ($resultArray as $oneVariation) {
                 // 					echo "<br/>vari:<br/>";
                 // 					print_r ($oneVariation);
                 // 					echo "<br/>lens:<br/>";
                 // 					print_r ($v);
                 $row = array_merge($v, $oneVariation);
                 array_push($returnLenses, $row);
             }
             //print_r($resultArray);
             //
             //print_r($returnLenses);
         }
     }
     usort($returnLenses, "vaSorter");
     //print_r($returnLenses);
     /*array_multisort($returnLenses['va'], SORT_ASC, SORT_NUMERIC,
       $returnLenses['favorite'], SORT_NUMERIC, SORT_DESC);*/
     //filter out the worst lenses
     $returnLenses = removeVAOutliers($returnLenses);
     return $returnLenses;
 }
Beispiel #2
0
 function getLensPowerListsFromArray($arr)
 {
     $params = JRequest::getVar('params', null);
     // $toric = $params['toric'];
     $refraction = $params['refraction'][0];
     if ($refraction == "") {
         return null;
     }
     $query = "SELECT pnl.pn_tid, pnl.pn_name as name, pnl.pn_image as image, pnlc.pn_comp_name as company, \n\t\tpnl.pn_cosmetic, pnl.pn_dk, ufav.favorite, pop.score,\n\t\tpnl.pn_discontinued as discontinued \n\t\tFROM \n\t\tpn_lenses pnl \n\t\tleft join pn_lenses_companies pnlc on (pnl.pn_comp_id = pnlc.pn_comp_tid)\n\t\tleft join pn_lenses_polymers pnlp on (pnl.pn_poly_id = pnlp.pn_poly_tid)\n\t\tleft join pn_lenses_user_favorites ufav on (ufav.item_id = pnl.pn_tid)\n\t\tleft join pn_lenses_popularity pop on (pop.itemID = pnl.pn_tid)\n\t\tWHERE pnl.pn_tid IN (" . implode(',', $arr) . ")\n\t\tAND pnl.pn_name NOT LIKE '%synergeye%' AND pnl.pn_name NOT LIKE '%softperm%' AND pn_bifocal = 0\n\t\torder by favorite DESC, score DESC, name ASC";
     $db = databaseObj();
     $db->setQuery($query);
     $lenses = $db->loadAssocList();
     //echo $query;
     //print_r($lenses);
     $returnLenses = array();
     if (!empty($lenses)) {
         foreach ($lenses as $k => $v) {
             //comvert image string to an array
             if (strstr($v['image'], ',')) {
                 $images = explode(',', $v['image']);
                 $v['image'] = trim($images[count($images) - 1]);
             }
             //get an array for this lens's powers
             $powerQuery = "SELECT lpl.sphere, lpl.cylinder, lpl.axis, lp.diameter, lp.baseCurve FROM pn_lenses_power_lists lpl LEFT JOIN pn_lenses_powers lp ON lpl.id=lp.id WHERE lpl.lensID = " . $v['pn_tid'];
             $db->setQuery($powerQuery);
             $lensPowerArr = $db->loadAssocList();
             //print_r($lensPowerArr[0]);
             //$lensPowers = $this->getPowerArrayForLens ($v['pn_tid']);
             $resultArray = getBestCLPowerForParams($refraction, $lensPowerArr, $v['toric']);
             foreach ($resultArray as $oneVariation) {
                 // 					echo "<br/>vari:<br/>";
                 // 					print_r ($oneVariation);
                 // 					echo "<br/>lens:<br/>";
                 // 					print_r ($v);
                 $row = array_merge($v, $oneVariation);
                 array_push($returnLenses, $row);
             }
             //print_r($resultArray);
             //
             //print_r($returnLenses);
         }
     }
     usort($returnLenses, "vaSorter");
     return $returnLenses;
 }