Changeset 4


Ignore:
Timestamp:
Sep 15, 2008, 9:38:48 PM (16 years ago)
Author:
george
Message:
  • Opraveno: Utřídění systému výběru operací, tabulek a položek pomocí URL.
  • Přidáno: Podpora pro položky ukazatelů typu jede-na-jednoho a jeden-na-mnoho. Přítom vazba mnoho-na-mnoho je provedena dvěma opačnými povely jeden-na-mnoho. Vytváření vztahů je zatím proveditelné ručně přes databázi.
  • Upraveno: Vystředění tabulek na střed a menší stylové úpravy.
  • Přidáno: Vlastnost VisibleInMenu pro tabulky, která určí zda zobrazit celkové výpisy tabulek na klavní stránce v menu.
  • Přidáno: Vlastnost VisibleInPointer u položek tabulky, která určí co se má použít pro zobrazení identifikace odkazovaných objektů ve vztahu mezi tabulkami.
  • Přidáno: Složka Sql a demo data.
Files:
3 added
5 edited

Legend:

Unmodified
Added
Removed
  • base.php

    r3 r4  
    55include('common.php');
    66
    7 function ShowList($List)
     7function ShowList($List, $Column = '', $ParentId = 0)
    88{
    99  global $Database, $Types, $Config;
    1010
    11   $Output = '<table class="WideTable"><tr>';
     11  $Output = '<div>'.$List['Title'].'</div><table class="WideTable"><tr>';
    1212  foreach($List['Items'] as $Item)
    1313  {
     
    1717  $Output .= '<th>Akce</th></tr>';
    1818
    19   if(array_key_exists('ParentTable', $_GET) and array_key_exists('ParentId', $_GET))
    20   {
    21     //$_SESSION['ParentId'] = $_GET['ParentId'];
    22     //$_SESSION['ParentTable'] = $_GET['ParentTable'];
    23     $Where = $_GET['ParentTable'].'='.$_GET['ParentId'].' ';
    24   }
     19  if(($Column != '') and ($ParentId != 0))
     20    $Where = $Column.'='.$ParentId;
    2521  else $Where = '1';
    2622
     
    4339  if(array_key_exists('Page', $_GET)) $Page = $_GET['Page']; else $Page = 0;
    4440  $DbResult = $Database->select($List['TableName'], 'COUNT(*)', $Where);
    45   echo($Database->LastQuery);
     41  //echo($Database->LastQuery);
    4642  $DbRow = $DbResult->fetch_array();
    4743  $TotalItemCount = $DbRow[0];
     
    5551      if($Item['VisibleInList'] == 1)
    5652      {
    57         $Type = $Types[$Item['Type']];
     53        $ItemType = explode(':', $Item['Type']);
     54        $Type = $Types[$ItemType[0]];
     55        if(count($ItemType) > 1) $Type['Parameter'] = $ItemType[1];
    5856        if(is_callable($Type['ViewHtml'])) $Value = $Type['ViewHtml']($Type, $DbRow[$Index], $List['TableName'], $DbRow['Id']);
    5957        else $Value = $Type['ViewHtml'];
     
    6260      }
    6361    }
    64     $Output .= '<td><a href="?Action=View&amp;Id='.$DbRow['Id'].'">Zobrazit</a> <a href="?Action=Edit&amp;Id='.$DbRow['Id'].'">Edit</a> <a href="?Action=Delete&amp;Id='.$DbRow['Id'].'">Smazat</a></td></tr>';
     62    $Output .= '<td><a href="?Action=ViewItem&amp;TableId='.$List['TableName'].'&amp;ItemId='.$DbRow['Id'].'">Zobrazit</a> <a href="?Action=EditItem&amp;TableId='.$List['TableName'].'&amp;ItemId='.$DbRow['Id'].'">Editovat</a> <a href="?Action=DeleteItem&amp;TableId='.$List['TableName'].'&amp;ItemId='.$DbRow['Id'].'">Smazat</a></td></tr>';
    6563  }
    6664  $Output .= '</table>';
    67   $Output .= PagesList($Page, $TotalItemCount).'<br />';
    68   $Output .= '<a href="?Action=Add">Přidat</a>';
     65  $Output .= PagesList($Page, $TotalItemCount);
     66  $Output .= '<a href="?Action=AddItem&amp;TableId='.$List['TableName'].'">Přidat</a>';
    6967  return($Output);
    7068}
     
    7472  global $Database, $Types;
    7573
    76   $Output = '<form action="?Action=EditFinish&amp;Id='.$Id.'" method="post"><table class="WideTable">';
     74  $Output = '<form action="?Action=EditItemFinish&amp;ItemId='.$Id.'" method="post"><table class="WideTable">';
    7775  $Output .= '<tr><th>Jméno položky</th><th>Hodnota</th></tr>';
    78 
    7976  $DbResult = $Database->select($List['TableName'], '*', 'Id='.$Id);
    8077  while($DbRow = $DbResult->fetch_array())
     
    8279    foreach($List['Items'] as $Index => $Item)
    8380    {
    84       $Type = $Types[$Item['Type']];
    85       if(is_callable($Type['EditHtml'])) $Value = $Type['EditHtml']($Type, $DbRow[$Index], $List['TableName'], $DbRow['Id']);
    86       else $Value = $Type['EditHtml'];
    87       $Value = str_replace('%value%', $DbRow[$Index], $Value);
    88       $Value = str_replace('%name%', $Index, $Value);
    89       $Output .= '<tr><td>'.$Item['TextBefore'].':</td><td title="'.$Item['Help'].'">'.$Value.'</td></tr>';
    90     }
    91   }
    92   $Output .= '</table><input type="submit" value="Uložit"></form>';
     81      $ItemType = explode(':', $Item['Type']);
     82      if($ItemType[0] != 'PointerOneToMany')
     83      {
     84        $Type = $Types[$ItemType[0]];
     85        if(count($ItemType) > 1) $Type['Parameter'] = $ItemType[1];
     86        if(is_callable($Type['EditHtml'])) $Value = $Type['EditHtml']($Type, $DbRow[$Index], $List['TableName'], $DbRow['Id']);
     87        else $Value = $Type['EditHtml'];
     88        $Value = str_replace('%value%', $DbRow[$Index], $Value);
     89        $Value = str_replace('%name%', $Index, $Value);
     90        if($Item['Required'] == 1) $Required = ' *'; else $Required = '';
     91        $Output .= '<tr><td>'.$Item['TextBefore'].':'.$Required.'</td><td title="'.$Item['Help'].'">'.$Value.'</td></tr>';
     92      }
     93    }
     94  }
     95  $Output .= '</table><input type="submit" value="Uložit"></form><a href="?">Zpět</a>';
    9396  return($Output);
    9497}
     
    101104  foreach($List['Items'] as $Index => $Item)
    102105  {
    103     $Values[$Index] = $_POST[$Index];
     106    $ItemType = explode(':', $Item['Type']);
     107    if($ItemType[0] != 'PointerOneToMany')
     108    {
     109      $Values[$Index] = $_POST[$Index];
     110    }
    104111  }
    105112  $Database->update($List['TableName'], 'Id='.$Id, $Values);
     
    114121  global $Database, $Types;
    115122
    116   $Output = '<form action="?Action=AddFinish" method="post"><table class="WideTable">';
     123  $Output = '<form action="?Action=AddItemFinish" method="post"><table class="WideTable">';
    117124  $Output .= '<tr><th>Jméno položky</th><th>Hodnota</th></tr>';
    118125
    119126  foreach($List['Items'] as $Index => $Item)
    120127  {
    121     $Type = $Types[$Item['Type']];
    122     if(is_callable($Type['EditHtml'])) $Value = $Type['EditHtml']($Type, $Type['InitValue'], $List['TableName'], 0);
    123     else $Value = $Type['EditHtml'];
    124     $Value = str_replace('%value%', $Type['InitValue'], $Value);
    125     $Value = str_replace('%name%', $Index, $Value);
    126     $Output .= '<tr><td>'.$Item['TextBefore'].':</td><td title="'.$Item['Help'].'">'.$Value.'</td></tr>';
    127   }
    128   $Output .= '</table><input type="submit" value="Přidat"></form>';
     128    $ItemType = explode(':', $Item['Type']);
     129    if($ItemType[0] != 'PointerOneToMany')
     130    {
     131      $Type = $Types[$ItemType[0]];
     132      if(count($ItemType) > 1) $Type['Parameter'] = $ItemType[1];
     133      if(is_callable($Type['EditHtml'])) $Value = $Type['EditHtml']($Type, $Type['InitValue'], $List['TableName'], 0);
     134      else $Value = $Type['EditHtml'];
     135      $Value = str_replace('%value%', $Type['InitValue'], $Value);
     136      $Value = str_replace('%name%', $Index, $Value);
     137      if($Item['Required'] == 1) $Required = ' *'; else $Required = '';
     138      $Output .= '<tr><td>'.$Item['TextBefore'].':'.$Required.'</td><td title="'.$Item['Help'].'">'.$Value.'</td></tr>';
     139    }
     140  }
     141  $Output .= '</table><input type="submit" value="Přidat"></form><a href="?">Zpět</a>';
    129142  return($Output);
    130143}
     
    137150  foreach($List['Items'] as $Index => $Item)
    138151  {
    139     $Values[$Index] = $_POST[$Index];
     152    $ItemType = explode(':', $Item['Type']);
     153    if($ItemType[0] != 'PointerOneToMany')
     154    {
     155      $Values[$Index] = $_POST[$Index];
     156    }
    140157  }
    141158  $Database->insert($List['TableName'], $Values);
     
    148165function ShowViewItem($List, $Id)
    149166{
    150   global $Database, $Types;
    151 
    152   $Output = '<table class="WideTable">';
    153   $Output .= '<tr><th>Jméno položky</th><th>Hodnota</th></tr>';
    154 
     167  global $Database, $Types, $Lists;
     168
     169  $Output = '';
    155170  $DbResult = $Database->select($List['TableName'], '*', 'Id='.$Id);
    156171  while($DbRow = $DbResult->fetch_array())
    157172  {
    158     foreach($List['Items'] as $Index => $Item)
    159     {
    160       $Type = $Types[$Item['Type']];
    161       if(is_callable($Type['ViewHtml'])) $Value = $Type['ViewHtml']($Type, $DbRow[$Index], $List['TableName'], $DbRow['Id']);
    162       else $Value = $Type['ViewHtml'];
    163       $Value = str_replace('%value%', $DbRow[$Index], $Value);
    164       $Output .= '<tr><td>'.$Item['TextBefore'].':</td><td title="'.$Item['Help'].'">'.$Value.'</td></tr>';
    165     }
    166   }
    167   $Output .= '</table>';
     173    $Output = '<table class="WideTable">';
     174    $Output .= '<tr><th>Jméno položky</th><th>Hodnota</th></tr>';
     175    foreach($List['Items'] as $Index => $Item)
     176    {
     177      $ItemType = explode(':', $Item['Type']);
     178      if($ItemType[0] != 'PointerOneToMany')
     179      {
     180        $Type = $Types[$ItemType[0]];
     181        if(count($ItemType) > 1) $Type['Parameter'] = $ItemType[1];
     182        if(is_callable($Type['ViewHtml'])) $Value = $Type['ViewHtml']($Type, $DbRow[$Index], $List['TableName'], $DbRow['Id']);
     183        else $Value = $Type['ViewHtml'];
     184        $Value = str_replace('%value%', $DbRow[$Index], $Value);
     185        $Output .= '<tr><td>'.$Item['TextBefore'].':</td><td title="'.$Item['Help'].'">'.$Value.'</td></tr>';
     186      }
     187    }
     188    $Output .= '</table>';
     189    $Output .= '<a href="?Action=EditItem&amp;ItemId='.$DbRow['Id'].'">Editovat</a>';
     190    $Output .= ' <a href="?Action=ShowList&amp;ItemId='.$DbRow['Id'].'">Seznam</a>';
     191    $Output .= '<div class="line"></div>';
     192
     193    foreach($List['Items'] as $Index => $Item)
     194    {
     195      $ItemType = explode(':', $Item['Type']);
     196      if($ItemType[0] == 'PointerOneToMany')
     197      {
     198        $SubList = $Lists[$ItemType[1]];
     199        $Output .= ShowList($SubList, $ItemType[2], $DbRow['Id']).'<br /><br />';
     200      }
     201    }
     202  }
    168203  return($Output);
    169204}
     
    186221  foreach($Lists as $Index => $List)
    187222  {
    188     if($List['System'] == $System)
    189       $Output .= '<a href="?Action=SelectList&amp;Id='.$Index.'">'.$List['Title'].'</a><br />';
     223    if(($List['System'] == $System) and ($List['VisibleInMenu'] == 1))
     224      $Output .= '<a href="?Action=ShowList&amp;TableId='.$Index.'">'.$List['Title'].'</a><br />';
    190225  }
    191226  $Output .= '<br />';
     
    197232  global $Lists;
    198233
     234  $PermanentVar = array('TableId', 'ItemId', 'ParentTable', 'ParentColumn', 'Action');
     235  foreach($PermanentVar as $Var)
     236  {
     237    if(array_key_exists($Var, $_GET)) $_SESSION[$Var] = $_GET[$Var];
     238  }
     239
    199240  $Output = '';
    200   if(array_key_exists('Action', $_GET))
    201   {
    202     if($_GET['Action'] == 'SelectList')
    203       $_SESSION['ListId'] = $_GET['Id'];
    204   }
    205 
    206   if(array_key_exists('ListId', $_SESSION) and array_key_exists($_SESSION['ListId'], $Lists))
    207   {
    208     $List = $Lists[$_SESSION['ListId']];
    209     if(array_key_exists('Action', $_GET))
    210     {
    211       switch($_GET['Action'])
    212       {
    213         case 'Edit':
    214           $Output = ShowEditItem($List, $_GET['Id']);
    215           break;
    216         case 'EditFinish':
    217           $Output = ShowEditItemFinish($List, $_GET['Id']);
    218           break;
    219         case 'Delete':
    220           $Output = ShowDeleteItem($List, $_GET['Id']);
    221           break;
    222         case 'View':
    223           $Output = ShowViewItem($List, $_GET['Id']);
    224           break;
    225         case 'Add':
     241  if(array_key_exists('TableId', $_SESSION) and array_key_exists($_SESSION['TableId'], $Lists))
     242  {
     243    $List = $Lists[$_SESSION['TableId']];
     244    if(array_key_exists('Action', $_SESSION))
     245    {
     246      switch($_SESSION['Action'])
     247      {
     248        case 'EditItem':
     249          $Output = ShowEditItem($List, $_SESSION['ItemId']);
     250          break;
     251        case 'EditItemFinish':
     252          $Output = ShowEditItemFinish($List, $_SESSION['ItemId']);
     253          break;
     254        case 'DeleteItem':
     255          $Output = ShowDeleteItem($List, $_SESSION['ItemId']);
     256          break;
     257        case 'ViewItem':
     258          $Output = ShowViewItem($List, $_SESSION['ItemId']);
     259          break;
     260        case 'AddItem':
    226261           $Output = ShowAddItem($List);
    227262          break;
    228         case 'AddFinish':
     263        case 'AddItemFinish':
    229264          $Output = ShowAddItemFinish($List);
    230265          break;
     266        case 'ShowList':
    231267        default:
    232268          $Output = ShowList($List);
     
    241277  global $Database, $Lists;
    242278
    243   $DbResult = $Database->select('List', '*');
     279  $DbResult = $Database->select('SystemList', '*');
    244280  while($DbRow = $DbResult->fetch_assoc())
    245281  {
    246282    $Items = array();
    247     $DbResult2 = $Database->select('ListItem', '`Name`, `TextBefore`, `TextAfter`, `Type`, `Default`, `Help`, `Required`, `Editable`, `VisibleInList`', 'List='.$DbRow['Id']);
     283    $DbResult2 = $Database->select('SystemListItem', '`Name`, `TextBefore`, `TextAfter`, `Type`, `Default`, `Help`, `Required`, `Editable`, `VisibleInList`, `VisibleInPointer`', 'List='.$DbRow['Id']);
    248284    while($DbRow2 = $DbResult2->fetch_assoc())
    249285    {
     
    254290     'Title' => $DbRow['Title'],
    255291     'System' => $DbRow['System'],
     292     'VisibleInMenu' => $DbRow['VisibleInMenu'],
    256293     'Items' => $Items,
    257294    );
    258     $Lists[] = $List;
    259   }
    260 }
     295    $Lists[$List['TableName']] = $List;
     296  }
     297}
     298
    261299?>
  • index.php

    r3 r4  
    1212    '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">'.
    1313    '<head><link rel="stylesheet" href="style.css" type="text/css" media="all" />'.
    14     '<script type="text/javascript" src="global.js"></script>'.
     14    //'<script type="text/javascript" src="global.js"></script>'.
    1515    '<title>IS</title>
    1616    </head><body><table class="base"><tr><td class="menu">';
     
    2121$Output .= TableList(0);
    2222$Output .= '</td><td class="main">';
    23 $Output .= 'dd<br /><div>'.Output().'</div><br />dd';
     23$Output .= Output();
    2424$Output .= '</td></tr></table></body></html>';
    2525echo($Output);
  • lists.php

    r3 r4  
    22
    33$Lists = array(
    4   'List' => array(
    5     'TableName' => 'List',
    6     'Title' => 'Seznam definovaných seznamů',
     4  'SystemList' => array(
     5    'TableName' => 'SystemList',
     6    'Title' => 'Seznam definic tabulek',
    77    'System' => 1,
     8    'VisibleInMenu' => 1,
    89    'Items' => array(
    910      'TableName' => array(
     11        'Name' => 'TableName',
    1012        'TextBefore' => 'Jméno tabulky',
    1113        'TextAfter' => '',
     
    1820      ),
    1921      'Title' => array(
     22        'Name' => 'Title',
    2023        'TextBefore' => 'Název seznamu',
    2124        'TextAfter' => '',
     
    2730        'VisibleInList' => 1,
    2831      ),
     32      'VisibleInMenu' => array(
     33        'Name' => 'VisibleInMenu',
     34        'TextBefore' => 'Viditelné v menu',
     35        'TextAfter' => '',
     36        'Type' => 'Boolean',
     37        'Help' => 'Zobrazovat tuto tabulku v hlavním menu',
     38        'Default' => '',
     39        'Required' => 1,
     40        'Editable' => 1,
     41        'VisibleInList' => 1,
     42      ),
    2943      'Items' => array(
     44        'Name' => 'Items',
    3045        'TextBefore' => 'Položky',
    3146        'TextAfter' => '',
    32         'Type' => 'ListItemPointer',
     47        'Type' => 'PointerOneToMany:SystemListItem:List',
    3348        'Help' => 'Definujte potřebné položky pro seznam.',
    3449        'Default' => '',
     
    3954    ),
    4055  ),
    41   'ListItem' => array(
    42     'TableName' => 'ListItem',
     56  'SystemListItem' => array(
     57    'TableName' => 'SystemListItem',
    4358    'Title' => 'Položky pro seznamy',
    4459    'System' => 1,
     60    'VisibleInMenu' => 0,
    4561    'Items' => array(
    4662      'Name' => array(
     63        'Name' => 'Name',
    4764        'TextBefore' => 'Jméno sloupce',
    4865        'TextAfter' => '',
     
    5572      ),
    5673      'TextBefore' => array(
     74        'Name' => 'TextBefore',
    5775        'TextBefore' => 'Text před hodnotou',
    5876        'TextAfter' => '',
     
    6583      ),
    6684      'TextAfter' => array(
     85        'Name' => 'TablAfter',
    6786        'TextBefore' => 'Text za hodnotou',
    6887        'TextAfter' => '',
     
    7594      ),
    7695      'Type' => array(
     96        'Name' => 'Type',
    7797        'TextBefore' => 'Typ hodnoty',
    7898        'TextAfter' => '',
     
    85105      ),
    86106      'Help' => array(
     107        'Name' => 'Help',
    87108        'TextBefore' => 'Nápověda',
    88109        'TextAfter' => '',
     
    95116      ),
    96117      'Required' => array(
     118        'Name' => 'Required',
    97119        'TextBefore' => 'Požadováno',
    98120        'TextAfter' => '',
     
    105127      ),
    106128      'Editable' => array(
     129        'Name' => 'Editable',
    107130        'TextBefore' => 'Editovatelné',
    108131        'TextAfter' => '',
     
    115138      ),
    116139      'VisibleInList' => array(
     140        'Name' => 'VisibleInList',
    117141        'TextBefore' => 'Viditelné v seznamu',
    118142        'TextAfter' => '',
    119143        'Type' => 'Boolean',
    120144        'Help' => 'Určuje viditelnost této položky v seznamu',
     145        'Default' => '',
     146        'Required' => 1,
     147        'Editable' => 1,
     148        'VisibleInList' => 0,
     149      ),
     150      'VisibleInPointer' => array(
     151        'Name' => 'VisibleInPointer',
     152        'TextBefore' => 'Viditelné v odkazech',
     153        'TextAfter' => '',
     154        'Type' => 'Boolean',
     155        'Help' => 'Určuje viditelnost této položky v názvech odkazů na tuto položku',
    121156        'Default' => '',
    122157        'Required' => 1,
  • style.css

    r3 r4  
    1818.main table
    1919{
    20   text-align: center;
     20  margin-left: auto;
     21  margin-right: auto;
    2122}
    2223
    2324.menu
    2425{
    25   width: 10%;
     26  width: 20%;
    2627  text-align: left;
     28  vertical-align: top;
     29  border-color: gray;
     30  border-style: solid;
     31  border-width: 0px 1px 0px 0px;
     32}
     33
     34.main div
     35{
     36  font-weight: bold;
    2737}
    2838
     
    4252  border-width: 0px 0px 1px 1px;
    4353  padding: 3px 3px 3px 3px;
     54  background-color: #E0E0E0;
    4455}
    4556
     
    5263  padding: 3px 3px 3px 3px;
    5364}
     65
     66.line
     67{
     68  border-color: gray;
     69  border-style: solid;
     70  border-width: 0px 0px 1px 1px;
     71  margin: 7px 0px 7px 0px;
     72}
     73
     74table.extended
     75{
     76  font-size:95%;
     77  border:1px #CCCCCC solid;
     78  border-bottom:none;
     79  text-align:left;
     80}
     81
     82extended th, .extended td
     83{
     84  border-bottom:1px #CCCCCC solid;
     85  padding:5px;
     86}
     87extended th, .extended .th
     88{
     89  background:#F1F1F1;
     90  text-align:left;
     91  color:#990000;
     92  font-weight:bold;
     93}
     94
     95extended td, .extended .th
     96{
     97  border-left:1px #CCCCCC solid;
     98}
  • types.php

    r3 r4  
    2727  $Parts = explode('-', $Parameter);
    2828
    29   $Output = ($Parts[2]*1).'.'.$MonthList[$Parts[1]*1].'.'.$Parts[0];
     29  $Output = ($Parts[2] * 1).'.'.$MonthList[$Parts[1] * 1].'.'.$Parts[0];
    3030  return($Output);
    3131}
     
    6464}
    6565
    66 function TypePointerViewHtml($Type, $Parameter, $Table, $Id)
    67 {
    68   $Output = '<a href="?Action=SelectList&amp;Id='.$Type['TypeDefinition'].'&amp;ParentTable='.$Table.'&amp;ParentId='.$Id.'">Seznam</a>';
     66function TypePointerOneToOneViewHtml($Type, $Parameter, $Table, $Id)
     67{
     68  global $Database, $Lists;
     69
     70  $Output = '';
     71  $Columns = '';
     72  foreach($Lists[$Type['Parameter']]['Items'] as $ListItem)
     73    if($ListItem['VisibleInPointer'] == 1) $Columns .= '`'.$ListItem['Name'].'`," ",';
     74  $Columns = 'CONCAT('.substr($Columns, 0, -1).') AS Name, Id';
     75  $DbResult = $Database->select($Type['Parameter'], $Columns, 'Id='.$Parameter);
     76  //echo($Database->LastQuery);
     77  if($DbResult->num_rows > 0)
     78  {
     79    $DbRow = $DbResult->fetch_array();
     80    $Output = '<a href="?Action=ViewItem&amp;TableId='.$Type['Parameter'].'&amp;ItemId='.$DbRow['Id'].'">'.$DbRow['Name'].'</a>';
     81  }
     82  return($Output);
     83}
     84
     85function TypePointerOneToOneEditHtml($Type, $Parameter, $Table, $Id)
     86{
     87  global $Database, $Lists;
     88
     89  $Output = '<select name="%name%">';
     90  $Columns = '';
     91  foreach($Lists[$Type['Parameter']]['Items'] as $ListItem)
     92    if($ListItem['VisibleInPointer'] == 1) $Columns .= '`'.$ListItem['Name'].'`," ",';
     93  $Columns = 'CONCAT('.substr($Columns, 0, -1).') AS Name, Id';
     94  $DbResult = $Database->select($Type['Parameter'], $Columns);
     95  //echo($Database->LastQuery);
     96  while($DbRow = $DbResult->fetch_array())
     97  {
     98    if($Parameter == $DbRow['Id']) $Selected = ' selected="1"'; else $Selected = '';
     99    $Output .= '<option value="'.$DbRow['Id'].'"'.$Selected.'>'.$DbRow['Name'].'</option>';
     100  }
     101  $Output .= '</select>';
     102  return($Output);
     103}
     104
     105function TypePointerOneToManyViewHtml($Type, $Parameter, $Table, $Id)
     106{
     107  $Output = '<a href="?Action=ShowList&amp;TableId='.$Type['TypeDefinition'].'&amp;ParentTable='.$Table.'&amp;ParentColumn='.$Id.'">Seznam</a>';
     108  return($Output);
     109}
     110
     111function TypePointerOneToManyEditHtml($Type, $Parameter, $Table, $Id)
     112{
     113  $Output = '<a href="?Action=ShowList&amp;TableId='.$Type['TypeDefinition'].'&amp;ParentTable='.$Table.'&amp;ParentColumn='.$Id.'">Seznam</a>';
    69114  return($Output);
    70115}
     
    122167    ),
    123168  ),
    124   'ListItemPointer' => array(
    125     'Type' => 'Pointer',
    126     'TypeDefinition' => 'ListItem',
    127     'ViewHtml' => 'TypePointerViewHtml',
    128     'EditHtml' => 'TypePointerViewHtml',
    129     'DatabaseType' => 'INT',
    130     'InitValue' => '0',
    131     'ParseFunction' => '',
    132   ),
    133   'SubjectConnectState' => array(
    134     'Type' => 'Enumeration',
    135     'TypeDefinition' => array('Zájemce o připojení', 'Připojen', 'Trvale odpojen'),
     169  'PointerOneToOne' => array(
     170    'Type' => '',
     171    'ViewHtml' => 'TypePointerOneToOneViewHtml',
     172    'EditHtml' => 'TypePointerOneToOneEditHtml',
     173    'DatabaseType' => 'INT',
     174    'InitValue' => '0',
     175    'ParseFunction' => '',
     176  ),
     177  'PointerOneToMany' => array(
     178    'Type' => '',
     179    'ViewHtml' => 'TypePointerOneToManyViewHtml',
     180    'EditHtml' => 'TypePointerOneToManyEditHtml',
     181    'DatabaseType' => 'INT',
     182    'InitValue' => '0',
     183    'ParseFunction' => '',
     184  ),
     185  'PointerManyToMany' => array(
     186    'Type' => '',
     187    'ViewHtml' => 'TypePointerManyToManyViewHtml',
     188    'EditHtml' => 'TypePointerManyToManyEditHtml',
     189    'DatabaseType' => 'INT',
     190    'InitValue' => '0',
     191    'ParseFunction' => '',
     192  ),
     193  'MemberState' => array(
     194    'Type' => 'Enumeration',
     195    'TypeDefinition' => array('Neznámý stav', 'Zájemce o připojení', 'Připojen', 'Trvale odpojen'),
     196    'ViewHtml' => 'TypeEnumerationViewHtml',
     197    'EditHtml' => 'TypeEnumerationEditHtml',
     198    'DatabaseType' => 'INT',
     199    'InitValue' => 0,
     200    'ParseFunction' => '',
     201  ),
     202  'HostType' => array(
     203    'Type' => 'Enumeration',
     204    'TypeDefinition' => array('Nezařazeno', 'Osobní počítač', 'VoIP zařízení', 'IPTV zařízení', 'Směrovač', 'Server', 'Tiskárna/skener/kopírka', 'Jiné'),
     205    'ViewHtml' => 'TypeEnumerationViewHtml',
     206    'EditHtml' => 'TypeEnumerationEditHtml',
     207    'DatabaseType' => 'INT',
     208    'InitValue' => 0,
     209    'ParseFunction' => '',
     210  ),
     211  'InterfaceType' => array(
     212    'Type' => 'Enumeration',
     213    'TypeDefinition' => array('Jiný', 'Ethernet 10 Mbit/s', 'Ethernet 100 Mbit/s', 'Ethernet 1 Gbit/s', 'Wifi 2,4 GHz 802.11b 11 Mbit/s', 'Wifi 2,4 GHz 802.11g 54 Mbit/s', 'Wifi 5 GHz 802.11a 54 Mbit/s', 'Optika 100 Mbit/s', 'Optika 1 Gbit/s'),
     214    'ViewHtml' => 'TypeEnumerationViewHtml',
     215    'EditHtml' => 'TypeEnumerationEditHtml',
     216    'DatabaseType' => 'INT',
     217    'InitValue' => 0,
     218    'ParseFunction' => '',
     219  ),
     220  'AssetState' => array(
     221    'Type' => 'Enumeration',
     222    'TypeDefinition' => array('Neznámý', 'Na skladě', 'Používáno', 'V reklamaci', 'Vyřazeno'),
     223    'ViewHtml' => 'TypeEnumerationViewHtml',
     224    'EditHtml' => 'TypeEnumerationEditHtml',
     225    'DatabaseType' => 'INT',
     226    'InitValue' => 0,
     227    'ParseFunction' => '',
     228  ),
     229  'MemberReportType' => array(
     230    'Type' => 'Enumeration',
     231    'TypeDefinition' => array('Jiné', 'Hlášení závady', 'Požadavek na změnu', 'Poznámka správce'),
     232    'ViewHtml' => 'TypeEnumerationViewHtml',
     233    'EditHtml' => 'TypeEnumerationEditHtml',
     234    'DatabaseType' => 'INT',
     235    'InitValue' => 0,
     236    'ParseFunction' => '',
     237  ),
     238  'BankAccountType' => array(
     239    'Type' => 'Enumeration',
     240    'TypeDefinition' => array('Neurčeno', 'Běžný účet', 'Spořící účet'),
    136241    'ViewHtml' => 'TypeEnumerationViewHtml',
    137242    'EditHtml' => 'TypeEnumerationEditHtml',
Note: See TracChangeset for help on using the changeset viewer.