Exemplo n.º 1
0
 /**
  * Creates the Admin Config for the plugin
  *
  * @throws Exception
  */
 private function _createConfig()
 {
     $sql = "DELETE FROM s_core_config_element_translations\n               WHERE element_id IN (SELECT s_core_config_elements.id FROM s_core_config_elements\n               WHERE s_core_config_elements.form_id = (SELECT s_core_config_forms.id FROM s_core_config_forms\n               WHERE s_core_config_forms.plugin_id = ?));\n               DELETE FROM s_core_config_elements\n               WHERE form_id = (SELECT id FROM s_core_config_forms WHERE plugin_id = ?);";
     Shopware()->Db()->query($sql, array($this->_bootstrap->getId(), $this->_bootstrap->getId()));
     $savedData = $this->_configHelper->loadData();
     $form = $this->_bootstrap->Form();
     $temporaryStates = array(array(12, "Komplett bezahlt"), array(17, "Offen"), array(20, "Wiedergutschrift"), array(21, "Überprüfung notwendig"), array(35, "Vorgang wurde abgebrochen."));
     $states = array(array(0, " *keine Statusänderung* "), array(12, "Komplett bezahlt"), array(17, "Offen"), array(20, "Wiedergutschrift"), array(21, "Überprüfung notwendig"), array(35, "Vorgang wurde abgebrochen."));
     //Grundeinstellungen
     $form->setElement('button', 'option_lable_basic_settings', array('label' => 'Plugin Mainconfiguration'));
     $form->setElement('text', 'option_general_reason_one', array('label' => 'Verwendungszweck 1:', 'description' => 'Legt den Text fest, der als Verwendungszweck bei der Überweisung angegeben' . 'wird (max. 27 Zeichen - Sonderzeichen werden ersetzt/gelöscht).', 'required' => false, 'value' => (string) $savedData['option_general_reason_one'], 'scope' => Shopware\Models\Config\Element::SCOPE_SHOP));
     $form->setElement('text', 'option_general_reason_two', array('label' => 'Verwendungszweck 2:', 'description' => 'Legt den Text fest, der als Verwendungszweck bei der Überweisung angegeben' . 'wird (max. 27 Zeichen - Sonderzeichen werden ersetzt/gelöscht).', 'required' => false, 'value' => (string) $savedData['option_general_reason_two'], 'scope' => Shopware\Models\Config\Element::SCOPE_SHOP));
     $form->setElement('boolean', 'option_general_logging', array('label' => 'Logging aktivieren ', 'description' => 'Aktiviert die Protokollierung der Aktionen des Moduls.' . ' Sollte nur zur Fehlersuche aktiviert werden.', 'required' => false, 'value' => (bool) $savedData['option_general_logging'], 'scope' => Shopware\Models\Config\Element::SCOPE_SHOP));
     $form->setElement('boolean', 'option_general_create_transactions', array('label' => 'Bestellung vor Weiterleitung erstellen', 'description' => 'Legt fest, ob die Bestellung bereits mit Weiterleitung des Käufers auf das Zahlformular von SOFORT Überweisung angelegt wird, oder erst nachdem die SOFORT Überweisung erfolgreich durchgeführt wurde.', 'required' => false, 'value' => (bool) $savedData['option_general_create_transactions'], 'scope' => Shopware\Models\Config\Element::SCOPE_SHOP));
     //Einstellungen: SofortBanking
     $form->setElement('button', 'option_lable_settings_sofortbanking', array('label' => 'Configuration: SOFORT Banking'));
     $form->setElement('select', 'option_sofortbanking_frontend_display', array('label' => 'Banner oder Text bei der Auswahl der Zahlarten:', 'description' => 'Legt fest, ob in der Auswahl der Zahlarten ein Logo und beschreibender Text' . ' oder nur ein Banner angezeigt wird.', 'store' => array(array(1, 'Banner'), array(2, 'Logo & Text')), 'value' => (int) $savedData['option_sofortbanking_frontend_display'], 'scope' => Shopware\Models\Config\Element::SCOPE_SHOP));
     $form->setElement('text', 'option_sofortbanking_key', array('label' => 'Konfigurationsschlüssel:', 'description' => 'Von SOFORT zugewiesener Konfigurationsschlüssel - dient u.a. als Passwort', 'required' => true, 'value' => (string) $savedData['option_sofortbanking_key'], 'scope' => Shopware\Models\Config\Element::SCOPE_SHOP));
     $form->setElement('boolean', 'option_sofortbanking_customer_protection', array('label' => 'Käuferschutztext/-banner anzeigen', 'description' => 'Legt fest, der Infotext bzw. der Käuferschutz Banner in der Auswahl' . ' der Zahlarten angezeigt wird. Die Anzeige darf nur durchgeführt werden,' . ' wenn im Projekt bei SOFORT der Käuferschutz aktiviert ist.', 'required' => false, 'value' => (bool) $savedData['option_sofortbanking_customer_protection'], 'scope' => Shopware\Models\Config\Element::SCOPE_SHOP));
     $form->setElement('boolean', 'option_sofortbanking_recommended_payment', array('label' => 'Empfohlene Zahlart', 'description' => 'Diese Zahlart als "Empfohlene Zahlart" bei der Auswahl der Zahlarten markieren.', 'required' => false, 'value' => (bool) $savedData['option_sofortbanking_recommended_payment'], 'scope' => Shopware\Models\Config\Element::SCOPE_SHOP));
     $form->setElement('button', 'option_lable_settings_sofortbanking_states', array('label' => 'Select a status for every Sofort paymentstatus change:'));
     $form->setElement('select', 'option_sofortbanking_state_temporary', array('label' => 'Temporär:', 'description' => 'Definieren Sie den Status für Bestellungen, die noch nicht bezahlt wurden.', 'store' => $temporaryStates, 'value' => (int) $savedData['option_sofortbanking_state_temporary'], 'scope' => Shopware\Models\Config\Element::SCOPE_SHOP));
     $form->setElement('select', 'option_sofortbanking_state_payment_confirmed', array('label' => 'Bestätigte Zahlung:', 'description' => 'Definieren Sie den Status für Bestellungen,' . ' die mit SOFORT Überweisungen erfolgreich abgeschlossen wurden.', 'store' => $states, 'value' => (int) $savedData['option_sofortbanking_state_payment_confirmed'], 'scope' => Shopware\Models\Config\Element::SCOPE_SHOP));
     $form->setElement('select', 'option_sofortbanking_state_payment_received', array('label' => 'Geldeingang:', 'description' => 'Definieren Sie den Status für Bestellungen,' . ' bei denen das Geld auf dem Konto eingegangen ist. Nur mit SOFORT Bank Konto verfügbar.', 'store' => $states, 'value' => (int) $savedData['option_sofortbanking_state_payment_received'], 'scope' => Shopware\Models\Config\Element::SCOPE_SHOP));
     $form->setElement('select', 'option_sofortbanking_state_payment_canceled', array('label' => 'Abgebrochene Zahlung:', 'description' => 'Definieren Sie den Status für Bestellungen, die abgebrochen wurden.', 'store' => $states, 'value' => (int) $savedData['option_sofortbanking_state_payment_canceled'], 'scope' => Shopware\Models\Config\Element::SCOPE_SHOP));
     $form->setElement('select', 'option_sofortbanking_state_investigation_needed', array('label' => 'Bestellung prüfen:', 'description' => 'Definieren Sie den Status für Bestellungen, die einer Überprüfung der Zahlung bedürfen.' . ' Nur mit SOFORT Bank Konto verfügbar.', 'store' => $states, 'value' => (int) $savedData['option_sofortbanking_state_investigation_needed'], 'scope' => Shopware\Models\Config\Element::SCOPE_SHOP));
     $form->setElement('select', 'option_sofortbanking_state_refund_partial', array('label' => 'Teilerstattung:', 'description' => 'Definieren Sie den Status für Bestellungen, die teilweise erstattet werden.', 'store' => $states, 'value' => (int) $savedData['option_sofortbanking_state_refund_partial'], 'scope' => Shopware\Models\Config\Element::SCOPE_SHOP));
     $form->setElement('select', 'option_sofortbanking_state_refund_full', array('label' => 'Erstattung:', 'description' => 'Definieren Sie den Status für Bestellungen, die vollständig erstattet werden.', 'store' => $states, 'value' => (int) $savedData['option_sofortbanking_state_refund_full'], 'scope' => Shopware\Models\Config\Element::SCOPE_SHOP));
     //Einstellungen: iDeal
     $form->setElement('button', 'option_lable_settings_ideal', array('label' => 'Configuration: iDeal'));
     $form->setElement('select', 'option_ideal_frontend_display', array('label' => 'Banner oder Text bei der Auswahl der Zahlarten:', 'description' => 'Legt fest, ob in der Auswahl der Zahlarten ein Logo und' . ' beschreibender Text oder nur ein Banner angezeigt wird.', 'store' => array(array(1, 'Banner'), array(2, 'Logo & Text')), 'value' => (int) $savedData['option_ideal_frontend_display'], 'scope' => Shopware\Models\Config\Element::SCOPE_SHOP));
     $form->setElement('text', 'option_ideal_key', array('label' => 'Konfigurationsschlüssel:', 'description' => 'Von SOFORT zugewiesener Konfigurationsschlüssel.' . ' Kann dem Webinterface unter Meine Projekte->[Ideal Projektname]' . ' als Konfiurationsschlüssel entnommen werden.', 'required' => true, 'value' => (string) $savedData['option_ideal_key'], 'scope' => Shopware\Models\Config\Element::SCOPE_SHOP));
     $form->setElement('text', 'option_ideal_project_password', array('label' => 'Projektpasswort', 'description' => '', 'required' => true, 'value' => (string) $savedData['option_ideal_project_password'], 'scope' => Shopware\Models\Config\Element::SCOPE_SHOP));
     $form->setElement('text', 'option_ideal_notification_password', array('label' => 'Benachrichtigungspasswort', 'description' => '', 'required' => true, 'value' => (string) $savedData['option_ideal_notification_password'], 'scope' => Shopware\Models\Config\Element::SCOPE_SHOP));
     $form->setElement('boolean', 'option_ideal_recommended_payment', array('label' => 'Empfohlene Zahlart', 'description' => 'Diese Zahlart als "Empfohlene Zahlart" bei der Auswahl der Zahlarten markieren.', 'required' => false, 'value' => (bool) $savedData['option_ideal_recommended_payment'], 'scope' => Shopware\Models\Config\Element::SCOPE_SHOP));
     $form->setElement('button', 'option_lable_settings_ideal_states', array('label' => 'Select a status for every iDeal paymentstatus change:'));
     $form->setElement('select', 'option_ideal_state_temporary', array('label' => 'Temporär:', 'description' => 'Definieren Sie den Status für Bestellungen, die noch nicht bezahlt wurden.', 'store' => $temporaryStates, 'value' => (int) $savedData['option_ideal_state_temporary'], 'scope' => Shopware\Models\Config\Element::SCOPE_SHOP));
     $form->setElement('select', 'option_ideal_state_payment_pending', array('label' => 'Schwebende Zahlung:', 'description' => 'Definieren Sie den Status für Bestellungen, die fertig bezahlt wurden,' . ' wobei iDEAL die Zahlung noch nicht als garantiert bestätigt hat.', 'store' => $states, 'value' => (int) $savedData['option_ideal_state_payment_pending'], 'scope' => Shopware\Models\Config\Element::SCOPE_SHOP));
     $form->setElement('select', 'option_ideal_state_payment_received', array('label' => 'Bestätigte Zahlung:', 'description' => 'Definieren Sie den Status für Bestellungen,' . ' die fertig bezahlt und durch iDEAL als garantiert bestätigt wurden.', 'store' => $states, 'value' => (int) $savedData['option_ideal_state_payment_received'], 'scope' => Shopware\Models\Config\Element::SCOPE_SHOP));
     $form->setElement('select', 'option_ideal_state_payment_canceled', array('label' => 'Abgebrochene Zahlung:', 'description' => 'Definieren Sie den Status für Bestellungen, die abgebrochen wurden.', 'store' => $states, 'value' => (int) $savedData['option_ideal_state_payment_canceled'], 'scope' => Shopware\Models\Config\Element::SCOPE_SHOP));
     $form->setElement('select', 'option_ideal_state_storno', array('label' => 'Stornierte Zahlung:', 'description' => 'Definieren Sie den Status für Bestellungen, die durch iDEAL abgebrochen wurden.', 'store' => $states, 'value' => (int) $savedData['option_ideal_state_storno'], 'scope' => Shopware\Models\Config\Element::SCOPE_SHOP));
     $form->setElement('select', 'option_ideal_state_refund_partial', array('label' => 'Teilerstattung:', 'description' => 'Definieren Sie den Status für Bestellungen, die teilweise erstattet werden.', 'store' => $states, 'value' => (int) $savedData['option_ideal_state_refund_partial'], 'scope' => Shopware\Models\Config\Element::SCOPE_SHOP));
     $form->setElement('select', 'option_ideal_state_refund_full', array('label' => 'Erstattung:', 'description' => 'Definieren Sie den Status für Bestellungen, die vollständig erstattet werden.', 'store' => $states, 'value' => (int) $savedData['option_ideal_state_refund_full'], 'scope' => Shopware\Models\Config\Element::SCOPE_SHOP));
 }
