ACC SHELL
<?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('&', '&', 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 – tabulky – '.$table['name'], $content, array('../inc/tables-list.php'), $admin->onLoad.$on_load);
?>
ACC SHELL 2018