Placeholder Image

  • Hallo zusammen,


    ich habe in einem anderen Beitrag nach einer Möglichkeit gefragt, wie man ein Placeholder Image in das News-Flash modul bringt... Dort bekam ich auch super schnell eine passende Antwort...

    Jetzt meine Frage, gibts auch die Möglichkeit bei Artikeln/Hauptbeiträgen und Blogbeiträgen so ein Placeholder Image zu platzieren??

    Für das Newsflash Modul hab ich folgenden Coe erhalten und dieser funktioniert hervorragend..


    if ($params->get('img_intro_full') !== 'none' && empty($item->imageSrc))

    {

    $item->imageSrc = 'images/sonstwo/sonstwas.jpg';

    }


    Ich habe schon über Overrides versucht, dies bei den anderen auch umzusetzen, aber leider ohne Erfolg...

    Kann mir da eventuell jemand ein paar Tipps geben??


    Bevor ich es vergesse, J4 Cassiopeia

    Grüße Chris

  • Du kopierst die Dateien

    Code
    /layouts/joomla/content/full_image.php
    /layouts/joomla/content/intro_image.php

    nach

    Code
    /templates/[DEIN-TEMPLATE-ORDNER]/html/layouts/joomla/content/

    In beiden findest am Anfang was in der Art (beim anderen heißt es "image_intro".

    Code
    if (empty($images->image_fulltext))
    {
        return;
    }

    Vor die Zeilen setzt einen eigenen Block:

    Code
    if (empty($images->image_fulltext))
    {    
    $images->image_fulltext = 'images/sonstwo/sonstwas.jpg';
    }


    Nicht getestet!


    In diesem Fall würde ich diese Overrides nicht im Template-Editor aus dem Backend machen, weil der viel zu viele Dateien als Override anlegt. Leider! Geht natürlich auch. Macht halt das Template-Verzeichnis extrem unübersichtlich und bei Joomla-Updates bekommt man ggf. Hinweise angezeigt: "Overrides sollten überprüft werden".

  • Hallo,


    also so sieht mein full_item.php COde aus... Hab den COdeblock davor gesetzt, geht so aber leider nicht... Ich teste selber weiter, vielleicht bring ich es hin... Hat aber jemand nen Fehler entdeckt, dann wäre es super wenn ihr Bescheid gibt... ;)


  • Das überschriebene JLayout image_fulltext ist für Artikel.

    Das überschriebene JLayout image_intro ist für Blogs und Featured.

    Ja, das hab ich auch rausgefunden... Es wird trotzdem kein Placeholder IMG angezeigt... :)


    Aber trotzdem Danke für die Antowrt,,, ;)

    Einmal editiert, zuletzt von Indigo66 () aus folgendem Grund: Ein Beitrag von Chribrie mit diesem Beitrag zusammengefügt.

  • Probier zum Debuggen mal mit


    Code
    if (empty($images->image_fulltext))
    {    
    $images->image_fulltext = 'images/sonstwo/sonstwas.jpg';
    echo ' Kein Bild gefunden  <pre>' . print_r($images, true) . '</pre>';exit;
    }

    ob irgendwas rauskommt bzw. der Code dann mit dieser Meldung irgendwann stoppt.


    Wenn nicht probiers hiermit:

    Code
    if (empty($images->image_fulltext))
    {    
    $images->image_fulltext = 'images/sonstwo/sonstwas.jpg';
    }
    
    echo ' Die Bilder sind:  <pre>' . print_r($images, true) . '</pre>';exit;

    Wenn der die Seite dann auch nicht unterbricht, ist wohl der Override im falschen Ordner.


    Ich gehe von Cassiopeia aus, wie oben von dir geschrieben.

  • Hallo,

    alles klar ich probiere das mal... Herzlichen Dank...

    Mein Override liegt dort.. /templates/cassiopeia/html/layouts/content/


    Hallo,

    alles klar ich probiere das mal... Herzlichen Dank...

    Mein Override liegt dort.. /templates/cassiopeia/html/layouts/content/

    Da passiert gar nichts... ;)

    Einmal editiert, zuletzt von Indigo66 () aus folgendem Grund: Ein Beitrag von Chribrie mit diesem Beitrag zusammengefügt.

  • Hallo,


    es funktioniert... DAnke für die Geduld und die super Hilfe.... Fehler war der falsche Pfad...


    mein Pfad war /templates/cassiopeia/html/layouts/content/


    und der richtige ist /templates/cassiopeia/html/layouts/joomla/content/


    Sorry für den Fehler... ;)


    Nochmals herzlichen Dank.....


    Grüße Chris

  • Hallo zusammen,


    ich würde gerne das Thema kurz wieder öffnen... Ich habe folgende intro_image.php (templates/tp_sport/html/layouts/joomla/content/intro_image.php)Datei als Override erstellt.. Der Placeholder Code wo in meinem Cassiopia Template sehr gut funktioniert, funktioniert in dem neuen Template(Joomlaplates) nicht mehr.. Ich nutze von Joomlaplate das UIKIT Artikel Slide Modul... Kann mir jemand sagen was ich falsch mache?? Braucht Ihr noch mehr Infos??

    Grüße Chris

  • Hallo,


    ich habe den Code jetzt angepasst.. Ich hoffe das es so gemeint war.... ;) Placeholder Bild kommt trotzdem nicht..

    Hier mal der Link zur Testseite... http://mydreamtrip.eu/index.php

    Bei Article Slider Aktive sollte im Blog Artikel 1 das Placeholder Bild auftauchen..

    Hier der aktuelle COde in der intro_image.php


    Grüße Chris

  • Was sollen eigentlich diese Zeilen?

    Code
    if (ASTROID_JOOMLA_VERSION > 3) {
    \JLoader::registerAlias('ContentHelperRoute', 'Joomla\Component\Content\Site\Helper\RouteHelper');
    } else {
    include_once(JPATH_COMPONENT . '/helpers/route.php');
    }

    weil oben erwähnst du ja das Cassiopeia-Template, was gar kein Astroid-Template ist.


    So oder so: Schieb hinter Zeile

    Code
    $params = $displayData->params;

    mal rein

    Code
    echo ' DEBUG ASTROID_JOOMLA_VERSION: <pre>' . print_r(ASTROID_JOOMLA_VERSION, true) . '</pre>';
    echo ' DEBUG Title: <pre>' . print_r($displayData->title, true) . '</pre>';
    echo ' DEBUG Images: <pre>' . print_r($displayData->images, true) . '</pre>';exit;

    ob was rauskommt und wenn ja, was.


    Wenn die Seite nicht abbricht mit irgendso Angaben bist irgendwo falsch.

  • Was sollen eigentlich diese Zeilen?

    Code
    if (ASTROID_JOOMLA_VERSION > 3) {
    \JLoader::registerAlias('ContentHelperRoute', 'Joomla\Component\Content\Site\Helper\RouteHelper');
    } else {
    include_once(JPATH_COMPONENT . '/helpers/route.php');
    }

    weil oben erwähnst du ja das Cassiopeia-Template, was gar kein Astroid-Template ist.

    Ich habe oben geschrieben dass es beimCassiopeia Temp funktioniert und beim Joomlaplates Temp nicht...


    OK ich schau ob und was rauskommt...


    Dankeschön

  • Es kommt das dabei raus... siehe Anhang :huh:

  • christine2 hat in deinem Bild entdeckt, dass der Artikel "Blog Item 1" (hat kein Intro-Bild) wohl durchläuft und erst beim "Blog Item 2" durch meinen DEBUG-Code abbricht.


    Das lässt vermuten, das vielleicht schon in der Datei, die dein JLayout oben aufruft, eine Weiche drinnen ist, die das JLayout gar nicht aufruft, wenn kein intro_image vorhanden. Die Weiche müsstest du dann wohl aushebeln.