Exemplo n.º 2
0
    /**
     * Registers a plugin in the collection.
     *
     * @param   Shopware_Components_Plugin_Bootstrap $plugin
     * @return  bool
     */
    public function uninstallPlugin(Shopware_Components_Plugin_Bootstrap $plugin)
    {
        $result = $plugin->disable();
        $success = is_bool($result) ? $result : !empty($result['success']);
        if($success) {
            $result = $plugin->uninstall();
            $success = is_bool($result) ? $result : !empty($result['success']);
        }
        if ($success) {
            $id = $plugin->getId();
            $data = array(
                'installation_date' => NULL,
                'active' => 0
            );
            $this->Application()->Db()->update('s_core_plugins', $data, array('id=?' => $id));

            $sql = 'DELETE FROM `s_core_subscribes` WHERE `pluginID`=?';
            $this->Application()->Db()->query($sql, array($id));

            $sql = 'DELETE FROM `s_crontab` WHERE `pluginID`=?';
            $this->Application()->Db()->query($sql, array($id));

            /** @var $em Shopware\Components\Model\ModelManager */
            $em = $this->Application()->Models();

            if($plugin->hasForm()) {
                $form = $plugin->Form();
                if($form->getId()) {
                    $em->remove($form);
                } else {
                    $em->detach($form);
                }
                $em->flush();
            }

            $query = 'DELETE FROM Shopware\Models\Menu\Menu m WHERE m.pluginId = ?0';
            $query = $em->createQuery($query);
            $query->execute(array($id));

            $query = 'DELETE FROM Shopware\Models\Shop\Template t WHERE t.pluginId = ?0';
            $query = $em->createQuery($query);
            $query->execute(array($id));
        }
        return $result;
    }