Bonjour;
Je vien d'installer ce module " HTML5 Audio Player MODULE with playlist " sur un site joomla 3.X tous passe bien et ça fonctionne parfaitement avec seullement deux titres en mp3 mais quand j'ai commencé à charger plusieurs titre en mp3 là il affiche ce problème:

Undefined offset: 2 in /mon site/modules/mod_meet_audio_player/tmpl/default_full.php on line 109

Undefined offset: 3 in /mon site/modules/mod_meet_audio_player/tmpl/default_full.php on line 109

Undefined offset: 4 in /mon site/modules/mod_meet_audio_player/tmpl/default_full.php on line 109

Undefined offset: 5 in /mon site/modules/mod_meet_audio_player/tmpl/default_full.php on line 109

Voila la ligne 109:
<a href="'.$qwe[$i].'"class=" exclude button-exclude inline-exclude"><b>'.$qws[$i].'</b> <small>'.$qwd[$i].'</small></a>

Je vous remercie d'avance pour votre aide.
je pense que le problème viens de
<a href="'.$qwe[$i].'"class=" exclude button-exclude inline-exclude">

car ta class contiens des mots avec des espaces
menardisaac a écrit :

car ta class contiens des mots avec des espaces


Oui cela veut dire qu'il y a plusieurs classes. C'est pas une erreur.
Modifié par JENCAL (08 Feb 2018 - 14:21)
le Undefined offset t'indique que tu essaye d'acceder à quelque chose qui n'existe pas.

montre comment tu as codé ta boucle.

genre si ton tableau à une taille de 2, si tu fais $qwe[2] alors il te sortira une erreur ! (et oui les tableau commence par 0 et non par 1 : donc $qwe[0] $qwe[1] seront disponible)
Modifié par JENCAL (08 Feb 2018 - 14:25)
voilà le fichier

<div class="sm2-bar-ui full-width '.$playlist_oc.'">

<div class="bd sm2-main-controls" style="background: '.$texture.';">

<div class="sm2-inline-texture"></div>
<div class="sm2-inline-gradient"></div>

<div class="sm2-inline-element sm2-button-element">
<div class="sm2-button-bd">
<a href="#play" class="sm2-inline-button play-pause">Play / pause</a>
</div>
</div>

<div class="sm2-inline-element sm2-inline-status">

<div class="sm2-playlist">
<div class="sm2-playlist-target">
<!-- playlist <ul> + <li> markup will be injected here -->
<!-- if you want default / non-JS content, you can put that here. -->
<noscript><p>JavaScript is required.</p></noscript>
</div>
</div>

<div class="sm2-progress">
<div class="sm2-row">
<div class="sm2-inline-time">0:00</div>
<div class="sm2-progress-bd">
<div class="sm2-progress-track">
<div class="sm2-progress-bar"></div>
<div class="sm2-progress-ball"><div class="icon-overlay"></div></div>
</div>
</div>
<div class="sm2-inline-duration">0:00</div>
</div>
</div>

</div>

<div class="sm2-inline-element sm2-button-element sm2-volume">
<div class="sm2-button-bd">
<span class="sm2-inline-button sm2-volume-control volume-shade"></span>
<a href="#volume" class="sm2-inline-button sm2-volume-control">volume</a>
</div>
</div>

<div class="sm2-inline-element sm2-button-element sm2-menu">
<div class="sm2-button-bd">
<a href="#menu" class="sm2-inline-button menu">menu</a>
</div>
</div>

</div>

<div class="bd sm2-playlist-drawer sm2-element">

<div class="sm2-inline-texture">
<div class="sm2-box-shadow"></div>
</div>

<!-- playlist content is mirrored here -->

<div class="sm2-playlist-wrapper" style="background: '.$texture.';">

<ul class="sm2-playlist-bd">

<!-- example: playable link, "buy" link, "download" link -->';

$qwe = explode("\n", $songs_sources);
$qws = explode("\n", $songs_titles);
$qwd = explode("\n", $songs_infos);
$o = 0;

if ($qwe[substr_count($songs_sources, "\n")] == "" )
$o=1;


for ($i=0; $i<=substr_count($songs_sources, "\n")-$o; $i++)
{
echo '<li>
<div class="sm2-row">
<div class="sm2-col sm2-wide">
<a href="'.$qwe[$i].'"class="exclude button-exclude inline-exclude"><b>'.$qws[$i].'</b> <small>'.$qwd[$i].'</small></a>
</div>
<div class="sm2-col">

</div>
</div>
</li>';

}
echo '

</ul>

</div>

</div>

</div>';

?>
J'ai pas compris le coup du "substr_count($songs_sources, "\n")-$o" dans le boucle for
Si tu fais un sizeof(qwe) c'est plus simple.. et tu es sûr de pas "sortir" des limites.

for ($i=0; $i<=sizeof(qwe); $i++)
{
	echo '
	<li>
		<div class="sm2-row">
			<div class="sm2-col sm2-wide">
				<a href="'.$qwe[$i].'"class="exclude button-exclude inline-exclude"><b>'.$qws[$i].'</b> <small>'.$qwd[$i].'</small></a>
			</div>
			<div class="sm2-col">
			</div>
		</div>
	</li>';

}
Faut pas juste faire copié coller...
J'ai laissé une erreur dans le FOR sans faire exprès, au lieu de sizeof($qwe) j'ai mis sizeof(qwe) sans le dollar.. donc dejà erreur.

Ensuite fait un var_dump($qwe) avant le for... pour voir ce que contient qwe..
Bonjour;
J'ai changé par:

var_dump($qwe)

for ($i=0; $i<=sizeof($qwe); $i++)
{
echo '
<li>
<div class="sm2-row">
<div class="sm2-col sm2-wide">
<a href="'.$qwe[$i].'" class="exclude button-exclude inline-exclude"><b>'.$qws[$i].'</b> <small>'.$qwd[$i].'</small></a>
</div>
<div class="sm2-col">

</div>
</div>
</li>';

}

ça donné:
Parse error: syntax error, unexpected 'for' (T_FOR) in /monsite/..../default_full.php on line 106
Modérateur
Salut,

Normal l'instruction var_dump n'est pas bouclée. Il manque un point virgule en fin de ligne.
Salut...
Le ; qui manque à la fin du var_dump ?? c'est une erreur de copier coller ou il manque vraiment dans le code ??
Si il manque vraiment c'est de là que vient l'erreur...
C'est quand même la base de savoir qu'on colle un ; à la fin des lignes en php !
Salut;
Quand j'ajoute le ; à la fin du var_dump($qwe); ça donne en plus erreur array (7)
@ JENCAL
Je te remercie pour tous tes interventions, suis arrivé à résoudre ce problème, le module fonctionne très bien mais juste il faut faire la mise à jour de la version php pour passer à: 7.2 et là fonctionne sans problème. Smiley clapclap
c'est marrant, tu viens pour un problème de type Undefined offset: 2 et la mise à jour à résolut le problème ? J'ai pas tout compris haha !
he ben j'ai pensé à ça parce que mon site été sur php 5.6 j'ai fait la mise à jour vers 7.2 et le problème régler.