Een fijne opkomst voor een midden-in-de-zomer-bijeenkomst: een stuk of dertien deelnemers. Met daarbij één nieuwe deelnemer (welkom Marco!) en een paar oude bekenden (welkom terug!).

Anja de Crom over template overrides en alternatieve layouts

Het laatste Joomla-nieuws is natuurlijk de release van Joomla! 3.6.1, de troubles die daarbij ontstonden en de release van 3.6.2 de volgende dag.
Een korte uitleg: vanaf Joomla! 3.6.1 wordt een bepaalde security token gecheckt, die er nog niet in zit. Als iets er niet is, kun je het niet checken. Vandaar dat je een foutmelding krijgt. Die kun je voorkomen door eerst via Extensies -> Updaten de component Joomla Updater te updaten. Mocht je per ongeluk al een update-poging hebben gedaan, dan kun je het probleem fiksen door opnieuw naar de administrator te gaan (alles wat na administrator komt even weghalen uit de url-balk), dan naar Extensies -> Database -> Repareren.
Mensen die Akeeba Backup gebruiken en de optie backup voor updaten aan hebben staan hadden nog een extra probleem; de backup werd niet goed afgerond. Ook dat kun je regelen door eerst Akeeba Backup te updaten. Kun je dat niet, zet dan (al dan niet tijdelijk) de plugin uit die de backup voor updaten regelt.
Anja de Crom legt in deze blog iets uitgebreider uit hoe je het updaten vlekkeloos kunt laten verlopen: http://anjadecrom.nl/blog/197-probleemloos-updaten-van-joomla-3-6-0-naar-3-6-1

Presentatie: Template overrides door Anja de Crom

Het kan gebeuren dat Joomla, of een extensie, content op een andere manier laat zien dan jij eigenlijk zou willen. Styling met css volstaat in een aantal gevallen, maar soms wil je iets meer: de volgorde van elementen op een pagina aanpassen bijvoorbeeld. Dan kun je een template override gebruiken.

Met een template override pas je de output van Joomla componenten aan, zonder dat je de bestanden van die componenten verandert; je regelt alles binnen je template. Bij een update blijven jouw aangepaste bestanden dus onaangetast.

Je kunt overrides maken voor alle output, maar je kunt ook verschillende layouts gebruiken op verschillende plekken in je website.

Anja's slides staan hier: http://www.slideshare.net/anjadecrom/template-overrides-voor-joomla-3

Wat kun je met template overrides?

  • De standaard output van een component aanpassen
  • Een alternatieve layout voor de output maken
  • Een alternatieve layout koppelen aan een menu-item

De standaard output van een component aanpassen

Dit doe je als je iets wilt maken dat er altijd hetzelfde uitziet. Bijvoorbeeld de standaard artikelweergave of de standaard categorieblog.

Je kunt dit doen voor:

  • Alle componenten; de bestanden die je moet overriden staan in Components/com_naamcomponent/views/tmpl
  • Modules; de bestanden die je moet hebben staan meestal in Modules/mod_naammodule/tmpl

De stappen:

  • Zoek uit welk bestand je moet hebben
  • Maak er een kopie van met dezelfde naam en zet die in jouw_template/html/com_naamcomponent
  • Bewerk die kopie (lokaal en dan steeds uploaden, of direct in de editor bij templatebeheer)

Componenten zijn binnen Joomla! altijd op dezelfde manier georganiseerd, namelijk via het MVC-model: model, view, controller. De weergaven vind je altijd in het mapje views (de naam zegt het al) en dan in tmpl (ezelsbruggetje: wat je zoekt ligt in de tempel).

Alternatieve layout

Dit doe je als je naast jouw eigen weergave ook de standaard layout wilt gebruiken

De stappen:

  • Zoek uit welk bestand je moet hebben
  • Maak er een kopie van, sla die op onder een nieuwe naam en zet die in jouw_template/html/com_naamcomponent
  • Bewerk je nieuwe bestand
  • Kies je nieuwe weergave in je artikel of module bij opties -> alternatieve weergave

Alternatieve layout per menu-item

Deze is handig als je de alternatieve layout voor alle weergaven van een bepaald menu-item wilt gebruiken, en bij een ander menu-item de standaard layout. Of nog een andere.

