Wszystko zaczyna się od paczki zip, która wrzucona na serwer (poprzez skrypt, nie FTP) miałaby zostać rozpakowana, ale nie "fizycznie". Chodzi mi o to by paczka była w "pamięci podręcznej" (choć nie wiem czy to jest wykonalne w przypadku skryptów php) (do podręcznej gdyż może nie przejść testów zgodności - banalny do wykonania (jestem tego prawie pewien)). Po rozpakowaniu plików do pamięci skryptu skrypt sprawdzający czy modyfikacja jest zgodna z wersją skryptu miałby otworzyć plik package.xml, który miałby w środku taką treść:
Skrypt sprawdzający czy dana modyfikacja pasuje do aktualnej wersji silnika zwyczajnie miałby porównać czy wersja silnika znajduje się na liście wersji podanej w tagu <install>. Kolejne wersje miały by być wymieniane po przecinkach, a myślnik oznaczałby przedział (w wypadku wyżej podanego kodu modyfikacja miała by pasować do wersji: od 1.0 do 1.2, oraz od 1.4 do 1.99). To jeszcze nic w porównaniu z tym co miało by się dziać dalej: skrypt instalacyjny (wcześniej była mowa o sprawdzeniu wersji przy uploadzie paczki) miałby wypakować plik, którego nazwa została podana w <unpack-file name="X"> do katalogu oznaczonego w <unpack-file dir="Y">, modyfikować pliki na zasadzie znajdź i zamień, oraz mieć możliwość wykonania skryptu zawartego w oddzielnym pliku PHP, do którego ścieżka była by podana w <do file="X">.
<?xml version="1.0" ?> <package> <name>Nazwa modyfikacji</name> <author>Autor modyfikacji</author> <version>Wersja modyfikacji</version> <relase-date>Data udostępnienia modyfikacji</relase-date> <install for="1.0 - 1.2, 1.4 - 1.99"> <unpack-file name="plik1.php" dir="directory" /> <modify-file name="plik2.php" dir="diirectory2"> <find> KOD DO ZNALEZIENIA W PLIKU "plik2.php" ZNAJDUJACEGO SIE W KATALOGU "directory2" </find> <replace> KOD, KTORY MIALBY ZASTAPIC KOD PODANY WYZEJ </replace> </modify-file> <do file="plik3.php" /> </install> </package>
Mam nadzieję, że zbytnio ne namotałem i wiecie o co chodzi.

PS. Czytałem artykuł dotyczący XMLa na wortalu ("XML - morze możliwości - XPath, XPointer, XInclude"), jednak nie porusza on zbytnio tematu, który potrzebuję.