Nieuwsafbeeldingen alleen tonen wanneer er een bestand is

Nederlandse ondersteuning voor CMS Made Simple

Moderator: velden

Post Reply
Arno

Nieuwsafbeeldingen alleen tonen wanneer er een bestand is

Post by Arno »

De vraag klinkt wellicht simpel, en tot voorheen werkte m'n template ook gewoon zoals zou moeten. Wat ik zou willen, is dat er alleen afbeeldingen bij nieuwsberichten (via de standaard news-module) getoond worden wanneer er daadwerkelijk een afbeelding (file) geuploadt is bij het bericht. Wanneer ik een afbeelding toevoeg gaat alles prima, maar ik heb ook weleens nieuwsberichten die geen afbeelding bevatten, en bij die berichten krijg ik nu ontbrekende afbeeldingen (rode kruizen onder Windows of blauwe vraagtekens op de Mac). Ik gebruik deze code in mijn templates:

Code: Select all

{if isset($entry->fields)}
  {foreach from=$entry->fields item='field'}
     <div class="NewsSummaryField">
        {if $field->type == 'file'}
          <img src="{$entry->file_location}/{$field->value}"/>
        {/if}
     </div>
  {/foreach}
{/if}
Is er een manier om 'm zo te maken dat de hele div niet getoond wordt wanneer er geen nieuwsafbeelding is?
User avatar
velden
Dev Team Member
Dev Team Member
Posts: 3483
Joined: Mon Nov 28, 2011 9:29 am
Location: The Netherlands

Re: Nieuwsafbeeldingen alleen tonen wanneer er een bestand i

Post by velden »

{if $entry->fieldsbyname.standaard_afbeelding}
...show image...
{/if}

Uiteraard even de naam van het veld 'standaard_afbeelding' aanpassen aan jouw situatie.

Je kunt altijd de {debug} tag gebruiken in je news template om te kijken welke variabelen je kunt checken.
Arno

Re: Nieuwsafbeeldingen alleen tonen wanneer er een bestand i

Post by Arno »

Dankjewel voor je snelle reactie. Alleen kom ik er nog niet uit waar ik 'm precies moet plaatsen en (of) wat ik moet vervangen in mijn huidige code.

Het deel wat de afbeelding laat zien is nu:

Code: Select all

{if isset($entry->fields)}
  {foreach from=$entry->fields item='field'}
     <div class="NewsDetailField">
        {if $field->type == 'file'}
	  {* this template assumes that every file uploaded is an image of some sort, because News doesn't distinguish *}
          <img src="{$entry->file_location}/{$field->value}"/>
        {/if}
     </div>
  {/foreach}
{/if}
Kun je me hier nog bij helpen? Het file-veld met de foto heet 'Afbeelding'.
User avatar
velden
Dev Team Member
Dev Team Member
Posts: 3483
Joined: Mon Nov 28, 2011 9:29 am
Location: The Netherlands

Re: Nieuwsafbeeldingen alleen tonen wanneer er een bestand i

Post by velden »

Vervang het hele stuk voor (stukje uit mijn hoofd):

Code: Select all

{if $entry->fieldsbyname.Afbeelding}
<img src="{$entry->file_location}/{$entry->fieldsbyname.Afbeelding->value}"/>
{/if}
Nogmaals, als je je template tijdelijk even begint met {debug} dan kun je al die velden in een popup venster zien als je de website zelf opent. Dat is heel handig.
Arno

Re: Nieuwsafbeeldingen alleen tonen wanneer er een bestand i

Post by Arno »

Hmm, op de manier zoals hierboven werkt het helaas nog steeds niet:
Heb {debug} nu aanstaan, maar zie geen Afbeelding-field terugkomen. Wel het auteur-field trouwens.
User avatar
velden
Dev Team Member
Dev Team Member
Posts: 3483
Joined: Mon Nov 28, 2011 9:29 am
Location: The Netherlands

Re: Nieuwsafbeeldingen alleen tonen wanneer er een bestand i

Post by velden »

Ik doe het uit mijn hoofd, maar het zou kunnen dat je moet checken op de value zelf

Code: Select all

{if $entry->fieldsbyname.Afbeelding->value}
<img src="{$entry->file_location}/{$entry->fieldsbyname.Afbeelding->value}"/>
{/if}
Arno

Re: Nieuwsafbeeldingen alleen tonen wanneer er een bestand i

Post by Arno »

Hey, dat lijkt te werken! Dankjewel :)
Post Reply

Return to “Dutch - Nederlands”