ACC SHELL

Path : /srv/www/vhosts/profias/modules/redirection/
File Upload :
Current File : /srv/www/vhosts/profias/modules/redirection/redirection.php

<?php


  class Redirection extends Module
  {
  
    function Redirection($path)
    {
      $this->getModuleInfo($path.'/redirection');
    }

    function install()
    {
      $db=$GLOBALS['db'];
      
      $db->createTable('redirections', 'module');
      $db->createColumn('redirections', 'author', 'integer');
      $db->createColumn('redirections', 'id_page', 'integer');
      $db->createTable('redirections_languages', 'module');
      $db->createColumn('redirections_languages', 'id_redirection', 'integer');
      $db->createColumn('redirections_languages', 'id_language', 'integer');
      $db->createColumn('redirections_languages', 'url', 'short text');
      $db->createColumn('redirections_languages', 'name', 'short text');
      
      return TRUE;
    }
  
    function uninstall()
    {
      $db=$GLOBALS['db'];
      
      $db->dropColumn('redirections', 'author');
      $db->dropColumn('redirections', 'id_page');
      $db->dropTable('redirections');

      $db->dropColumn('redirections_languages', 'id_redirection');
      $db->dropColumn('redirections_languages', 'id_language');
      $db->dropColumn('redirections_languages', 'url');
      $db->dropColumn('redirections_languages', 'name');
      $db->dropTable('redirections_languages');
      
      return TRUE;
    }
  
  
    function backEnd()
    {
      $result='';
      $db=$GLOBALS['db'];
  $actions=array(
    'add'=>'Přidat přesměrování',
    'add_now'=>'Přidat',
    'list'=>'Seznam ',
    'edit'=>'Upravit',
    'edit_confirm'=>'Uložit',
    'after_add'=>'Upravit',
    'after_confirm'=>'přesměrování',
    'delete'=>'Smazat',
    'delete_confirm'=>'Ano, smazat'
  );
  
 $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'];
  }

  $arrayhelp = array(1=>'M', 'T', 'K');
  
  $tmp=$db->select(
    'spl.name, sp.id_parent, sp.id, sp.id_type',
    '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++)
  { 
    if ($tmp[$i]["id_parent"]==0){
      $cat_names[$tmp[$i]['id']] .= $arrayhelp[$tmp[$i]["id_type"]].' -> '.$tmp[$i]['name'];    
    }else{
      $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]]=$arrayhelp[$tmp[$i]["id_type"]].' -> '.$tmp[$i]['name'].' -> '.$cat_names[$childern[$tmp[$i]['id']][$j]];
      }
    }
  }
  
  
  $id_module=$db->select(
    'id',
    'sys_modules',
    'sys_name = "redirection"',
    '1'
  );
  
  if (FALSE == isset($_GET["c"])){
      $type = array(
        'type'=>'reference',
        'name'=>'Sekce',
        'field'=>'id_page',
        'reg'=>'^.+$',
        'join'=>' LEFT JOIN sys_pages as sp on (sp.id = sys_pages_languages.id_page)',
        'where'=>' AND id_language=1 AND name != "" AND sp.id_module = '.$id_module["id"],
        'ftable'=>'sys_pages_languages',
        'ffield'=>'name',
        'trans'=>$cat_names,
        'fkey'=>'id_page',
        'default'=>'0',
      );
      $wh = '';     
  }else{
    $type = array(
      'type'=>'hidden',
      'name'=>'Typ',
      'field'=>'id_page',
      'default'=>(int)$_GET["idsys_page"],
    );
      $wh = ' AND redirections.id_page = '.$_GET["idsys_page"];
  }
  
  
  $args=array(
    'name'=>'Přesměrování',
    'table'=>'redirection',  
    'item_title'=>'rl.name',    
    'documents'=>FALSE,
    'actions'=>$actions,
    'groupby'=>'id',
    'order'=>'id desc',
    'join'=>' LEFT JOIN redirections_languages AS rl ON (rl.id_redirection=redirections.id)',
    'where'=>' AND rl.id_language=1'.$wh,
    'items'=>array(
      $type,
      array(
        'type'=>'multireference',
        'name'=>'Obsah',
        'mrtable'=>'redirections_languages',
        'mrkey'=>'id_redirection',
        'mrfkey'=>'id_language',
        'ftable'=>'languages',
        'ffield'=>'name',
        'fkey'=>'id',
        'data'=>array(
        array(
         'type'=>'text',
         'name'=>'Název',
         'field'=>'name',
          'default'=>'',
         'reg'=>'^.+$',
       ),
        array(
         'type'=>'text',
         'name'=>'URL',
         'field'=>'url',
          'default'=>'',
         'reg'=>'^.+$',
       ),
        ),
      ),
      array(
        'type'=>'void',
        'name'=>'Název CZ',
        'field'=>'name',
        'table'=>'rl',
      ),
    ),
    'list'=>array(
      'columns'=>array(
        array(
          'name'=>'Název',
          'field'=>'Název CZ',
          'sort'=>'name',
          'href'=>'this',

        ),
      ),
    ),
  );
  

  

  
  $admin=new Admin($args);

  
 // $admin->innerHTML['detail']['top']=$admin->innerHTML['detail']['bottom']='<br /><a href="newsletter-write.php?new='.$admin->id.'" class="button">Odeslat newsletterem</a>';

  
  $result.=$admin->getHTML(); 
      
      return $result;
    }
  
  
  
  
  
  
  
  // frontend
  
  
  function frontEnd(&$cms, $type)
  {
    $ftp = $GLOBALS['ftp'];
    $red=$cms->db->select(
      'rl.url',
      'redirections as r
      LEFt JOIN redirections_languages as rl on (rl.id_redirection=r.id)',
      'id_language ='.(int)$cms->language['id'].' AND id_page='.(int)$type,
      '1',
      'r.id desc'
    
    );  
    
    if (isset($red["url"])==true){
      
header('location:'.$cms->httpRoot.$cms->language['code'].$node["path"].$red["url"], true,301);
      die();
    }
          
    return $result;
    
    
  
  }  
  
  
  
  
  }
  
?>

ACC SHELL 2018