ACC SHELL

Path : /srv/www/vhosts/profias/admin/
File Upload :
Current File : /srv/www/vhosts/profias/admin/tables.php

<?php
  include('../inc/template-admin.php');


$on_load='';
if ('1'!=$GLOBALS['user']['rights'])
{
  $_GET['c']='2';
}



function insert_column($admin)
{
  $tmp=$GLOBALS['db']->select('type', 'sys_db_column_types', 'id='.(int)$_POST['Typsys_db_column'], '1');
 // print_r($_POST);
 $GLOBALS['db']->createColumn($GLOBALS['table']['sys_name'].'', 'user_field_'.(int)(get_auto_increment('sys_db_columns')-1), $tmp['type']);
  $GLOBALS['db']->queryN('UPDATE sys_db_columns SET sys_name=\'user_field_'.(int)(get_auto_increment('sys_db_columns')-1).'\' WHERE id='.(int)(get_auto_increment('sys_db_columns')-1));
}



if (FALSE==$_GET['table'])
{
  $content='<p>Zvolte tabulku.</p>';

}


else if ('new'==$_GET['table'])
{

  $form=new Form('', 'get', '', '', $_GET);
  $form->addInput('text', 'name', '', '^.+$', '', '', '', 'Název tabulky');
  $form->addInput('hidden', 'table', 'new');
  $form->addInput('submit', '', 'Vytvořit');
  $content.=$form->getHTML();

  if (TRUE==$_GET['name'])
  {
    $table_name=sys_name(addslashes($_GET['name'])).'s';
    if (TRUE==mysql_query('select * FROM '.$table_name))
    {
      $content.='<p class="red">Tabulka s tímto názvem již existuje, zvolte jiný název.</p>';
    }
    else
    {
      $db->createTable($table_name, 'user', addslashes($_GET['name']));
      header('location: ?'.str_replace('&amp;', '&', get_params($_GET, array('table', 'name'))));
      die();
    }
  
  }

}









