Willkommen, Gast ( Anmelden | Registrierung )     [ Hilfe | Mitglieder | Suche ]

 
Reply to this topicStart new topic
> Pluginupdates
MaZderMind
Beitrag Sun. 10. December 2006, 23:35
Beitrag #1


Advanced Member
********

Gruppe: AdvancedMembers
Beiträge: 680
Mitglied seit: 09.08.2006
Wohnort: nähe Mainz
Mitglieds-Nr.: 182



Hi
Es ist enorm schwerig, Pluginupdates mit nur einer update.meta zu schreiben. Es ist zwar durch geschickte Queries möglich und irgendwie kann man wohl auch php-code in meta-Dateien unterbringen, aber ein Updatesystem wie es bei Systemupdates mit den Versionsabhängigen SQLs sollte bei Plugins auch vorhanden sein.

Gruß, Peter
Go to the top of the page
 
+Quote Post
STam
Beitrag Mon. 11. December 2006, 17:15
Beitrag #2


Advanced Member
********

Gruppe: AdvancedMembers
Beiträge: 541
Mitglied seit: 27.06.2006
Mitglieds-Nr.: 8



Grundsätzlich kannst du in die 'update.meta' Datei auch PHP schreiben,
einfach mit dem Preamble '<?php' in der 1. Zeile einleiten.
Für die von dir geforderte Funktionalität fehlt einfach nur die übergabe der aktuellen Plugin-Version an das Update-Script(meta), dann könnte man das selbst in dem Update-Script(meta) verarbeiten, wenn man die eigene Versions-Nr kennt.

Ansonsten, ja das wäre ein schönes Feature biggrin.gif
Go to the top of the page
 
+Quote Post
MaZderMind
Beitrag Mon. 11. December 2006, 17:23
Beitrag #3


Advanced Member
********

Gruppe: AdvancedMembers
Beiträge: 680
Mitglied seit: 09.08.2006
Wohnort: nähe Mainz
Mitglieds-Nr.: 182



Hi
nuja dazu wollte ich in der Pluginname_meta.php ein Define mit der version einbauen, aber prinzipiell sollte auch das besser abstrahiert werden, z.B. so wie das bei dem Systemupdates gelöst ist, wo automatich alle SQL-Updates von der aktuellen Version ausgehend eingespielt werden.

Gruß, Peter
Go to the top of the page
 
+Quote Post
STam
Beitrag Mon. 11. December 2006, 17:48
Beitrag #4


Advanced Member
********

Gruppe: AdvancedMembers
Beiträge: 541
Mitglied seit: 27.06.2006
Mitglieds-Nr.: 8



Nunja zunächst nicht schlecht gedacht,
aber bedenke das das Update Script von SF nix anderes mach:
1. Select in der Db die 'alte Version'
2. Ausführen aller Updates von Version > 'alte Version'
... thats it
Das Problem ist das die Update Methode erst aufgerufen wird wenn das Plugin in der Db schon aktualisiert ist. Grundsätzlich war das ganze nur dazu gedacht mal ein paar Values einzuspielen sad.gif
Deine 'aktuelle Version' ist ja in der Datei 'pluginname.cmsplug' enthalten, brauch also nicht (und soll auch nicht) in die 'pluginname_meta.php'
(die Information wäre nach einem ändern der Version über 'Administration->Plugins->Plugin bearbeiten' ehe wieder hinfällig).
'pluginname.cmsplug' ist eine XML-Datei die beim Download eines Plugins erzeugt wird und alle Daten des Plugins enthält und
beim Upload wieder gelesen wird (grundsätzlich wie bei Modulen).
Um das ganze richtig zu lösen müsste man wohl einiges umbauen.

Gruß

Der Beitrag wurde von STam bearbeitet: Mon. 11. December 2006, 17:50
Go to the top of the page
 
+Quote Post
MaZderMind
Beitrag Mon. 11. December 2006, 20:14
Beitrag #5


Advanced Member
********

Gruppe: AdvancedMembers
Beiträge: 680
Mitglied seit: 09.08.2006
Wohnort: nähe Mainz
Mitglieds-Nr.: 182



Hmm..
Okay also kann ich aus der update.meta garnicht feststellen welche Version vorher installiert war.
Also ist eine Erweiterung der class.plugin_meta.php nur noch wichtiger smile.gif
Eine Idee:
Die Metadateien bleiben aus kompatibilitätsgründen erhalten, primär wird aber alles über die pluginname_meta abgewickelt wird. In dieser Datei könnten die Methoden install(), update($from) und uninstall() überschrieben werden. Von hier aus können ja ohne weiteres DB-Objekte erstellt werden und Queries abgesetzt werden, bei update abhängig des in $from angegeben Wertes.

Gruß, Peter
Go to the top of the page
 
+Quote Post
MaZderMind
Beitrag Wed. 17. January 2007, 00:26
Beitrag #6


Advanced Member
********

Gruppe: AdvancedMembers
Beiträge: 680
Mitglied seit: 09.08.2006
Wohnort: nähe Mainz
Mitglieds-Nr.: 182



Soo

Also aus meiner sicht muss da was passieren biggrin.gif
Ich hab mich jetzt ein weilchen mit dem Workaround rumgeplagt, die _call_files-Methode in der einenen plugin_peta zu überschreiben und dann über einen Wert in der values-Tabelle die Version zu identifizieren und in der update.meta als PHP-Script das ganze auszuwerten, aber das funktiniert scheinbar (bei mir) nicht in der client_update.meta und das debuggen ist extrem kompliziert (Änderungen müssen immer erst als cmsplug exportiert werden, dann eine alte Version importiert und die neue drüber-geupdatet. Alle Debug-Ausgaben müssen in eine Datei erfolgen weil echo-Ausgaben ignoriert werden, ...

Kann man da nich was machen? Updates werden immer wichtiger werden, je komplizierter die Plugins werden. Ich möchte garnicht an den Newsletter denken :-/

Gruß, Peter
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 Besucher lesen dieses Thema (Gäste: 1 | Anonyme Besucher: 0)
0 Mitglieder:

 



RSS Vereinfachte Darstellung Aktuelles Datum: 28.4.24 - 05:33

Sefrengo ist ein eingetragenes Markenzeichen und urheberrechtlich geschützt.
Copyright 2009 Design & Daten, Alle Rechte vorbehalten.