Page 1 of 1

(Opgelost) HTML Blok alleen weergeven als hij ingevuld is

Posted: Mon Jul 14, 2014 2:46 pm
by pasmaskas
Beste CMSMS Leden,

Is er een manier om een HTML Blok met bijvoorbeeld de naam twitter alleen weer tegeven als hij bestaat of ingevuld is? Dus dat je geen error krijgt omdat hij niet bestaat maar dat er nix komt te staan.

Bijvoorbeeld:

Code: Select all

{if "speciaale code"}

<div class="twitter">
{global_content name='twitter'}
</div>

{else}

<!-- leeg -->

{/if}
Dus dat je dan de Div waar het HTML Blok in moet ook verbergt.

Alvast bedankt gr Pascal.

Re: HTML Blok alleen weergeven als hij ingevuld is

Posted: Mon Jul 14, 2014 5:01 pm
by Jos
Zoiets denk ik

Code: Select all

{global_content name='twitter' assign='twitterblok'}
{if !empty($twitterblok)}
<div class="twitter">
{$twitterblok}
</div>
{else}

<!-- leeg -->

{/if}

Re: HTML Blok alleen weergeven als hij ingevuld is

Posted: Wed Jul 16, 2014 8:07 am
by pasmaskas
Bedantk voor de reactie jos!

Als ik deze regel gebruik:

Code: Select all

            {global_content name='twitter' assign='twitterblok'}
            {if !empty($twitterblok)}
            <div class="split-column border">
            <div class="headerbox"><p>Vind ons op Twitter</p></div>
            {$twitterblok}
            </div>
            {else}
            <!-- Twitter -->
            {/if}
Laat hij niet zien <!--Twitter--> maar dat de blok niet bestaad met de html code:

Code: Select all

 <div class="split-column border">
            <div class="headerbox"><p>Vind ons op Twitter</p></div>
            <!-- Html blob 'twitter' does not exist  -->
            </div>
Ik wil juist als de htmlblok niet bestaad dat hij niets laat zien ook de html niet. Hoe krijg ik dat voor elkaar?

Gr Pascal

Re: HTML Blok alleen weergeven als hij ingevuld is

Posted: Wed Jul 16, 2014 8:31 am
by Njit
Volgens mij dien je daar de Smarty Capture voor te gebruiken.
Als je eenmaal content in een variabele hebt staan dan kun je er van alles mee doen.. bijv. afhankelijk van de grootte van de inhoud de breedte aanpassen..

Code: Select all

{capture assign="my_content"}{content}{/capture}
<div class="{if $my_content|word_count < 10}narrow{else}wide{/
if}">{$my_content}</div>
Zie ook http://www.smarty.net/docs/en/language. ... apture.tpl

Re: HTML Blok alleen weergeven als hij ingevuld is

Posted: Wed Jul 16, 2014 10:32 am
by pasmaskas
Bedantk Njit! Het werkt.

Code: Select all

{capture assign="twitterblok"}{global_content name='twitter'}{/capture}

<div class="{if $twitterblok|count_characters < 10}hide{else}show{/if}">
<div class="split-column border">
<div class="headerbox"><p>Vind ons op Twitter</p></div>
{$twitterblok}
</div>
</div>
Ik heb count_characters gekozen omdat word_count niet werkte ) denkt dat dat cound_words moest zijn maar dat gaf ook niet het goede resultaat).

Zo ben ik tevrede!

Bedankt voor de hulp!

Re: HTML Blok alleen weergeven als hij ingevuld is

Posted: Wed Jul 16, 2014 10:52 am
by chandra
There's no need to use additional capture - both tags ({content}, {global_content}) supports the assign parameter himself ;).

Re: HTML Blok alleen weergeven als hij ingevuld is

Posted: Wed Jul 16, 2014 11:18 am
by pasmaskas
Thnx chandra!

Indeed, that works well. And less code!

Gr Pascal

Re: HTML Blok alleen weergeven als hij ingevuld is

Posted: Wed Jul 16, 2014 11:21 am
by Jo Morg
... and, for the record, its faster and more efficient too! ;)

Re: HTML Blok alleen weergeven als hij ingevuld is

Posted: Wed Jul 16, 2014 3:00 pm
by pasmaskas
Bedankt voor de hulp! ik heb het verwerkt in mijn nieuwe tutorial

http://forum.cmsmadesimple.org/viewtopi ... 82#p313982