/** * Display product measurement (L x W x H) in centimeters or articles measurement with flexible format * @param int $language_id * @param int $articles_id * @param string $unit_separator * @param const $format * @param string $dec_separator * @return string */ public function displayMeasurement($language_id, $articles_id = '', $unit_separator = '', $format = self::FORMAT_DISPLAYMEASUREMENT_PM1, $dec_separator = '') { //TODO: //Move displayMeasurement for article in ProductArticle object //Load ProductMeasurement like OOP (must update the class first) //1 function shoud have only 1 return (at the bottom of the function) use_class('ProductMeasurement'); $class_pmr = new ProductMeasurement(); if ($articles_id !== '') { $result = ''; $measurements_labels = array(); $measurements_values = array(); if ($format == self::FORMAT_DISPLAYMEASUREMENT_PM1 || $format == self::FORMAT_DISPLAYMEASUREMENT_PM2) { $l = $this->detail['pd2']['length'] > 0 ? $this->detail['pd2']['length'] / 10 : 0; $w = $this->detail['pd2']['width'] > 0 ? $this->detail['pd2']['width'] / 10 : 0; $h = $this->detail['pd2']['height'] > 0 ? $this->detail['pd2']['height'] / 10 : 0; if ($l > 10 || $w > 10 || $h > 10) { $dec_number = 0; } else { $dec_number = 1; } if ($dec_separator == '') { if ($language_id == '2' || $language_id == '3') { $dec_separator = ','; } else { $dec_separator = '.'; } } if ($language_id == 1) { $measurements_labels[] = 'Length'; $measurements_labels[] = 'Width'; $measurements_labels[] = 'Height'; } elseif ($language_id == 2) { $measurements_labels[] = 'Länge'; $measurements_labels[] = 'Breite'; $measurements_labels[] = 'Höhe'; } elseif ($language_id == 3) { $measurements_labels[] = 'Panjang'; $measurements_labels[] = 'Lebar'; $measurements_labels[] = 'Tinggi'; } $measurements_values[] = number_format($l, $dec_number, $dec_separator, '') . 'cm'; $measurements_values[] = number_format($w, $dec_number, $dec_separator, '') . 'cm'; $measurements_values[] = number_format($h, $dec_number, $dec_separator, '') . 'cm'; } else { $measurements = Product::getOldProductArticleFunction()->getMeasurementDetail($this->id, $articles_id); foreach ($measurements as $msr_id => $msr_dt) { $msr_desc = $class_pmr->getDescription($msr_id, $language_id); $measurements_labels[$msr_id] = $msr_desc[$language_id]['name']; list($msr_val, $msr_unit) = explode(' ', $msr_dt['measurements_value']); if ($msr_val !== '') { $measurements_values[$msr_id] = $msr_val . $unit_separator . $msr_unit; } else { unset($measurements_labels[$msr_val]); } } } switch ($format) { case self::FORMAT_DISPLAYMEASUREMENT_PM1: case self::FORMAT_DISPLAYMEASUREMENT_AM1: $result = implode(' x ', $measurements_labels) . ' - ' . implode(' x ', $measurements_values); break; case self::FORMAT_DISPLAYMEASUREMENT_AM2: $size_text = $this->getLengthOrSizeAsText($articles_id); $result = implode(' x ', $measurements_labels) . ' - ' . $size_text . ($size_text != '' ? ' ' : '') . '(' . implode(' x ', $measurements_values) . ')'; break; case self::FORMAT_DISPLAYMEASUREMENT_PM2: case self::FORMAT_DISPLAYMEASUREMENT_AM3: foreach ($measurements_labels as $msr_id => $msr_lbl) { $result .= ($result != '' ? ', ' : '') . $msr_lbl . ' : ' . $measurements_values[$msr_id]; } break; case self::FORMAT_DISPLAYMEASUREMENT_AM4: $result = implode(' x ', $measurements_labels) . ': '; $dm_am4 = ''; foreach ($this->articles as $aid => $article) { $dm_am4_size = $this->getLengthOrSizeAsText($aid); $msr_val_temp = array(); foreach ($article['measurements'] as $msr_id => $msr_dt) { list($msr_val, $msr_unit) = explode(' ', $msr_dt['measurements_value']); $msr_val_temp[] = $msr_val . $unit_separator . $msr_unit; } $dm_am4_msr = implode(' x ', $msr_val_temp); $dm_am4[] = "{$dm_am4_size} ({$dm_am4_msr})"; } $result .= implode('; ', $dm_am4); break; } return $result; } else { $l = $this->detail['pd2']['length'] > 0 ? $this->detail['pd2']['length'] / 10 : 0; $w = $this->detail['pd2']['width'] > 0 ? $this->detail['pd2']['width'] / 10 : 0; $h = $this->detail['pd2']['height'] > 0 ? $this->detail['pd2']['height'] / 10 : 0; if ($l > 10 || $w > 10 || $h > 10) { $dec_number = 0; } else { $dec_number = 1; } if ($language_id == '2' || $language_id == '3') { $dec_separator = ','; } else { $dec_separator = '.'; } $measurement = array(); $measurement[] = number_format($l, $dec_number, $dec_separator, ''); $measurement[] = number_format($w, $dec_number, $dec_separator, ''); $measurement[] = number_format($h, $dec_number, $dec_separator, ''); //return implode(' x ', $measurement) . ' cm'; return implode(' x ', $measurement); } }
$measurements_id = tep_db_prepare_input($_GET['id']); $measurements_data = $class_pmr->getDetail($measurements_id); } else { $measurements_id = ''; } $content .= '<div id="measurement-tabs" style="margin:20px 0px;width:600px;">'; $content .= '<form name="measurements_detail" action="?open=products-measurements" method="post">'; $content .= '<ul>'; foreach ($languages as $lid => $l) { $content .= '<li><a href="#measurement-desc-' . $lid . '"><span>' . $l['name'] . '</span></a></li>'; } $content .= '</ul>'; foreach ($languages as $lid => $language) { $form_measurement_detail = array(); if ($measurements_id > 0) { $measurements_detail_data = $class_pmr->getDescription($measurements_id, $lid); } $form_measurement_detail[$lid]['label'] = 'Name'; $name = isset($measurements_detail_data[$lid]['name']) ? $measurements_detail_data[$lid]['name'] : ''; $form_measurement_detail[$lid]['field'] = '<input type="text" name="name[' . $lid . ']"' . ' value="' . $name . '" class="input2" />'; $content .= '<div id="measurement-desc-' . $lid . '">'; $content .= tep_draw_table('form', $form_measurement_detail); $content .= '</div>'; } $content .= '<div style="margin-top:5px">'; $content .= '<input type="hidden" name="me_action" value="MEASUREMENTSAVE" />'; $content .= '<input type="hidden" name="measurements_id" value="' . $measurements_id . '" />'; $content .= '<input type="submit" class="blue" name="submit" value="Save Measurement" />'; $content .= '<input type="button" name="back" value="Cancel"/>'; $content .= '</div>'; $content .= '</form>';