Creating a basic Joomla! template/nl: Difference between revisions
From Joomla! Documentation
No edit summary |
Created page with "{{JVer|1.5}} In Joomla! 1.5, uw nieuwe template zal meteen worden getoond in het Templates:Stijlen scherm, bereikbaar via Extensies -> Templates." |
||
| Line 126: | Line 126: | ||
Zoek de sjabloon in de Template Manager, selecteert het en klik op "Standaard"' om de template als standaard in te stellen. | Zoek de sjabloon in de Template Manager, selecteert het en klik op "Standaard"' om de template als standaard in te stellen. | ||
{{JVer|1.5}} In Joomla! 1.5, | {{JVer|1.5}} In Joomla! 1.5, uw nieuwe template zal meteen worden getoond in het [[Help15:Screen.templates.15|Templates:Stijlen]] scherm, bereikbaar via Extensies -> Templates. | ||
{{JVer|2.5}}+ In the Joomla! 2.5 series and later, you first need to tell Joomla! that you have created a new template. This feature is called ''Discover Extensions'' and can be accessed via Extensions -> Extension Manager -> Discover (i.e. the Discover ''tab''). Click '''Discover''' (i.e. the Discover ''button'') to discover your template, then select it and click '''Install''' to install it. Now your template should show up in the [[Help16:Extensions_Template_Manager_Styles|Template Manager (Styles)]], accessible via Extensions -> Template Manager. | {{JVer|2.5}}+ In the Joomla! 2.5 series and later, you first need to tell Joomla! that you have created a new template. This feature is called ''Discover Extensions'' and can be accessed via Extensions -> Extension Manager -> Discover (i.e. the Discover ''tab''). Click '''Discover''' (i.e. the Discover ''button'') to discover your template, then select it and click '''Install''' to install it. Now your template should show up in the [[Help16:Extensions_Template_Manager_Styles|Template Manager (Styles)]], accessible via Extensions -> Template Manager. | ||
Revision as of 17:56, 17 April 2016
It has been suggested that this article or section be split into specific version Namespaces. (Discuss). If version split is not obvious, please allow split request to remain for 1 week pending discussions. Proposed since 10 years ago.
Inleiding
Met deze tutorial wordt een inleiding gegeven tot het maken van Joomla! template. We beschrijven de benodigde essentiële bestanden en code voor het maken van een basis template. Code kan gekopieerd en geplakt worden, er is weinig aanpassing meer nodig.
Het instellen van een directory-structuur
Om de meest eenvoudige template te maken, maak je een nieuwe map aan in de map 'templates'. De naam van deze map met je template is bijvoorbeeld "mynewtemplate".
Met je favoriete teksteditor maken we de bestanden index.php en templateDetails.xml aan.
Voor een goed georganiseerde template maak je twee mappen aan: "afbeeldingen" en "css". In de map "css" map maak je een bestand met de naam sjabloon.css.
CSS code kan worden opgenomen in je index.php bestand, maar dat heeft nooit de voorkeur. Maak een apart CSS-bestand aan en koppel dit aan het bestand index.php, met behulp van de link - tag. Dit verkort de laadtijd van je pagina' s.
Dit is een overzicht van de mappen en bestandsstructuur:
* mynewtemplate/ ** css/ *** template.css ** images/ ** index.php ** templateDetails.xml
Het maken van een basic templateDetails.xml bestand
Het templateDetails.xml bestand is essentieel. Zonder dit bestand wordt de template niet gezien door Joomla!. Het bestand bevat de metadata over de template.
De syntax van het bestand verschilt per Joomla versie.
In de verouderde versie
gebruikte je het volgende:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE install PUBLIC "-//Joomla! 1.5//DTD template 1.0//EN" "http://www.joomla.org/xml/dtd/1.5/template-install.dtd">
<install version="1.5" type="template">
<name>mynewtemplate</name>
<creationDate>2008-05-01</creationDate>
<author>John Doe</author>
<authorEmail>john@example.com</authorEmail>
<authorUrl>http://www.example.com</authorUrl>
<copyright>John Doe 2008</copyright>
<license>GNU/GPL</license>
<version>1.0.2</version>
<description>My New Template</description>
<files>
<filename>index.php</filename>
<filename>templateDetails.xml</filename>
<folder>images</folder>
<folder>css</folder>
</files>
<positions>
<position>breadcrumb</position>
<position>left</position>
<position>right</position>
<position>top</position>
<position>user1</position>
<position>user2</position>
<position>user3</position>
<position>user4</position>
<position>footer</position>
</positions>
</install>
Voor
en later gebruikte je de volgende versie. Wijzig version="2.5" in de versie van je Joomla! installatie.
<?xml version="1.0" encoding="utf-8"?>
<extension version="2.5" type="template">
<name>mynewtemplate</name>
<creationDate>2008-05-01</creationDate>
<author>John Doe</author>
<authorEmail>john@example.com</authorEmail>
<authorUrl>http://www.example.com</authorUrl>
<copyright>John Doe 2008</copyright>
<license>GNU/GPL</license>
<version>1.0.2</version>
<description>My New Template</description>
<files>
<filename>index.php</filename>
<filename>templateDetails.xml</filename>
<folder>images</folder>
<folder>css</folder>
</files>
<positions>
<position>breadcrumb</position>
<position>left</position>
<position>right</position>
<position>top</position>
<position>user1</position>
<position>user2</position>
<position>user3</position>
<position>user4</position>
<position>footer</position>
</positions>
</extension>
Er staat informatie tussen markup-tags (de <element>s). De beste aanpak is om dit te kopiëren en plakken naar je eigen templateDetails.xml bestand en relevante stukjes (zoals <name> en <author>) aan te passen.
Het onderdeel <files> bevat alle bestanden die je wil gebruiken. Met het element <folder> kan een hele map in één keer worden gedefinieerd.
Laat de posities zoals ze zijn, dit is een gemeenschappelijke set waarmee je makkelijk schakelt tussen standaard templates.
Het maken van een basic index.php bestand
Het index.php bestand wordt de kern van elke pagina die Joomla! levert. In wezen, maak je een pagina (zoals een HTML-pagina), maar plaats je PHP code waar de inhoud van uw site moet komen. De template werkt door het toevoegen van Joomla code op de module posities en de component sectie van uw template. Als er iets wordt toegevoegd aan de template, wordt dit weergegeven op alle pagina's, tenzij het is toegevoegd aan een van deze secties via het Joomla CMS (of aangepaste code).
Deze pagina toont de kale code klaar om te knippen en plakken in uw eigen ontwerp.
Begin
Een Joomla template begint met de volgende regels:
<?php defined( '_JEXEC' ) or die( 'Restricted access' );?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" >
De eerste regel stopt ondeugende mensen om naar uw code te kijken en slechte dingen te doen.
De tweede regel is de Document Type Declaration (DOCTYPE), deze vertelt de browser en web crawlers welke versie van html de pagina gebruikt. Het "doctype" zoals hierboven beschreven is HTML5, een nieuwere versie van HTML welke grotendeels backwards compatibel is, maar is voorzien van veel nieuwe mogelijkheden. Houd er rekening mee dat dit niet goed werkt met Internet Explorer 8 (en ouder) zonder een hack. Onderzoek deze situatie en de wensen van je klant alvorens je besluit welk doctype je wilt gebruiken. Dit is echter wel de versie die in Joomla
en hoger wordt gebruikt.
Op de derde regel begint ons HTML document en beschrijft welke taal voor deze website wordt gebruikt. Een html document is verdeeld in twee delen, een head en body deel. De head bevat de informatie over het document en de body zal website code bevatten waarmee u de lay-out definieert..
Head
<head>
<jdoc:include type="head" />
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/system/css/system.css" type="text/css" />
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/system/css/general.css" type="text/css" />
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template; ?>/css/template.css" type="text/css" />
</head>
De eerste regel geeft Joomla de juiste header-informatie. Dit is de pagina titel, meta-informatie, evenals JavaScript code.
De rest maakt twee links naar systeem style sheets en naar uw eigen opmaakmodel (als het genoemde template.css en is staat in de "css" map van uw template. Dus als uw template in http://www.mysite.com/templates/my_template/ staat, dan staan de css-bestanden in http://www.mysite.com/templates/my_template/css/).
Body-Gedeelte
<body>
<jdoc:include type="modules" name="top" />
<jdoc:include type="component" />
<jdoc:include type="modules" name="bottom" />
</body>
Ongelooflijk, dit is voldoende! Ja, het is een heel eenvoudige lay-out, maar het werkt. Alles wordt gedaan door Joomla!. Deze regels, meestal genoemd jdoc staten, vertellen Joomla wat toe te voegen aan de uitvoer van bepaalde onderdelen van het Joomla systeem. Opmerking: u moet ervoor zorgen dat uw menu is ingesteld op de module-positie "top".
Module Posities
De regel, hierboven, die zegt name="top" voegt een module positie toe genaamd "top" en maakt het Joomla mogelijk modules te plaatsen in deze sectie van de template. De type="component" regel bevat alle artikelen en de hoofd content (eigenlijk, het component) en is erg belangrijk. Het wordt geplaatst in het midden van de template.
Opmerking:Je kunt je eigen module regels overal waar je wilt in de body plaatsen, maar je moet de corresponderende regel ook toevoegen in de templateDetails.xml die in dezelfde folder als de index.php van je template staat.
Einde
Tenslotte - het laatste stukje:
</html>
Standaard Afbeeldingen
Als je afbeeldingen wilt toevoegen aan de template kan je het op deze manier doen:
<img src="<?php echo $this->baseurl; ?>/templates/<?php echo $this->template; ?>/images/myimage.png" alt="Custom image" class="customImage" />
Hier is de template variabel vul de naam van de template in
Basis CSS
Je kunt op deze manier basis css toevoegen:
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template;?>/css/styles.css" type="text/css" />
Ieder bestand wat toegevoegd is moet in een regel in de templatedetails.xml van de template vermeld worden,behalve als het verwijst naar een sub-folder (die kan weer opgenomen worden in een <folder> element).
Dit wordt het definitieve bestand:
<?php defined('_JEXEC') or die('Restricted access');?>
<!DOCTYPE html>
<html xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" >
<head>
<jdoc:include type="head" />
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/template.css" type="text/css" />
</head>
<body>
<jdoc:include type="modules" name="top" />
<jdoc:include type="component" />
<jdoc:include type="modules" name="bottom" />
</body>
</html>
Het testen van de template
Zoek de sjabloon in de Template Manager, selecteert het en klik op "Standaard"' om de template als standaard in te stellen.
In Joomla! 1.5, uw nieuwe template zal meteen worden getoond in het Templates:Stijlen scherm, bereikbaar via Extensies -> Templates.
+ In the Joomla! 2.5 series and later, you first need to tell Joomla! that you have created a new template. This feature is called Discover Extensions and can be accessed via Extensions -> Extension Manager -> Discover (i.e. the Discover tab). Click Discover (i.e. the Discover button) to discover your template, then select it and click Install to install it. Now your template should show up in the Template Manager (Styles), accessible via Extensions -> Template Manager.
Let op: u kunt uw template buiten Joomla maken, en deze simpelweg installeren net als elke andere extensie.
TIP: er zijn een paar manieren waarop u een voorbeeld kunt bekijken van de index pagina zoals u deze hebt samengesteld. Voer de stijlen direct in de header van de index pagina toe, of maak een link aan naar het css bestand dat u tijdelijk gaat gebruiken. U kunt deze links verwijderen voordat u het bestand inpakt tot een zipbestand.
Een template installatie zipbestand maken
Een map met verschillende losse bestanden is een niet aan te bevelen pakket voor distributie. Dus de laatste stap is om een package aan te maken. Dit is een gecomprimeerd bestand die de mappenstructuur en alle bestanden bevat. Dit package kan in ZIP formaat (met een .zip extensie), een TAR-gzip formaat (met een .tar.gz extensiie), of in een TAR-bz2 formaat (met een .tar.bz2 extensie) worden gemaakt.
Als uw template in een map mijntemplate/ staat, dan kunt u via het volgende commando het pakket aanmaken:
- tar cvvzf ../mytemplate.tar.gz *
- zip -r ..\mytemplate.zip *.*
Opmerking voor Mac OS X gebruikers
Opmerking voor template ontwikkelaars die Mac OS X gebruiken: het Finders "Compress" menu item produceert een bruikbare ZIP pakket, maar met een addertje onder het gras. Het slaat de bestanden in de "AppleDouble" indeling op en voegt extra bestanden met namen die beginnen met "._". Dus er wordt een bestand toegevoegd met de naam "._templateDetails.xml", die Joomla 1.5.x soms verkeerd interpreteert. Het resultaat is een foutbericht, "XML parsing error at 1:1. Error 4: Empty document". De oplossing is het comprimeren vanuit de command line en de shell environment variabele instellen "COPYFILE_DISABLE" op "true" zetten voordat het commando "compress" of "tar" gebruikt wordt. Zie het AppleDouble artikel voor meer informatie.
Om de environment variabele in te stellen op een Mac kan je een terminalvenster openen het volgende te typen:
export COPYFILE_DISABLE=true
Ga dan, in dezelfde terminal-venster, naar de directory in waar uw templatebestanden zich bevinden en de voer het zip-commando uit. Bijvoorbeeld, als je templatebestanden zijn gebouwd in een map in je eigen map met de naam myTemplate, dan zou je het volgende kunnen doen:
cd myTemplate zip -r myTemplate.zip *
Conclusie
Als het goed is heeft u nu een template gemaakt dat werkt. Het zal er alleen nog niet heel goed uitzien. Het beste dat u nu kunt doen is experimenteren met de layout.