WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

You are not logged in.

#1 23.04.2024 11:11:21

kleo
Member

Newsliste mit dem Keywords eines Beitrags

Moin!

Ich möchte gerne am Ende eines Newsbeitrags eine Liste von News dartstellen, die den gleichen Keyword (Tag) haben.
So was wie:
"Andere News zu diesem Thema"

Da die einzelne Newsbeitrage unterschiedliche Tags haben lönnen ist es nicht möglich im Vorfeld beim "News with Images anywhere" die Tags fest zu definieren.
Hier muss man also irgendwie dynamisch aggieren.

Wie kann ich diesen Parameter (Tags) aus dem Newsbeitrag einlesen und dem Droplet Anywhere übergeben?

Oder gibt es eine andere Lösung "Andere News zu diesem Thema" zu erstellen?

Offline

#2 18.05.2024 22:28:11

kleo
Member

Re: Newsliste mit dem Keywords eines Beitrags

Ich suche weiter nach einer Lösung Liste mit verwandten NWI-Beiträgen zu erstellen.

Bei den Topics war das schon ingriert, da konnte man jedem Topic andere zuweisen...

Die Tags werden beim NWI-Beitrag ausgelesen, wenn ihm welche  zugewiesen sind. Und das NWI-Modul generiert schon einen Link zu Liste mit den anderen Beiträgen, die die gleichen Tags haben. Man muss noch daraug klicken...

Der moderne User macht das meistens nicht, er will (er erwartet sogar), dass ihm gleich so eine Liste präsentiert wird, wo er dann nach Überschriften und Shorts enrscheidet, on er weiter guckt oder nicht...

Hat  jemand vielleicht einen Tipp für mich, wie ich es lösen könnte?

Offline

#3 24.05.2024 15:05:57

webbird
Administrator

Re: Newsliste mit dem Keywords eines Beitrags

Mach einen Feature Request auf GitHub auf. Vielleicht nimmt sich jemand dessen an. Wenn es dringend ist, könnte ein Auftrag gegen Bezahlung helfen.

https://github.com/WBCE/News-with-Images/issues


Ich habe eine Amazon-Wishlist. wink Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal

Offline

#4 25.05.2024 09:17:25

florian
Administrator

Re: Newsliste mit dem Keywords eines Beitrags

Das Ansinnen ist ja nicht völlig abwegig.
Theoretisch ließe sich das ja ganz einfach mit NWI Anywhere-Droplet abbilden - man müsste dafür nur an die Tags ohne Formatierung herankommen, aber das gelingt mir aus unerfindlichen Gründen nicht.

Ich habe in der view.php die Schleife, die die Tags zieht, ergänzt

foreach ($tags as $i => $tag) {
		$tagListArray[] = $tag['tag'];
        $tags[$i] = "<span class=\"mod_nwi_tag\" id=\"mod_nwi_tag_".POST_ID."_".$i."\""
                  . (!empty($tag['tag_color']) ? " style=\"background-color:".$tag['tag_color']."\"" : "" ) .">"
                  . "<a href=\"".$wb->page_link(PAGE_ID)."?tags=".$tag['tag']."\">".$tag['tag']."</a></span>";
        if(!isset($page_keywords[$tag['tag']])) {
            $page_keywords[] = htmlspecialchars($tag['tag'], ENT_QUOTES | ENT_HTML401);
        }
    }
	$tagList = implode(',',$tagListArray);

und unten nach

'TAGS'            => implode(" ", $tags),

eingefügt

'TAGLIST'		  => $tagList,

und in der functions.php.inc in der function mod_nwi_replacements() auch nach

'TAGS',                         // tags

eingefügt

'TAGLIST',						// tags without formatting


Aber wenn ich dann in den Seiteneinstellungen analog zu [TAGS] den vermeintlichen Platzhalter [TAGLIST] ergänze, wird dieser stumpf als Text ausgegeben - also nur "[TAGLIST]" statt z.B. "Obst,Gemüse".

Müssen die Platzhalter noch irgendwo anders "angemeldet" werden?

Edit: Ansatz war doch richtig, war nur an fehlenden Umbrüchen gescheitert, die beim Speichern entstanden waren, sodass der zusätzliche Platzhalter in der functions.php als Kommentar behandelt wurde.

Mit der oben genannten Erweiterung kann man dann in der Nachrichten-Fußzeile oder wo auch immer das (gem. Anleitung zuvor anzulegende) Droplet getNewsItems aufrufen, und

[[getNewsItems?tags='[TAGLIST]']]

gibt dann die Links zurück. (Weitere Parameter sind möglich, siehe a.a.O. Beachte die Hochkommata um [TAGSLIST].)

Das klappt allerdings nur mit Tags ohne Umlaute. Um auch deren Verwendung zu ermöglichen, ist dann noch eine Anpassung in der news_img_anywhere/include.php erforderlich - nach Zeile 231

