Bien, vous avez toute une flopée de mp3 sur votre serveur mais vous aimeriez bien avoir la possibilité de les télécharger, ou du moins en télécharger une sélection.
Les réglages de base :
La première manip à faire est d'aller dans le panneau de configuration : cliquez sur le bouton "Config".
Dans la fenêtre pop-up, choisissez le troisième onglet : "Gestion de la librairie",
et cochez "Permettre les téléchargements", deux lignes plus bas vous avez aussi la possibilité de limiter la bande passante maximale. Faites le réglage qui vous convient. Validez.
Ok, mais comme vous avez la possibilité d'octoyer ce droit de téléchargement ou non à chacun de vos utilisteurs, il faut maintenant afiner. Cliquez le bouton "Utilisateurs", ouvrez l'édition d'un utilisateur et réglez l'otion "Permettre les téléchargements". Répétez l'opération pour chacun de vos utilisateurs.
Rentrons dans le code :
Bien, du côté de l'interface de KPlaylist c'est terminé. Nous allons maintenant ouvrir le capot !
Au niveau du script php, dans les paramètres ajustez cette ligne (c'est le chemin où le fichier zip temporaire sera stocké) :
$cfg['archivetemp'] = '/home/e-smith/files/ibays/mp3/files/tmp/';
Vérifiez les lignes suivantes (possibilité de compresser par Zip ou par Tar) :
$archivers[] = array(1, 'zip', '/usr/bin/zip -j -0 %D "%F"', 'application/zip', 'zip');
$archivers[] = array(1, 'tar','/bin/tar cf %D --files-from "%LIST"', 'application/x-tar', 'tar');
Bien sûr, noubliez par de créer le répertorie tmp (dans files c'est plus secure !) et ajustez les droits pour que l'écriture soir possible.
Problème avec les répertoires ? Corrigeons un bug :
Mais - par ce qu'il y'a un mais - le script KPlaylist nécessite une correction. Et oui, il y'a un bug (en tous cas dans la version v1.8 502, mais l'auteur devrait l'avoir corrigé pour les suivantes). Ce bug faisait planter la création de l'archive si vous incluiez des répertoires, pas de problème sur une sélection de quelques fichiers mp3 seuls.
Trouvez la ligne :
for ($i=0,$c=count($ids);$isetfile($fl[$i]);
et remplacez la par :
for ($i=0,$c=count($ids);$isetfile($ids[$i]);