An Position X im Content, Modul Y einblenden, aber nur im führenden Artikel in der Blogansicht

  • Hallo liege Forengemeinde,


    seit dem letzten Update scheint Google etwas gegen Werbung zu haben, besonders wenn diese oberhalb vom Text beginnt.
    Ich habe die Werbung immer mit Float eingebunden, aber hierarchisch im Quelltext kommt diese eben zuerst, dann der Text.


    Nun zu meiner Frage und Bitte: der Haupttraffic kommt über die Blogansicht, wo mehrere Artikel untereinander sind.


    In der blog_item.php gibt es den leading_Article. Nun möchte ich an einer bestimmten Position das Werbemodul einblenden, welche ich über den Text steuere
    {loadposition}. Das blöde: dann habe ich in der Blogansicht überall die Werbung an der entsprechenden Position. Was kann ich tun?


    Oder habt ihr vielleicht auch einen ganz anderen Ansatz?


    Ich danke euch und wünsche einen schönen Ostermontag

  • Versteh ich nicht.
    Das loadposition xyz wird in 1 spezifischen Beitrag eingesetzt. Nur in diesem 1 Beitrag erscheint dann das Modul. In der Blogansicht erscheint die Werbung ergo nur dort, wo dieser 1 spezifische Beitrag auftaucht und nicht "überall".
    ----
    Unklar ist, um welches Modul es sich eigentlich handelt.
    ----
    Ist es eins, wo du Overrides (OR) anlegen kannst, bzw. empfohlen: ein Alternatives Layout (AL), könntest du bspw. in OR/AL an den Anfang setzen


    Code
    if (JFactory::getApplication()->client->robot)
    {
     return;
    }


    Kurz: Robots bekommen die Werbung nicht angezeigt, da vor Ausgabe des Moduls abgebrochen wird.


    Testen kannst das dann bspw. mit FF-AddOn: https://addons.mozilla.org/de/…ddon/user-agent-switcher/

  • Hi Re:Later,


    vielen Dank für die Antwort.


    nein, ich möchte die Werbung vor dem Bot gar nicht ausblenden, sondern ich möchte die Werbung mitten im Text und nicht "Above the fold".


    Das Problem dabei ist, dass wenn ich {loadposition} im Text eincodiere, dieser in der Blogansicht bei jedem Artikel erscheint, wo {loadposition} eincodiert ist. Ich müsste also jedes mal hergehen und bei älteren Artikeln {loadposition} wieder raus löschen. Mein Ansatz ist nun der Step mit leading_article im Template.

  • Oder aber...


    Override der blog.php dort nach:


    PHP
    <?php $leadingcount = 0; ?>    <?php if (!empty($this->lead_items)) : ?>        <div class="items-leading clearfix">            <?php foreach ($this->lead_items as &$item) : ?>                <div class="leading-<?php echo $leadingcount; ?><?php echo $item->state == 0 ? ' system-unpublished' : null; ?>"                    itemprop="blogPost" itemscope itemtype="https://schema.org/BlogPosting">                    <?php                    $this->item = & $item;                    echo $this->loadTemplate('item');                    ?>                </div>                <?php $leadingcount++; ?>            <?php endforeach; ?>        </div><!-- end items-leading -->    <?php endif; ?>



    suchen und


    PHP
    <?php endforeach; ?>
    ----------HIER DEIN MODUL LADEN----------------
     </div><!-- end items-leading -->


    Das wird dann in der Kategorieblog Ansicht nach den "Fürenden" - Artikeln geladen. Soll das nach dem ersten Artikel passieren stellst du im Menü das ganze auf "Fürende" 1 und die anderen läßt du über "Einleitung" laufen und stellst die auf eine Spalte dann gibt es keinen Unterschied zwischen den der Ansicht "Fürende" und "Einleitung".

  • Danke für die Hilfestellungen,


    @OJ
    so habe ich es bisher gelöst.


    Das hat aber zur Folge, dass die Werbung (bspw. Skyscraper) per Float left oder right eingebunden werden muss, was wiederum zum oben benannten Problem führt.


    Schicker wäre es, wenn ich im Artikel {loadposition} angebe und dieser in der Blogansicht nur einmal - im führenden Artikel - angezeigt wird.


    ich dachte schon an eine ähnliche Funktion wie "weiterlesen". Die wird ja auch erkannt und durch was anderes ersetzt. Wenn ich also nun <hr id="system-readmore" /> ergänze durch <hr id="system-ad" /> (o.ä.) und statt weiterlesen dann die Anzeige darstellen lasse und dann unten der restliche Text erscheint, dann wäre ich schon einmal ein ganzes Stück weiter. Hoffe ihr könnt meinen Ansatz nachvollziehen.


    Oder kann man das auch durch ein Plugin lösen?


  • Das hat aber zur Folge, dass die Werbung (bspw. Skyscraper) per Float left oder right eingebunden werden muss, was wiederum zum oben benannten Problem führt.


    Wenn Du es im Override mit

    PHP
    <?php echo JHtml::_('content.prepare', '{loadposition XYZ}'); ?>

    einbindest wird doch nichts per Float left oder right eingebunden...


  • Hi,


    du hast mich vielleicht falsch verstanden. Mit dem Code kann ich oberhalb oder unterhalb des Textes eine Position einbinden, damit der Textumfluss aber erreicht wird, muss Float eingesetzt werden. Somit steht der Quellcode der Werbung wieder oberhalb des Textes, was ich ja vermeiden möchte.


    Mein Ansatz ist es die Position im Text an einer bestimmten Stelle zu laden. Das Problem aber ist, dass dann in der Blogansicht immer wieder diese Position auch bei den anderen Artikeln geladen wird.