Meerdere templates icm GCB

Nederlandse ondersteuning voor CMS Made Simple

Moderator: velden

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

Meerdere templates icm GCB

Post 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?
User avatar
Gregor
Power Poster
Power Poster
Posts: 1874
Joined: Thu Mar 23, 2006 9:25 am
Location: The Netherlands

Re: Meerdere templates icm GCB

Post by Gregor »

ipv {metatag} bedoel ik {metadata}.
deactivated010521

Re: Meerdere templates icm GCB

Post 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

Code: Select all

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

Re: Meerdere templates icm GCB

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

Re: Meerdere templates icm GCB

Post by Rolf »

Template Inheritance is zooooo veel gemakkelijker
https://www.cmscanbesimple.org/blog/the ... gn-manager
- + - + - + - + - + - + -
LATEST TUTORIAL AT CMS CAN BE SIMPLE:
Migrating Company Directory module to LISE
- + - + - + - + - + - + -
Image
deactivated010521

Re: Meerdere templates icm GCB

Post 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 ;)
User avatar
Gregor
Power Poster
Power Poster
Posts: 1874
Joined: Thu Mar 23, 2006 9:25 am
Location: The Netherlands

Re: Meerdere templates icm GCB

Post 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 verschijnenhttps://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.
User avatar
velden
Dev Team Member
Dev Team Member
Posts: 3484
Joined: Mon Nov 28, 2011 9:29 am
Location: The Netherlands

Re: Meerdere templates icm GCB

Post 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.
User avatar
Gregor
Power Poster
Power Poster
Posts: 1874
Joined: Thu Mar 23, 2006 9:25 am
Location: The Netherlands

Re: Meerdere templates icm GCB

Post 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?
User avatar
velden
Dev Team Member
Dev Team Member
Posts: 3484
Joined: Mon Nov 28, 2011 9:29 am
Location: The Netherlands

Re: Meerdere templates icm GCB

Post 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).
User avatar
Gregor
Power Poster
Power Poster
Posts: 1874
Joined: Thu Mar 23, 2006 9:25 am
Location: The Netherlands

Re: Meerdere templates icm GCB

Post 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?
Post Reply

Return to “Dutch - Nederlands”