<?php
include_once ('inc/core.php');
require_once(SMARTY_DIR . 'Smarty.class.php');


switch($_POST['co']){

  case 'languages_all':
    $sql = "SELECT * FROM t_langs ORDER BY lang_name"; 
    $sth = $dbh->prepare($sql);
    $sth->execute();
    $arrLangs = $sth->fetchAll();
    $subsmarty -> assign( "arrLangs" , $arrLangs);
    echo $subsmarty -> fetch( 'admin_lang_all.tpl.html' );   

  
  break;
  case 'add_lang':
   // try{
  //    $dbh -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      
      $lang_sql = "SELECT COALESCE( GREATEST( MAX( lang_id )+1 , 1 ) , 1 ) as lang_id FROM t_langs";
      foreach( $dbh->query($lang_sql) as $row) $lang_id = $row['lang_id'];
       
      $sql = "INSERT INTO t_langs(lang_id, lang_name, lang_short, lang_active, sort_order) 
          VALUES( ".$lang_id.", '".$_POST['lang_name']."', '".$_POST['lang_short']."', ".$_POST['lang_active'].", ".$_POST['sort_order']." )";   
      $dbh->exec($sql);
      $error = 0;
   //}
   //catch(PDOException $e)
   //{
      //echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
   //   $error = 1;
   //}
          if( $error == 0){
            echo 1;
          }else{
            echo "Nie powiodł się zapis.";
          }
          
  break;
    case 'save_lang':
    //try{
    //  $dbh -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      
      $sql = "UPDATE t_langs SET lang_name='".$_POST['lang_name']."', 
        lang_short='".$_POST['lang_short']."'
        , lang_active=".$_POST['lang_active']."
        , sort_order=".$_POST['sort_order']."
        WHERE lang_id=".$_POST['lang_id'];   
      $dbh->exec($sql);
      $error = 0;
  // }
  // catch(PDOException $e)
  // {
      //echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
   //   $error = 1;
  // }
          if( $error == 0){
            echo 1;
          }else{
            echo "Nie powiodł się zapis.";
          }
     break;
  ## ------------------------------------------------------------   
  case 'menu_all':
    
    $sql = "SELECT * FROM t_langs ORDER BY sort_order, lang_name"; 
    $arrLangs = array();
    $arrLangs[-1] = "- Wybierz - ";
    foreach( $dbh->query($sql) as $row){
        $arrLangs[$row['lang_id']] = $row['lang_name'];
    }
    $subsmarty -> assign( "arrLangs" , $arrLangs);
    
    $sql = "SELECT * FROM t_menu INNER JOIN t_langs lang using(lang_id) WHERE menu_parent_id IS NULL ORDER BY menu_name"; 
    $arrMenuMain = array();
    foreach( $dbh->query($sql) as $row){
        $arrMenuMain[$row['menu_id']] = $row;
    }
    $subsmarty -> assign( "arrMenuMain" , $arrMenuMain);

    
    $filtr_lang_id = $_POST['filtr_lang_id'];
    if( $filtr_lang_id != -1 ) $sql_extra = ' WHERE lang.lang_id ='.$filtr_lang_id.' ';
    $sql = "SELECT m1.*, lang.lang_name, m2.menu_name as menu_parent_name
          FROM t_menu m1 
          INNER JOIN t_langs  lang using(lang_id) 
          LEFT JOIN t_menu m2 ON m2.menu_id = m1.menu_parent_id
          ".$sql_extra."
          ORDER BY m1.sort_order, lang.lang_name, m1.menu_id, menu_parent_name"; 
    $sth = $dbh->prepare($sql);
    $sth->execute();
    $arrMenu = $sth->fetchAll();
    $subsmarty -> assign( "arrMenu" , $arrMenu);
    echo $subsmarty -> fetch( 'admin_menu.tpl.html' );   

  
  break;  
  case 'add_menu':
   // try{
   //   $dbh -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      
      $insert_sql = "SELECT COALESCE( GREATEST( MAX( menu_id )+1 , 1 ) , 1 ) as menu_id FROM t_menu";
      foreach( $dbh->query($insert_sql) as $row) $menu_id = $row['menu_id']; 
      $sql = "INSERT INTO t_menu(menu_id, menu_parent_id, lang_id, menu_name, menu_active, sort_order) 
          VALUES( ".$menu_id.", ".$_POST['menu_parent_id'].", '".$_POST['lang_id']."','". $_POST['menu_name'] ."', ".$_POST['menu_active'].", ".$_POST['sort_order']."  )";   
      
      $dbh->exec($sql);
      $error = 0;
   //}
   //catch(PDOException $e)
  // {
      //echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
    //  $error = 1;
   //}
          if( $error == 0){
            echo 1;
          }else{
            echo "Nie powiodł się zapis.";
          }
          
  break;
   case 'save_menu':
    try{
      $dbh -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      
      $sql = "UPDATE t_menu SET menu_name='".$_POST['menu_name']."', 
        menu_parent_id=".$_POST['menu_parent_id']."
        , menu_active=".$_POST['menu_active']."
        , sort_order=".$_POST['sort_order']."
        ,lang_id=".$_POST['lang_id']."
        WHERE menu_id=".$_POST['menu_id'];   
      $dbh->exec($sql);
      $error = 0;
   }
   catch(PDOException $e)
   {
      echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
      $error = 1;
   }
          if( $error == 0){
            echo 1;
          }else{
            echo "Nie powiodł się zapis.";
          }
     break;
     
    case 'delete_menu':
      //  try{
    //  $dbh -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      
      $sql = "DELETE FROM t_menu WHERE menu_id=".$_POST['menu_id'];   
      $dbh->exec($sql);
      $sql = "DELETE FROM t_pages WHERE menu_id=".$_POST['menu_id'];   
      $dbh->exec($sql);
      $error = 0;
   //}
  // catch(PDOException $e)
  // {
      //echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
   //   $error = 1;
   //}
          if( $error == 0){
            echo 1;
          }else{
            echo "Nie powiodł się zapis.";
          }
    
    break;
    
    case 'content':
      $lang_id = $_POST['lang_id'];
      if( $lang_id == -1 ) $lang_id = 1;
      $menu_id = $_POST['menu_id'];
      
      $subsmarty -> assign( "lang_id" , $lang_id);
      $subsmarty -> assign( "menu_id" , $menu_id);
      
      $sql = "SELECT * FROM t_langs ORDER BY lang_name"; 
      $sth = $dbh->prepare($sql);
      $sth->execute();
      $arrLangs = $sth->fetchAll();
      $subsmarty -> assign( "arrLangs" , $arrLangs);


      $sql = "SELECT * FROM t_menu WHERE lang_id=".$lang_id." ORDER BY sort_order"; 
      $sth = $dbh->prepare($sql);
      $sth->execute();
      $arrMenu = $sth->fetchAll();
      $subsmarty -> assign( "arrMenu" , $arrMenu);      
      
      
      $sql = "SELECT * 
         FROM t_menu 
        INNER JOIN t_langs using(lang_id)
        LEFT JOIN t_pages using( menu_id )
        WHERE menu_id=".$menu_id; 
  $count=0;
	$count_row = $dbh->prepare($sql);
	$count_row->execute();
	$count = $count_row->rowCount();
	if( $count == 1){  
      foreach( $dbh->query($sql) as $row){
        $content = $row['page_content'];
        $subsmarty -> assign( "menu_id" , $row['menu_id']);
        $subsmarty -> assign( "lang_name" , $row['lang_name']);
        $subsmarty -> assign( "menu_name" , $row['menu_name']);
      }
  }else{
    $content = '';
  }
      $_SESSION['content'] = $content;
      
      echo $subsmarty -> fetch( 'admin_content_editor.tpl.html' ); 
    
    break;
    case 'save_content':
      $menu_id = $_POST['menu_id'];
      $content = stripslashes( $_POST['content'] );
      $sql = 'DELETE FROM t_pages WHERE menu_id='.$menu_id;
      $dbh->exec($sql);
      $sql = "INSERT INTO t_pages(menu_id, page_content) VALUES ('.$menu_id.', '".addslashes( $content )."');";
      $dbh->exec($sql);
      
      echo 'Zapisano zmiany.'; 
    
    break; 
    
    /* ************************************ */
    /*  FILES */
    case 'files':
      // langs
      $sql = "SELECT * FROM t_langs ORDER BY lang_name"; 
      $sth = $dbh->prepare($sql);
      $sth->execute();
      $arr = $sth->fetchAll();
      $count = $sth->rowCount();
      if($count >0){
        foreach($arr as $key => $val){
          $arrLangs[$val['lang_id']] = $val['lang_name'];
        }
      } 
      //menus
      $sql = "SELECT t1.*,t2.lang_name 
              FROM t_menu t1 
              INNER JOIN t_langs t2 
                ON t1.lang_id=t2.lang_id
              ORDER BY t1.sort_order"; 
      $sth = $dbh->prepare($sql);
      $sth->execute();
      $arr = $sth->fetchAll();
      $count = $sth->rowCount();
      if($count >0){
        foreach($arr as $key => $val){
          $arrMenu[] = $val;
        }
      }
      $subsmarty -> assign( "arrLangs" , $arrLangs);
      $subsmarty -> assign( "arrMenu" , $arrMenu);      
    
    
      
      
      // files
      $sql = "SELECT * 
              FROM t_files t1
              INNER JOIN t_menu t2
                ON t1.menu_id=t2.menu_id 
              INNER JOIN t_langs t3 
                ON t2.lang_id=t3.lang_id
              ORDER BY t2.sort_order"; 
      $sth = $dbh->prepare($sql);
      $sth->execute();
      $arr = $sth->fetchAll();
      $count = $sth->rowCount();
      if($count >0){
        foreach($arr as $key => $val){
          $arrMain[] = $val;
          
        }
        
        //zmiany
        foreach( $arrMain as $key => $val){
          //$arrMain[$key]['file_path'] = str_replace( "/home/ee1/prac/desire/WWW/_files/", "", $arrMain[$key]['file_path'] );
          
          $arrMain[$key]['file_type'] = str_replace( "/", "_", $arrMain[$key]['file_type'] ); 
          if(!file_exists("/home/ee1/prac/desire/WWW/images/files_type/".$arrMain[$key]['file_type'].".16.gif")){
            $arrMain[$key]['file_type']  = "file";
          } 
        }
      }
      $subsmarty -> assign( "arrMain" , $arrMain);
      echo $subsmarty -> fetch( 'admin_files.tpl.html' ); 
    break;
    case 'file-save':
      $file_id = $_POST['file_id'];
      $title = stripslashes( $_POST['file_title'] );
      
      $sql = "UPDATE t_files SET 
              menu_id=".$_POST['menu_id'].", 
              file_title='".addslashes($title)."'
              WHERE file_id = ".$file_id.";";
      $dbh->exec($sql);
      
      echo 'Zapisano zmiany.'; 
    
    break;
    case 'file-delete':
      $file_id = $_POST['file_id'];
      
      $sql = "DELETE FROM t_files WHERE file_id = ".$file_id.";";
      $dbh->exec($sql);
      @unlink($_POST['file_path']);
      
      echo 'Usunięto.'; 
    
    break;
    /* ************************************ */
    
       
}

?>
