/**
  * Méthode qui sauvegarde le fichier des parametres du plugin parameters.xml
  *
  * @return	boolean		resultat de la sauvegarde / TRUE = ok
  * @author	Stephane F
  **/
 public function saveParams()
 {
     # Début du fichier XML
     $xml = "<?xml version='1.0' encoding='" . PLX_CHARSET . "'?>\n";
     $xml .= "<document>\n";
     foreach ($this->aParams as $k => $v) {
         switch ($v['type']) {
             case 'numeric':
                 $xml .= "\t<parameter name=\"{$k}\" type=\"" . $v['type'] . "\">" . intval($v['value']) . "</parameter>\n";
                 break;
             case 'string':
                 $xml .= "\t<parameter name=\"{$k}\" type=\"" . $v['type'] . "\">" . plxUtils::cdataCheck(plxUtils::strCheck($v['value'])) . "</parameter>\n";
                 break;
             case 'cdata':
                 $xml .= "\t<parameter name=\"{$k}\" type=\"" . $v['type'] . "\"><![CDATA[" . plxUtils::cdataCheck($v['value']) . "]]></parameter>\n";
                 break;
         }
     }
     $xml .= "</document>";
     # On écrit le fichier
     if (plxUtils::write($xml, $this->plug['parameters.xml'])) {
         # suppression ancien fichier parameters.xml s'il existe encore (5.1.7+)
         if (file_exists($this->plug['dir'] . $this->plug['name'] . '/parameters.xml')) {
             unlink($this->plug['dir'] . $this->plug['name'] . '/parameters.xml');
         }
         return plxMsg::Info(L_SAVE_SUCCESSFUL);
     } else {
         return plxMsg::Error(L_SAVE_ERR . ' ' . $this->plug['parameters.xml']);
     }
 }
Beispiel #2
0
 /**
  * Méthode qui vérifie sur le site de PluXml la dernière version et la compare avec celle en local
  *
  * @return	string
  * @author	Florent MONTHEL et Amaury GRAILLAT
  **/
 public function checkMaj()
 {
     # La fonction est active ?
     if (!ini_get('allow_url_fopen')) {
         return 'Impossible de v&eacute;rifier les mises &agrave; jour tant que \'allow_url_fopen\' est d&eacute;sactiv&eacute; sur ce syst&egrave;me';
     }
     # Requete HTTP sur le site de PluXml
     $fp = @fopen('http://telechargements.pluxml.org/latest-version', 'r');
     $latest_version = trim(@fread($fp, 16));
     @fclose($fp);
     if ($latest_version == '') {
         return plxMsg::Error('La v&eacute;rification de mise &agrave; jour a &eacute;chou&eacute;e pour une raison inconnue');
     }
     # Comparaison
     if (version_compare($this->version, $latest_version, ">=")) {
         return plxMsg::Info('Vous utilisez la derni&egrave;re version de PluXml (' . $this->version . ')');
     } else {
         return plxMsg::Info('Une nouvelle version de PluXml est sortie ! Vous pouvez la t&eacute;l&eacute;charger sur <a href="http://pluxml.org/">PluXml.org</a>');
     }
 }
Beispiel #3
0
    # Ok, on récupère les commentaires de l'article
    $plxAdmin->getCommentaires('/^' . $artId . '.(.*).xml$/', 'rsort');
} else {
    # Mode inconnu
    header('Location: .index.php');
    exit;
}
# On a validé le formulaire
if (!empty($_POST) and !empty($_POST['content'])) {
    # Création du commentaire
    if (!$plxAdmin->newCommentaire($artId, $_POST['content'])) {
        # Erreur
        plxMsg::Error('Une erreur est survenue au cours de la cr&eacute;tion du commentaire');
    } else {
        # Ok
        plxMsg::Info('Le commentaire a &eacute;t&eacute; cr&eacute;e avec succ&egrave;s');
    }
    header('Location: commentaire_new.php?a=' . $artId);
    exit;
}
# On inclut le header
include dirname(__FILE__) . '/top.php';
?>

