Creating a patch/nl

From Joomla! Documentation

< Creating a patch

Een belangrijk onderdeel bij het maken van een patch voor Joomla! is er zeker van te zijn dat u alles op de juiste manier gecreëerd hebt. Standaard moeten alle patches gecreëerd worden in de Joomla-root. Voor het testen hoeven we dan niet uit te zoeken in welke map het te wijzigen bestand zich bevindt, of de patch aan te passen om hem goed te laten werken op ons lokale systeem. Dit kan een probleem zijn: als uw patch maar een enkel bestand verandert, kan er al een bestand zijn met die naam. We ontvingen bijvoorbeeld onlangs een patch voor een bestand met de naam banner.php. Er zijn in Joomla! vijf verschillende bestanden met de naam banner.php, dus dan moeten we uitzoeken welk bestand in dit specifieke geval bedoeld wordt.

Een patch creëren op de command line[edit]

Voor Linux/Mac gebruikers is het gebruik van de command line (uitvoerprompt) vaak de snelste manier om een patch te creëren. Afhankelijk van de hoeveelheid veranderingen die u heeft doorgevoerd in uw lokale installatie kunt u een aantal veranderingen moeten aanbrengen. De beste manier om dit te vermijden is een schone Joomla-installatie te gebruiken van SVN en uw veranderingen voor deze versie te gebruiken. In de root van Joomla! voert u dan het volgende commando uit:

svn diff > file.patch

Zorg ervoor dat de enige veranderingen die u heeft aangebracht zich in het bestand bevinden en dat u verder geen irrelevante veranderingen heeft doorgevoerd. Als dat niet kan, specificeer dan de bestanden die u veranderd heeft als onderdeel van de patch:

svn diff libraries/joomla/database/table.php > jtable.patch

Zorg ervoor dat u in de Joomla! root map werkt en niet in de map van de bestanden (u ziet mappen als libraries, administrator, plugins, components, modules, etc).

Een patch maken met Eclipse[edit]

Indien u Subclipse en Eclipse heeft kunt u een nieuw project uitchecken vanaf de Joomla! SVN (welke branch/release relevant is aan uw bug) en dit daarna gebruiken om een patch-bestand aan te maken. Houd er rekening mee dat Eclipse standaard patches aanmaakt die het volledige pad opnemen naar de bestanden, wat niet is wat we willen. Er van uitgaand dat u een nieuw project aanmaakt met behulp van de checkout vanuit SVN en de root van een Joomla! instance gebruikt, dan zou u in staat zijn makkelijk een juiste patch aan te maken.

Om een patch te maken selecteert u de bestanden die u heeft veranderd. Dan klikt u met rechts op een van die bestanden en selecteert u "Team > Create Patch". Het eerste scherm vraagt u waar u het bestand wilt plaatsen: het klembord, het bestandssysteem of de werkruimte. Meestal zult u het ergens in het bestandssysteem willen maken. Ik gebruik zelf een patch map waar ik alle patches bewaar die ik maak. Onderaan het scherm ziet u de lijst met bestanden die in deze patch worden opgenomen. Als daar bestanden bij zitten die u niet wilde toevoegen, dan kunt u ze hier deselecteren. Mist u een bestand, dan moet u de bestanden opnieuw selecteren en toevoegen.

Wanneer u heeft besloten waar u de patch gaat neerzetten en de juiste bestanden heeft geselecteerd, klikt u op "Next" om verder te gaan. Klikt u hier op "Finish", dan wordt uw patch onjuist aangemaakt, dus het is belangrijk dat u hier op "Next" klikt. Selecteer "Project" en klik dan op "Finish" om de patch te creëren. Op deze manier zorgt u ervoor dat het patch-bestand op de juiste manier is aangemaakt.

Een patch aanmaken met behulp van NetBeans[edit]

U kunt ook pattch-bestanden aanmaken door van de NetBeans IDE gebruiken te maken. Er is een video die uitlegt hoe een patch aan te maken voor Joomla! met SVN: http://www.vimeo.com/11981229.

Regeleinden en codering[edit]

Het is belangrijk om bij alles wat u maakt de juiste regeleinden te gebruiken. De stijl van regeleinden bij Joomla! is line feeds of Unix style, en alle bestanden moeten UTF-8 codering gebruiken. Als u Eclipse gebruikt, kunt u uw instellingen wijzigen in Window -> Preferences -> General -> Workspace. Selecteer de tekstcodering als UTF-8 en uw line delimiter als "Unix".