$tags[$i] = $database->escapeString($t);

einfügen:

$tags[$i] = str_replace(array('&auml;','&ouml;','&uuml','&Auml;','&Ouml;','&Uuml;','&szlig'),array('ä','ö','ü','Ä','Ö','Ü','ß'),$tags[$i]);

Das fängt jetzt nur die deutschen Umlaute und ß ab, weitere Sonderzeichen in den Arrays (als HTML-Entität und in Klarschrift) einfügen.

Bitte. Danke. Gern geschehen.

Last edited by florian (25.05.2024 16:13:23)


Nicht ärgern. Nur wundern.

Offline

#5 25.05.2024 22:21:18

kleo
Member

Re: Newsliste mit dem Keywords eines Beitrags

Hallo Florian,

vielen Dank für die Funktion!

Sie ist wirklich sehr hilfreich. Und so eine Funktion fehlte bis jetzt.
Ich habe selbst versucht das zu lösen, bin aber an meine Wissensgrenze angekommen.

Nochmal vielen Dank dafür!

Offline

#6 25.05.2024 22:32:14

kleo
Member

Re: Newsliste mit dem Keywords eines Beitrags

Ich teste die Funktion weiter und habe ein Manco festgestellt:

wenn ein NWI-Beitrag kein Tag hat, erscheint bei seinem Aufruf weißer Bildschirm und beim Errorlog viewer steht:

[Warning] /modules/news_img/view.php:[98] from /framework/frontend.functions.php:[485] block_contents "Undefined variable $tagListArray"
[Exception] There was an unknown exception: implode(): Argument #1 ($pieces) must be of type array, string given in line (98) of /modules/news_img/view.php

Offline

#7 26.05.2024 07:24:50

florian
Administrator

Re: Newsliste mit dem Keywords eines Beitrags

Ja, stimmt. Da war wohl bei meinen verzweifelten Versuchen eine Variablendefinition auf der Strecke geblieben.
Füge in der view.php, nach Zeile 75

$page_keywords = array();

ein:

$tagListArray  = array();

Damit dann bei Beiträgen ohne Tags der NWI-anywhere-Aufruf nicht dazu führt, dass alle News ausgegeben werden, ergänze im Code des Droplets getNewsItems als erste Zeile noch

if (isset($tags) && $tags=='\'\'') { return; }

Nicht ärgern. Nur wundern.

Offline

#8 26.05.2024 10:40:57

kleo
Member

Re: Newsliste mit dem Keywords eines Beitrags

Hallo Florian,

es funktioniert.

Beim Errorlog viewer gibt es nach dem Aufruf von Droplett aber gleich zwei solche Warnungen:

[Warning] /modules/droplets/droplets.php:[73] from /modules/droplets/opf_filter_droplets.php:[70] evalDroplets "Undefined array key 1"
[Warning] /modules/droplets/droplets.php:[73] from /modules/droplets/opf_filter_droplets.php:[70] evalDroplets "Undefined array key 1"

Offline

#9 26.05.2024 16:04:58

florian
Administrator

Re: Newsliste mit dem Keywords eines Beitrags

Seltsam, kann ich hier nicht reproduzieren.
Wie sieht dein Dropletcode aus, und wie lautet der vollständige Aufruf?


Nicht ärgern. Nur wundern.

Offline

#10 26.05.2024 18:44:43

kleo
Member

Re: Newsliste mit dem Keywords eines Beitrags

Beim Rumexperimentieren habe ich im Dropletaufruf die doppelte Eingabe von tags übersehen...
Schei...e!

Jetzt läuft alles korrekt.

Vielen Dank für diese sinnvolle Erweiterung !

Offline

#11 27.05.2024 22:41:57

kleo
Member

Re: Newsliste mit dem Keywords eines Beitrags

Eine kleine Frage noch:

für das Droplet sind eigene Templates vorgesehen (in modules/news_img_anywhere/templates)

Und bei Templates sind Bedingungen wie "IF" möglich.

Ich möchte eine Bedingung einfügen:

      "wenn mehr als 1 NWI-Beitrag vorhanden ist"

Wie definiere ich eine solche Bedingung im Tempate?

Last edited by kleo (27.05.2024 22:42:28)

Offline

#12 28.05.2024 07:16:13

florian
Administrator

Re: Newsliste mit dem Keywords eines Beitrags

    {% if   newsItems | length  > 1 %}
    
	<p>Lesen Sie folgende Beiträge zum selben Thema</p>
	
	{% else %}
	
		<p>Lesen Sie folgenden Beitrag zum selben Thema</p>

	{% endif %}

Nicht ärgern. Nur wundern.

Offline

#13 28.05.2024 22:52:09

kleo
Member

Re: Newsliste mit dem Keywords eines Beitrags

Danke sehr!

Offline

Board footer

up