| 1 | <?php | 
|---|
| 2 |  | 
|---|
| 3 | include_once(dirname(__FILE__).'/Base.php'); | 
|---|
| 4 |  | 
|---|
| 5 | class TypeOneToMany extends TypeBase | 
|---|
| 6 | { | 
|---|
| 7 | public array $EditActions; | 
|---|
| 8 |  | 
|---|
| 9 | function OnView(array $Item): ?string | 
|---|
| 10 | { | 
|---|
| 11 | $Type = $this->FormManager->Type->TypeDefinitionList[$Item['Type']]; | 
|---|
| 12 | if ($Item['Value'] != '') | 
|---|
| 13 | { | 
|---|
| 14 | $Output = '<a href="?t='.$Type['Parameters']['Table'].'&a='. | 
|---|
| 15 | 'view'.'&i='.$Item['Value'].'">'.$Item['Filter'].'</a>'; | 
|---|
| 16 | } else $Output = ''; | 
|---|
| 17 | return $Output; | 
|---|
| 18 | } | 
|---|
| 19 |  | 
|---|
| 20 | function OnEdit(array $Item): string | 
|---|
| 21 | { | 
|---|
| 22 | $Output = '<select name="'.$Item['Name'].'" id="'.$Item['Name'].'">'; | 
|---|
| 23 | $Type = $this->FormManager->Type->TypeDefinitionList[$Item['Type']]; | 
|---|
| 24 | if (array_key_exists('Condition', $Type['Parameters'])) $Where = ' WHERE '.$Type['Parameters']['Condition']; | 
|---|
| 25 | else $Where = ''; | 
|---|
| 26 | if (array_key_exists('Null', $Item) and $Item['Null']) | 
|---|
| 27 | { | 
|---|
| 28 | if ($Item['Value'] == NULL) $Selected = ' selected="1"'; else $Selected = ''; | 
|---|
| 29 | $Output .= '<option value=""'.$Selected.'></option>'; | 
|---|
| 30 | } | 
|---|
| 31 | if (array_key_exists('View', $Type['Parameters'])) $Table = $Type['Parameters']['View']; | 
|---|
| 32 | else $Table = $Type['Parameters']['Table']; | 
|---|
| 33 | $DbResult = $this->Database->query('SELECT '.$Type['Parameters']['Name'].' AS `Name`,'.$Type['Parameters']['Id'].' AS `Id` FROM '.$Table.''.$Where.' ORDER BY `Name`'); | 
|---|
| 34 | while ($DbRow = $DbResult->fetch_assoc()) | 
|---|
| 35 | { | 
|---|
| 36 | if ($Item['Value'] == $DbRow['Id']) $Selected = ' selected="1"'; else $Selected = ''; | 
|---|
| 37 | $Output .= '<option value="'.$DbRow['Id'].'"'.$Selected.'>'.$DbRow['Name'].'</option>'; | 
|---|
| 38 | } | 
|---|
| 39 | $Output .= '</select>'; | 
|---|
| 40 | if ($this->FormManager->ShowRelation) | 
|---|
| 41 | { | 
|---|
| 42 | $URL = ''; | 
|---|
| 43 | if (array_key_exists('OnPreset', $Item)) | 
|---|
| 44 | { | 
|---|
| 45 | $Preset = call_user_func($Item['OnPreset'], $Item['Values']); | 
|---|
| 46 | $URL = str_replace('&', '&', '&'.http_build_query($Preset)); | 
|---|
| 47 | } | 
|---|
| 48 | $Output .=  '<img src="'.$this->FormManager->Root.'/images/add.png" alf="Přidat" language="javascript" '. | 
|---|
| 49 | 'onclick="return popupwindow("'.$this->FormManager->Root.'/is/?a=addsub&t='.$Table.'&r='.$Item['Name'].'&rt='.$Item['Type'].$URL.'","test");" style="cursor:hand;cursor:pointer"/>'; | 
|---|
| 50 | $Output .=  '<img src="'.$this->FormManager->Root.'/images/select.png" alf="Vybrat" language="javascript" '. | 
|---|
| 51 | 'onclick="return popupwindow("'.$this->FormManager->Root.'/is/?a=select&t='.$Table.'&r='.$Item['Name'].'","test");" style="cursor:hand;cursor:pointer"/>'; | 
|---|
| 52 | } | 
|---|
| 53 | return $Output; | 
|---|
| 54 | } | 
|---|
| 55 |  | 
|---|
| 56 | function OnLoad(array $Item): ?string | 
|---|
| 57 | { | 
|---|
| 58 | if ($_POST[$Item['Name']] == '') return NULL; | 
|---|
| 59 | else return $_POST[$Item['Name']]; | 
|---|
| 60 | } | 
|---|
| 61 |  | 
|---|
| 62 | function OnLoadDb(array $Item): ?string | 
|---|
| 63 | { | 
|---|
| 64 | if ($Item['Value'] == '') return NULL; | 
|---|
| 65 | else return $Item['Value']; | 
|---|
| 66 | } | 
|---|
| 67 |  | 
|---|
| 68 | function OnFilterName(array $Item): string | 
|---|
| 69 | { | 
|---|
| 70 | return '`'.$Item['Name'].'_Filter`'; | 
|---|
| 71 | } | 
|---|
| 72 |  | 
|---|
| 73 | function OnFilterNameQuery(array $Item): string | 
|---|
| 74 | { | 
|---|
| 75 | $Type = $this->FormManager->Type->TypeDefinitionList[$Item['Type']]; | 
|---|
| 76 | //if ($Item['Value'] != '') | 
|---|
| 77 | //{ | 
|---|
| 78 | if (array_key_exists('View', $Type['Parameters'])) $Table = $Type['Parameters']['View']; | 
|---|
| 79 | else $Table = $Type['Parameters']['Table']; | 
|---|
| 80 | $Output = '`'.$Item['Name'].'`, (SELECT '.$Type['Parameters']['Name'].''. | 
|---|
| 81 | ' AS `Name` FROM '.$Table.' WHERE `'. | 
|---|
| 82 | $Type['Parameters']['Id'].'`=`TX`.`'.$Item['Name'].'`) AS `'.$Item['Name'].'_Filter`'; | 
|---|
| 83 | //} else $Output = '`'.$Item['Name'].'`, `'.$Item['Name'].'` AS `'.$Item['Name'].'_Filter`'; | 
|---|
| 84 | return $Output; | 
|---|
| 85 | } | 
|---|
| 86 | } | 
|---|