Hauptseite | Alphabetische Liste | Auflistung der Klassen | Auflistung der Dateien | Klassen-Elemente | Datei-Elemente

JuelichFunction Klassenreferenz

Diese Klasse bereitet Werte aus der DB auf. Mehr...

Aufstellung aller Elemente

Öffentliche Methoden

 JuelichFunction ()
 getModuleDataValues (&$row, $pId)
 Liefert die aufbereiteten Detail-Daten eines Moduls.
 getProductDataValues (&$row)
 Liefert die aufbereiteten Daten eines Produktes in der Kurzliste.
 getProductDataDetailValues (&$row)
 Liefert die aufbereiteten Detail-Daten eines Produktes.
 getAccessDataValues (&$row)
 Liefert die aufbereiteten Daten eines Zubehörs in der Kurzliste.
 getAccessDataDetailValues (&$row)
 Liefert die aufbereiteten Detail-Daten eines Zubehörs.
 getValue ($func, $raw, $para="")
 Bereitet einen Wert, gemäß einer Funktion auf.
 getHref ($para)
 Erzeugt den Verweis auf die Detailangaben eines Produktes.
 scanInternalField ($intern)
 Interne Felder aufbereiten.

Öffentliche Attribute

 $str
 das JuelichString Objekt
 $data
 das JuelichData Objekt
 $shortList = true
 Flag ob Kurzliste.
 $pId = 0
 die aktuelle Produkt-Id


Ausführliche Beschreibung

Diese Klasse bereitet Werte aus der DB auf.

Definiert in Zeile 16 der Datei JuelichFunction.php.


Beschreibung der Konstruktoren und Destruktoren

JuelichFunction::JuelichFunction  ) 
 

Definiert in Zeile 23 der Datei JuelichFunction.php.

00023 { 00024 $this->str = new JuelichString; 00025 $this->data =& getDataInstance(); 00026 if ($this->data->getAppData('mode') == M_DETAIL || 00027 $this->data->getAppData('mode') == M_DETAIL2 || 00028 $this->data->getAppData('mode') == M_INCLUSION) { 00029 $this->shortList = false; 00030 } 00031 }


Dokumentation der Elementfunktionen

JuelichFunction::getAccessDataDetailValues &$  row  ) 
 

Liefert die aufbereiteten Detail-Daten eines Zubehörs.

Parameter:
row die Werte aus der DB
Rückgabe:
die aufbereiteten Daten als String
Definiert in Zeile 162 der Datei JuelichFunction.php.
00162 { 00163 $d = array(); 00164 $d['name'] = $this->getValue(F_PN, $row['z_name']); 00165 $d['image'] = $this->getValue(F_IMG, array($row['z_bild'], 00166 'z', 00167 $row['zubehoer_id'], 00168 $d['name'])); 00169 $d['text'] = $row['z_besch1'] . $row['z_besch2']; 00170 $d['price'] = $this->getValue(F_FP, $row['z_preis']); 00171 return $d; 00172 }

JuelichFunction::getAccessDataValues &$  row  ) 
 

Liefert die aufbereiteten Daten eines Zubehörs in der Kurzliste.

Parameter:
row die Werte aus der DB
Rückgabe:
die aufbereiteten Daten als String
Definiert in Zeile 133 der Datei JuelichFunction.php.
00133 { 00134 $sData = $this->scanInternalField($row['z_intern']); 00135 $d = array(); 00136 $d['name'] = $row['z_name']; 00137 if (!empty($sData['link'])) { 00138 $l10n = getDataInstance()->getAppData('l10n'); 00139 $d['detailLink'] = $sData['link'][$l10n - 1]; 00140 } 00141 else { 00142 $d['detailLink'] = $this->getValue(F_LD, 00143 array('z' . $row['zubehoer_id'], 00144 $d['name']) 00145 ); 00146 } 00147 $d['price'] = $this->getValue(F_FP, $row['z_preis']); 00148 if (!empty($sData['pAppend'])) { 00149 $l10n = getDataInstance()->getAppData('l10n'); 00150 $d['price'] .= $sData['pAppend'][$l10n - 1]; 00151 } 00152 return $d; 00153 }

