WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

You are not logged in.

#1 06.11.2020 09:54:00

florian
Administrator

Droplet für Tiny-Newsletter-Archiv

Das Droplet [[tnlarchive]] erzeugt eine nach Publikationsdatum absteigend sortierte, mit der Web-Ansicht des jeweiligen Newsletters sortierte Liste. Es werden nur die veröffentlichten Newsletter angezeigt (logisch).

D.h. Droplet über Addons > Droplets > Import installieren und dann einfach in einem Wysiwyg- oder Code2(HTML)-Abschnitt [[tnlarchive]] aufrufen.

So sieht das dann aus:
https://wbce.org/de/news-infos/newsletterachiv/


Code allein macht nicht glücklich. Jetzt spenden!

Offline

Liked by:

Slugger, hpzaun, berny, giz, bernd

#2 05.03.2021 19:06:07

berny
Member

Re: Droplet für Tiny-Newsletter-Archiv

Ich beschäftige mich das erste mal mit TinyNewsletter, deshalb hier ein kleines workaround:

Um die vorhanden Gruppen ansteuern zu können, kann man diese mit $group definieren:

[== PHP ==]
//: set group permissions
(!isset($group)) ? ($group = 1) : ($group = $group+1);
//:
global $database, $wb;
$sql = 'SELECT * from `'.TABLE_PREFIX.'mod_tiny_newsletter_newsletters` WHERE `tnl_min_active` <= '.$group.' ORDER BY `tnl_published_when` DESC';
$resultdb = $database->query($sql);
	$out = '<ul class="tnlarchive">';
	while( ($result = $resultdb->fetchRow())) {
		$outdate = date(DATE_FORMAT, $result['tnl_published_when']);
		$out.='<li><a target="_blank" href="'.WB_URL.'/modules/tiny_newsletter/web.php?n='.$result['tnl_id'].'">'.$outdate.' | '.$result['tnl_subject'].'</a></li>';
	}
	$out.='</ul>';	
return $out;

Aufruf mit

[[tnlarchive?group=2]]

Es empfiehlt sich, die Guppen in der languages/DE.php bzw EN.php zu definieren

$MOD_TINY_NEWSLETTER['NL_min_statusArr'] = array('1: Alle', '', '3: Mitglieder und Admin','4: Nur Admin', '');

Derzeit sind fix die Gruppen 1, 3 und 4 definiert, warum auch immer die 2 fehlt.
Obiges ist ein Beispiel, hier werden dann in den entsprechenden Feldern immer die Zahlen der Gruppe mit ausgeworfen.

Wie ich das noch in den eigentlichen Aufruf des Archivs implementiere, weiß ich noch nicht.
Derzeit kann ansich jeder die Newsletter lesen, wenn nicht die Gruppe definiert ist.
Aber das sollte ja so nicht sein.
Übergeben will ich aber die group auch nicht über die Url oder cookie.
Ev mit einer verschlüsselten Url.
Muss erst drüber schlafen, oder jemand hat eine Idee.
Das mit dem Aufruf mit web.php?n=1 gefällt mir so nicht, durch die Zahl kann man sich irgendwie durch die ganzen Newsletter zappen, ohne irgendeine Gruppenberechtigung zu erkennen.
Da würde das ganze Gruppendingsda nix bringen...

Offline

#3 06.03.2021 15:38:32

berny
Member

Re: Droplet für Tiny-Newsletter-Archiv

OK, weitere Überlegung:
Man müsste es schaffen, die web.php in ein droplet zu portieren.

Möglichkeit 1:
Die Seite wird für eine bestimmte Usergruppe (Members) freigegeben.
$url_code = Verschlüsselung Nummer und Berechtigung.
Dort im Droplet bei der Liste (Links) entsprechend mit url_code listen.
Weiters bei vorhandensein url_code diesen wieder entschlüsseln.
Im weiteren Aufruf wird der Inhalt darunter mit einem zweiten Droplet (oder auch in einem Zusammengefasst) aufgerufen, wo anhand der entschlüsselten Nummer und Berechtigung der Inhalt geprüft wird.

Möglichkeit 2:
web.php umbenennen, Aufruf im Droplet anpassen.
Mittels Droplet File-get-content den Inhalt der umbenannten web.php aufrufen und auswerfen.
Gefällt mir aber nicht so sehr wie Möglichkeit 1.

Bin bis dato nicht dazu gekommen, Möglichkeit 1 durchzucoden....

Ev hat jemand einen Denkansatz.
Immerhin müssen ja die Berechtigungen usw abgefragt und ausgeworfen werden.....

Auch hier gilt es, genau diese Inhalte in der Url zu verschlüsseln und im Droplet zu entschlüsseln, sonst könnte ich mit dem Aufruf in der Url entsprechend manipulieren und Berechtigungen übergehen.

Möglichkeit 3:
Berechtigungen anhand der Usergruppen im Droplet zu bestimmen.
Ist für den Endandwender wieder etwas aufwendiger, muss er ja wissen, welche Usergruppen welche Berechtigungen haben soll.

Offline

Board footer

up