Documents numériques non-accessibles sur l'OPAC par un utilisateur non-enregistré

PMB 4.2.14 / Base de donnée v5.19

J'ai configuré la gestion des documents numériques, en utilisant l'approche de téléversement ("upload") dans des répertoires que j'ai défini. Les documents numériques sont toujours associés à une notice.

Toute cette partie fonctionne :
  • Il est possible de téléverser des documents numériques dans un des répertoires,
  • On peut voir la liste des documents numériques associés à une notice lorsqu'on consulte le catalogue,
  • Si on est un utilisateur enregistré dans le système, on est capable de télécharger les documents numériques.
Par contre, un utilisateur non-enregistré (qui n'a pas de "login/password"), n'arrive pas à télécharger le document numérique. Il peut voir le document numérique dans le catalogue, mais s'il clique dessus, PMB lui retourne un fichier vide (0 octet).

J'ai créé un statut dans "Administration > Documents numériques > Statuts" mais ça n'a pas réglé le problème. J'imagine qu'il y a une option incorrecte dans "Administration > Outils > Paramètres", mais laquelle ?

Est-ce que quelqu'un-e d'entre vous a une idée ?

Réponses

  • Dans les options du Statut des documents numériques, tu as pas mal d'option, notamment une colonne à droite "restriction". Tu as quelque chose dedans ?
  • Dans "Administration > Documents numériques > Statuts > (nom du statut)", il n'y a aucune coche dans les restrictions :
    • Les trois cases de visibilités générales sont cochées (visible dans la notice, consultable dans la visionneuse, téléchargeable),
    • Les trois cases restrictions sont décochées (uniquement aux abonnés?).

  • Dans "Administration > Outils > Paramètres > Paramètres généraux", il y a le sous-type "explnum_statut", mais que la valeur de ce sous-type soit à zéro ou a un ne semble pas avoir d'effet sur ce problème-ci.

    Merci pour le coup de main, par contre !
  • J'ai fini par régler le problème. Je crois que ça provient d'un bogue dans PMB 4.2.14.

    Le problème est dans la définition de la classe "explnum", utilisé par la version OPAC dans le fichier opac_css/classes/explnum.class.php, dans le code de la méthode "get_file_content()".

    Le problème est dans la construction de la variable $path. La version d'un utilisateur enregistré va chercher les répertoires des documents numériques au bon endroit, mais la version OPAC ne tient pas compte du fait qu'elle est dans un répertoire différent. La version OPAC ne trouve donc pas le document numérique, et retourne donc une variable $data vide, et donc un fichier vide (de 0 octet).

    Voici le 'hack' que j'ai mis pour le faire fonctionner. Le 'hack' est placé entre deux lignes qui se trouvent déjà dans la méthode "get_file_content" du fichier opac_css/classes/explnum.class.php :

    $path = str_replace("//","/",$this->explnum_rep_path.$this->explnum_path.$this->explnum_nomfichier);
    
    // ====== HACK TO MAKE IT WORK =======
    $path = '../' . $path;
    // ===================================
    
    $path = $up->encoder_chaine($path);
     
    Ça permet au code de remonter au répertoire supérieur, comme le code de la version d'un utilisateur enregistré. Ce n'est pas très joli, mais ça fonctionne.
  • Bonjour,
    Je reprends cette discussion car j'ai PMB en localhost sous lubuntu et je n'arrive pas à ce que mon document numérique une fois ajouté puisse s'ouvrir en gestion.
    J'ai fini par y arriver mais en allant bricoler dans phpmyadmin et en téléchargeant le fichier dans explnum_Data, ce qui est tout de même un peu employer la grosse cavalerie alors que je devrais pouvoir le faire à partir de PMB en gestion.
    J'ai essayé aussi de faire ce que préconise m_lav en janvier 2020 dans le fichier opac_css/classes/explnum.class.php mais ca ne marche pas non plus.
    Si quelqu'un peut me dépanner ce serait bien.
    Cordialement
    Sylvie d'Argouges
  • Je viens de tester la commande de votre Hack, elle marche véritablement à mon niveau
Connectez-vous ou Inscrivez-vous pour répondre.