Bonjour a tous,
voila j'ai mis un player audio grace a soudmanager2 sur mon site.
Il fonctionne et c'est super... mais il ne fonctionne que sur les page a la racine du site. Je m'explique.
Lorsque je me retrouve sur un page monsite.com/toto pas de soucis le player fonctionne!
Lorsque je suis sur une page monsite.com/toto/tata rien ne va plus!
Les erreurs sont liées aux chemins d’accès.
J'ai utilisé les routes pour que mon site n'utilise pas /pages/ initialement le chemin pour ma page était monsite.com/pages/toto, j'ai fait en sorte que ca devienne monsite.com/toto.
Maintenant les liens créé depuis la page toto avec le helper Html pose soucis il prenne comme chemin monsite.com/pages/files/songs/machanson.mp3, alors que je souhaiterai faire monsite.com/files/songs/machanson.mp3

Comment dois je faire?
Je suis un peu perdu...

Merci d'avance.

4 réponses


duffJohn
Auteur

Up j'ai édité le message du dessus please

Bonjour,
Peux tu nous montrer le code de tes liens vers les fichiers mp3 stp?

EDIT :
Essaye un truc comme ça :

<?php echo $this->Html->link(Router::url('/files/'.$monFichierMp3)); ?>
duffJohn
Auteur

Alors j'ai créé un element pour la songlist du player,
voici le code dans default.ctp:

<!-- PLAYLIST -->
            <!-- C'est la playlist qui définit les sons à créer. Il suffit donc de la modifier pour changer de playlist ! :) -->
            <div id="playlist">
              <?php echo $this->element('songlist'); ?>
            </div>

Ma view/Elements/songlist.ctp

<?php 
    $dirname = 'files/songs/';
    $songs = $this->requestAction(array('controller'=>'pages','action'=>'listingSong'));
    foreach ($songs as $k => $v) {
        echo $this->Html->link($v,$dirname.$v);
    }
?>

Et mon action listingSong de mon PagesController:

function listingSong(){
        $dirname = 'files/songs/';
        $dir = opendir($dirname); 

        while($file = readdir($dir)) {
            if($file != '.' && $file != '..' && !is_dir($dirname.$file))
            {
                $songs]=$file;
            }
        }
        return $songs;
    }

En mettant ceci:

echo $this->Html->link(Router::url('/files/songs/'.$v));

J'obtiens cette url : <a href="/soul/soul/files/songs/mamusique.mp3" rel="0">mamusique.mp3</a>

Ca ne fonctionne pas car il double le "soul/"

duffJohn
Auteur

J'ai modifier songlist ainsi:

<?php 
    $dirname = 'files/songs/';
    $songs = $this->requestAction(array('controller'=>'pages','action'=>'listingSong'));
    foreach ($songs as $k => $v) {
        $chanson = (Router::url('/files/songs/'.$v));
        echo '<a href='.$chanson.'>chanson</a>';
    }
?>

Du coup les liens sont toujours bons ;)

Mais si il y a mieux comme code, je suis preneur car la ca fait bidouille je trouve ^^