ACC SHELL

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

<?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('&amp;', '&', 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&amp;parent='.(int)$admin->id.'">Přidat podstránku</a></p>';
  }


  
  echo html('Administrace &ndash; webu &ndash; '.$admin->dataRow['item_title'], $content, array('../inc/pages-tree.php'));
  
?>

ACC SHELL 2018