Page 1 of 1
Hoe een variabele tussen twee modules doorgeven?
Posted: Mon Jun 19, 2017 6:07 pm
by Gregor
Ik zou {$page_title} vanuit CBlog in Formbuilder willen gebruiken. In CGBlog heb ik staan:
Code: Select all
{$page_title = $entry->title|cms_escape:htmlall scope=global}
Als ik in Formbuilder -> Advanced smarty logic de variabelenaam invul, dan gebeurt er niks in het formulier.
Op welke manier kan ik een variabele doorgeven?
Dank alvast

Re: Hoe een variabele tussen twee modules doorgeven?
Posted: Mon Jun 19, 2017 7:10 pm
by Rolf
Vanmiddag uitgezocht, volgens nieuwe CMSMS 2.2 specificaties moet je de variabele opbouw volgens dit principe doen:
https://www.cmscanbesimple.org/blog/bas ... e-template
Ik moet de begeleidende verklaring nog aanpassen.
Eerst de content blokken en daarna indien nodig de waarden overschrijven.
In formbuilder kun je het gemakkelijkst variabelen direct opnemen in het e-mail sjabloon en niet via de velden doen...
grt. Rolf
Re: Hoe een variabele tussen twee modules doorgeven?
Posted: Mon Jun 19, 2017 7:27 pm
by Gregor
Telepathie....
Ik ga het lezen. Thnks.
Re: Hoe een variabele tussen twee modules doorgeven?
Posted: Tue Jun 20, 2017 8:46 am
by Gregor
In de template 'buddy011-blog' de variabele blogtitle geadresseerd:
Code: Select all
{if empty($blogtitle)}{$blogtitle = "{title}" scope=global}{/if}
Vervolgens in de template 'blogDetail' waarmee het artikel wordt getoond:
Code: Select all
{assign var='blogtitle' value=$entry->title}
Controleer ik in deze template wat de waarde is van {$blogtitle} dan zie ik daar de titel van het bewuste artikel staan. So far so good. Als ik dan in het formulier dat wordt verstuurd zet: {$blogtitle} dan wordt daar 'Detail pagina logboek' geplaatst, de pagina die wordt gebruikt voor het weergeven van de artikelen. Blijkbaar wordt de waarde van de variabele overschreven. Enig idee hoe dit kan?
Re: Hoe een variabele tussen twee modules doorgeven?
Posted: Tue Jun 20, 2017 10:30 am
by Rolf
Vervolgens in de template 'blogDetail' waarmee het artikel wordt getoond:
Code: Select all
{assign var='blogtitle' value=$entry->title}
Hier moet ook:
Code: Select all
{assign var='blogtitle' value=$entry->title scope=global}
Maar zorg dat in de template kop eerst de contentblokken staan en dan pas de andere logica, zoals te zien op mijn blog.
Re: Hoe een variabele tussen twee modules doorgeven?
Posted: Tue Jun 20, 2017 11:30 am
by Gregor
De template 'blogDetail' is de CGBlog template. Dit was wellicht niet duidelijk.
In de 'buddy011-blog' heb ik de contentblokken eerst gezet en daar het toewijzen van variabelen. Eveneens 'scope=global' toegevoegd. Misschien wat veel code, maar hier het bovenste deel van deze buddy011-blog-template:
Code: Select all
{strip}
{process_pagedata}
<!-- Main -->
{content assign='capturedcontent'}
{content block='main_second_column' label='Sidebar (right)' assign='mainsecondcolumn' wysiwyg='true'}
{content block='main_title' label='Main page title' assign='maintitle' wysiwyg="false" oneline="true"}
{content block='display_breadcrumbs' label="Display Breadcrumbs" oneline="true" size="1" assign="display_breadcrumbs" wysiwyg='false'}
{content block='search_page' label='Search results page' assign='search_page' wysiwyg="false" oneline="true"}
<!-- Header -->
{content block='display_header_image' label='Display header image' tab='Header' assign='display_header_image' oneline="true" size="1" wysiwyg='false'}
{content_image block='header_img' label="Header Image (first upload to Images folder)" tab='Header' assign='headerimg' dir="images" urlonly="true"}
{content block='headerimg_text' label='Header Image Text' assign='headerimgtext' wysiwyg="false" oneline="true" tab='Header'}
<!-- Social network -->
{content block='display_social' label='Display Social Icons' tab='Social Network' assign='display_social' oneline="true" size="1" wysiwyg='false'}
{content block='facebook' label='Facebook link here' tab='Social Network' assign='facebook' oneline="true" wysiwyg='false'}
{content block='twitter' label='Twitter link here' tab='Social Network' assign='twitter' oneline="true" wysiwyg='false'}
{content block='google' label='Google+ link here' tab='Social Network' assign='google' oneline="true" wysiwyg='false'}
{content block='pinterest' label='Pinterest link here' tab='Social Network' assign='pinterest' oneline="true" wysiwyg='false'}
{content block='feed' label='Live feed link here' tab='Social Network' assign='feed' oneline="true" wysiwyg='false'}
{share_data scope=parent vars='capturedcontent,mainsecondcolumn,maintitle,display_breadcrumbs,search_page,display_header_image,headerimg,headerimgtext,display_social,facebook,twitter,google,pinterest,feed,prev_page,next_page' scope=global}
{* copy from Responsive template added *}
{$lang = 'nl' scope=global}
{$theme_color = '#61363C' scope=global}
{$theme_color_light = '#E5D6CC' scope=global}
{$theme_url = "{uploads_url}/_template" scope=global}
{$site_name = "{sitename}" scope=global}
{if empty($canonical)}{$canonical = $content_obj->GetURL()|lower scope=global}{/if}
{if empty($description)}{$description = "{description}" scope=global}{/if}
{if empty($description)}{$description = $content|strip_tags|strip|truncate:150|default:'' scope=global}{/if}
{if empty($last_modified)}{$last_modified = "{modified_date format='%e-%m-%Y'}" scope=global}{/if}
{if empty($page_image)}{$page_image = "{$theme_url}/Main_Image_Uisge-Beatha.jpg" scope=global}{/if}
{if empty($page_title)}{$page_title = "{title}" scope=global}{/if}
{if empty($blogtitle)}{$blogtitle = "{title}" scope=global}{/if}
{* end copy *}
{/strip}
<!DOCTYPE html>
<__html lang="nl">
<head>
{strip}
In Formbuilder is de inhoud van de variabele {$blogtitle} leeg.
Re: Hoe een variabele tussen twee modules doorgeven?
Posted: Tue Jun 20, 2017 11:44 am
by Rolf
Het is duidelijk dat het om een blog template ging!!
In het getoonde Core::Page sjabloon zie ik een paar dingen. Je gebruikt hier twee methodes door elkaar, die van het gekochte template en die van mij...
In het bovenste deel van TemplateBuddy gebruik je {content assign='capturedcontent'}. In de code er onder wordt
$content gebruikt, dit zal dan
$capturedcontent moeten zijn!
In mijn opbouw gebruik ik standaard {$page_title} als gemeenschappelijk naam voor de titel van de pagina. Dat zie je ook in de code weerkomen die jij gebruikt.
Wat ik daarvoor koppel aan deze variabele is onafhankelijk van de naam. Dat is mijn visie hierop! Soms zie je bijv. $twitter_title, $facebook_title, $blog_title en $page_title terug komen. Dit zijn verschillende variabelen die allemaal dezelfde waarde hebben! Vandaar mijn keuze geef het dan ook 1 naam $page_title!!
Maar in de module template zul je dus ook scope=global moeten toevoegen, in mijn geval dus
Code: Select all
{$page_title = $entry->title|cms_escape:htmlall scope=global}
In jouw template geval
Code: Select all
{$blogtitle = $entry->title|cms_escape:htmlall scope=global}
Re: Hoe een variabele tussen twee modules doorgeven?
Posted: Tue Jun 20, 2017 11:45 am
by Rolf
In Formbuilder is de inhoud van de variabele {$blogtitle} leeg.
Deze variabele heeft gewoon in de pagina wel een waarde?
Re: Hoe een variabele tussen twee modules doorgeven?
Posted: Tue Jun 20, 2017 12:09 pm
by Gregor
Rolf wrote:In Formbuilder is de inhoud van de variabele {$blogtitle} leeg.
Deze variabele heeft gewoon in de pagina wel een waarde?
In de pagina van het artikel heeft deze een waarde. Ter test in Formbuilder {$blogtitle} en {$page_title} gezet.
https://www.test.uisge-beatha.eu/2014/0 ... oeken.html
Ik volg je visie om alleen {$page_title} te gebruiken. Dit ook zojuist aangepast. In de blog template wijs ik aan $blogtitle nog wel een waarde toe, maar die gaat er straks uit.
Capturedcontent aangepast.
Re: Hoe een variabele tussen twee modules doorgeven?
Posted: Tue Jun 20, 2017 12:59 pm
by Rolf
Op het moment dat je nu in het mail sjabloon {$page_title} plaatst en het formulier verzendt, krijg je dan niet de waarde te zien?
Re: Hoe een variabele tussen twee modules doorgeven?
Posted: Tue Jun 20, 2017 1:06 pm
by Gregor
bij verzenden krijg ik het niet te zien cq. het wordt niet in de mail-template weergegeven. Ik krijg het wel onderaan het formulier te zien. Lijkt er m.i. op dat de variabele binnen Formbuilder 'verdwijnt'.