[3.2] Newsletter

Du suchst eine bestimmte Extension, weißt aber nicht genau wo bzw. ob sie überhaupt existiert? Du kannst hier die von dir gewünschte/gesuchte Extension beschreiben ...
Falls ein Extension-Autor eine der Anfragen hier aufnimmt, um eine neue Extension zu entwickeln, geht's in Extensions in Entwicklung weiter.
chewychurl
Mitglied
Beiträge: 13
Registriert: 21.06.2012 13:46

Re: [3.2] Newsletter

Beitrag 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
Benutzeravatar
Crizzo
Administrator
Administrator
Beiträge: 11951
Registriert: 19.05.2005 21:45
Kontaktdaten:

Re: [3.2] Newsletter

Beitrag 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 :)
chewychurl
Mitglied
Beiträge: 13
Registriert: 21.06.2012 13:46

Re: [3.2] Newsletter

Beitrag von chewychurl »

Da hast du recht, Schritt 2 habe ich vergessen. Jetzt alles gemacht, neu hochgeladen, wieder keine Checkbox bei den Massenmails... :-?
Benutzeravatar
Crizzo
Administrator
Administrator
Beiträge: 11951
Registriert: 19.05.2005 21:45
Kontaktdaten:

Re: [3.2] Newsletter

Beitrag von Crizzo »

Ich habs mir mal auf seinem Server/ACP angeschaut, die Extension war nicht vollständig hochgeladen. Jetzt geht es.
chewychurl
Mitglied
Beiträge: 13
Registriert: 21.06.2012 13:46

Re: [3.2] Newsletter

Beitrag von chewychurl »

Vielen Dank auch hier nochmal!
Kizu
Mitglied
Beiträge: 543
Registriert: 11.05.2007 15:19
Wohnort: Bremen
Kontaktdaten:

Re: [3.2] Newsletter

Beitrag 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
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17399
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Re: [3.2] Newsletter

Beitrag 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.
Kizu
Mitglied
Beiträge: 543
Registriert: 11.05.2007 15:19
Wohnort: Bremen
Kontaktdaten:

Re: [3.2] Newsletter

Beitrag 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
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17399
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Re: [3.2] Newsletter

Beitrag 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
Antworten

Zurück zu „Extension Suche/Anfrage“