Hi Auke,
Ik heb me nooit erg bezig gehouden met community sites (afgezien als een lid
) maar met de ingebouwde webuser faciliteiten kun je met MODx een heel eind komen. Ik geloof dat er standaard een "word nu lid" form in de demo installatie van MODx zit. Een soort buddy lijst zul je waarschijnlijk zelf moeten bouwen, of neem anders een kijkje in de repository. Ik geloof dat er een of twee "personalize’ snippets bijzitten die je als voorbeeld zou kunnen gebruiken.
Wat betreft het schrijven van modules, plugins and snippets, geef je zelf wat tijd en hou het simpel... Het klinkt misschien allemaal overweldigend, zoveel keuze, chunks, snippets, template variabelen, plugins en modules...
Wellicht ten overvloede maar hier is een heel kort overzicht voor je:
chunks - Simpelweg een stukje html of text dat je in je pagina kunt oproepen metde {{chunkNaam}} notatie. Je kunt een chunk ook in een script oproepen met $var = $modx->getChunk(’chunkNaam’);
snippet - Een (stukje) script met de bedoeling om dynamische output in je pagina te plaatsen. In z’n simpelste form zoiets als:
<?php
#helloWorld Snippet
return "hello World";
?>
In je pagina (of in je template) plaats je [[helloWorld]] of [!helloWorld!] om dit script op te roepen. Snippets kunnen elkaar ook oproepen met $var = $modx->runSnippet(’snippetNaam’);
Template variables - Kun je gebruiken om extra invoer velden aan je pagina toe te voegen die de pagina editor kan invullen in de manager. Dit kan van alles zijn, een tekst veld, een RTE veld of een keuze lijst van database waarden. De uitvoer van een TV kan vormgegeven worden met behulp van bestaande widgets. TV’s zijn gekoppeld aan een template. De uitvoer wordt in je template of pagina geplaatst met [*tvNaam*]
plugins - Plugins kun je zowel gebruiken om veranderingen aan te brengen in de manager, alswel om de uitvoer van de web pagina te wijzigen. Je zou bijvoorbeeld een plugin kunnen gebruiken om ë en è karakters te vertalen naar html entities of, zoals ik heb gedaan, in de manager de "permissions system" uit te breiden.
modules - zijn voornamelijk om de manager uit te breiden, bijvoorbeeld voor het beheer van een aparte database tabel.
Neem vooral een kijkje in manager/includes/document.parser.class.php daar vind je al de modx api functies (en een zooi interne functies die je beter alleen kunt laten omdat ze in de toekomst wellicht worden gewijzigd).
Zoals ik al aangaf kan ik je moeilijk specifieke help bieden op dit moment. Begin gewoon met een paar simpele snippets en als je er niet uitkomt stel je vragen ergens in de forums. en als je echt omhoog zit stuur me een PM.
In de tussen tijd zijn er genoeg voorbeelden in de
repository om je een tijdje zoet te houden