Page 1 of 1
Meerdere templates icm GCB
Posted: Fri Jun 02, 2017 6:55 am
by Gregor
Bij het opbouwen van mijn nieuwe website maak ik gebruik van meerdere templates. De home pagina heeft een andere template dan het fotoalbum of de blogpagina. De Google-analytics heb in een template gestopt (voormalig GCB) en zo zijn er meer functies die op die manier in een template zitten.
Om bij het voorbeeld van de Google-analytics template te blijven, is mijn vraag, plaats je deze dan in elke template, net zoals je met {metatag} doet of is daar een "slimmere" oplossing voor?
Re: Meerdere templates icm GCB
Posted: Fri Jun 02, 2017 8:26 am
by Gregor
ipv {metatag} bedoel ik {metadata}.
Re: Meerdere templates icm GCB
Posted: Fri Jun 02, 2017 8:55 am
by deactivated010521
GCB's kan je in CMSMS 2.0 vervangen voor: {include file='cms_template:your_template_name'}
Een veel gebruikte methode is om een base template te maken en middels template inheritance uitbreidingen te maken. Rolf heeft hier een blog over geschreven op zijn cms can be simple website.
Zelf doe ik het iets anders. Ik maak voor iedere afzonderelijke pagina template een afzonderlijk bestand. Herhalende delen splits ik op. Analytics code valt onder javascript welke ik zoveel mogelijk probeer te groeperen. Dit komt redelijk overheen met de manier waarin je in CMSMS 1.0 GCBś kon gebruiken.
Metadata voeg ik toe aan de header template.
Qua opslitsen kan je het zo gek maken als je wilt. Denk vooral aan de naamgeving zodat alles makkelijk terug te vinden is.
Voorbeeld: (met hier en daar commentaar)
* template with 1 column
Code: Select all
{content assign="_content"}
{include file='cms_template:header'}
<div class="content_full">
{$_content}
</div>
{include file='cms_template:footer'}
* template with 2 columns
Code: Select all
{content assign="_content"}
{include file='cms_template:header'}
<div class="content_left">
{$_content}
</div>
<div class="content_right">
{content block='right'}
</div>
{include file='cms_template:footer'}
* cms_template:header
Code: Select all
<__html>
<head>
<title></title>
{metadata}
</head>
<header>.. menu ..</header>
</__body>
* cms_template:footer
Code: Select all
<footer></footer>
{include file='cms_template:javascript'}
<__body>
</__html>
* cms_template:javascript
Code: Select all
<!-- aanroep van .js bestanden globaal gebruikt -->
<__script__ src=""></__script>
<!-- javascript code globaal gebruikt -->
<__script__></__script>
<!-- toevoegen van javascript specifieke code -->
{if isset($global_footer_data)}
{$global_footer_data}
{/if}
<!-- afzonderlijke javascript templates -->
{include file='cms_template:analytics'}
* cms_template:analytics
Re: Meerdere templates icm GCB
Posted: Fri Jun 02, 2017 2:44 pm
by Gregor
Dank je voor je heldere uitleg Arnoud. Ik begrijp wat je bedoelt. De vraag die bij mij opkomt, wat maakt dat je voor templates kiest als files t.o. templates via de design manager?
Ter check, template files komen in de folder:
/tmp/templates
te staan?
Re: Meerdere templates icm GCB
Posted: Fri Jun 02, 2017 3:02 pm
by Rolf
Re: Meerdere templates icm GCB
Posted: Sat Jun 03, 2017 10:25 am
by deactivated010521
Tijdens het ontwikkelen kan je templates inderdaad in een tmp/ folder plaatsen, echter zal dit in de toekomst niet veel meer worden toegepast.
CMSMS 2.2 heeft/krijgt een exporter functie waarmee filebased werken (tekst bestanden bewerken ipv database cellen bewerken) voor zowel templates als stylesheets in de core geregeld is.
Code: Select all
{include file='cms_template:your_template_name'}
, werkt ook gewoon met Core::Generic templates uit de de design manager.
Template inheritance werkt schitterend zolang je altijd uitgaat van 1 main content block en extend die daar een variatie op is.
Met template inheritance kan je de titel/label van het main content block volgens mij niet overschrijven/aanpassen in de template die extend wordt. (Rolf correct me if I am wrong).
Als CMSMS 2.2 stable is ga ik wat websites herzien. Voorlopig werk ik met de manier aangegeven zoals aangegeven in mijn voorbeeld. Zolang je herhalende delen opsplitst en deze voorziet van goede naamgeving blijft alles zoooooo veel gemakkelijker

