[OPGELOST] werken met "Extra page attribute"

Nederlandse ondersteuning voor CMS Made Simple

Moderator: velden

Post Reply
Loupol
Forum Members
Forum Members
Posts: 77
Joined: Mon Apr 19, 2010 9:12 pm

[OPGELOST] werken met "Extra page attribute"

Post by Loupol »

Hallo,

Dit is de eerste keer dat ik hier iets post, dus als ik het niet goed heb gedaan hoor ik het graag!
Ik heb onlangs het boek over CMSMS van Sofia Hausschildt gekocht. Een prima vertrekpunt om met CMSMS te beginnen.
Inmiddels krijg ik veel voor elkaar en heb eigen templates, CSS en menu ontwikkeld.
Maar, in Dreamweaver kun je met parameters in een template werken, zodat je met één enkele template verschillende mogelijkheden hebt. Dat wil ik in CSMMS ook en ik heb gelezen dat het moet kunnen met behulp van de "extra page attribute(1 t/m 3)" die je bij de "opties tab" per pagina ter beschikking hebt. Je kunt dan bijvoorbeeld de summary van de News module op een pagina verbergen door een IF functie in de template op te nemen. Het voorbeeld in het boek:

Op een pagina in extra page attribute1 de tekst "NONEWS" invullen.
In de template rond te Smarty tag de IF functie plaatsen als volgt:

Code: Select all

{if $node->extra1 != "nonews"}
{news}
{/if}
Helaas doet dit niets.

Vervolgens heb ik de Smarty tag

Code: Select all

{page_attr key="extra1"}
geplaatst en dan wordt keurig de ingevulde waarde "nonews" getoond.

Daarna heb ik het volgende geprobeerd:

Code: Select all

{if $page_alias neq "test"
{news} {/if}
In die situatie wordt het nieuws alleen niet getoond op de pagina met de alias "test" Dat is correct, dus mijn conclusie is dat de IF functie wel werkt. :D
Ik heb het idee dat er iets niet klopt met de naam "extra1" :-\

Zowel in de documentatie, als op het forum kan ik helemaal niets vinden over deze toepassing van "extra page attribute"
Is er hier iemand die daar wel ervaring mee heeft en mij kan/wil vertellen wat ik nu fout doe?
Daar zou ik écht erg mee geholpen zijn, want ook al is het puur hobby, het intrigeert mij enorm.

Alvast hartelijk dank voor eventuele reacties!

Groet,

Cees
Last edited by Loupol on Thu Apr 22, 2010 9:10 pm, edited 1 time in total.
Jos
Support Guru
Support Guru
Posts: 4019
Joined: Wed Sep 05, 2007 8:03 pm
Location: The Netherlands

Re: werken met "Extra page attribute"

Post by Jos »

Als ik het forum zo doorkijk, dan is extra1 niet rechtstreeks als variabele te gebruiken.
Ook als ik een een pagina bekijk waarin de tag {get_template_vars} is opgenomen, staat ie er ook niet tussen.

Er zijn twee mogelijkheden:
1 - gebruik de CGSimpleSmarty module
2 - Vat de page_attr tag in een variabele met standaard smarty

Ik zou kiezen voor de tweede optie, tenzij je meer voordeel uit CGSmarty weet te halen dan alleen voor deze kwestie.

De output van de tag {page_attr key="extra1"} kun je als volgt opslaan in een variabele:

Code: Select all

{capture name=extra1}{page_attr key="extra1"}{capture}
Vervolgens kun je dan wèl jouw if-code gebruiken, als volgt

Code: Select all

{if $smarty.capture.extra1 != "nonews"}
{news}
{/if}
Volgens mij moet het zo werken... Je was dus al best wel op de goede weg  ;D
Last edited by Jos on Tue Apr 20, 2010 9:25 pm, edited 1 time in total.
Jos
Support Guru
Support Guru
Posts: 4019
Joined: Wed Sep 05, 2007 8:03 pm
Location: The Netherlands

Re: werken met "Extra page attribute"

Post by Jos »

ter aanvulling als bonus  ;)

Het hangt er nog wel vanaf op welke plek binnen de template je de variabele definieert, en waar je hem vervolgens gebruikt.

Het heeft ermee te maken dat CMSms eerst de code onder de uitvoert, en daarna pas de code erboven.

Op deze manier is het mogelijk om binnen het content veld ook smarty-variabelen te definieren, die je vervolgens in de head kunt gebruiken. Een goed voorbeeld is om tussen en iets te zetten wat door een module gegenereert wordt, bijvoorbeeld de titel van een nieuwsbericht in de detailview.

in de configfile vind je de parameter

Code: Select all

$config['process_whole_template'] = false;
Als deze op true staat, wordt wel eerst de head en daarna de body gegenereert. Voor zover ik begrepen heb is false de standaard waarde en gaat deze parameter er bij een van de volgende versies eruit.
RonnyK
Support Guru
Support Guru
Posts: 4962
Joined: Wed Oct 25, 2006 8:29 pm
Location: Raalte, the Netherlands

Re: werken met "Extra page attribute"

Post by RonnyK »

{page_attr} kan worden gebruikt om de waarde uit te lezen.

$node kan niet worden gebruikt, aangezien dat via de MENU-manager loopt...

Voor direct uitlezen is ook:

$content_obj->GetPropertyValue('extra1')

bruikbaar. In feite is de page_attr niets anders dan een wrapper om die call.

Ronny
Loupol
Forum Members
Forum Members
Posts: 77
Joined: Mon Apr 19, 2010 9:12 pm

Re: [OPGELOST] werken met "Extra page attribute"

Post by Loupol »

Hallo Jos en Ronny,

Bedankt voor jullie supersnelle reacties en hulp! Het is opgelost!
Ik heb eerst de ideeën van Jos geprobeerd, maar dat deed helaas niet wat ik wilde, maar heeft me wél weer op andere leuke ideeën gebracht. Die probeer ik later nog.

Wat Ronny schrijft klopt exact. Ik heb nu het volgende gedaan:

Code: Select all

{{if $content_obj->GetPropertyValue('extra1') != "geenkop"}
    <div class="LPcolkop">{content block="kop"}</div>
{/if}
Dat werkt perfect! Als ik nu in de regel extra1 "geenkop" invul, krijg ik een pagina zonder een kop blok. Dit was zomaar een test, maar op deze manier kun je feitelijk met één template verschillende soorten layout kiezen vanuit de pagina die je aan die template koppelt. Dat is wat ik wilde.

Ik ben helemaal blij en wil jullie dan ook hartelijk danken. :D

PS. Ik heb ook de schrijfster van het boek een mail gestuurd; benieuwd waarmee zij komt!

met vriendelijke groet,

Cees
Post Reply

Return to “Dutch - Nederlands”