/**
  * Méthode qui envoie un fichier sur le serveur
  *
  * @param	file	fichier à uploader
  * @param	resize	taille du fichier à redimensionner si renseigné
  * @param	thumb	taille de la miniature à créer si renseigné
  * @return  msg		message contenant le résultat de l'envoi du fichier
  * @author	Stephane F
  **/
 private function _uploadFile($file, $resize, $thumb)
 {
     if ($file['name'] == '') {
         return false;
     }
     if ($file['size'] > $this->maxUpload['value']) {
         return L_PLXMEDIAS_WRONG_FILESIZE;
     }
     if (!preg_match($this->img_exts, $file['name']) and !preg_match($this->doc_exts, $file['name'])) {
         return L_PLXMEDIAS_WRONG_FILEFORMAT;
     }
     # On teste l'existence du fichier et on formate le nom du fichier pour éviter les doublons
     $i = 1;
     $upFile = $this->path . $this->dir . plxUtils::title2filename($file['name']);
     $name = substr($upFile, 0, strrpos($upFile, '.'));
     $ext = strrchr($upFile, '.');
     while (file_exists($upFile)) {
         $upFile = $this->path . $this->dir . $name . '.' . $i++ . $ext;
     }
     if (!move_uploaded_file($file['tmp_name'], $upFile)) {
         # Erreur de copie
         return L_PLXMEDIAS_UPLOAD_ERR;
     } else {
         # Ok
         if (preg_match($this->img_exts, $file['name'])) {
             plxUtils::makeThumb($upFile, $this->path . '.thumbs/' . $this->dir . basename($upFile), 48, 48);
             if ($resize) {
                 plxUtils::makeThumb($upFile, $upFile, $resize['width'], $resize['height'], 80);
             }
             if ($thumb) {
                 plxUtils::makeThumb($upFile, plxUtils::thumbName($upFile), $thumb['width'], $thumb['height'], 80);
             }
         }
     }
     return L_PLXMEDIAS_UPLOAD_SUCCESSFUL;
 }
