Closed sudwebdesign closed 10 months ago
Belle surprise de pouvoir gérer les dossiers des médias en fonction des profils d'utilisateurs :100:
Par contre il est impossible avec le réglage par défaut de l'installeur usersfolders = 0
d'avoir accès en temps qu'admin a tous les dossiers et fichiers de médias mais qu'à mon dossier alias medias/001
Comme cela, tout roule comme attendu.
Effectivement il y a un petit souci. Mais ce n'est pas le seul. A la mise à jour dans le fichier data/configuration/parametres.xml, il faut remplacer, pour le paramètre usersfolder, la valeur 1 par 4 _( PROFILWRITER ) . Et cela m'ennuie de modifier le fichier de données rien que pour cela. L'idée est de permettre aux gens de revenir à la version précèdente de PluXml avec leurs données. Je vais voir si je peux faire autrement
Petite remarque qui a peut-être son importance:
Après l'enregistrement de la config le zéro fait place a rien
<parametre name="userfolders">0</parametre>
<parametre name="usersfolders"></parametre>
alors que la condition (d'origine) est stricte, le problème vient il de là...
D’ailleurs on peut remarquer cet effet avec les options d'affichage
Nombre d'articles affichés sur la page d'accueil
le champ est vide
Comme son paramètre byhomepage
dans le xml une fois que l'on a enregistré les options (avec 0 ou rien)
<parametre name="bypage">5</parametre>
<parametre name="byhomepage"></parametre>
alors que celui de bypage
garde bien le zéro même avec le champ vide??? (Nombre d'articles affichés par page
)
<parametre name="bypage">0</parametre>
<parametre name="byhomepage"></parametre>
C'est curieux.
L'idée est de permettre aux gens de revenir à la version précèdente de PluXml avec leurs données
Pourquoi ne pas garder l'ancien paramètre usersfolder
qui lui prenait 0 ou 1 (me semble-t-il).
Et s'il retourne a une ancienne version de PluXml, un petit passage sur la/les config(s) pour remettre les bonnes données.
Et il est même possible que 4 devienne un 1, qui sait ;)
Effectivement créer un nouveau paramètre usersfolders complique les choses. Dans _parametreavances.php, on modifie le tableau $usersOptions comme suit :
$usersOptions = array(
0 => ucFirst(L_NONE1),
2 => L_PROFIL_MANAGER,
3 => L_PROFIL_MODERATOR,
4 => L_PROFIL_EDITOR,
1 => L_PROFIL_WRITER, // Rétro-compatibilité pour PluXml version < 5.9.0
);
et dans medias.php, on modifie le test sur _$SESSION['profil'] comme suit :
# Nouvel objet de type plxMedias
$plxMediasRoot = PLX_ROOT.$_SESSION['medias'];
$uf = $plxAdmin->aConf['userfolders'];
if(
!empty($uf) # Gestion du dossier des medias pour certains utilisateurs
$_SESSION['profil'] >= ($uf == 1) ? PROFIL_WRITER : $uf - 1; // Rétro-compatibilité pour PluXml version < 5.9.0
) {
$plxMediasRoot .= $_SESSION['user'].'/';
}
$plxMedias = new plxMedias($plxMediasRoot, $_SESSION['folder'], $plxAdmin->aConf['default_lang']);
Dans les anciennes versions de PluXml, on ne faisait qu'un test boolean _$_SESSION['profil'] :
# Nouvel objet de type plxMedias
$plxMediasRoot = PLX_ROOT.$_SESSION['medias'];
if($plxAdmin->aConf['userfolders'] AND $_SESSION['profil']==PROFIL_WRITER)
$plxMediasRoot .= $_SESSION['user'].'/';
$plxMedias = new plxMedias($plxMediasRoot, $_SESSION['folder'], $plxAdmin->aConf['default_lang']);
Donc que le paramètre userfolders soit à 1 ou plus ne change rien !
Pour le problème d'affichage avec byhomepage, le problème se situe dans plxUtils::printInput() La fonction PHP empty() revoie le même résultat pour '' et 0.
Je teste, et paf le bogue (de rapidité)
Parse error: syntax error, unexpected variable "$_SESSION" in PluXml/core/admin/medias.php on line 37
Corrigé ici, je continue les essais...
En testant les medias
Pour Reproduire: 1-Connecté en tant qu'admin sur une page de medias 2-Clic droit sur le lien déconnexion pour l'ouvrir ds un nouvel onglet (et le fermer) 3-Recharger l'onglet admin pour être rediriger vers auth.php?p=medias.php 4-Se connecté avec le profil d'un abonné 5-PluXml veut accéder a la page avec param.phpprofil.php comme ceci medias.phpprofil.php
Bogue comme le pr #690
Fix always true if usersfolders === 0