<?php
/*
// kate: replace-trailing-space-save true; space-indent on; indent-width 2; mixedindent off; indent-mode cstyle; word-wrap-marker-color #41C2A4
 ***************************************************************************
 *   Copyright (C) 2008 by oscim   Project lossim                          *
 *   a@oscim.fr                                                            *
 *       [created : 14.09.2009, 22:25:46] @oscim                           *
 ***************************************************************************
	ENCODE UTF-8
*/
/**
  Extracteur des element sur la base du chemin du fichier

  @a string $nom nom du fichier (/ou path + nom)
  @a string path du fichier (optionnel)
*/

/** Nom fichier + ext  Et chemin  */
function extract_nom_dater_evoluer($nom,$chemin=''){
    $ext=$type=$rub=$lang='';
    $d_revision=$d_publication=$d_retrait=array('jour'=>'','mois'=>'','annee'=>'','heure'=>'');
    $actif="false";

    if (!function_exists ('recup_date')){
      function recup_date ($ladate){
            $ladate=str_replace("_","",$ladate);
            if (strlen($ladate)>8)$f['heure']=$ladate=substr($ladate,-4,4);
            $f['jour']=substr($ladate,-2,2);
            $f['mois']=substr($ladate,4,2);
            $f['annee']=substr($ladate,0,4);
            return $f;
      }
    }
    if ( (!empty($nom))OR(!empty($chemin)) ) {

      if(empty($chemin)) $chemin=dirname($nom);
      $chemin=str_replace('//','/',$chemin);
      if( !preg_match( "/^.*\/$/", $chemin ) ) $chemin .= '/';
      $nom_ss_etat=$nom=basename($nom);
      $nom_ss_ext= eregi_replace("(\.[a-z]{3,4})",'',$nom);
      $ext=substr($nom,-3,3);
      $t=explode('/',$chemin);
      foreach($t as $value){
        if (!in_array($value.'/', array('../',REP_DATA,'/','racine/') ) && !preg_match("/^[a-z]{2}$/", $value)) { $keyrub=$value; $rub.=$value.'/'; }
        elseif(preg_match("/^[a-z]{2}$/", $value)) $lang=$value;
      }

//! DEB VERIFIER SI CONSERVE 14.09.2009 23:09:28 oscim
//       if (eregi("^bak",$nom)) { $nom_ss_etat=eregi_replace("bak_","",$nom); $actif="false";}
//       else {$nom_ss_etat=$nom; $actif="true";}
      ## Detection mode avec date ou simple
      if (eregi("([0-9]{8,12}_|[0-9]{8}_[0-9]{8}__|[0-9]{8}__)([0-9a-z_-]*.[a-z]{3})",$nom_ss_etat)) {
              ## recup valeur de date type 20070212_20070305__file ou 200070212_file ou 200070212__file ou 200702320935_file
        if (eregi("([0-9]{12}_)",$nom_ss_etat)) {
          $type='revision';
          $val=substr($nom_ss_etat,0,12);
          $Nom_complet=substr($nom_ss_etat,14);
          $d_revision=recup_date ($val);
        }
        elseif (eregi("((^[0-9]{8}_[0-9a-z_]*\.[a-z]{3})|(^[0-9]{8}__[0-9a-z_-]*.[a-z]{3}) )",$nom_ss_etat)) {
          $type='publi';
          $val=substr($nom_ss_etat,0,8);
          $Nom_complet=eregi_replace("^_","",eregi_replace($val."_","",$nom_ss_etat));
          $d_publication=recup_date ($val);
        }
        $titre=str_replace("_"," ", eregi_replace("[.][a-z]{3}","",$Nom_complet));
      } else {
       if (eregi("^([.][a-z]{3})",$nom_ss_etat)) return false;
       $Nom_complet=$nom;
       $titre=str_replace("_"," ", eregi_replace("[.][a-z]{3}","",$nom_ss_etat));
        if (empty($titre)) return false;
      }
//! FIN VERIFIER SI CONSERVE 14.09.2009 23:09:28 oscim
      $date_creation=date("m-d-Y",@filemtime($chemin.$nom));
// 		if ( ($_PX_config['os_serveur']<>"windwows") AND (!is_writable($chemin.$nom)) )$actif="lock";
      $r=array(
              "nom_complet" => "$nom", // nom complet sans chemin
              "nom_simplifie" => "$Nom_complet", // ss les dates
              "nom_ss_ext" => "$nom_ss_ext", // ss les dates
              "chemin" => "$chemin", //chemin finissant par /
              "rub" => @$rub, //chemin finissant par /
              "keyrub" => @$keyrub, //chemin finissant par /
              "titre" => "$titre", // nom fichier humain
              "ext" => "$ext",
              "lang" => "$lang",
              "type" => "$type", // publication
              "date_created" => "$date_creation"
      );

    return $r;
  }else return false;
}
?>