door mij geschreven code pakt alt text van een img niet
Eerst wil ik zeggen, dat ik nog geen prof ben, maar wil het graag leren. Ook, helaas, een beetje met Nederlands niet zo vloeiend...
Ik ga proberen uit te leggen.
Ik heb joomla module "laatste artikelen" een beetje aangepast, dat er ook een intro afbeelding van iedere artikel verschijnt. Maar volgens de SEO, moet er ook alt="..." bij zijn. Ik ben nog een php beginner, dus zit te puzzelen (wat vindt ik bijzonder interessant).
Zelf lege alt="" heb ik al staan, maar hoe krijg ik de tekst ertussen?
Mijn code is (niet te lachen!):
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
defined('_JEXEC') or die;
?>
<ul class="latestnews<?php echo $moduleclass_sfx; ?>">
<?php foreach ($list as $item) : ?>
<li> <?php echo $item->format_published; ?>
<a href="<?php echo $item->link; ?>">
<div class="name">
<img src="<?php echo json_decode($item->images)->image_intro; ?>" alt="<?php echo($images->image_intro_alt); ?>" />
<p class="published">
<?php echo JHtml::_('date', $item->publish_up, JText::_('d-m')); ?></p>
<?php echo $item->title; ?>
</div>
</a>
</li>
<?php endforeach; ?>
</ul>
defined('_JEXEC') or die;
?>
<ul class="latestnews<?php echo $moduleclass_sfx; ?>">
<?php foreach ($list as $item) : ?>
<li> <?php echo $item->format_published; ?>
<a href="<?php echo $item->link; ?>">
<div class="name">
<img src="<?php echo json_decode($item->images)->image_intro; ?>" alt="<?php echo($images->image_intro_alt); ?>" />
<p class="published">
<?php echo JHtml::_('date', $item->publish_up, JText::_('d-m')); ?></p>
<?php echo $item->title; ?>
</div>
</a>
</li>
<?php endforeach; ?>
</ul>
Dus, waar maak ik fout?
Voorbaat bedankt voor iedere advies,
Veronika
Gewijzigd op 12/09/2015 21:56:44 door - Ariën -
Als de waarde nu nog leeg blijft, dan zal de variabele geen inhoud kennen. Dan zou je beter $item->image_intro_alt kunnen proberen.
Gewijzigd op 12/09/2015 22:05:57 door - Ariën -
In plats van $images->image_intro_alt; ook werkt niet
Als ik goed begrijp deze "echo" is om iets te herhalen? Ik wil gewoon omschrijving van afbeelding herhalen, daarom heb ik zo geschreven.
P.S. Bedankt, dat mijn code mooi aangepast is. Ik heb een briefje naar Contact gestuurd met de vraag hoe het aanpassen, want ik kreeg een rommel en vond niet hoe het verbeteren.
Het echte herhalen gebeurt overigens niet in de echo, maar in de foreach op lijn 5. Op lijn 16 stopt de lus die steeds doorlopen wordt.
Waarschijnlijk is alle data in $item->images ge-encodeerd in JSON. Dit moet je eerst uitpakken voordat je er data uit kunt lezen met ->een_attribuut_naam.
De eigenschap "image_intro_alt" moet ook aanwezig zijn binnen $item->images, anders gaat dit natuurlijk sowieso niet werken.
EDIT "echo" wordt gebruikt om iets op het scherm af te drukken.
Gewijzigd op 12/09/2015 23:12:54 door Thomas van den Heuvel
Code (php)
1
src="<?php echo htmlspecialchars($images->image_intro); ?>" alt="<?php echo htmlspecialchars($images->image_intro_alt); ?>" itemprop="thumbnailUrl"/></a>
Misschien hier is wat informatie?
ook werkt niet
De waarde moet je in $item vinden, niet in $images ;-)
Geprobeerd, het werkt ook niet
Dit moet meer duidelijkheid geven per iteratie die doorlopen wordt welke data er beschikbaar is.
Edit: $item dus.
Gewijzigd op 12/09/2015 23:34:19 door - Ariën -
Toevoeging op 12/09/2015 23:55:05:
De hele bestand terug, nu weer goed. Aar, kan je wat uitbreiden je post? Waar precies moet ik je code plaatsen?
Toevoeging op 12/09/2015 23:59:03:
Ik ben nu op zoek naar deze $item. (Alle bestanden doorzoeken.)
Toevoeging op 13/09/2015 00:18:25:
Gelukt!!! De code is:
Code (php)
Ik heb waarschijnlijk deze ";" niet geplaatst.
Thomas, het lijkt je code goed te zijn.
Echt bedankt Aar en Thomas voor ingestoken tijd om mij te helpen!
Veronika
Voor gebruiker die je site bezoeken heeft deze functie haast geen enkel nut.