Joomla!

Een Joomla template configureerbaar maken

  • Joomla

Stel: je bouwt een Joomla!-template voor een klant en de klant wil zelf iets aan het template kunnen veranderen. Laten we zeggen dat de klant twee (of veel meer) versies van een logo heeft die apart ingesteld moeten kunnen worden.

(Dit is overigens maar een voorbeeld-toepassing, je zou bijvoorbeeld ook iets anders kunnen laten toevoegen, zoals id's of classes, waarna je met css kunt stylen. Het enige wat dit techniekje doet, is een stukje tekst wegschrijven in je template.)

Om aan het verzoek van je klant te voldoen, zou je dan gewoon twee (of veel meer) templates kunnen bouwen, maar dat is niet handig in verband met een eventuele aanpassing later. Als je meerdere plaatsen in je template moet kunnen aanpassen, wordt het onwerkbaar. Het kan makkelijker:

Lees meer...

Joomla versus Wordpress, mijn duit in het zakje

  • Joomla

Joomla versus Wordpress, een populair onderwerp. Laat ik ook eens wat zeggen.

Dit is geen volledige opsomming, er is veel meer te verzinnen. Maar dit is wat mij het meeste bezighoudt (stand juni 2009). Het is vooral geschreven vanuit het perspectief van een content beheerder. Het komt waarschijnlijk voort uit frustratie ten aanzien van Joomla.

Ik weet het, ik weet het, ik betaal geen cent voor Joomla en als iets me niet bevalt, kan ik toch zelf regelen dat het er komt. Weet ik allemaal. Maar soms wil zelfs ik even zeuren.

Oke daar gaan we: over auto-backup, image-beheer, versie-beheer, en meer.

Lees meer...

Joomla! body id

  • Joomla

Hoe koppel je een uniek id aan de <body> van een pagina in Joomla 1.5.x?

Lang gezocht en eindelijk gevonden. Met zeer veel dank aan Bas Vredeling (www.zonderling.com)

Lees meer...

Joomla! FTP, UNIX, rechten

  • Joomla

Update: als je je hosting laat regelen door Byte, dan ben je van al het onderstaand gezeur af. Byte heeft slimme trucks toegepast, misschien zijn ze hierin niet uniek, maar van hun weet ik zeker dat het goed werkt.

Over chmod en chown, FTP, 644, 755, file ownership, bestanden niet te verwijderen

Bron

De nu volgende kennis heb ik opgedaan op twee series van cursussen die ik ooit volgde bij Hewlett-Packard Nederland B.V. (http://www.hp.nl/general/route1.html)

Deze cursussen zijn:

  • UNIX fundamentals
  • UNIX HP UX Admin and Networking

Vooraf:
Ik gebruik een aantal synoniemen:

file = bestand
directory = folder = map

Joomla en het niet kunnen verwijderen van remote bestanden

Er is veel misverstand over Joomla en bestanden die je niet kan verwijderen of bewerken (via ftp). Voor je het weet, spring je uit je vel want er is niets (relatief gezien) zo irritant als een foutmelding op zondagavond dat het bestand niet verwijderd kon worden.

Eigenlijk is het heel makkelijk...

Maar je moet je er wel even toe zetten.

Niet Joomla maar UNIX is de schuldige!

Om te beginnen wil ik even de echte schuldige aanwijzen en dat is niet Joomla maar UNIX. Wellicht ten overvloede, maar UNIX is het besturingssysteem waar Joomla (meestal) op draait en dat je benadert met je FTP programma.

UNIX rechten in 10 woorden

Nu zal ik proberen in een paar zinnen uit te leggen hoe het zit met het bestands-rechten systeem onder UNIX:

  • In UNIX heeft elk bestand een eigenaar
  • Deze eigenaar kan rechten geven aan zichzelf en aan anderen (dit heet een CHMOD, en is een afkorting van CHange MODe)
  • Deze rechten bepalen wat er met het bestand gedaan kan worden
  • Vraag: waarom zou je eigenlijk niet gewoon alle rechten aan jezelf geven? Antwoord: om jezelf in bescherming te nemen voor domme acties
  • Vraag: waarom zou je bepaalde rechten niet aan anderen geven? Antwoord: omdat je ze niet vertrouwt
  • Vraag: welke 'anderen' hebben we het hier over? Antwoord: er zijn 2 soorten 'anderen': a) de anderen die lid zijn van jouw groep, en b) de rest van de wereld. We hebben het dus over 'jezelf', 'jouw groep' en 'de rest' (het is net echt)
  • Vraag: welke rechten kun je onderscheiden? Antwoord: a) schrijf-rechten, b) lees-rechten en, 3) minder belangrijk, execute-rechten (vergeet deze laatste). Schrijf-rechten zijn nodig om een bestand te kunnen verwijderen

tot nu toe hebben we nog geen probleem... blijf echter lezen...

  • Als je een bestand uploadt zal deze meestal standaard de volgende rechten krijgen:

