Aktualisieren Sie den Server für kommerzielle Erweiterungen


8

Joomla bietet die Möglichkeit, einen Update-Server hinzuzufügen, mit dem Benutzer ein Erweiterungs-Update installieren können, wenn es auf Knopfdruck veröffentlicht wird.

Dies ist natürlich ideal für kostenlose Erweiterungen. Bei kommerziellen Erweiterungen tritt jedoch ein Problem auf, bei dem jemand einfach die Download-URL aus der XML-Aktualisierungsdatei abrufen und veröffentlichen kann. Dies ist also kein Problem.

Was ich vorhatte, war, etwas in die gleiche Richtung zu tun, aber es würde den Benutzer einfach darüber informieren, dass es ein Update gibt, und er müsste auf die Entwickler-Website gehen und es manuell herunterladen, aber ich habe kein Abonnement verwendet Erweiterungen, daher gibt es keine besonderen Berechtigungen, um Zugriff auf diese kommerziellen Erweiterungen zu erhalten. Stattdessen habe ich eine Komponente verwendet, mit der der Benutzer die Erweiterung einfach erwerben kann, und das war's.

Meine Frage ist also, gibt es eine integrierte Methode, von der ich nicht weiß, dass sie einen Update-Server für kommerzielle Erweiterungen ermöglicht? Ich glaube, ich erinnere mich daran, dass dies vor langer Zeit diskutiert wurde, bin mir aber nicht sicher, ob etwas dafür in Joomla implementiert wurde.

Oder wäre es stattdessen eine Idee, den direkten Zugriff auf XML zu verhindern, wenn man die URL in ihrem Browser mithilfe einer htaccess- Datei eingibt ?

Hinweis : Ich beziehe mich auf ein Modul, sonst hätte ich mir vielleicht etwas wie Akeeba Live Update angesehen


1
Ich würde einen der Erweiterungshersteller kontaktieren, die dies bereits tun. Die Jungs von Rocket Theme haben ein eigenes Plugin erstellt, das von ihrem Server aus validiert und weiterhin den integrierten Update-Mechanismus verwendet. Akeeba macht es ohne ein zusätzliches Plugin, wird aber aktualisiert, wenn Ihr Code in den Komponenteneinstellungen eingegeben wird. Sie können auch die watchful.li-Leute fragen, da ihr System all dies nutzen und das Upgrade für Sie ausführen kann. Jemand könnte bereit sein, Sie darüber zu informieren, wie sie es tun.
Brian Peat

@BrianPeat - danke für deine Eingabe. Ich habe ein Commit für Github von Nick aus Akeeba gefunden, das genau das erlaubt, was ich will (und vielleicht habe ich nur einen blonden Moment), aber ich glaube nicht, dass der "Entwicklerleitfaden" ausreicht. Es wird nicht erwähnt, wo der Code abgelegt werden soll. Die Person, mit der ich zusammenarbeite, wird ihn um weitere Einzelheiten bitten. Hoffentlich bringt mich das irgendwohin.
Lodder

Antworten:


5

Meine Version der Implementierung wäre ...

Der Client: - Geben Sie einfach jedem abonnierten Benutzer einen eindeutigen (geheimen) Schlüssel und übergeben Sie diesen einfach als GET-Variable, wenn Sie nach neuen Updates suchen.

Der Server: - Überprüfen Sie ebenfalls einfach die eingehenden Anforderungen für diese Variable und ordnen Sie sie einer Datenbank zu cool? allow : deny;.

Der Missbrauch: - Führen Sie Aufzeichnungen über jeden verwendeten Schlüssel und legen Sie eine Anzahl zulässiger Anforderungen fest. Danach markieren Sie diesen Schlüssel und seinen Benutzer als verdächtig. Tun Sie dann, was immer Sie möchten, und warnen Sie diesen Benutzer vor dem Blockieren Für einige Zeit oder einfach nur die Kündigung eines Abonnements ... usw. sind die Möglichkeiten endlos.


Was passiert, nachdem der Server mit "Zulassen" geantwortet hat? Mit anderen Worten, wie funktioniert diese Validierung zusammen mit dem Update-Server?
Malaiselvan

allowbedeutet, dass der Server beschlossen hat, die Aktualisierungsdatei als Antwort zu senden.
Mohd Abdul Mujib

Danke @ 9ksoft. Mit Ihrer Lösung kann der Benutzer die aktualisierte Erweiterung herunterladen. Ich glaube, es kann keine automatische Installation mit dem Update-Server durchgeführt werden, oder? Oder haben Sie eine Lösung für die automatische Aktualisierung nach der Validierung? Entschuldigung für die vielen Fragen .... :-)
Malaiselvan
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.