Seite 6 von 6

Re: [3.2] Newsletter

Verfasst: 19.08.2021 12:05
von chewychurl
Leider auch kein Erfolg.

Ich habe jetzt die komplette Extension noch einmal gelöscht. Interessanterweise beschwert sich die Erweiterungsverwaltung immer noch:

Deaktivierte Erweiterungen
Die Erweiterung „phpbbde/newsletter“ ist ungültig.
Die angegebene Datei konnte nicht gefunden werden: ./../ext/phpbbde/newsletter/composer.json

Re: [3.2] Newsletter

Verfasst: 19.08.2021 12:07
von Crizzo
Die Schritte sind folgende:
  1. Extension Deaktivieren
  2. Extension: Arbeitsdaten löschen
  3. Extension-Dateien auf dem Server löschen
Ich vermute du hast Schritt 2 vergessen oder Schritt 3 vor 2 gemacht.

Also: Extension-Daten wieder hochladen, der Version die du zuletzt aktiv hattest und nochmal von Vorne :)

Re: [3.2] Newsletter

Verfasst: 19.08.2021 12:09
von chewychurl
Da hast du recht, Schritt 2 habe ich vergessen. Jetzt alles gemacht, neu hochgeladen, wieder keine Checkbox bei den Massenmails... :-?

Re: [3.2] Newsletter

Verfasst: 19.08.2021 12:37
von Crizzo
Ich habs mir mal auf seinem Server/ACP angeschaut, die Extension war nicht vollständig hochgeladen. Jetzt geht es.

Re: [3.2] Newsletter

Verfasst: 19.08.2021 12:49
von chewychurl
Vielen Dank auch hier nochmal!

Re: [3.2] Newsletter

Verfasst: 26.02.2022 09:39
von Kizu
Moin,

vielen Dank für diese Erweiterung.
Ich habe ein kleines Forum und würde gerne die Möglichkeit haben, die Newsletterbestellungen über das ACP zu regeln (wenn mir jemand eine Mail schickt, dass er oder sie den Newsletter bestellen oder abbestellen möchte) Nur finde ich keine Option dafür in den Einstellungen des Benutzers.

Wie kann ich das dort einbauen, ohne direkt in der Datenbank arbeiten zu müssen?

MfG, Daniel

Re: [3.2] Newsletter

Verfasst: 26.02.2022 10:51
von Dr.Death
Es ist vorgesehen, das der User selbst den Newsletter abonnieren kann:

Persönlicher Bereich (UCP) -->
Einstellungen -->
Persönliche Einstellungen -->
Newsletter:
Mit „Ja“ wird dir regelmäßig der Newsletter zugesendet.

Re: [3.2] Newsletter

Verfasst: 26.02.2022 11:46
von Kizu
Hallo Dr. Death,

Das ist mir klar. Nur möchte ich die Möglichkeit haben, dies "im Auftrag des Benutzers" einstellen zu können. Bei meinem kleinen Forum gibt es einen großen Anteil von relativ unversierten Benutzern, denen ich diese Arbeit abnehmen möchte, wenn sie es wollen.

Ich habe mal die entsprechenden Änderungen selbst durchgeführt, ging einfacher als ich dachte:

In der Datei phpbbde/newsletter/event/listener.php

Code: Alles auswählen

@@ -104,10 +104,13 @@ class listener implements EventSubscriberInterface
 				array('post_newsletter_archive', 50), // Workaround for event since there is no _after event
 			),
 			'core.ucp_prefs_modify_common'			=> 'modify_ucp_prefs',
 			'core.ucp_prefs_personal_update_data'	=> 'update_ucp_newsletter',
 			'core.permissions'						=> 'add_permissions',
+			'core.acp_users_prefs_modify_data'			=> 'acp_users_newsletter_settings_get', // For the ACP user setting
+			'core.acp_users_prefs_modify_template_data'	=> 'acp_profile_newsletter_template', // For the ACP user setting
+			'core.acp_users_prefs_modify_sql'			=> 'acp_profile_newsletter_set', // For the ACP user setting
 		);
 	}
 
 	/**
 	 * Add the extension's permissions to phpBB
@@ -288,6 +291,52 @@ class listener implements EventSubscriberInterface
 	{
 		$event['sql_ary'] += array(
 			'user_allow_newsletter'		=> $this->request->variable('newsletter', (bool) $this->user->data['user_allow_newsletter']),
 		);
 	}
+	
+	public function acp_users_newsletter_settings_get($event)
+	{
+		$data = $event['data'];
+		$user_row = $event['user_row'];
+		$data = array_merge($data, array(
+					'user_allow_newsletter'			=> $this->request->variable('newsletter', (bool) $user_row['user_allow_newsletter']),
+				));
+		$event['data'] = $data;
+	}
+
+	/**
+	 * Assign template data in the ACP
+	 *
+	 * @param object $event The event object
+	 * @return null
+	 * @access public
+	 */
+	public function acp_profile_newsletter_template($event)
+	{
+		$this->user->add_lang_ext('phpbbde/newsletter', 'common');
+		$data = $event['data'];
+		$user_prefs_data = $event['user_prefs_data'];
+		$user_prefs_data = array_merge($user_prefs_data, array(
+			'NEWSLETTER'			=> $data['user_allow_newsletter'],
+		));
+		$event['user_prefs_data'] = $user_prefs_data;
+		
+	}
+
+	/**
+	 * Add user options' state into the sql_array
+	 *
+	 * @param object $event The event object
+	 * @return null
+	 * @access public
+	 */
+	public function acp_profile_newsletter_set($event)
+	{
+		$data = $event['data'];
+		$sql_ary = $event['sql_ary'];
+		$sql_ary = array_merge($sql_ary, array(
+			'user_allow_newsletter'		=> $this->request->variable('newsletter', (bool) $event['data']['user_allow_newsletter']),
+		));
+		$event['sql_ary'] = $sql_ary;
+	}
 }
Und die Datei phpbbde/newsletter/adm/style/event/acp_users_prefs_append.html neu erstellen:

Code: Alles auswählen

* ASCII text
<fieldset>
<legend>{{ lang('NEWSLETTER') }}</legend>
<dl>
	<dt><label for="newsletter1">{{ lang('NEWSLETTER') }}{{ lang('COLON') }}</label><br><span>{{ lang('NEWSLETTER_EXPLAIN') }}</span></dt>
	<dd>
		<label for="newsletter1"><input type="radio" name="newsletter" id="newsletter1" value="1"{% if NEWSLETTER %} checked="checked"{% endif %} /> {{ lang('YES') }}</label>
		<label for="newsletter0"><input type="radio" name="newsletter" id="newsletter0" value="0"{% if not NEWSLETTER %} checked="checked"{% endif %} /> {{ lang('NO') }}</label>
	</dd>
</dl>
</fieldset>
Crizzo hat geschrieben: 05.03.2018 21:52 Ist halt noch nicht perfekt und noch nicht ganz fertig, aber funktionieren tut sie schon. Über Pull Requests mit Verbesserungen und Bugfixes freuen wir uns auch. 8)
Die Veränderung kann gerne in der Erweiterung verwendet werden. Wie ein Pull-Request funktioniert weiß ich nicht, aber vielleicht könnt ihr alles benötigte ja auch oben herauslesen.

MfG, Daniel

Re: [3.2] Newsletter

Verfasst: 26.02.2022 14:09
von Dr.Death
Schöne Umsetzung, vielen Dank.

Ich hab das Projekt gecloned, Deine Änderungen eingepflegt und daraus folgenden Pull Request erzeugt:
https://github.com/phpbb-de/phpbb-ext-n ... er/pull/21