-jij krijgt zelf lees- en schrijf-rechten op dat bestand,
-en de groep, en de rest van de wereld krijgt alleen lees-rechten (dit wordt weergegeven door het getal 644; vraag niet waarom, voor je eigen bestwil).

  • Als je een directory uploadt (ook wel folder of map geheten)

-zul je zelf ook weer lees- en schrijf-rechten krijgen en als extraatje de execute-rechten (die heb je nodig op directories)
-en zal de rest van de wereld (jouw groep dus en de rest) alleen lees- en execute rechten krijgen en geen schrijf-rechten. Dit wordt met de volgende 'afkorting' weergegeven: 755 *)

*) Even tussendoor: Soms hebben web hosting bedrijven hun servers anders ingesteld.
Ik heb een snelle proef op de som genomen. Ik heb een mapje met daarin een bestandje ge-upload en heb gekeken wat voor rechten deze kregen:

provider #1: dir: 755 files: 644
provider #2: dir: 761 files: 664
provider #3: dir: 755 files: 644

Je ziet dus dat het door mij opgelepelde rechten-verhaal soms een beetje afwijkt.

Maar goed, je zou nog steeds zeggen: wat is het probleem... maar blijf nog even hangen...

Heer en Meester

Als jij met je ftp -programma files uploadt, is er geen probleem: jij bent als eigenaar heer en meester over de files en directories.

Even tussendoor: Hoe kun je zien wie de eigenaar is?
Hoe kun je zien wie de eigenaar is van een bestand of directory? Gebruik hiervoor bijvoorbeeld Smart-FTP. Volgens mij lukt het met FileZilla niet om dit te zien te krijgen. Met Smart-FTP kun je bij de eigenschappen van een bestand/file of map/directory zien wie de eigenaar is en tot welke groep het behoort.

Installeren van een Joomla Extensie

Maar nu ga je het volgende doen: je gaat een extra component, module, of mambot installeren via de Joomla installation optie. Of je gaat via de Joomla media manager plaatjes uploaden, of een folder aanmaken op de lokatie images/stories

VANAF NU HEB JE EEN PROBLEEM!

Als je via de Joomla installer iets installeert, of als je via Joomla plaatjes of bestanden uploadt, dan doe jij dat niet, maar dan doet Joomla dat. Oftwel, niet jouw user-id (waarmee je inlogt op je webserver als je bestanden wilt uploaden) is de eigenaar maar Joomla's user-id, en dat user-id is een ander user-id dan dat van jou, helaas. Vaak is dat een standaard systeem user-id, of hoe je het ook wilt noemen. Het kan elke naam hebben (hangt van de fantasie van degene die het UNIX systeem installeerde) maar het is vaak 'nobody' of bijvoorbeeld 'www-data'.

Jij bent niet meer de eigenaar

Hoe het allemaal zijn moge: jij bent niet meer de eigenaar van die bestanden. Hoogstwaarschijnlijk hebben de bestanden dus weer standaard de waarde 644 gekregen (dus lees- en schrijf-rechten voor de eigenaar, en lees-rechten voor de groep en de rest van de wereld. Alleen wil het geval dat JIJ nu bij de rest van de wereld hoort. Oftwel: jij hebt slechts lees-rechten. Je kunt het bestand dus eenvoudigweg niet verwijderen :-(

Wat kun je hier aan doen?

Er zijn voor zover ik kan overzien twee oplossingen, en die zal ik hier toelichten.

JoomlaXplorer

Éen manier om dit op te lossen, is het installeren van joomlaXplorer, een Joomla-component dat een soort Verkenner imiteert. Je kunt er, zij het niet zo geavanceerd als met de Windows Verkenner bestanden mee manipuleren. Het leuke is dat je dus nu ook die bestanden kunt verwijden en verplaatsen waarvan jij niet de eigenaar bent, want je doet het vanuit hetzelfde user-id als die waar het Joomla systeem de bestanden uploadde. Op sommige hosts laat het systeem zich echter niet installeren.

CHOWN

CHOWN staat voor CHange OWNer. Het is een UNIX commando. Je kunt het zelf niet uitvoeren (tenzij je Shell Accesshebt maar dat is standaard meestal niet het geval op een shared hosting omgeving, een ander woord voor goedkopere web hosting abonnementen :-). je kunt de helpdesk van je web hosting provider vragen om een CHOWN te doen op de gewenste bestanden. Je kunt ook gewoon vragen of ze je de eigenaar willen maken. Je kunt ook vragen of ze je gewoon eigenaar van alle bestanden maken. Dat is echter een drastische stap, die volgens mij wel goed gaat, maar ik wil hier geen harde uitspraak over doen. Het hangt ook van de kwaliteit van de geïnstalleerde extensies af, die je hebt geïnstalleerd. Als die de rechtenkwesties niet helemaal goed afhandelen kun je een probleem krijgen.