else
{

  $table=$db->select('*', 'sys_db_tables', 'type=2 AND id='.(int)$_GET['table'], '1');
  if (FALSE==$table['id'])
  {
    header('location: ?');
    die();
  }
  



  // struktura tabulky
  if (FALSE==$_GET['c'])
  {

  $actions=array(
    'add'=>'Přidat sloupec',
    'add_now'=>'Přidat',
    'list'=>'Seznam sloupců',
    'edit'=>'Upravit',
    'edit_confirm'=>'Uložit',
    'after_add'=>'Seznam sloupců',
    'after_confirm'=>'Seznam sloupců',
    'delete'=>'Smazat sloupec',
    'delete_confirm'=>'Ano, smazat',
    'on_insert'=>insert_column,
  );


  
  $content='';
    

  $args=array(
    'name'=>'Sloupce',
    'table'=>'sys_db_column',  
    'item_title'=>'CONCAT_WS(\'-\', sys_db_columns.name)',    
    'documents'=>FALSE,
    'where'=>' AND sys_db_columns.table_id='.(int)$_GET['table'],
    'actions'=>$actions,
    'listable'=>FALSE,
    'ftp'=>$ftp,
    'items'=>array(
      array(
        'type'=>'text',
        'name'=>'Název',
        'field'=>'name',
        'reg'=>'^.+$',
      ),
      array(
        'type'=>'hidden',
        'name'=>'Tab',
        'field'=>'table_id',
        'default'=>(int)$_GET['table'],
        'in_detail'=>FALSE,
      ),
      array(
        'type'=>'reference',
        'name'=>'Typ',
        'field'=>'type',
        'ftable'=>'sys_db_column_types',
        'ffield'=>'uf_name',
        'fkey'=>'id',
        'reg'=>'^.+$',
      ),
      array(
        'type'=>'reference',
        'name'=>'Tabulka',
        'field'=>'ref_table',   
        'reg'=>'^.*$',
        'ftable'=>'sys_db_tables',
        'fkey'=>'id',
        'ffield'=>'name',
        'where'=>' AND type=2',
        'reg'=>'^.*$',
      ),
      array(
        'type'=>'reference',
        'name'=>'Sloupec',
        'field'=>'ref_field',   
        'reg'=>'^.*$',
        'ftable'=>'sys_db_columns',
        'alias'=>'c',
        'fkey'=>'id',
        'ffield'=>'name',
        'reg'=>'^.*$',
        'ajax'=>array(
          'key'=>'id',
          'fKey'=>'table_id',
          'fInput'=>'3',
        ),
      ),
    ),
    'list'=>array(
      'columns'=>array(
        array(
          'name'=>'Název',
          'field'=>'Název',
          'sort'=>'title',
          'href'=>'this',
          'width'=>'130',
        ),
      ),
    ),
  );
  
 $admin=new Admin($args);
  
  $content.=$admin->getHTML();  
 
 $on_load.=' ajaxGet(document.getElementById(\'Tabulka\').value, \'Sloupec\', \'null\', '.(int)$admin->dataRow['Sloupecsys_db_column'].');'; 
  }
  
  
  
  
  
  
  
  
  // hodnoty tabulky
  else
  {
  
    $columns=$db->select(
      'c.id, c.name, c.sys_name, t.admin_type, rt.sys_name AS ref_table, rc.sys_name AS ref_field', 
      'sys_db_columns AS c 
       LEFT JOIN sys_db_column_types AS t ON (c.type=t.id)
       LEFT JOIN sys_db_tables AS rt ON (rt.id=c.ref_table)
       LEFT JOIN sys_db_columns AS rc ON (rc.id=c.ref_field)
       ', 
       'c.table_id='.(int)$table['id']);
  
    $item_title=$table['sys_name'].'.id';
  
    $items=$list_columns=array();
    for ($i=0; $i<count($columns); $i++)
    {
      if ( ($table['sys_name'].'.id'==$item_title) && ('text'==$columns[$i]['admin_type']) )
      {
        $item_title=$table['sys_name'].'.'.$columns[$i]['sys_name'];
      }
      $items[]=array(
        'type'=>$columns[$i]['admin_type'],
        'name'=>$columns[$i]['name'],
        'field'=>$columns[$i]['sys_name'],
        'ftable'=>$columns[$i]['ref_table'],
        'ffield'=>$columns[$i]['ref_field'],
        'fkey'=>'id',
        'alias'=>'table_'.$i,
      );
      
      if ( ('text'==$columns[$i]['admin_type']) || ('date'==$columns[$i]['admin_type']) || ('reference'==$columns[$i]['admin_type']) )
      {
        $list_columns[]=array(
          'name'=>$columns[$i]['name'],
          'field'=>$columns[$i]['name'],
          'href'=>'this',
          'sort'=>$table['sys_name'].'.'.$columns[$i]['sys_name'],
        );
      }
    }

  
  $args=array(
    'name'=>'Sloupce',
    'table'=>substr($table['sys_name'], 0, strlen($table['sys_name'])-1),  
    'item_title'=>$item_title,    
    'documents'=>FALSE,
    'actions'=>$actions,
    'listable'=>FALSE,
    'ftp'=>$ftp,
    'items'=>$items,
    'list'=>array(
      'columns'=>$list_columns,
    ),
  );

  
    $admin=new Admin($args);
    
    $content.=$admin->getHTML();
  
  
  }
  
  
  
  
  
  
  
  
  
  if ('1'==$GLOBALS['user']['rights'])
  {
    $card_menu='
      <ul id="card-menu">
        <li><a href="?'.get_params($_GET, array('c')).'">Struktura</a></li>
        <li><a href="?c=2'.get_params($_GET, array('c')).'">Obsah</a></li>
      </ul>
    ';
  }
  else
  {
    $card_menu=''; 
  }
 
}


  
  echo html('Administrace &ndash; tabulky &ndash; '.$table['name'], $content, array('../inc/tables-list.php'), $admin->onLoad.$on_load);
  
?>

ACC SHELL 2018