JuelichFunction::getHref para  ) 
 

Erzeugt den Verweis auf die Detailangaben eines Produktes.

Parameter:
para die Produkt-Id und der Produkt-Name als Container
Rückgabe:
den Verweis
Definiert in Zeile 535 der Datei JuelichFunction.php.
00535 { 00536 $link = ""; 00537 $gId = $this->data->getAppData('module')->gruppe_id; 00538 if ($this->data->getAppData('l10n') == L_ENG && 00539 ($gId == G_MIKROSKOP || 00540 $gId == G_STEREOMIKROSKOP 00541 ) ) { 00542 $link = $para[0] . "_en/"; 00543 } 00544 else { 00545 $link = $para[0] . "/"; 00546 } 00547 $h = $this->data->getAppData('group1'); 00548 if( $h != "" ) { 00549 $link .= $this->str->ugly2Pretty($h) . "_"; 00550 } 00551 $link .= $this->str->ugly2Pretty($para[1]) . ".html"; 00552 return $link; 00553 }

JuelichFunction::getModuleDataValues &$  row,
pId
 

Liefert die aufbereiteten Detail-Daten eines Moduls.

Parameter:
row die Werte aus der DB
pId die Produkt-Id
Rückgabe:
die aufbereiteten Daten als String
Definiert in Zeile 41 der Datei JuelichFunction.php.
00041 { 00042 $this->pId = $pId; 00043 $mData = $this->data->getAppData('module')->webData; 00044 $l10n = $this->data->getAppData('l10n'); 00045 $content = ""; 00046 foreach ($mData as $d) { 00047 if (!$d[0] && $this->shortList) { 00048 continue; 00049 } 00050 $v = array(); 00051 $tmp = explode(',', str_replace(' ', '', $d[1])); 00052 foreach ($tmp as $field) { 00053 if ($this->data->getAppData('dependDetail')) { 00054 $pFields = $this->data->getAppData('module')->depend['primaryFields']; 00055 $prim = explode(',', str_replace(' ', '', $pFields)); 00056 if (in_array($field, $prim)) { 00057 $field = 'prim_' . $field; 00058 } 00059 } 00060 array_push($v, $row[$field]); 00061 } 00062 $para = ""; 00063 if (count($d) > 7) { 00064 $para = $d[7]; 00065 } 00066 $value = $this->getValue($d[6], $v, $para); 00067 if (!empty($value)) { 00068 $content .= $d[2 + $l10n - 1] 00069 . ': ' 00070 . $value; 00071 $s = strlen($value); 00072 if (is_numeric($value[$s - 1])) { 00073 $content .= $d[5]; 00074 } 00075 $content .= "<br>\n"; 00076 } 00077 } 00078 return $content; 00079 }

JuelichFunction::getProductDataDetailValues &$  row  ) 
 

Liefert die aufbereiteten Detail-Daten eines Produktes.

Parameter:
row die Werte aus der DB
Rückgabe:
die aufbereiteten Daten als String
Definiert in Zeile 113 der Datei JuelichFunction.php.
00113 { 00114 $d = array(); 00115 $d['name'] = $this->getValue(F_PN, $row['p_name']); 00116 $d['image'] = $this->getValue(F_IMG, array($row['p_bild'], 00117 'p', 00118 $row['produkt_id'], 00119 $d['name'])); 00120 $d['text'] = $this->getValue(F_NL2BR, array($row['p_besch1'], 00121 $row['p_besch2'])); 00122 $d['price'] = $this->getValue(F_FP, $row['p_preis']); 00123 return $d; 00124 }

JuelichFunction::getProductDataValues &$  row  ) 
 

Liefert die aufbereiteten Daten eines Produktes in der Kurzliste.