Re: Meerdere templates icm GCB
Posted: Fri Jun 16, 2017 2:44 pm
by Gregor
Posts gelezen evenals de blog van Rolf.
Mijn site die ik nu in een nieuwe template aan het gieten ben, bestaat uit meerdere templates. Zo is er een template 'Default', een 'Blog', een 'Gallery' etc. In alle templates is bijv. een aantal js-scripts opgenomen, dezelfde. Maar ook is er bijv. een Social Network blok:
Code: Select all
<!-- 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'}
Zo'n blok als hierboven kan ik in een aparte Core-template zetten en deze dan aanroepen middels een include die ik vervolgens in elke template kan gebruiken. Begrijp ik die goed?
Wat ik handig zou vinden, is als ik, uitgaande van bovenstaande code-blok, daar een keer kan invullen welke social media ik wil gebruiken die onderaan rechts op de pagina verschijnen
https://www.test.uisge-beatha.eu Nu moet ik op elke pagina aangeven welke sm-netwerk ik wil gebruiken cq. weergeven.
Ik denk dat ik eerst versie 2.0 live moet zien te krijgen voordat ik alles in de templates overhoop haal, maar misschien zie ik dat verkeerd.
Benieuwd naar jullie reactie.
Re: Meerdere templates icm GCB
Posted: Fri Jun 16, 2017 8:56 pm
by velden
Ik hoop dat je niet voor elke pagina apart een link o.i.d. invult tbv de diverse social media?
Dat stukje laat zich normaliter toch prima automatiseren.
Re: Meerdere templates icm GCB
Posted: Sat Jun 17, 2017 7:06 am
by Gregor
velden wrote:Ik hoop dat je niet voor elke pagina apart een link o.i.d. invult tbv de diverse social media?
Dat stukje laat zich normaliter toch prima automatiseren.
vrees dat dat invullen wel het geval is. Dit is iets waar ik ook pas later achter kwam. Voor het idee, in elke template is de volgende code te vinden:
Code: Select all
<footer>
<div class="container">
<div class="row">
{if $display_social == "+"}
<div class="col-sm-8">
{else}
<div class="col-sm-12">
{/if}
{* GCB FOOTER *}
{global_content name='buddy011-footer'}
{* END GCB FOOTER *}
</div>
{if $display_social == "+"}
<div class="col-sm-4">
{if $feed}<a class="social-icon feed" href="{$feed}" target="_blank"><i class="fa fa-rss"></i></a>{/if}
{if $pinterest}<a class="social-icon pinterest" href="{$pinterest}" target="_blank"><i class="fa fa-pinterest"></i></a>{/if}
{if $google}<a class="social-icon google" href="{$google}" target="_blank"><i class="fa fa-google"></i></a>{/if}
{if $twitter}<a class="social-icon twitter" href="{$twitter}" target="_blank"><i class="fa fa-twitter"></i></a>{/if}
{if $facebook}<a class="social-icon facebook" href="{$facebook}" target="_blank"><i class="fa fa-facebook"></i></a>{/if}
</div>
{/if}
</div>
</div>
</footer>
Is dit bijv. dan zo'n blok dat je kunt overerven en enigszins aangepast ook de social media links in de template 'type :Core' kunt invullen?
Re: Meerdere templates icm GCB
Posted: Mon Jun 19, 2017 7:55 am
by velden
Ja, dat zou ik denk ik op dezelfde manier doen als met je Footer 'Global Content Block'.
Het zijn ook nog fixed links als ik het zo zie (geen 'share' links).
Re: Meerdere templates icm GCB
Posted: Mon Jun 19, 2017 8:47 am
by Gregor
velden wrote:Ja, dat zou ik denk ik op dezelfde manier doen als met je Footer 'Global Content Block'.
Het zijn ook nog fixed links als ik het zo zie (geen 'share' links).
Het zijn inderdaad fixed links, als je daarmee bedoelt: "volg mij op xyz".
In de afzonderlijke templates wordt middels een '+' aangegeven of je al dan niet die social links wilt laten zien. Is het mogelijk om bijv. in de Default-template een '+' aan te geven en dat deze dan automatisch ook voor alle overige templates geldt? Een hint hoe dat te doen zou helpen
In de top van de template zie ik bijv. bij de 'Default-template' staan:
Code: Select all
<!-- 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,mainthirdcolumn,maintitle,display_breadcrumbs,search_page,display_header_image,headerimg,headerimgtext,display_social,facebook,twitter,google,pinterest,feed,prev_page,next_page' scope=global}
{/strip}
<!DOCTYPE html>
<__html lang="nl">
Bij de template die voor de subpagina's wordt gebruikt, staat:
Code: Select all
<!-- 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,mainthirdcolumn,maintitle,display_breadcrumbs,search_page,display_header_image,headerimg,headerimgtext,display_social,facebook,twitter,google,pinterest,feed,prev_page,next_page' scope=global}
{/strip}
<!DOCTYPE html>
<__html lang="nl">
Los je het verschil tussen beide templates dan met een 'Extend' op? Te beginnen met de template die de 'minste' code heeft en daar een extend op doen in de template die meer code nodig heeft? Als je dat op die manier doet, hoe zit het dan met het laden van de templates?