<?php 
if (!empty($_GET['a'])) {
    ?>
	<p><a href="commentaires_online.php?a=<?php 
    echo $_GET['a'];
    ?>
">&laquo; Retour &agrave; la liste des commentaires de cet article</a></p>
$style = $plxAdmin->aConf['style'];
$filename = realpath(PLX_ROOT . $plxAdmin->aConf['racine_themes'] . $style . '/' . $tpl);
if (!preg_match('#^' . str_replace('\\', '/', realpath(PLX_ROOT . $plxAdmin->aConf['racine_themes'] . $style . '/') . '#'), str_replace('\\', '/', $filename))) {
    $tpl = 'home.php';
}
$filename = realpath(PLX_ROOT . $plxAdmin->aConf['racine_themes'] . $style . '/' . $tpl);
# On teste l'existence du thème
if (empty($style) or !is_dir(PLX_ROOT . $plxAdmin->aConf['racine_themes'] . $style)) {
    plxMsg::Error(L_CONFIG_EDITTPL_ERROR_NOTHEME);
    header('Location: parametres_affichage.php');
    exit;
}
# Traitement du formulaire: sauvegarde du template
if (isset($_POST['submit']) and trim($_POST['content']) != '') {
    if (plxUtils::write($_POST['content'], $filename)) {
        plxMsg::Info(L_SAVE_FILE_SUCCESSFULLY);
    } else {
        plxMsg::Error(L_SAVE_FILE_ERROR);
    }
}
# On récupère les fichiers templates du thèmes
$aTemplates = array();
function listFolderFiles($dir, $include, $root = '')
{
    $content = array();
    $ffs = scandir($dir);
    foreach ($ffs as $ff) {
        if ($ff != '.' && $ff != '..') {
            $ext = strtolower(strrchr($ff, '.'));
            if (!is_dir($dir . '/' . $ff) and is_array($include) and in_array($ext, $include)) {
                $f = str_replace($root, "", PLX_ROOT . ltrim($dir . '/' . $ff, './'));
 /**
  * Méthode qui permet de modérer ou valider un commentaire
  *
  * @param	id	identifiant du commentaire à traiter (que l'on retourne)
  * @param	mod	type de moderation (online ou offline)
  * @return	string
  * @author	Stephane F. et Florent MONTHEL
  **/
 public function modCommentaire(&$id, $mod)
 {
     # Génération du nom du fichier
     $oldfilename = PLX_ROOT . $this->aConf['racine_commentaires'] . $id . '.xml';
     if (!file_exists($oldfilename)) {
         # Commentaire inexistant
         return plxMsg::Error(L_ERR_UNKNOWN_COMMENT);
     }
     # Modérer ou valider ?
     if (preg_match('/([[:punct:]]?)[0-9]{4}.[0-9]{10}-[0-9]+$/', $id, $capture)) {
         $id = str_replace($capture[1], '', $id);
     }
     if ($mod == 'offline') {
         $id = '_' . $id;
     }
     # Génération du nouveau nom de fichier
     $newfilename = PLX_ROOT . $this->aConf['racine_commentaires'] . $id . '.xml';
     # On renomme le fichier
     @rename($oldfilename, $newfilename);
     # Contrôle
     if (is_readable($newfilename)) {
         if ($type == 'online') {
             return plxMsg::Info(L_COMMENT_VALIDATE_SUCCESSFUL);
         } else {
             return plxMsg::Info(L_COMMENT_MODERATE_SUCCESSFUL);
         }
     } else {
         if ($type == 'online') {
             return plxMsg::Error(L_COMMENT_VALIDATE_ERR);
         } else {
             return plxMsg::Error(L_COMMENT_MODERATE_ERR);
         }
     }
 }
Beispiel #6
0
 /**
  * Méthode qui recrée la vignettes d'une image
  *
  * @param	filename	nom de l'image
  * @return  msg			message contenant le résultat du traitement
  * @author	Stephane F
  **/
 public function makeThumb($filename)
 {
     # Initialisation
     $file = $this->path . $dir . '/' . $filename;
     # Test
     if (file_exists($file) and substr(strrchr($filename, '.'), 1) != 'tb') {
         # On recrée la miniature
         if ($this->privMakeThumb($file)) {
             return 'Miniature recr&eacute;&eacute;e avec succ&egrave;s';
         } else {
             return plxMsg::Error('Erreur pendant la cr&eacute;ation de la miniature');
         }
     } else {
         return plxMsg::Info('Aucune miniature &agrave; cr&eacute;er');
     }
 }
 /**
  * Méthode qui recréer les miniatures
  *
  * @param   files		liste des fichier à déplacer
  * @param	width		largeur des miniatures
  * @param	height		hauteur des miniatures
  * @return  boolean		faux si erreur sinon vrai
  * @author	Stephane F
  **/
 public function makeThumbs($files, $width, $height)
 {
     $count = 0;
     foreach ($files as $file) {
         $file = basename($file);
         if (is_file($this->path . $this->dir . $file)) {
             $thumName = plxUtils::thumbName($file);
             $ext = strtolower(strrchr($this->path . $this->dir . $file, '.'));
             if (in_array($ext, array('.gif', '.jpg', '.png'))) {
                 if (plxUtils::makeThumb($this->path . $this->dir . $file, $this->path . $this->dir . $thumName, $width, $height, 80)) {
                     $count++;
                 }
             }
         }
     }
     if (sizeof($files) == 1) {
         if ($count == 0) {
             return plxMsg::Error(L_PLXMEDIAS_RECREATE_THUMB_ERR);
         } else {
             return plxMsg::Info(L_PLXMEDIAS_RECREATE_THUMB_SUCCESSFUL);
         }
     } else {
         if ($count == 0) {
             return plxMsg::Error(L_PLXMEDIAS_RECREATE_THUMBS_ERR);
         } else {
             return plxMsg::Info(L_PLXMEDIAS_RECREATE_THUMBS_SUCCESSFUL);
         }
     }
 }
Beispiel #8
0
 /**
  * Méthode qui sauvegarde le contenu d'un produit
  *
  * @param    content    données à sauvegarder
  * @return    string
  * @author    David.L
  **/
 public function editProduct($content)
 {
     # Mise à jour du fichier product.xml
     if (isset($content["listeCategories"])) {
         $this->aProds[$content['id']]['group'] = implode(",", $content["listeCategories"]);
     }
     // formatage du prix et du poids à l'édition
     foreach (array("pricettc", "poidg") as $champ) {
         $content[$champ] = number_format($content[$champ], 2, ".", "");
     }
     // données du produit
     $this->aProds[$content['id']]['image'] = $content['image'];
     $this->aProds[$content['id']]['noaddcart'] = $content['noaddcart'];
     $this->aProds[$content['id']]['notice_noaddcart'] = $content['notice_noaddcart'];
     $this->aProds[$content['id']]['pricettc'] = $content['pricettc'];
     $this->aProds[$content['id']]['poidg'] = $content['poidg'];
     $this->aProds[$content['id']]['template'] = $content['template'];
     $this->aProds[$content['id']]['title_htmltag'] = trim($content['title_htmltag']);
     $this->aProds[$content['id']]['meta_description'] = trim($content['meta_description']);
     $this->aProds[$content['id']]['meta_keywords'] = trim($content['meta_keywords']);
     # Hook plugins
     //eval($this->plxPlugins->callHook('plxAdminEditProduct'));
     if ($this->editProducts(null, true)) {
         if (!is_dir(PLX_ROOT . 'data/products/')) {
             mkdir(PLX_ROOT . 'data/products/', 0755, true);
         }
         # Génération du nom du fichier de la page statique
         $filename = PLX_ROOT . 'data/products/' . $content['id'] . '.' . $this->aProds[$content['id']]['url'] . '.php';
         # On écrit le fichier
         if (plxUtils::write($content['content'], $filename)) {
             return plxMsg::Info(L_SAVE_SUCCESSFUL);
         } else {
             return plxMsg::Error(L_SAVE_ERR . ' ' . $filename);
         }
     }
 }
Beispiel #9
0
    # Ok, on récupère les commentaires de l'article
    $plxAdmin->getCommentaires('/^' . str_replace('_', '', $artId) . '.(.*).xml$/', 'sort');
} else {
    # Mode inconnu
    header('Location: .index.php');
    exit;
}
# On a validé le formulaire
if (!empty($_POST) and !empty($_POST['content'])) {
    # Création du commentaire
    if (!$plxAdmin->newCommentaire(str_replace('_', '', $artId), $_POST)) {
        # Erreur
        plxMsg::Error(L_ERR_CREATING_COMMENT);
    } else {
        # Ok
        plxMsg::Info(L_CREATING_COMMENT_SUCCESSFUL);
    }
    header('Location: comment_new.php?a=' . $artId);
    exit;
}
# On inclut le header
include dirname(__FILE__) . '/top.php';
?>
<form action="comment_new.php?<?php 
echo plxUtils::strCheck($get);
?>
" method="post" id="form_comment">

	<div class="inline-form action-bar">
		<h2><?php 
echo L_CREATE_NEW_COMMENT;
Beispiel #10
0
}
$style = !isset($_GET['mobile']) ? $plxAdmin->aConf['style'] : $plxAdmin->aConf['style_mobile'];
$filename = realpath(PLX_ROOT . 'themes/' . $style . '/' . $tpl);
if (!preg_match('#^' . str_replace('\\', '/', realpath(PLX_ROOT . 'themes/' . $style . '/') . '#'), str_replace('\\', '/', $filename))) {
    $filename = PLX_ROOT . 'themes/' . $style . '/home.php';
}
# On teste l'existence du thème
if (empty($style) or !is_dir(PLX_ROOT . 'themes/' . $style)) {
    plxMsg::Error('Ce th&egrave;me n\'existe pas !');
    header('Location: parametres_affichage.php');
    exit;
}
# Traitement du formulaire: sauvegarde du template
if (isset($_POST['submit']) and !empty($tpl) and trim($_POST['content']) != '') {
    if (plxUtils::write($_POST['content'], $filename)) {
        plxMsg::Info("Fichier enregistr&eacute; avec succ&egrave;s");
    } else {
        plxMsg::Error("Erreur pendant l'enregistrement du fichier");
    }
    header("Location: parametres_edittpl.php?tpl=" . $tpl . (isset($_GET['mobile']) ? '&mobile' : ''));
    exit;
}
# On récupère les fichiers templates du thèmes
$files = plxGlob::getInstance(PLX_ROOT . 'themes/' . $style);
if ($aTemplates = $files->query('/[a-z0-9-_]+.(php|css)$/')) {
    foreach ($aTemplates as $k => $v) {
        $aTemplate[$v] = $v;
    }
}
# On récupère le contenu du fichier template
$content = '';