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

JuelichRendererProduct.php

gehe zur Dokumentation dieser Datei
00001 <?php 00002 require_once TM_PATH . 'constants.php'; 00003 require_once TM_PATH . 'juelich/JuelichGlobals.php'; 00004 require_once TM_PATH . 'juelich/data/JuelichDataProduct.php'; 00005 require_once TM_PATH . 'juelich/lib/JuelichFunction.php'; 00006 00015 define('TPL_L', 1); 00019 define('TPL_D', 2); 00020 00026 class JuelichRendererProduct { 00027 00035 function renderShortList($mId) { 00036 $data =& getDataInstance(); 00037 $db =& getDbReaderInstance(); 00038 $l10n = $data->getAppData('l10n'); 00039 $func = new JuelichFunction; 00040 $dProd = new JuelichDataProduct; 00041 $rP = new RendererProduct_(TPL_L, $l10n, $func); 00042 $rA = new RendererAccessory_(TPL_L, $l10n, $func); 00043 $rV = new RendererVariant_($l10n, $func); 00044 $content = ''; 00045 00046 $firstProduct = true; 00047 $name = ''; 00048 $oldName = ''; 00049 $products = array(); 00050 $dProd->getProducts($mId, $products); 00051 00052 foreach ($products as $p) { 00053 $name = $p['product']['p_name']; 00054 if ($rV->isVariant($name, $oldName)) { 00055 if ($firstProduct) { 00056 $content .= $rV->getStart(); 00057 $firstProduct = false; 00058 } 00059 $content .= $rV->getText($p['product']); 00060 } 00061 else { 00062 $firstProduct = true; 00063 $content .= $rP->getText($p) 00064 . $rA->getText($p['access']); 00065 } 00066 $oldName = $name; 00067 } 00068 return $content; 00069 } 00070 00078 function renderProductDetail($id) { 00079 $l10n = getDataInstance()->getAppData('l10n'); 00080 $dProd= new JuelichDataProduct; 00081 $func = new JuelichFunction; 00082 $rP = new RendererProduct_(TPL_D, $l10n, $func); 00083 $row = array(); 00084 $dProd->getDetailProduct($id, $row); 00085 return $rP->getText($row); 00086 } 00087 00095 function renderAccessDetail($id) { 00096 $l10n = getDataInstance()->getAppData('l10n'); 00097 $dProd= new JuelichDataProduct; 00098 $func = new JuelichFunction; 00099 $rA = new RendererAccessory_(TPL_D, $l10n, $func); 00100 $row = array(); 00101 $dProd->getDetailAccess($id, $row); 00102 return $rA->getText($row); 00103 } 00104 00105 } 00106 00111 class RendererProduct_ { 00112 var $tplType = ''; 00113 var $pList = ''; 00114 var $pDetail = ''; 00115 var $func; 00117 function RendererProduct_($type, $l10n, &$func) { 00118 $this->tplType = $type; 00119 $db =& getDbReaderInstance(); 00120 $tplName = 'product-produkt-normal'; 00121 $this->pList = $db->getTemplateContent($tplName, $l10n); 00122 $tplName = 'product-produkt-detail-normal'; 00123 $this->pDetail = $db->getTemplateContent($tplName, 0); 00124 $this->func = $func; 00125 } 00126 00134 function getText(&$row) { 00135 $pData = array(); 00136 $dData = ''; 00137 $dData = $this->func->getModuleDataValues($row['detail'], 00138 $row['product']['produkt_id']); 00139 00140 switch ($this->tplType) { 00141 case TPL_L: 00142 $pTpl = $this->pList; 00143 $pData = $this->func->getProductDataValues($row['product']); 00144 $cTmp = sprintf($pTpl, 00145 $pData['imageLink'], 00146 $pData['name'], 00147 $dData, 00148 $pData['text'], 00149 $pData['detailLink'], 00150 $pData['price'] 00151 ); 00152 if (!empty($row['depend'])) { 00153 $cTmp .= $this->getDependOutputList($row['depend']); 00154 } 00155 return $cTmp; 00156 case TPL_D: 00157 $pTpl = $this->pDetail; 00158 $pData = $this->func->getProductDataDetailValues($row['product']); 00159 $nameExtra = ''; 00160 $data =& getDataInstance(); 00161 00162 if ($data->getAppData('dependDetail')) { 00163 $l10n = $data->getAppData('l10n'); 00164 $nameExtra = $data->getAppData('module')->depend['scndName'][$l10n] 00165 . $row['detail']['prim_p_name']; 00166 } 00167 00168 return sprintf($pTpl, 00169 $pData['image'], 00170 $pData['name'] . $nameExtra, 00171 $dData, 00172 $pData['text'], 00173 $pData['price'] 00174 ); 00175 default: 00176 return ''; 00177 } 00178 } 00179 00188 function getDependOutputList(&$dpData) { 00189 $db =& getDbReaderInstance(); 00190 $data =& getDataInstance(); 00191 $content = ''; 00192 $modData = $data->getAppData('module')->depend; 00193 $l10n = $data->getAppData('l10n'); 00194 00195 $content = $db->getTemplateContent($modData['tplStart'], $l10n); 00196 $tplRow = $db->getTemplateContent($modData['tplRow'], 0); 00197 $pId = array_shift($dpData); 00198 foreach ($dpData as $row) { 00199 $yes = true; 00200 $dId = $row['produkt_id']; 00201 if ($modData['constraint']) { 00202 $yes = $data->getAppData('module')->isSecondary($pId, $dId); 00203 } 00204 if ($yes) { 00205 $href = '~' 00206 . $modData['name'][$l10n] 00207 . '/' 00208 . $pId 00209 . '/' 00210 . $dId 00211 . '/' 00212 . $this->func->getValue(F_U2P, $row['p_name']) 00213 . '.html'; 00214 $content .= sprintf($tplRow, 00215 $href, 00216 $row['p_name'], 00217 $this->func->getValue(F_FP, $row['p_preis']) 00218 ); 00219 } 00220 } 00221 return $content; 00222 } 00223 00224 } 00225 00230 class RendererAccessory_ { 00231 var $zLStart = ''; 00232 var $zLRow = ''; 00233 var $zDetail = ''; 00234 var $type = ''; 00235 var $func; 00237 function RendererAccessory_($type, $l10n, &$func) { 00238 $db =& getDbReaderInstance(); 00239 $this->zLStart = $db->getTemplateContent('product-zubehoer-normal-start', 00240 $l10n); 00241 $this->zLRow = $db->getTemplateContent('product-zubehoer-normal', 0); 00242 $tplName = 'product-produkt-detail-normal'; 00243 $this->zDetail = $db->getTemplateContent($tplName, 0); 00244 $this->type = $type; 00245 $this->func = $func; 00246 } 00247 00255 function getText(&$data) { 00256 $s = count($data); 00257 if ($s == 0) { 00258 return ''; 00259 } 00260 $text = ''; 00261 switch ($this->type) { 00262 case TPL_L: 00263 $text = $this->zLStart; 00264 foreach ($data as $d) { 00265 $aData = $this->func->getAccessDataValues($d); 00266 $text .= sprintf($this->zLRow, 00267 $aData['detailLink'], 00268 $aData['name'], 00269 $aData['price'] 00270 ); 00271 } 00272 break; 00273 case TPL_D: 00274 $zData = $this->func->getAccessDataDetailValues($data); 00275 $text = sprintf($this->zDetail, 00276 $zData['image'], 00277 $zData['name'], 00278 '', 00279 $zData['text'], 00280 $zData['price'] 00281 ); 00282 break; 00283 default: 00284 break; 00285 } 00286 return $text; 00287 } 00288 00289 } 00290 00295 class RendererVariant_ { 00296 var $vStart = ''; 00297 var $vNormal = ''; 00298 var $func; 00300 function RendererVariant_($l10n, &$func) { 00301 $db =& getDbReaderInstance(); 00302 $this->vStart = $db->getTemplateContent('product-variant-start', 00303 $l10n); 00304 $this->vNormal = $db->getTemplateContent('product-variant', 0); 00305 $this->func = $func; 00306 } 00307 00316 function isVariant($name, $oldName) { 00317 $data =& getDataInstance(); 00318 if (!$data->getAppData('module')->variants ) { 00319 return false; 00320 } 00321 $pattern = $data->getAppData('module')->variantPattern; 00322 preg_match($pattern, $name, $match); 00323 preg_match($pattern, $oldName, $match_zuvor); 00324 return sizeof($match) > 1 && 00325 sizeof($match_zuvor) > 1 && 00326 $match[1] == $match_zuvor[1] && 00327 $match[1] != '' && 00328 $match_zuvor[1] != ''; 00329 } 00330 00336 function getStart() { 00337 return $this->vStart; 00338 } 00339 00347 function getText(&$pData) { 00348 $linkData = array($pData['produkt_id'], $pData['p_name']); 00349 return sprintf($this->vNormal, 00350 $this->func->getValue(F_LD, $linkData), 00351 $pData['p_name'], 00352 $this->func->getValue(F_FP, $pData['p_preis']) 00353 ); 00354 } 00355 00356 } 00357 00358 ?>

Erzeugt am Sun May 14 02:49:08 2006 für JuelichWeb von doxygen 1.3.8