Changeset 2 for data_types.php


Ignore:
Timestamp:
Sep 10, 2008, 8:07:24 PM (16 years ago)
Author:
george
Message:
  • Upraveno: Uchování a načtení struktury seznamů a položek dynamicky z databáze namísto soubor lists.php, kde zůstaly základní definice tabulek.
  • Upraveno: Zobrazení podpoložek typu Pointer podle rodičovského id.
  • Přidáno: Stránkování u dlouhých výpisů položek seznamů.
  • Přidáno: Vlastnost VisibleInList určující, které vlastnosti položky zobrazovat v přehledovém seznamu a které ne. Zobrazovat vše by bylo nepřehledné a nepraktické.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • data_types.php

    r1 r2  
    33include('types.php');
    44include('lists.php');
     5include('common.php');
    56
    67function ShowList($List)
    78{
    8   global $Database, $Types;
     9  global $Database, $Types, $Config;
    910
    1011  $Output = '<table class="WideTable"><tr>';
    1112  foreach($List['Items'] as $Item)
    1213  {
    13     $Output .= '<th>'.$Item['TextBefore'].'</th>';
     14    if($Item['VisibleInList'] == 1)
     15      $Output .= '<th>'.$Item['TextBefore'].'</th>';
    1416  }
    1517  $Output .= '<th>Akce</th></tr>';
    1618
    17   $DbResult = $Database->select($List['TableName'], '*');
     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  }
     25  else $Where = '1';
     26
     27  if(array_key_exists('Page', $_GET)) $Page = $_GET['Page']; else $Page = 0;
     28  $DbResult = $Database->select($List['TableName'], 'COUNT(*)', $Where);
     29  $DbRow = $DbResult->fetch_array();
     30  $TotalItemCount = $DbRow[0];
     31
     32  $DbResult = $Database->select($List['TableName'], '*', $Where.' LIMIT '.($Page * $Config['Web']['ItemsPerPage']).', '.$Config['Web']['ItemsPerPage']);
    1833  while($DbRow = $DbResult->fetch_array())
    1934  {
     
    2136    foreach($List['Items'] as $Index => $Item)
    2237    {
    23       $Type = $Types[$Item['Type']];
    24       if(is_callable($Type['ViewHtml'])) $Value = $Type['ViewHtml']($Type, $DbRow[$Index]);
    25       else $Value = $Type['ViewHtml'];
    26       $Value = str_replace('%value%', $DbRow[$Index], $Value);
    27       $Output .= '<td>'.$Value.'</td>';
     38      if($Item['VisibleInList'] == 1)
     39      {
     40        $Type = $Types[$Item['Type']];
     41        if(is_callable($Type['ViewHtml'])) $Value = $Type['ViewHtml']($Type, $DbRow[$Index], $List['TableName'], $DbRow['Id']);
     42        else $Value = $Type['ViewHtml'];
     43        $Value = str_replace('%value%', $DbRow[$Index], $Value);
     44        $Output .= '<td>'.$Value.'</td>';
     45      }
    2846    }
    2947    $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>';
    3048  }
    3149  $Output .= '</table>';
     50  $Output .= PagesList($Page, $TotalItemCount).'<br />';
    3251  $Output .= '<a href="?Action=Add">Přidat</a>';
    3352  return($Output);
     
    4766    {
    4867      $Type = $Types[$Item['Type']];
    49       if(is_callable($Type['EditHtml'])) $Value = $Type['EditHtml']($Type, $DbRow[$Index]);
     68      if(is_callable($Type['EditHtml'])) $Value = $Type['EditHtml']($Type, $DbRow[$Index], $List['TableName'], $DbRow['Id']);
    5069      else $Value = $Type['EditHtml'];
    5170      $Value = str_replace('%value%', $DbRow[$Index], $Value);
     
    84103  {
    85104    $Type = $Types[$Item['Type']];
    86     if(is_callable($Type['EditHtml'])) $Value = $Type['EditHtml']($Type, $Type['InitValue']);
     105    if(is_callable($Type['EditHtml'])) $Value = $Type['EditHtml']($Type, $Type['InitValue'], $List['TableName'], 0);
    87106    else $Value = $Type['EditHtml'];
    88107    $Value = str_replace('%value%', $Type['InitValue'], $Value);
     
    123142    {
    124143      $Type = $Types[$Item['Type']];
    125       if(is_callable($Type['ViewHtml'])) $Value = $Type['ViewHtml']($Type, $DbRow[$Index]);
     144      if(is_callable($Type['ViewHtml'])) $Value = $Type['ViewHtml']($Type, $DbRow[$Index], $List['TableName'], $DbRow['Id']);
    126145      else $Value = $Type['ViewHtml'];
    127146      $Value = str_replace('%value%', $DbRow[$Index], $Value);
     
    199218}
    200219
     220function LoadListDefinition()
     221{
     222  global $Database, $Lists;
     223
     224  $DbResult = $Database->select('List', '*');
     225  while($DbRow = $DbResult->fetch_assoc())
     226  {
     227    $Items = array();
     228    $DbResult2 = $Database->select('ListItem', '`Name`, `TextBefore`, `TextAfter`, `Type`, `Default`, `Help`, `Required`, `Editable`, `VisibleInList`', 'List='.$DbRow['Id']);
     229    while($DbRow2 = $DbResult2->fetch_assoc())
     230    {
     231      $Items[$DbRow2['Name']] = $DbRow2;
     232    }
     233    $List = array(
     234     'TableName' => $DbRow['TableName'],
     235     'Title' => $DbRow['Title'],
     236     'Items' => $Items,
     237    );
     238    $Lists[] = $List;
     239  }
     240}
    201241?>
Note: See TracChangeset for help on using the changeset viewer.