WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

You are not logged in.

#1 13.04.2025 18:24:11

kleo
Member

NWI beim fehlenden Bild automatisch ein vordefiniertes Bild anzeigen

Moin!

Das NWI-Modul  kann man für verschiedene Zwecke verwenden. Z.B. Produktverzeichnisse erstellen.

Wie kann ich es machen, dass beim fehlenden Produktbild ein vordefiniertes Bild (z.B. Nophoto) gezeigt wird?
Es muss aber nur für eine NWI-Seite wirken, nicht für alle.

Kann man bei der Einstellungen der NWI-Section etwas (im Prinzip eine IF-Bedingung) eingeben, damit es funktioniert?

Last edited by kleo (13.04.2025 18:25:11)

Offline

#2 13.04.2025 18:36:31

florian
Administrator

Re: NWI beim fehlenden Bild automatisch ein vordefiniertes Bild anzeigen

Das macht NWI schon. Wenn's kein Bild gibt, wird ein transparentes PNG ausgegeben (nopic.png).
https://github.com/WBCE/News-with-Image … .php#L1490
Wenn das auf bestimmten NWI-Seiten anders aussehen soll, müsste da dann noch eine Abfrage der Page-ID drumherumgestrickt werden.


Sorgen sind wie Nudeln: man macht sich meist zu viele.

Offline

#3 15.04.2025 11:45:00

kleo
Member

Re: NWI beim fehlenden Bild automatisch ein vordefiniertes Bild anzeigen

Ich habe es folgender Weise gelöst:

in der Zeile ca. 1451:

function mod_nwi_post_process($post,$section_id,$users)
{
    global $MOD_NEWS_IMG, $TEXT, $admin;

durch

function mod_nwi_post_process($post,$section_id,$users)
{
    global $MOD_NEWS_IMG, $TEXT, $admin, $page_id;

ergänzt.

Und in der Zeile ca. 1489

    // posting (preview) image
    if ($post['image'] != "") {
        $imgdata = mod_nwi_img_get($post['image']);
        $post_img = "<img src='".WB_URL.MEDIA_DIRECTORY.'/.news_img/'.$post['image']."' alt='".htmlspecialchars($post['title'], ENT_QUOTES | ENT_HTML401)."' />";
    } else {
        $post_img = "<img src='".WB_URL."/modules/news_img/images/nopic.png' alt='empty placeholder' style='width:".$previewwidth."px;' />";
    }
    $post['post_img'] = $post_img;

so angepasst:

   // posting (preview) image
	if ($post['image'] != "") {
		$imgdata = mod_nwi_img_get($post['image']);
		$post_img = "<img src='".WB_URL.MEDIA_DIRECTORY.'/.news_img/'.$post['image']."' alt='".htmlspecialchars($post['title'], ENT_QUOTES | ENT_HTML401)."' />";
	} else {
		$custom_img_path = WB_PATH.MEDIA_DIRECTORY.'/.news_img/noimage/'.$page_id.'.jpg';
		if (file_exists($custom_img_path)) {
			$post_img = "<img src='".WB_URL.MEDIA_DIRECTORY."/.news_img/noimage/".$page_id.".jpg' alt='no image for page ".$page_id."' style='width:".$previewwidth."px;' />";
		} else {
			$post_img = "<img src='".WB_URL."/modules/news_img/images/nopic.png' alt='empty placeholder' style='width:".$previewwidth."px;' />";
		}
	}
	$post['post_img'] = $post_img;

Im Verzeichniss /media/.news_img/ einen neuen Ordner namens noimage angelegt und dorthin eine JPG-Datei mit dem Namen der PageID gelegt.

Es scheint zu funktionieren.

Vielleicht kann man es standardmäß für die nächste Version des NWI-Moduls einfügen.

Offline

Liked by:

florian

#4 15.04.2025 16:07:03

florian
Administrator

Re: NWI beim fehlenden Bild automatisch ein vordefiniertes Bild anzeigen

Prima, dass du selbst eine Lösung entwickelt hast.
An sich könnte das so übernommen werden. Einziger Wermutstropfen ist, dass das Verzeichnis /media/.news_img bewusst bzw. gewollt nicht in der Medienverwaltung im Backend angezeigt wird, deshalb wäre zu überlegen, die Platzhalterbilder auch unter modules/news_img/images zu speichern. Da könnten sie dann zumindest mit dem AFE hochgeladen/gelöscht werden.
Oder halt außerhalb von .news_img, also direkt unter media und dann als placeholder_42.jpg o.ä.

(Die beste Lösung wäre natürlich, direkt bei den NWI-Seiteneinstellungen einen Custom-Placeholder-Upload zu haben...)


Sorgen sind wie Nudeln: man macht sich meist zu viele.

Offline

#5 18.04.2025 22:08:57

kleo
Member

Re: NWI beim fehlenden Bild automatisch ein vordefiniertes Bild anzeigen

Da bei den NWI Einstellungen nicht nur die Breite, sondern auch die Höhe der preview-Bilder angegeben wird, wäre es sinnvoll die Platzhalterbilder genauso zu behandeln wie die "normale" Bilder.

Deshalb kann der Code so angepasst werden:

$post_img = "<img src='".WB_URL.MEDIA_DIRECTORY."/.news_img/noimage/".$page_id.".jpg' alt='image for page ".$page_id."' style='max-width:".$previewwidth."px; max-height:".$previewheight."px; height:auto; width:auto;' />";

Offline

Board footer

up