Beispiel #2
1
if (isset($_POST['selection']) and $_POST['selection'] == 'delete' and isset($_POST['idArt'])) {
    foreach ($_POST['idArt'] as $k => $v) {
        $plxAdmin->delArticle($v);
    }
    header('Location: index.php');
    exit;
}
# Check des variables GET pour la recherche
$_GET['catId'] = !empty($_GET['catId']) ? plxUtils::unSlash(trim($_GET['catId'])) : '';
$_GET['artTitle'] = !empty($_GET['artTitle']) ? plxUtils::unSlash(trim($_GET['artTitle'])) : '';
# On génère notre motif de recherche
$userId = $_SESSION['profil'] < PROFIL_WRITER ? '[0-9]{3}' : $_SESSION['user'];
if ($_GET['catId'] != '') {
    $motif = '/^[0-9]{4}.(.*)' . $_GET['catId'] . '(.*).' . $userId . '.[0-9]{12}.(.*)' . plxUtils::title2filename($_GET['artTitle']) . '(.*).xml$/';
} else {
    $motif = '/^[0-9]{4}.([0-9,|home|draft]*).' . $userId . '.[0-9]{12}.(.*)' . plxUtils::title2filename($_GET['artTitle']) . '(.*).xml$/';
}
# Traitement
$plxAdmin->prechauffage('admin', $motif, $plxAdmin->aConf['bypage_admin']);
$plxAdmin->getPage();
# Recuperation de la page
$plxAdmin->getFiles('all');
# Recuperation des fichiers
$plxAdmin->getArticles();
# Recuperation des articles
# Génération de notre tableau des catégories
if ($plxAdmin->aCats) {
    foreach ($plxAdmin->aCats as $k => $v) {
        $aCat[$k] = plxUtils::strCheck($v['name']);
    }
    $aAllCat['Cat&eacute;gories'] = $aCat;
Beispiel #3
1
if (empty($_SESSION['medias'])) {
    $_SESSION['medias'] = $plxAdmin->aConf['medias'];
    $_SESSION['folder'] = '';
} elseif (!empty($_POST['folder'])) {
    $_SESSION['currentfolder'] = isset($_SESSION['folder']) ? $_SESSION['folder'] : '';
    $_SESSION['folder'] = $_POST['folder'] == '.' ? '' : $_POST['folder'];
}
# Nouvel objet de type plxMedias
if ($plxAdmin->aConf['userfolders'] and $_SESSION['profil'] == PROFIL_WRITER) {
    $plxMedias = new plxMedias(PLX_ROOT . $_SESSION['medias'] . $_SESSION['user'] . '/', $_SESSION['folder']);
} else {
    $plxMedias = new plxMedias(PLX_ROOT . $_SESSION['medias'], $_SESSION['folder']);
}
#----
if (!empty($_POST['btn_newfolder']) and !empty($_POST['newfolder'])) {
    $newdir = plxUtils::title2filename(trim($_POST['newfolder']));
    if ($plxMedias->newDir($newdir)) {
        $_SESSION['folder'] = $_SESSION['folder'] . $newdir . '/';
    }
    header('Location: medias.php');
    exit;
} elseif (!empty($_POST['folder']) and $_POST['folder'] != '.' and !empty($_POST['btn_delete'])) {
    if ($plxMedias->deleteDir($_POST['folder'])) {
        $_SESSION['folder'] = '';
    }
    header('Location: medias.php');
    exit;
} elseif (!empty($_POST['btn_upload'])) {
    $plxMedias->uploadFiles($_FILES, $_POST);
    header('Location: medias.php');
    exit;
Beispiel #4
0
 /**
  * Méthode qui envoi un fichier sur le serveur
  *
  * @param	dir		répertoire de lecture
  * @param	files	données sur les fichiers à uploader de type $_FILES
  * @param	medias	type de medias uploadé (images ou documents)
  * @return  msg		message contenant le résultat de l'envoie du fichier
  * @author	Stephane F
  **/
 public function upload($dir, $files, $medias)
 {
     $nbfile = 0;
     if (($nbfiles = sizeof($files['name'])) > 0) {
         for ($numfile = 0; $numfile < $nbfiles; $numfile++) {
             if ($files['name'][$numfile] != '') {
                 # controle de l'extension du fichier si envoie d'une image
                 $ext = strtolower(strrchr(basename($files['name'][$numfile]), '.'));
                 if ($medias == 'images' and !in_array($ext, array('.gif', '.jpg', '.png'))) {
                     $msg_error = 'V&eacute;rifiez le format de vos images: gif, jpg et png uniquement';
                 } elseif ($medias == 'documents' and (substr($ext, 0, 4) == '.php' or in_array($ext, array('.cgi')))) {
                     $msg_error = "Type de fichier non autoris&eacute;: php, cgi";
                 } else {
                     # On teste l'existence du fichier et on formate le nom du fichier
                     $i = 0;
                     $upFile = $this->path . $dir . '/' . plxUtils::title2filename(basename($files['name'][$numfile]));
                     while (file_exists($upFile)) {
                         $upFile = $this->path . $dir . '/' . $i . plxUtils::title2filename(basename($files['name'][$numfile]));
                         $i++;
                     }
                     if ($files['size'][$numfile] > $this->maxUpload['value']) {
                         $msg_error = 'La taille d\'un fichier est sup&eacute;rieure &agrave; ' . $this->maxUpload['display'];
                     } elseif (!@move_uploaded_file($files['tmp_name'][$numfile], $upFile)) {
                         # Erreur de copie
                         $msg_error = 'Impossible d\'envoyer les fichiers (probl&egrave;me d\'&eacute;criture dans le dossier)';
                     } else {
                         # Ok
                         @chmod($upfile, 0644);
                         @plxUtils::makeThumb($upFile, $upFile . '.tb', $this->miniWidth, $this->miniHeight, $this->imgQuality);
                         @chmod($upfile . '.tb', 0644);
                         $nbfile++;
                     }
                 }
             }
             # Si erreur détectée on retourne le message
             if (!empty($msg_error)) {
                 return plxMsg::Error($msg_error);
             }
             if (!empty($msg_info)) {
                 return plxMsg::Info($msg_info);
             }
         }
         if ($nbfile > 1) {
             return plxMsg::Info('Fichiers envoy&eacute;s avec succ&egrave;s');
         } else {
             return plxMsg::Info('Fichier envoy&eacute; avec succ&egrave;s');
         }
     }
 }
Beispiel #5
0
    case 'home':
        $catIdSel = str_replace('FILTER', 'home', $catIdSel);
        break;
    case preg_match('/^[0-9]{3}$/', $_SESSION['sel_cat']) == 1:
        $catIdSel = str_replace('FILTER', $_SESSION['sel_cat'], $catIdSel);
}
# Nombre d'article sélectionnés
$nbArtPagination = $plxAdmin->nbArticles($catIdSel, $userId);
# Récupération du texte à rechercher
$artTitle = !empty($_GET['artTitle']) ? plxUtils::unSlash(trim(urldecode($_GET['artTitle']))) : '';
if (empty($artTitle)) {
    $artTitle = !empty($_POST['artTitle']) ? plxUtils::unSlash(trim(urldecode($_POST['artTitle']))) : '';
}
$_GET['artTitle'] = $artTitle;
# On génère notre motif de recherche
$motif = '/^' . $mod . '[0-9]{4}.' . $catIdSel . '.' . $userId . '.[0-9]{12}.(.*)' . plxUtils::title2filename($_GET['artTitle']) . '(.*).xml$/';
# Calcul du nombre de page si on fait une recherche
if ($_GET['artTitle'] != '') {
    if ($arts = $plxAdmin->plxGlob_arts->query($motif)) {
        $nbArtPagination = sizeof($arts);
    }
}
# Traitement
$plxAdmin->prechauffage($motif);
$plxAdmin->getPage();
$arts = $plxAdmin->getArticles('all');
# Recuperation des articles
# Génération de notre tableau des catégories
$aFilterCat['all'] = L_ARTICLES_ALL_CATEGORIES;
$aFilterCat['home'] = L_CATEGORY_HOME;
$aFilterCat['000'] = L_UNCLASSIFIED;