Communauté Elgg francophone

Créer un compteAide  
Connexion
Aide, trucs et astuces
Le groupe pour poser ses questions et partager ses trucs et astuces sur Elgg

Migration 1.7 - pb avec le plugin file et les download

bonjour

Je suis en train de migrer de la 1.6 vers la 1.7. Et je crois que je suis pas au bout de mes peines (j'ai déjà du me frotter à la nouvelle gestion du répertoire de data...).

Là j'ai un "gros" souci avec le plugin "file". Dans la version 1.6 les fichiers sont accessibles par le chemin :

monsite.net/action/file/download?file_guid=8314

Or, dans la evrsion 1.7, le chemin est :

monsite.net.net/mod/file/download.php?file_guid=8314

Et ça, ça ne va pas du tout parce qu'il ya de nombreux liens sur des sites extérieurs qui pointent soit sur des images, des fichiers sons ou vidéos du réseau actuellement sous Elgg... si je migre tel quel, tous les liens sont brisés !

J'ai essayé de comprendre pourquoi et il s'avère qu'il y a des différences dans le fichiers start.php du plugin "file" :

Le code :

    // Register actions
    register_action("file/upload", false, $CONFIG->pluginspath . "file/actions/upload.php");
    register_action("file/save", false, $CONFIG->pluginspath . "file/actions/save.php");
    register_action("file/download", true, $CONFIG->pluginspath. "file/actions/download.php");
    register_action("file/icon", true, $CONFIG->pluginspath. "file/actions/icon.php");
    register_action("file/delete", false, $CONFIG->pluginspath. "file/actions/delete.php");

est devenu :

    // Register actions
    register_action("file/upload", false, $CONFIG->pluginspath . "file/actions/upload.php");
    register_action("file/save", false, $CONFIG->pluginspath . "file/actions/save.php");
    register_action("file/delete", false, $CONFIG->pluginspath. "file/actions/delete.php");

    // temporary - see #2010
    register_action("file/download", false, $CONFIG->pluginspath. "file/actions/download.php");

 

Je suppose que le problème vient de là... MAIS... j'ai beau avoir rectifié le code ainsi :

    // Register actions
    register_action("file/upload", false, $CONFIG->pluginspath . "file/actions/upload.php");
    register_action("file/save", false, $CONFIG->pluginspath . "file/actions/save.php");
// ajout af reprise ancien plugin qui marche bien
    register_action("file/download", true, $CONFIG->pluginspath. "file/actions/download.php");
    register_action("file/icon", true, $CONFIG->pluginspath. "file/actions/icon.php");
    register_action("file/delete", false, $CONFIG->pluginspath. "file/actions/delete.php");

    // temporary - see #2010
    //register_action("file/download", false, $CONFIG->pluginspath. "file/actions/download.php");

 

Ca ne marche toujours pas... Auriez-vous une idée de ce qu'il faudrait faire pour avoir les même chemins vers les fichiers en 1.7 qu'en 1.6 ? Merci Sourire

Réponses

  • abFab le 3 août 2010

    bonjour

    Je suis en train de migrer de la 1.6 vers la 1.7. Et je crois que je suis pas au bout de mes peines (j'ai déjà du me frotter à la nouvelle gestion du répertoire de data...).

    Là j'ai un "gros" souci avec le plugin "file". Dans la version 1.6 les fichiers sont accessibles par le chemin :

    monsite.net/action/file/download?file_guid=8314

    Or, dans la evrsion 1.7, le chemin est :

    monsite.net.net/mod/file/download.php?file_guid=8314

    Et ça, ça ne va pas du tout parce qu'il ya de nombreux liens sur des sites extérieurs qui pointent soit sur des images, des fichiers sons ou vidéos du réseau actuellement sous Elgg... si je migre tel quel, tous les liens sont brisés !

    J'ai essayé de comprendre pourquoi et il s'avère qu'il y a des différences dans le fichiers start.php du plugin "file" :

    Le code :

        // Register actions
        register_action("file/upload", false, $CONFIG->pluginspath . "file/actions/upload.php");
        register_action("file/save", false, $CONFIG->pluginspath . "file/actions/save.php");
        register_action("file/download", true, $CONFIG->pluginspath. "file/actions/download.php");
        register_action("file/icon", true, $CONFIG->pluginspath. "file/actions/icon.php");
        register_action("file/delete", false, $CONFIG->pluginspath. "file/actions/delete.php");

    est devenu :

        // Register actions
        register_action("file/upload", false, $CONFIG->pluginspath . "file/actions/upload.php");
        register_action("file/save", false, $CONFIG->pluginspath . "file/actions/save.php");
        register_action("file/delete", false, $CONFIG->pluginspath. "file/actions/delete.php");

        // temporary - see #2010
        register_action("file/download", false, $CONFIG->pluginspath. "file/actions/download.php");

     

    Je suppose que le problème vient de là... MAIS... j'ai beau avoir rectifié le code ainsi :

        // Register actions
        register_action("file/upload", false, $CONFIG->pluginspath . "file/actions/upload.php");
        register_action("file/save", false, $CONFIG->pluginspath . "file/actions/save.php");
    // ajout af reprise ancien plugin qui marche bien
        register_action("file/download", true, $CONFIG->pluginspath. "file/actions/download.php");
        register_action("file/icon", true, $CONFIG->pluginspath. "file/actions/icon.php");
        register_action("file/delete", false, $CONFIG->pluginspath. "file/actions/delete.php");

        // temporary - see #2010
        //register_action("file/download", false, $CONFIG->pluginspath. "file/actions/download.php");

     

    Ca ne marche toujours pas... Auriez-vous une idée de ce qu'il faudrait faire pour avoir les même chemins vers les fichiers en 1.7 qu'en 1.6 ? Merci Sourire

  • abFab le 4 août 2010

    Bon alors, en fait (cette installation m'en aura fait voir Sourire )... j'ai eu un problème avec l'étape suivante lors de la dupplication pour création d'une zone de test:

    http://docs.elgg.org/wiki/DuplicateInstallation#Change_the_filestore_data_directory

    J'avais donc un problème plus important de download.

    J'ai tout remis à zéro en ce qui concerne le plugin "file".

    Actuellement le lien de "télécharger le fichier" est :

    monsite.net/mod/file/download.php?file_guid=8314

    Ce qui  m'embête... MAIS, il s'avère que le lien :

    monsite.net/action/file/download?file_guid=8314

    fonctionne !!

     

    OR, j'ai vérifié, j'ai bien mis dans les mod, le plugin "file" fourni avec la 1.7. Et le fichier start contient bien les lignes suivantes :


        // temporary - see #2010
        register_action("file/download", false, $CONFIG->pluginspath. "file/actions/download.php");

     

    Donc normalement, l'url : monsite.net/action/file/download?file_guid=8314 ne devrait pas fonctionner...

    Là ça fonctionne, et cela m'arrange, c'est très bien... mais en fait je ne comprends pas pourquoi ....


  • Florian DANIEL ~ Facyla le 5 août 2010

    ton paramètre false correspond à

    boolean  $public Can this action be accessed by people not logged into the system? (cf. http://reference.elgg.org/engine_2lib_2actions_8php.html#3f21e0873b497739b3c9da1d43360e89)

    ..donc en fait c'est normal :)

    par contre ça doit empêcher le lien contenant action/download de marcher lorsqu'on n'est pas connecté ?

     

  • abFab le 6 août 2010

    Merci pour l'info ! J'avais pas capté la subtilité...

     

    Cela dit, même déconnecté ça continue à fonctionner...

    (mais si cela devait planter, je sais où je dois chercher ;)