/** * 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)); }
/** * 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; }