Bootstrap->install() - Notification im Backend erzeugen

Hallo Zusammen Ich prüfe bei der Installation ob die Datenbanktabellen schon existieren und lege sie nur an, wenn sie nicht existieren. Nun möchte ich den Backend Benutzer mit einer Notification darüber informieren, dass die Tabellen schon existierten und er ev. manuell ein Update machen muss. Im Extjs kann ich Notifications erzeugen mit Shopware.Notification.createGrowlMessage('title','text','plugin','class',true); Wie kann ich innerhalb der install() Funktion im Bootstrap eine solche Notification auslösen? Shopware selbst erzeugt ja auch Notifications, wenn während der Installation Exceptions geworfen werden oder anderweitige Fehler auftreten.

Hallo, du kannst mithilfe von throw new Exception('error message'); die Fehlermeldung automatisch in einer Growl Notification darstellen. Beispiel Plugin: [code]<?php class Shopware_Plugins_Frontend_SwagException_Bootstrap extends Shopware_Components_Plugin_Bootstrap
{
public function getVersion() {
return ‘1.0.0’;
}

public function getInfo()
{
    return array(
        'label' => 'Beispiel Fehlermeldung' ); } public function install() { // Check if database table exists if (!$this-\>checkDatabaseTables()) { throw new Exception('Die Datenbanktabellen sind nicht vorhanden.'); } // other install stuff.. // Install successfull return true; } private function checkDatabaseTables() { return false; } }[/code] Innerhalb der checkDatabaseTables() kannst du nun deine Datenbank Prüfung vornehmen und true oder false zurückgeben. Ich hoffe ich konnte dir weiterhelfen.

Ich glaube, du hast mich falsch verstanden. Ich möchte die Installation eben NICHT abbrechen, sondern den Nutzer nur darüber informieren, das er ein update machen muss (updaten geht ja bekanntlich nur, wenn die Extension installiert ist. Deinstalliert der Benutzer das Plugin und versucht eine neuere Version zu installieren kann er damit jedoch das update und damit den DB update umgehen.) Zudem: Exceptions sollte man nie für Programmflüsse einsetzen. Nur um eine Notification anzuzeigen eine Exception zu werfen ist extrem unschön.

Das ist nicht möglich. Viele Grüße

Hi, mittlerweile ist es möglich, dem Nutzer eine Notification nach erfolgter Plugin-Installation/Update anzeigen zu lassen. Gebe dazu ein Array aus der update() / install() Methode mit einem Element ‚message‘ zurück, z.B.:

 return array( 'success' =\> true, 'message' =\> $message );

 

Beste Grüße

Andre