ACC SHELL
<?php
include('../inc/template-admin.php');
//$db->createColumn('sys_pages', 'id_module', 'integer');
function touch_file($admin)
{
if (FALSE==file_exists('../pages/'.$_POST['PHP_skriptsys_page']))
{
$conn_id=ftp_connect($admin->ftp['server']) or die('Nemohu se pipojit k FTP serveru.');
$login_result = ftp_login($conn_id, $admin->ftp['login'], $admin->ftp['password']) or die('Nemohu se pipojit k FTP serveru.');
ftp_chdir($conn_id, $admin->ftp['ftp_root']);
@ftp_mkdir($conn_id, 'pages');
ftp_chdir($conn_id, 'pages');
ftp_put($conn_id, $_POST['PHP_skriptsys_page'], '../blank', FTP_BINARY);
ftp_close($conn_id);
}
}
//$db->createColumn('sys_pages_languages', 'html', 'medium text');
if ( ('1'!=$GLOBALS['user']['rights']) && (FALSE==in_array($_GET['c'], array('3', '4'))) )
{
$_GET['c']='4';
}
if (FALSE==$_GET['root'])
{
$tmp=$db->select('id, id_parent', 'sys_pages', 'active=\'Y\'');
for ($i=0; $i<count($tmp); $i++)
{
$childern[$tmp[$i]['id_parent']][]=$tmp[$i]['id'];
}
$tmp=$db->select(
'spl.name, sp.id_parent, sp.id',
'sys_pages as sp
LEFT JOIN sys_pages_languages AS spl ON (sp.id = spl.id_page)',
'spl.id_language=1 AND sp.active=\'Y\'',
'',
'spl.name'
);
for ($i=0; $i<count($tmp); $i++)
{
$cat_names[$tmp[$i]['id']].=$tmp[$i]['name'];
if (0==count($childern[$tmp[$i]['id']]))
{
$allowed[]=$tmp[$i]['id'];
}
for ($j=0; $j<count($childern[$tmp[$i]['id']]); $j++)
{
if ("" != trim($tmp[$i]['name']))
{
$cat_names[$childern[$tmp[$i]['id']][$j]]= $tmp[$i]['name'].' -> '.$cat_names[$childern[$tmp[$i]['id']][$j]];
}
}
}
$content='';
$args=array(
'name'=>'Stránky',
'table'=>'sys_page',
'item_title'=>'CONCAT_WS(\'-\', cz.name)',
'documents'=>FALSE,
'actions'=>$actions,
'listable'=>FALSE,
'join'=>' LEFT JOIN sys_pages_languages AS cz ON (cz.id_page=sys_pages.id) LEFT JOIN languages ON (languages.id = cz.id_language)',
'where'=>' AND (cz.id_language=1 OR cz.id_language IS NULL) AND languages.active = "Y"',
'ftp'=>$ftp,
'items'=>array(
array(
'type'=>'void',
'name'=>'Název',
'field'=>'name',
'table'=>'cz',
'reg'=>'^.+$',
),
),
'list'=>array(
'columns'=>array(
array(
'name'=>'Název',
'field'=>'Název',
'sort'=>'title',
'href'=>'this',
'width'=>'130',
),
),
),
);
//print_r($ftp);
$args['items'][]=
array(
'type'=>'multireference',
'name'=>'vlastnosti',
'mrtable'=>'sys_pages_languages',
'mrkey'=>'id_page',
'mrfkey'=>'id_language',
'ftable'=>'languages',
'ftp'=>$ftp,
'documents'=>TRUE,
'fkey'=>'id',
'ffield'=>'name',
'data'=>array(
array(
'type'=>'text',
'name'=>'Název',
'field'=>'name',
'default'=>'',
'reg'=>'^.+$',
),
array(
'type'=>'textarea',
'name'=>'Popis stránky',
'field'=>'page_description',
'default'=>'',
),
array(
'type'=>'text',
'name'=>'Cesta',
'field'=>'path',
'default'=>'',
'reg'=>'^.+$',
),
array(
'type'=>'text',
'name'=>'Popis',
'field'=>'description',
'default'=>'',
'reg'=>'^.*$',
),
array(
'type'=>'text',
'name'=>'Klíčová slova',
'field'=>'keywords',
'default'=>'',
'reg'=>'^.*$',
),
array(
'type'=>'wysiwyg',
'name'=>'Obsah',
'field'=>'html',
'default'=>'',
'reg'=>'^.*$',
),
),
);
$args['items'][]=
array(
'type'=>'reference',
'name'=>'Šablona',
'field'=>'id_template',
'ftable'=>'sys_templates',
'ffield'=>'name',
'fkey'=>'id',
'reg'=>'^.*$',
);
$args['items'][]=
array(
'type'=>'void',
'name'=>'template',
'field'=>'id_template',
'in_detail'=>FALSE,
);
$args['items'][]=
array(
'type'=>'void',
'name'=>'module',
'field'=>'id_module',
'in_detail'=>FALSE,
);
$args['items'][]=
array(
'type'=>'reference',
'name'=>'Nadsekce',
'field'=>'id_parent',
'ftable'=>'sys_pages_languages',
'ffield'=>'name',
'join'=>' LEFT JOIN sys_pages on (sys_pages.id = sys_pages_languages.id_page) ',
'where'=>' AND id_language=1 AND sys_pages.in_menu ="Y" AND sys_pages_languages.name != "" AND sys_pages.id IS NOT NULL',
'fkey'=>'id_page',
'reg'=>'^.*$',
'trans'=>$cat_names,
'default'=>(int)$_GET['parent'],
);
$args['items'][]=
array(
'type'=>'text',
'name'=>'PHP skript',
'field'=>'script_file',
'default'=>'',
'reg'=>'^.*$',
);
$args['items'][]=
array(
'type'=>'file',
'name'=>'Obrázek stránky',
'field'=>'preview',
'default'=>'',
'thumb_directory'=>'./',
'thumbs'=>array(),
);
$args['items'][]=
array(
'type'=>'multireference',
'name'=>'CSS',
'mrtable'=>'sys_css_pages',
'mrkey'=>'id_page',
'mrfkey'=>'id_css',
'ftable'=>'sys_csss',
'fkey'=>'id',
'ffield'=>'name',
'reg'=>'^.*$',
);
$args['items'][]=
array(
'type'=>'checkbox',
'name'=>'V menu',
'field'=>'in_menu',
'default'=>'N',
);
$admin=new Admin($args);
if (FALSE==$_GET['c'])
{
if ( (FALSE==$admin->id) && ('add'!=$admin->action) && ('add_now'!=$admin->action) )
{
$tmp=$db->select('MIN(id) AS id', 'sys_pages', '', '1');
if (TRUE==$tmp['id'])
{
header('location: ?idsys_page='.$tmp['id']);
die();
}
}
if ((FALSE==$_GET['c']) || ('3'==$_GET['c']))
{
$content.=$admin->getHTML();
}
}
if ('3'==$_GET['c'])
{
$tmp=$db->select(
'v.*, ct.admin_type, co.sys_name AS col, t.sys_name AS tab',
'sys_vars AS v
LEFT JOIN sys_db_column_types AS ct ON (ct.id=v.id_column_type)
LEFT JOIN sys_db_columns AS co ON (co.id=v.ref_field)
LEFT JOIN sys_db_tables AS t ON (t.id=v.ref_table)
',
'id_page='.(int)$_GET['idsys_page'].' OR id_template='.(int)$admin->dataRow['templatesys_page']
);
$actions=array(
'add'=>'Přidat stránku',
'add_now'=>'přidat',
'list'=>'',
'edit'=>'upravit',
'edit_confirm'=>'uložit',
'after_add'=>'upravit',
'after_confirm'=>'Seznam stránek',
'delete'=>'smazat stránku',
'delete_confirm'=>'Ano, smazat',
'on_insert'=>touch_file,
);
$args=array(
'name'=>'Stránky',
'table'=>'sys_page',
'item_title'=>'CONCAT_WS(\'-\', cz.name)',
'documents'=>FALSE,
'actions'=>$actions,
'listable'=>FALSE,
'join'=>' LEFT JOIN sys_pages_languages AS cz ON (cz.id_page=sys_pages.id)',
'where'=>' AND cz.id_language=1',
'ftp'=>$ftp,
'documents'=>TRUE,
'items'=>array(
array(
'type'=>'void',
'name'=>'Název',
'field'=>'name',
'table'=>'cz',
'reg'=>'^.+$',
),
),
'list'=>array(
'columns'=>array(
array(
'name'=>'Název',
'field'=>'Název',
'sort'=>'title',
'href'=>'this',
'width'=>'130',
),
),
),
);
for ($i=0; $i<count($tmp); $i++)
{
$args['items'][]=
array(
'type'=>'multireference',
'name'=>$tmp[$i]['name'],
'field'=>'name',
'ftable'=>'languages',
'mrkey'=>'id_page',
'mrfkey'=>'id_language',
'ffield'=>'name',
'fkey'=>'id',
'key'=>'id',
'mrtable'=>'sys_var_values',
'reg'=>'^.+$',
'mr_where'=>' AND id_page='.(int)$_GET['idsys_page'],
'data'=>array(
array(
'type'=>$tmp[$i]['admin_type'],
'name'=>$tmp[$i]['name'],
'field'=>'value',
'ftable'=>$tmp[$i]['tab'],
'ffield'=>$tmp[$i]['col'],
'mrtable'=>'articles_'.$tmp[$i]['tab'],
'mrkey'=>'id_article',
'mrfkey'=>'id_'.rtrim($tmp[$i]['tab'], 's'),
'order'=>'name',
'fkey'=>'id',
'key'=>'id',
'reg'=>'^.+$',
),
),
'addValues'=>array(
array(
'field'=>'id_var',
'value'=>(int)$tmp[$i]['id'],
),
),
);
}
$admin=new Admin($args);
if ( ('edit'!=$admin->action) && ('update'!=$admin->action) )
{
header('location: ?actionsys_page=edit&idsys_page='.$_GET['idsys_page']);
die();
}
if ((FALSE==$_GET['c']) || ('3'==$_GET['c']))
{
$content.=$admin->getHTML();
}
}
// Promenne
if ('2'==$_GET['c'])
{
$actions=array(
'add'=>'Přidat stránku',
'add_now'=>'přidat',
'list'=>'Seznam stránek',
'edit'=>'upravit',
'edit_confirm'=>'uložit',
'after_add'=>'upravit',
'after_confirm'=>'Seznam stránek',
'delete'=>'smazat stránku',
'delete_confirm'=>'Ano, smazat'
);
$args=array(
'name'=>'Uživatelské proměnné',
'table'=>'sys_var',
'item_title'=>'CONCAT_WS(\'-\', name)',
'ftp'=>$ftp,
'documents'=>TRUE,
'actions'=>$actions,
'where'=>' AND id_page='.(int)$admin->id.' OR id_template='.(int)$admin->dataRow['templatesys_page'],
'items'=>array(
array(
'type'=>'hidden',
'name'=>'Stránka',
'field'=>'id_page',
'default'=>(int)$admin->id,
'reg'=>'^.+$',
),
array(
'type'=>'text',
'name'=>'Název',
'field'=>'name',
'reg'=>'^.+$',
),
array(
'type'=>'reference',
'name'=>'Typ',
'field'=>'id_column_type',
'ftable'=>'sys_db_column_types',
'fkey'=>'id',
'ffield'=>'uf_name',
'reg'=>'^.+$',
),
),
'list'=>array(
'columns'=>array(
array(
'name'=>'Název',
'field'=>'Název',
'sort'=>'title',
'href'=>'this',
'width'=>'130',
),
),
),
);
$admin2=new Admin($args);
$content.=$admin2->getHTML();
}
// obsah stranky
if ('4'==$_GET['c'])
{
if (TRUE==$admin->dataRow['modulesys_page'])
{
$tmp=$db->select('sys_name', 'sys_modules', 'id='.(int)$admin->dataRow['modulesys_page'], '1');
require_once('../inc/module.php');
if (FALSE==@include_once('../modules/'.$tmp['sys_name'].'/'.$tmp['sys_name'].'.php'))
{
header('location: index.php');
die();
}
$class_name=ucfirst(strtolower($tmp['sys_name']));
$module=new $class_name('../modules/');
$content.=$module->backEnd();
}
else
{
$actions=array(
'add'=>'',
'add_now'=>'',
'list'=>'',
'edit'=>'upravit',
'edit_confirm'=>'upravit',
'after_add'=>'upravit',
'after_confirm'=>'edit',
'delete'=>'',
'delete_confirm'=>''
);
$args=array(
'name'=>'Stránky',
'table'=>'sys_page',
'item_title'=>'CONCAT_WS(\'-\', cz.name)',
'ftp'=>$ftp,
'documents'=>TRUE,
'actions'=>$actions,
'listable'=>FALSE,
'join'=>' LEFT JOIN sys_pages_languages AS cz ON (cz.id_page=sys_pages.id)',
'where'=>' AND (cz.id_language=1 OR cz.id_language IS NULL)',
'items'=>array(
array(
'type'=>'multireference',
'name'=>'vastnosti',
'mrtable'=>'sys_pages_languages',
'mrkey'=>'id_page',
'mrfkey'=>'id_language',
'ftable'=>'languages',
'fkey'=>'id',
'hidden_labels'=>TRUE,
'ffield'=>'name',
'data'=>array(
array(
'type'=>'text',
'name'=>'Název',
'field'=>'name',
'default'=>'',
'reg'=>'^.+$',
),
array(
'type'=>'hidden',
'name'=>'Cesta',
'field'=>'path',
'default'=>'',
'reg'=>'^.+$',
),
array(
'type'=>'hidden',
'name'=>'Popis',
'field'=>'description',
'default'=>'',
'reg'=>'^.*$',
),
array(
'type'=>'hidden',
'name'=>'Klíčová slova',
'field'=>'keywords',
'default'=>'',
'reg'=>'^.*$',
),
array(
'type'=>'wysiwyg',
'name'=>'Obsah',
'field'=>'html',
'default'=>'',
'reg'=>'^.*$',
),
),
),
),
'list'=>array(
'columns'=>array(
array(
'name'=>'Název',
'field'=>'Název',
'sort'=>'title',
'href'=>'this',
'width'=>'130',
),
),
),
);
$admin3=new Admin($args);
if ( ('edit'!=$admin3->action) && ('update'!=$admin3->action) )
{
header('location: ?actionsys_page=edit&idsys_page='.$_GET['idsys_page'].'&c=4');
die();
}
$content.=$admin3->getHTML();
}
}
// moduly
if ('5'==$_GET['c'])
{
if (TRUE==isset($_POST['module']))
{
$db->queryN('UPDATE sys_pages SET id_module='.(int)$_POST['module'].' WHERE id='.(int)$admin->id);
/* $spm = $db->select(
'*',
'sys_pages_modules',
'id_page = '.(int)$admin->id,
'1'
);
if (count($spm)==1){
$db->queryN('UPDATE sys_pages_modules SET id_module='.(int)$_POST['module'].' WHERE id='.(int)$spm["id"]);
}else{
$ar = array('id_module'=>(int)$_POST["module"], 'id_page'=>(int)$admin->id);
$db->insert('sys_pages_modules', $ar);
}*/
header('location: ?'.str_replace('&', '&', get_params($_GET, array())));
die();
}
$tmp=$db->select('*', 'sys_modules','is_type = "Y"');
$modules=array();
if (FALSE==$admin->dataRow['modulesys_page'])
{
$checked=' checked="checked"';
}
else
{
$checked='';
}
$list='<input'.$checked.' onclick="document.getElementById(\'module-select\').submit();" type="radio" class="checkbox" name="module" value="">Žádný<br />
';
for ($i=0; $i<count($tmp); $i++)
{
if ($admin->dataRow['modulesys_page']==$tmp[$i]['id'])
{
$checked=' checked="checked"';
}
else
{
$checked='';
}
$modules[$tmp[$i]['sys_name']]=$tmp[$i];
$list.='<input'.$checked.' onclick="document.getElementById(\'module-select\').submit();" type="radio" class="checkbox" name="module" value="'.$tmp[$i]['id'].'">'.$tmp[$i]['name'].'<br />
';
if (TRUE==$checked)
{
$config_str='<h3>'.$tmp[$i]['name'].'</h3>
';
@include('../modules/'.$tmp[$i]['sys_name'].'/config.php');
$id_module=$tmp[$i]['id'];
}
}
//config
// print_r($module_config);
for ($i=0; $i<count($module_config); $i++)
{
$config[$module_config[$i]['function']][]=$module_config[$i];
}
$languages=$db->select('*', 'languages');
$content.='
<br /><br /><br />
<form method="post" id="module-select">
<div>
'.$list.'
</div>
</form>
<br />
'.$config_str.'
<a href="?c=4&actionsys_page=edit&idsys_page='.$admin->id.'">Upravte obsah </a>
';
}
if ('1'==$GLOBALS['user']['rights'])
{
$card_menu='
<ul id="card-menu">
<li><a href="?'.get_params($_GET, array('c')).'">Vlastnosti stránky</a></li>
<!-- <li><a href="?c=2'.get_params($_GET, array('c')).'">Proměnné</a></li>
<li><a href="?c=3'.get_params($_GET, array('c')).'">Hodnoty proměnných</a></li> -->
<li><a href="?c=4'.get_params($_GET, array('c')).'">Obsah stránky</a></li>
<li><a href="?c=5'.get_params($_GET, array('c')).'">Moduly</a></li>
</ul>
';
}
else if ('2'==$GLOBALS['user']['rights'])
{
$card_menu='
<ul id="card-menu">
<!-- <li><a href="?c=3'.get_params($_GET, array('c')).'">Hodnoty proměnných</a></li> -->
<li><a href="?c=4'.get_params($_GET, array('c')).'">Obsah stránky</a></li>
</ul>
';
}
else
{
$card_menu='';
}
}
else
{
$card_menu='';
}
if ( ('1'==$GLOBALS['user']['rights']) && (5>(int)$_GET['c']))
{
// $content.='<p><a href="?actionsys_page=add&parent='.(int)$admin->id.'">Přidat podstránku</a></p>';
}
echo html('Administrace – webu – '.$admin->dataRow['item_title'], $content, array('../inc/pages-tree.php'));
?>
ACC SHELL 2018