Hoe een variabele tussen twee modules doorgeven?

Nederlandse ondersteuning voor CMS Made Simple

Moderator: velden

Locked
User avatar
Gregor
Power Poster
Power Poster
Posts: 1874
Joined: Thu Mar 23, 2006 9:25 am
Location: The Netherlands

Hoe een variabele tussen twee modules doorgeven?

Post 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 :)
User avatar
Rolf
Dev Team Member
Dev Team Member
Posts: 7825
Joined: Wed Apr 23, 2008 7:53 am
Location: The Netherlands
Contact:

Re: Hoe een variabele tussen twee modules doorgeven?

Post 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
- + - + - + - + - + - + -
LATEST TUTORIAL AT CMS CAN BE SIMPLE:
Migrating Company Directory module to LISE
- + - + - + - + - + - + -
Image
User avatar
Gregor
Power Poster
Power Poster
Posts: 1874
Joined: Thu Mar 23, 2006 9:25 am
Location: The Netherlands

Re: Hoe een variabele tussen twee modules doorgeven?

Post by Gregor »

Telepathie....
Ik ga het lezen. Thnks.
User avatar
Gregor
Power Poster
Power Poster
Posts: 1874
Joined: Thu Mar 23, 2006 9:25 am
Location: The Netherlands

Re: Hoe een variabele tussen twee modules doorgeven?

Post 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?
User avatar
Rolf
Dev Team Member
Dev Team Member
Posts: 7825
Joined: Wed Apr 23, 2008 7:53 am
Location: The Netherlands
Contact:

Re: Hoe een variabele tussen twee modules doorgeven?

Post 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.
- + - + - + - + - + - + -
LATEST TUTORIAL AT CMS CAN BE SIMPLE:
Migrating Company Directory module to LISE
- + - + - + - + - + - + -
Image
User avatar
Gregor
Power Poster
Power Poster
Posts: 1874
Joined: Thu Mar 23, 2006 9:25 am
Location: The Netherlands

Re: Hoe een variabele tussen twee modules doorgeven?

Post 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.
User avatar
Rolf
Dev Team Member
Dev Team Member
Posts: 7825
Joined: Wed Apr 23, 2008 7:53 am
Location: The Netherlands
Contact:

Re: Hoe een variabele tussen twee modules doorgeven?

Post 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}
- + - + - + - + - + - + -
LATEST TUTORIAL AT CMS CAN BE SIMPLE:
Migrating Company Directory module to LISE
- + - + - + - + - + - + -
Image
User avatar
Rolf
Dev Team Member
Dev Team Member
Posts: 7825
Joined: Wed Apr 23, 2008 7:53 am
Location: The Netherlands
Contact:

Re: Hoe een variabele tussen twee modules doorgeven?

Post by Rolf »

In Formbuilder is de inhoud van de variabele {$blogtitle} leeg.
Deze variabele heeft gewoon in de pagina wel een waarde?
- + - + - + - + - + - + -
LATEST TUTORIAL AT CMS CAN BE SIMPLE:
Migrating Company Directory module to LISE
- + - + - + - + - + - + -
Image
User avatar
Gregor
Power Poster
Power Poster
Posts: 1874
Joined: Thu Mar 23, 2006 9:25 am
Location: The Netherlands

Re: Hoe een variabele tussen twee modules doorgeven?

Post 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.
User avatar
Rolf
Dev Team Member
Dev Team Member
Posts: 7825
Joined: Wed Apr 23, 2008 7:53 am
Location: The Netherlands
Contact:

Re: Hoe een variabele tussen twee modules doorgeven?

Post 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?
- + - + - + - + - + - + -
LATEST TUTORIAL AT CMS CAN BE SIMPLE:
Migrating Company Directory module to LISE
- + - + - + - + - + - + -
Image
User avatar
Gregor
Power Poster
Power Poster
Posts: 1874
Joined: Thu Mar 23, 2006 9:25 am
Location: The Netherlands

Re: Hoe een variabele tussen twee modules doorgeven?

Post 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'.
Locked

Return to “Dutch - Nederlands”