Parameter:
row die Werte aus der DB
Rückgabe:
die aufbereiteten Daten als String
Definiert in Zeile 88 der Datei JuelichFunction.php.
00088 { 00089 $d = array(); 00090 $d['name'] = $this->getValue(F_PN, $row['p_name']); 00091 $img = $this->getValue(F_IMG_SHORT, array($row['p_bild'], 00092 'ps', 00093 $row['produkt_id'], 00094 $d['name'])); 00095 $d['imageLink'] = "<a href=\"./" 00096 . $this->getValue(F_LD, array($row['produkt_id'], $d['name'])) 00097 . "\">$img</a>"; 00098 $d['text'] = $this->getValue(F_TS, $row['p_besch2']); 00099 $d['detailLink'] = $this->getValue(F_LD2, array($row['produkt_id'], 00100 $d['name']) 00101 ); 00102 $d['price'] = $this->getValue(F_FP, $row['p_preis']); 00103 return $d; 00104 }

JuelichFunction::getValue func,
raw,
para = ""
 

Bereitet einen Wert, gemäß einer Funktion auf.

Zu den einzelnen Funktionen, siehe die Kurz-Kommentare zu dem entsprechenede case.

Parameter:
func die Wert-Funktion
raw der bzw. die Werte, die aufbereitet werden sollen
para ein zusätzlicher Parameter für die Werte-Funktion
Rückgabe:
den aufbereiteten Wert
Definiert in Zeile 184 der Datei JuelichFunction.php.
00184 { 00185 if (!is_array($raw)) { 00186 $raw = array($raw); 00187 } 00188 $rawCount = count($raw); 00189 $l10n = $this->data->getAppData('l10n'); 00190 00191 switch ($func) { 00192 // Komma-Zahl kürzen 00193 case F_TF: 00194 return $this->str->trimFloat($raw[0]); 00195 // Preis formatieren 00196 case F_FP: 00197 return $this->str->formatPrice($raw[0], $l10n); 00198 // Produktname 00199 case F_PN: 00200 return $this->data->getAppData('modelName') . ' ' . $raw[0]; 00201 // Detail-Link 00202 case F_LD: 00203 return $this->getHref($raw); 00204 // Detail-Link2 00205 case F_LD2: 00206 $href = $this->getHref($raw); 00207 return $this->data->getAppData('module')->baseName[$l10n] 00208 . "/" . $href; 00209 // Zwei Werte formatieren (mit TrimFloat) 00210 case F_TV: 00211 $v1 = $this->str->trimFloat($raw[0]); 00212 $r1 = floatval($raw[1]); 00213 if (!empty($r1)) { 00214 return $v1 . $para . $this->str->trimFloat($r1); 00215 } 00216 return $v1; 00217 // Beschreibungstext kürzen 00218 case F_TS: 00219 return $this->str->text_k($raw[0]); 00220 // Bild-Tag in der Modell-Liste 00221 case F_IMG_SHORT: 00222 if ($raw[0] == SQL_YES) { 00223 $path = '/img/' 00224 . $raw[1] 00225 . '/' 00226 . $raw[2] 00227 . '/' 00228 . $this->data->getAppData('module')->baseName[$l10n] 00229 . '_' 00230 . $this->str->ugly2Pretty($raw[3]) 00231 . '.jpg'; 00232 $alt = $raw[3]; 00233 return "<img border=\"0\" src=\"$path\" title=\"$alt\" alt=\"$alt\">"; 00234 } 00235 else { 00236 $img = array(1 => '/pictures/kein_bild_kl-de.jpg', 00237 'Kein Bild verfügbar', 00238 '/pictures/kein_bild_kl-fr.jpg', 00239 'Pas d\'image disponible', 00240 '/pictures/kein_bild_kl-en.jpg', 00241 'No image available' 00242 ); 00243 $alt = $img[$l10n * 2]; 00244 $path = $img[$l10n * 2 - 1]; 00245 return "<img border=\"0\" src=\"$path\" alt=\"$alt\" title=\"$alt\">"; 00246 } 00247 break; 00248 // Bild-Tag in der Detail-Ansicht 00249 case F_IMG: 00250 if ($raw[0] == SQL_YES) { 00251 $path = '/img/' 00252 . $raw[1] 00253 . '/' 00254 . $raw[2] 00255 . '/' 00256 . $this->data->getAppData('module')->baseName[$l10n] 00257 . '_' 00258 . $this->str->ugly2Pretty($raw[3]) 00259 . '.jpg'; 00260 $alt = $raw[3]; 00261 return "<img border=\"0\" src=\"$path\" title=\"$alt\" alt=\"$alt\">"; 00262 } 00263 else { 00264 $img = array(1 => '/pictures/kein_bild-de.jpg', 00265 'Kein Bild verfügbar', 00266 '/pictures/kein_bild-fr.jpg', 00267 'Pas d\'image disponible', 00268 '/pictures/kein_bild-en.jpg', 00269 'No image available' 00270 ); 00271 $alt = $img[$l10n * 2]; 00272 $path = $img[$l10n * 2 - 1]; 00273 return "<img border=\"0\" src=\"$path\" alt=\"$alt\" title=\"$alt\">"; 00274 } 00275 break; 00276 // keine Formatierung 00277 case F_RAW: 00278 return $raw[0]; 00279 // Werte für die Aufzählungstypen der DB 00280 case F_DB_ENUM: 00281 if($raw[0] == SQL_ACRYL) { 00282 return 'Acryl (bruchsicher)'; 00283 } 00284 elseif ($raw[0] == SQL_KRISTALL) { 00285 return 'Kristallglas (mundgeblasen)'; 00286 } 00287 elseif ($raw[0] == SQL_GLAS) { 00288 $glas = array(1 => 'Glas', 00289 'Verre', 00290 'Glass'); 00291 return $glas[$l10n]; 00292 } 00293 elseif ($raw[0] == SQL_KUNSTOFF) { 00294 $kunst = array(1 => 'Kunstoff', 00295 'Plastic', 00296 'Plastic'); 00297 return $kunst[$l10n]; 00298 } 00299 elseif ($raw[0] == SQL_LEICHTMETALL) { 00300 return 'Leichtmetall'; 00301 } 00302 elseif ($raw[0] == SQL_KARBON) { 00303 return 'Karbon'; 00304 } 00305 elseif ($raw[0] == SQL_HOLZ) { 00306 return 'Holz'; 00307 } 00308 elseif ($raw[0] == SQL_STAHL) { 00309 return 'Stahl'; 00310 } 00311 elseif ($raw[0] == SQL_YES) { 00312 $yes = array(1 => 'Ja', 00313 'Oui', 00314 'Yes'); 00315 return $yes[$l10n]; 00316 } 00317 elseif ($raw[0] == SQL_NO) { 00318 $no = array(1 => 'Nein', 00319 'Non', 00320 'No'); 00321 return $no[$l10n]; 00322 } 00323 break; 00324 // Mikroskoptische, Linearencoder 00325 case F_MT_LINENC: 00326 $linenc = array(1 => 'Mit Linear-Encoder: ', 00327 '', 00328 ''); 00329 // Ecodrive Ausnahme Start 00330 $ecodrive = array(1 => 'einseitiges Anfahren|beidseitiges Anfahren', 00331 '', 00332 ''); 00333 static $ecoFlag = 0; 00334 if ($this->pId == '580' && $ecoFlag == 0) { 00335 $eco = explode('|', $ecodrive[$l10n]); 00336 $ecoFlag = 1; 00337 return "$eco[0]: " 00338 . $this->str->trimFloat($raw[0]) 00339 . "&micro;m <br>\n" 00340 . '&nbsp;&nbsp;&nbsp;' 00341 . "$eco[1]: " 00342 . $this->str->trimFloat($raw[1]); 00343 } 00344 if ($ecoFlag == 1) { 00345 return "&lt;" . $this->str->trimFloat($raw[0]); 00346 } 00347 // Ecodrive Ausnahme Ende 00348 $val = $para 00349 . $this->str->trimFloat($raw[0]); 00350 00351 $r1 = floatval($raw[1]); 00352 if (!empty($r)){ 00353 $val .= "&micro;m<br>\n" 00354 . '&nbsp;&nbsp;&nbsp;' 00355 . $linenc[$l10n] 00356 . $para 00357 . $this->str->trimFloat($r1); 00358 } 00359 return $val; 00360 // Mikroskoptisch, Verfshrgeschwindigkeit 00361 case F_MT_VMAX: 00362 $spindelText = array(1 => 'Mit %dmm Spindel: ', 00363 '', 00364 ''); 00365 $spindelSize = array(1, 2, 4); 00366 $val = ""; 00367 for ($i = 0; $i < 3; ++$i) { 00368 $r = floatval($raw[$i]); 00369 if (!empty($r)) { 00370 $val .= "<br>\n" 00371 . '&nbsp;&nbsp;&nbsp;' 00372 . sprintf($spindelText[$l10n], 00373 $spindelSize[$i] 00374 ) 00375 . $para 00376 . $this->str->trimFloat($r) 00377 . "mm/s"; 00378 } 00379 } 00380 $l = strlen($val); 00381 return substr($val, 0, $l - 4); 00382 // Zeichenkette für einen Link vorbereiten 00383 case F_U2P: 00384 return $this->str->ugly2Pretty($raw[0]); 00385 // SpektivOkular, Vergrößerung 00386 case F_SO_VERGR: 00387 $vergr1 = round($raw[0] / $raw[1]); 00388 $r2 = floatval($raw[2]); 00389 if (!empty($r2)) { 00390 $vergr2 = round($raw[0] / $r2); 00391 return $vergr1 . $para . $vergr2; 00392 } 00393 return $vergr1; 00394 // SpektivOkular, Austrittspupille 00395 case F_SO_AUST: 00396 $vergr1 = round($raw[0] / $raw[1]); 00397 $r2 = floatval($raw[2]); 00398 if (!empty($r2)) { 00399 $vergr2 = round($raw[0] / $r2); 00400 return round($raw[3] / $vergr1, 1) 00401 . $para 00402 . round($raw[3] / $vergr2, 1); 00403 } 00404 return round($raw[3] / $vergr1, 1); 00405 // SpektivOkular, Sehfeld 00406 case F_SO_SEHF: 00407 $vergr1 = round($raw[0] / $raw[1]); 00408 $r2 = floatval($raw[2]); 00409 if (!empty($r2)) { 00410 $vergr2 = round($raw[0] / $r2); 00411 return round($raw[3] * 17.5 / $vergr1) 00412 . $para 00413 . round($raw[4] * 17.5 / $vergr2); 00414 } 00415 return round($raw[3] *17.5 / $vergr1); 00416 // Modell-Name 00417 case F_MODEL_NAME: 00418 $pos = strpos ($raw[0], '_', 0); 00419 if ($pos === false) { 00420 return $raw[0]; 00421 } 00422 return substr($raw[0], 0, $pos); 00423 // Fernglas Einsatzgebiet (Vergleichsliste) 00424 case F_F_EINSATZ: 00425 $egs = array( 00426 'aj' => array(1 => 'Astronomie<br>Jagd', 00427 '', 00428 'Astronomy<br>Hunting' 00429 ), 00430 'w' => array(1 => 'Wandern', 00431 '', 00432 'Hiking' 00433 ), 00434 'o' => array(1 => 'Ornithologie', 00435 '', 00436 'Birding' 00437 ) 00438 ); 00439 $l10n = getDataInstance()->getAppData('l10n'); 00440 $eg = ''; 00441 if ($raw[0] >= 4) { 00442 $eg = $egs['aj'][$l10n]; 00443 } 00444 if ($raw[0] >= 4 && $raw[2] >= 7) { 00445 if ($eg != '') { 00446 $eg .= '<br>'; 00447 } 00448 $eg .= $egs['o'][$l10n]; 00449 } 00450 if ($raw[1] <= 750) { 00451 if ($eg != '') { 00452 $eg .= '<br>'; 00453 } 00454 $eg .= $egs['w'][$l10n]; 00455 } 00456 return $eg; 00457 // Sonderposten, Bild-Link 00458 case F_SP_IMG_LINK: 00459 if ($raw[0] == SQL_YES) { 00460 return "<a href=\"javascript:openFenster('" 00461 . "/img/p/" 00462 . $raw[1] 00463 . "/" 00464 . $this->str->ugly2Pretty($raw[2]) 00465 . ".jpg', 600, 450)\">" 00466 . $raw[2] 00467 . "</a>"; 00468 } 00469 return $raw[2]; 00470 // Newline in <br> umwandeln 00471 case F_NL2BR: 00472 $tmp = $raw[0]; 00473 if ($rawCount == 2) { 00474 $tmp .= $raw[1]; 00475 } 00476 return nl2br($tmp); 00477 // Lupe, Messlänge 00478 case F_L_MESSL: 00479 $messl = array(1 => 'Öffnungswinkel', 00480 'Angle d\'ouverture', 00481 'Aperture angle', 00482 'Winkel', 00483 'Angle', 00484 'Angle'); 00485 $val = ""; 00486 switch ($raw[0]) { 00487 case 999999: 00488 $val = $messl[$l10n]; 00489 break; 00490 case 999998: 00491 $val = $messl[$l10n + 3]; 00492 break; 00493 case 0: 00494 break; 00495 default: 00496 $val = $this->str->trimFloat($raw[0]); 00497 break; 00498 } 00499 $r1 = floatval($raw[1]); 00500 if (!empty($r)) { 00501 $val .= $para . $this->str->trimFloat($r1); 00502 } 00503 return $val; 00504 // Lupe, Sichtfeld 00505 case F_L_SICHTF: 00506 $sichtf = "&nbsp;"; 00507 $r0 = floatval($raw[0]); 00508 if (!empty($r0)) { 00509 $sichtf = $this->str->trimFloat($r0); 00510 } 00511 switch ($raw[1]) { 00512 case 999999: 00513 $sichtf .= "&deg;"; 00514 break; 00515 case 0: 00516 break; 00517 default: 00518 $sichtf .= $para . $this->str->trimFloat($raw[1]); 00519 break; 00520 } 00521 return $sichtf; 00522 default: 00523 break; 00524 } 00525 return; 00526 }

JuelichFunction::scanInternalField intern  ) 
 

Interne Felder aufbereiten.

Es besteht die Möglichkeit, einzelnen Produkten zusätzliche Informationen mitzugeben. Diese werden dazu verwendet, Ausnahmen abzubilden. Bis jetzt wird dieser Mechanismus, nur bei den Skalenscheiben für einzelne Messlupen angewendet (siehe die Skalenscheiben Zubehör der Lupen) und führt dazu, dass der Detail-Link und der Preistext anders aufbereitet werden. Die Daten werden in dem Feld p_intern (bzw. z_intern) gespeichert und haben den Aufbau [Name: Werte]. Bis jetzt gibt es nur die Felder link (besonderer Detail-Link) und pAppend (Zusatz-Text zum Preis).

Parameter:
intern das DB-Feld mit den Zusatzdaten
Rückgabe:
ein Container mit den Werten, nach Feldern geordnet
Definiert in Zeile 570 der Datei JuelichFunction.php.
00570 { 00571 $internal = array(); 00572 $pos = strpos($intern, '['); 00573 if ($pos === false) { 00574 return; 00575 } 00576 do { 00577 $cEndPos = strpos($intern, ':', $pos + 1); 00578 $command = substr($intern, $pos + 1, $cEndPos - $pos - 1); 00579 $vEndPos = strpos($intern, ']', $cEndPos + 1); 00580 $values = substr($intern, $cEndPos + 1, $vEndPos - $cEndPos - 1); 00581 $values = chop($values); 00582 $values = ltrim($values); 00583 $internal[$command] = explode("\n", $values); 00584 $pos = strpos($intern, '[', $vEndPos + 1); 00585 } while ($pos > 0); 00586 return $internal; 00587 }


Dokumentation der Datenelemente

JuelichFunction::$data
 

das JuelichData Objekt

Definiert in Zeile 19 der Datei JuelichFunction.php.

JuelichFunction::$pId = 0
 

die aktuelle Produkt-Id

Definiert in Zeile 21 der Datei JuelichFunction.php.

JuelichFunction::$shortList = true
 

Flag ob Kurzliste.

Definiert in Zeile 20 der Datei JuelichFunction.php.

JuelichFunction::$str
 

das JuelichString Objekt

Definiert in Zeile 18 der Datei JuelichFunction.php.


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Datei:
Erzeugt am Sun May 14 02:49:09 2006 für JuelichWeb von doxygen 1.3.8