<?php class Zahlungsweisenmodul { public $id; public $app; /** * @param string $target * * @return string|void */ public function Einstellungen($target = 'return') { if(!$this->id) { return; } $struktur = $this->EinstellungenStruktur(); if($this->app->Secure->GetPOST('speichern')) { foreach($struktur as $name => $val) { $json[$name] = $this->app->Secure->GetPOST($name, '','', 1); if(isset($val['replace'])) { switch($val['replace']) { case 'lieferantennummer': $json[$name] = $this->app->erp->ReplaceLieferantennummer(1,$json[$name],1); break; } } } $json_str = $this->app->DB->real_escape_string(json_encode($json)); $this->app->DB->Update( sprintf( "UPDATE `zahlungsweisen` SET `einstellungen_json` = '%s' WHERE `id` = %d LIMIT 1", $json_str, $this->id ) ); } $modul = $this->app->DB->Select( sprintf( 'SELECT z.modul FROM `zahlungsweisen` AS `z` WHERE z.id = %d LIMIT 1', $this->id ) ); $id = $this->id; $html = '</table></fieldset>'; $html .= '<fieldset><legend>'.$modul.' Einstellungen</legend><table class=mkTableFormular>'; $json = $this->app->DB->Select( sprintf( 'SELECT z.einstellungen_json FROM `zahlungsweisen` AS `z` WHERE z.id = %d LIMIT 1', $id ) ); if(!empty($json)) { $json = json_decode($json, true); } foreach($struktur as $name => $val) { $html .= '<tr><td>'.(empty($val['bezeichnung'])?$name:$val['bezeichnung']).'</td><td>'; $typ = 'text'; if(!empty($val['typ'])) { $typ = $val['typ']; } if(isset($val['replace'])) { switch($val['replace']) { case 'lieferantennummer': $json[$name] = $this->app->erp->ReplaceLieferantennummer(0,$json[$name],0); if($target !== 'return') { $this->app->YUI->AutoComplete($name, 'lieferant', 1); } break; case 'etiketten': //$json[$name] = $this->app->erp->ReplaceLieferantennummer(0,$json[$name],0); if($target !== 'return') { $this->app->YUI->AutoComplete($name, 'etiketten'); } break; } } switch($typ) { case 'textarea': $lang = ''; if(!empty($val['lang'])) { $lang = ' data-lang="'.htmlspecialchars($val['lang']).'" '; } $html .= '<textarea name="'.$name.'" id="'.$name.'"'.$lang.'>' .(!isset($json[$name])?'':$json[$name]).'</textarea>'; break; case 'checkbox': $html .= '<input type="checkbox" name="'.$name.'" id="'.$name.'" value="1" ' .((isset($json[$name]) && $json[$name])?' checked="checked" ':'').' />'; break; case 'select': $html .= '<select name="'.$name.'">'; if(isset($val['optionen']) && is_array($val['optionen'])) { foreach($val['optionen'] as $k => $v) { $html .= '<option value="'.$k.'"' .($k == (isset($json[$name])?$json[$name]:'')?' selected="selected" ':'').'>' .$v.'</option>'; } } $html .= '</select>'; break; case 'submit': if(isset($val['text'])) { $html .= '<form method="POST"><input type="submit" name="'.$name.'" value="'.$val['text'].'"></form>'; } break; case 'custom': if(isset($val['function'])) { $tmpfunction = $val['function']; if(method_exists($this, $tmpfunction)) { $html .= $this->$tmpfunction(); } } break; default: $lang = ''; if(!empty($val['lang'])) { $lang = ' data-lang="'.htmlspecialchars($val['lang']).'" '; } $html .= '<input type="text" name="'.$name.'" id="'.$name.'" value="' .(!isset($json[$name])?'':$json[$name]).'" size="'.$val['size'].'" '.$lang.' />'; break; } if(isset($val['info']) && $val['info']) { $html .= ' <i>'.$val['info'].'</i>'; } $html .= '</td></tr>'; } if($target === 'return') { return $html; } $this->app->Tpl->Add($target, $html); } }