Je moet dezelfde stappen nemen als bij een gewone alternatieve layout:

  • Zoek uit welk bestand je moet hebben
  • Maak er een kopie van, sla die op onder een nieuwe naam en zet die in jouw_template/html/com_naamcomponent
  • Bewerk je nieuwe bestand
  • Plus één extra stap: een XML bestand maken voor je alternatieve layout. Dat XML-bestand zorgt ervoor dat het menu je layout herkent. En, eventueel, dat je allerlei dingen kunt instellen specifiek voor deze layout.

Dat doe je natuurlijk weer op dezelfde manier: kopie maken van het bestaande XML bestand en die bewerken. In dit geval gaat het om het XML-bestand van de categorieblog.

Mijn alternatieve weergave wordt een shop-overzicht, gebaseerd op de standaard categorieblog van Joomla. Ik maak kopieën van blog.php, blog_item.php en blog.xml en hernoem die naar shopcat.php, shopcat_item.php en shopcat.xml.

In het XML-bestand staan alle veldjes en opties van het menu-item. In mijn geval is het XML- bestand alleen nodig om de juiste layout te genereren. Ik hoefde alleen de naam maar aan te passen.

Je kunt dus, als je er een beetje handigheid in gekregen hebt, ook velden aanpassen. Maar dat hoeft lang niet altijd.

Pas aan wat je aan moet passen en upload het hele zaakje naar templatenaam/html/com_componentnaam

Maak nu een nieuw menu-item aan. Bij menu-item type kun je nu je eigen layout selecteren. In mijn geval was het gebaseerd op de standaard categorieblog, dus kan ik hier dezelfde dingen instellen.

Je kunt dit doen voor:

  • Alle componenten; de bestanden die je moet overriden staan in Components/com_naamcomponent/views/tmpl
  • Modules; de bestanden die je moet hebben staan meestal in Modules/mod_naammodule/tmpl

Samenvatting

  • Alle output aanpassen: override de standaard weergave (vrijwel altijd default.php)
  • Een enkele weergave aanpassen: maak een alternatieve layout met een nieuwe naam
  • Alle output van een bepaald menu-item aanpassen: maak een alternatieve layout met een nieuwe naam én een bijbehorend xml-bestand

Dokter Joomla

Case 1: Hoe pas ik lettertypes aan in mijn artikelen, en hoe wijzig ik de achtergrondkleur van tabellen in artikelen? Want ik doe het nu in de editor en dat kost heel veel tijd.

Antwoord: Je kunt alles standaard in de css van je template laten regelen. Zorg dat je kale, niet-opgemaakte tekst in je editor plakt. Kijk aan de voorkant van je website met "Element inspecteren" (in Firefox zit-ie onder rechtsklik muismenu) hoe de code van de tekst heet. Kopieer die code naar je custom.css of user.css (afhankelijk van je template) en pas €˜m aan. Als je altijd lettertype Verdana wilt gebruiken, zet dan in je custom.css of user.css dat de teksten het lettertype Verdana moeten hebben. Wil je tabellen aanpassen, zoek dan een tabel aan de voorkant van je website, klik met rechts, vind de code, kopieer die naar je custom.css of user.css en pas âm aan. Custom.css en user.css worden niet overschreven bij een update.

Case 2: Mailen in mijn website werkt niet met PHP mailer, wel met SMTP mailer, kan ik dat gewoon gebruiken?

Antwoord: Ja hoor. PHP mail verstuurt de mail via Sendmail en voegt een header toe aan de mail die jij opstelt. SMTP gebruikt een dedicated mailserver om de mail te versturen, vergelijkbaar met mail sturen vanuit een mailprogramma. Als die mailserver goed geconfigureerd is, is er geen enkele reden waarom je SMTP mailer niet zou gebruiken.

Case 3: Volgorde van artikelen, daar is iets geks mee aan de hand, is daar iets in veranderd?

Antwoord: Ja, er is (of was, dat weten we niet zeker) een bug.

Tip 1: als het kan, ga dan over naar php 7. In minder tijd kun je je website niet versnellen.

Tip 2: we hadden het laatst over hosting providers, ik heb goede ervaringen met Versio. Heel goedkoop, ze hebben php 7 en je kunt prima reseller pakketten bij ze afnemen.

Reageer

1000 Resterende tekens