Joomla überprüft nach der Anmeldung im Backend, ob Updates verfügbar sind. Wenn ja, können Sie eine Übersicht sehen, wenn Sie auf "Updates anzeigen" klicken. Aber ich möchte eine ähnliche Nachricht über Updates für eine von mir entwickelte Erweiterung anzeigen ("es gibt ein Update verfügbar"). Ich habe einige Dinge ausprobiert, aber bis jetzt habe ich es nicht geschafft. Irgendwelche Vorschläge?Wie erstellen Sie eine Nachricht "Ein Update ist verfügbar" für eine Joomla-Erweiterung?
Antwort
Dies ist der Code, den ich für meine Komponente befolge. Sie können das gleiche in der Aufrufe- verwenden> tmpl-> default.php
<?php $user = JFactory::getUser(); ?>
<div class="UpdatesPage" style="margin-top: 8px">
<?php
$xml = JFactory::getXML(JPATH_ADMINISTRATOR .'/components/com_mycomponent/manifest.xml');//Path to your existing manifest file.
$existingversion = (string)$xml->version;
$url = 'http://example.com/downloads/mycomponent.xml';
//$url is path to your xml file which stores the latest version.
$ch = curl_init($url);//Execute curl and get the xml data available in my server
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_exec($ch);
$retcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// 400 means not found, 200 means found.
curl_close($ch);
if($retcode == 200){
$xml2 = JFactory::getXML($url,true);
$latestversion = $xml2->update->version;
} else {
$latestversion = "";
}
?>
<h2>Version Update</h2>
<?php
if (version_compare($latestversion, $existingversion) > 0) {
echo "<span style='color:#AFA;text-align:center;'>The version installed is ".$existingversion."</span><br />";
echo "<span style='color:red;text-align:center;'>The latest version is ".$latestversion."</span><br />";
} else {
echo "<span style='color:green;text-align:center;'>You have the Latest version</span>";
}
?>
</div>
Dies ist die XML-Datei in meinem Server-Datei, wo ich es aktualisieren, so dass meine Komponente Benutzer sehen kann, wenn sie meine Komponenten-Updates-Seite
<?xml version="1.0" encoding="utf-8"?>
<updates>
<update>
<name><![CDATA[My Component]]></name>
<description><![CDATA[Download Component]]></description>
<element>pkg_mycomponent</element>
<type>package</type>
<client>0</client>
<version>1.1.1</version>
<infourl title="example.com">http://www.example.com</infourl>
<downloads>
<downloadurl type="full" format="zip">https://example.com/index.php?option=com_mycomponent</downloadurl>
</downloads>
<tags>
<tag>stable</tag>
</tags>
<maintainer><![CDATA[Amit Ray]]></maintainer>
<maintainerurl>http://www.example.com</maintainerurl>
<section>Testing</section>
<targetplatform name="joomla" version="3"/>
</update>
</updates>
Danke, das funktioniert einwandfrei – Franky
noch ein Problem: meine Update-XML und Update-Datei ist auf einer Website mit https, das scheint kein Problem, wenn ich lokal arbeiten. Dann funktioniert das Skript gut. Wenn ich das Skript auf einer Live-Site mit https ausprobiere, erhalte ich den Fehler, dass die XML-Datei von meiner Aktualisierungssite nicht gelesen werden konnte. Joomla hingegen zeigt das Update korrekt in der Update-Liste an. Könnte dieses Problem innerhalb des Skripts lösbar sein? – Franky
@Franky In der '$ url = 'http: //example.com/downloads/mycomponent.xml';' verwenden Sie http oder https? Da Sie sagen, dass dies https ist, müssen Sie diese Variable in https ändern. Also sollte Ihre URL '$ url = 'https: //example.com/downloads/mycomponent.xml' sein;' –
- 1. Erstellen Sie eine WSM inherented Nachricht
- 2. Ist eine Definition für Qt GUI verfügbar?
- 3. ist eine Quelle für Realm Architecture verfügbar?
- 4. Wie implementieren Sie die Nachrichtenübergabe für eine einzelne Nachricht?
- 5. Ist ein Werkzeug für das Flussdiagramm verfügbar?
- 6. Xcode .ipa Aktualisierungsschleife: Update verfügbar, eine aktualisierte Anwendung
- 7. Erstellen Sie eine Observable für eine Ereignisschleife
- 8. Erstellen Sie eine PDF für iPhone, wie?
- 9. Erstellen Sie eine app.config für eine Assembly
- 10. Wie überprüfen Sie, ob eine Eigenschaft in PHP verfügbar ist?
- 11. Ist eine "Django-Modell" -Typ-Abstraktion für C++ verfügbar?
- 12. TestFlight ist zur Zeit nicht verfügbar Nachricht
- 13. Wie erstellen Sie eine Legende für ein Konturdiagramm in Matplotlib?
- 14. Wie kann ich ein Bash_profile Alias für eine GroupMe bietet die Nachricht Befehl erstellen
- 15. Versuchen, eine pünktliche Update-Funktion zu erstellen
- 16. Wie eine C++ - Klasse für Python verfügbar gemacht wird, ohne ein Modul zu erstellen
- 17. Erstellen Sie ein POJO für eine geschachtelte JSON für Retrofit
- 18. So erstellen Sie eine Google Mail-API-Nachricht
- 19. Wie kann ich prüfen, ob Google Street View verfügbar ist und eine Nachricht anzeigen?
- 20. Wie erstellen Sie eine MANIFEST.MF, die verfügbar ist, wenn Sie ein in der Produktion befindliches JAR testen und ausführen?
- 21. Eine App-ID mit der ID '-' ist nicht verfügbar. Bitte geben Sie eine andere Zeichenfolge ein
- 22. Wie erstellt man eine Update-Schaltfläche für eine Datenbank?
- 23. Protobuf-Nachricht selbst ist eine Karte im Vergleich zu Nachricht hat ein Element, das eine Karte ist
- 24. Erstellen Sie eine Aktivität aus einem Update für ein bereits erstelltes Objekt in Stream-Rails?
- 25. Ist eine horizontale Bildlaufleiste für Diagramme auf Bokeh verfügbar?
- 26. Erstellen Sie eine Nachricht mit Anlage in Outlook mit AppleScript
- 27. So erstellen Sie ein Update auf iOS
- 28. Wie Sie eine Nachricht in eine BadRequestException aufnehmen?
- 29. Wie Sie eine Nachricht nach AddModuleMessage
- 30. Statische Bestätigung, ob eine Hinzufügeoperation verfügbar ist
Überprüfen Sie den Code für Akeeba Backup, der die von Ihnen beschriebene Funktionalität aufweist. –