XML Sitemap Generierung: Suche Events oder Hooks_

Hi,

ich moechte gerne, dass Produkte fuer die ich attr5 (Canonical) gesetzt habe, nicht in die XML Sitemap geschrieben werden.

Ueber welche Events oder Hooks kann ich mich in die Sitemapgenerierung einklemmen, um Produkte auszuschliessen?

Danke und viele Gruesse,

Jens

Hey, versuch es doch mal so im Export Feed:

 

{if $sArticle.attr5 != 1}

{/if}

 

attr5 ist dort vorhanden.

1 Like

Danke für die Antwort.

Wenn ich in meinem Template in der Datei sitemap_xml/index.tpl allerdings versuche auf attr5 zuzgreifen, dann erhalte ich
immer nur einen leeren Inhalt:

{block name="frontend_sitemap_xml_articles"}

        {foreach $sitemap.articles as $article}
            {if (!$article.attr5)}
          {include file="frontend/sitemap_xml/entry.tpl" urlParams = $article.urlParams lastmod = $article.changed}
            {$article.attr5}
                {else}
             {$article.attr5}
        {/if}
    {/foreach}
{/block}

Ich habe zum Testen einfach mal $article.attr5 mit herausgeschrieben, aber der Wert ist immer leer. Leider funktioniert {debug} hier nicht, da
dann das xml nicht mehr konform ist.

Wie kann ich auf attr5 hier zugreigen?

Danke und viele Grüsse,

Jens

Okay, sorry. Ich hatte da was falsch verstanden.

 

Versuch es bitte mal mit folgendem Plugin:Bitbucket

Falls Du nicht weißt, wie man das Plugin hochladen muss, melde dich bitte nochmal.

Die Attribute erreichst du z.B. so: {$article.attributes.attr5}

2 Likes

Danke für den Hinweis.

Ich habe verstanden, dass Dein Plugin ein bestehendes Plugin erweitert, aber ich verstehe nicht ganz, wie ich es hochladen soll.
Also normales Plugin funktioniert es nicht. Nach dieser Anleitung scheint es eine Plugin Extension zu sein:
Extend an existing plugin via another plugin

Wie kann ich das installieren?

Vielen Dank,

Jens

Hey Jens,

Du musst die Datei in folgenden Ordner hochladen:

 

/custom/plugins/LenzXmlSitemapArticleAttributes/

 

Super genial! Vielen Dank, es funktioniert für die sitemap.xml mit diesem Code unter sitemap_xml/index.tpl

{extends file="parent:frontend/sitemap_xml/index.tpl"}


{* exclude articles for which canonicals are set in attr5 *}

{block name="frontend_sitemap_xml_articles"}
    {foreach $sitemap.articles as $article}

            {if (!$article.attributes.attr5)}
          {include file="frontend/sitemap_xml/entry.tpl" urlParams = $article.urlParams lastmod = $article.changed}
        {/if}
    {/foreach}
{/block}

Aber funktioniert Dein Plugin auch für sitemap_mobile_xml?

Wenn ich folgenden code unter sitemap_mobile_xml/index.tpl eingebe, werden die Artikel mit attr5 nicht unterdrückt:

{extends file="parent:frontend/sitemap_mobile_xml/index.tpl"}


{* exclude articles for which canonicals are set in attr5 *}

{block name="frontend_sitemap_mobile_xml_articles"}
    {foreach $sitemap.articles as $article}

        {if (!$article.attributes.attr5)}
            {include file="frontend/sitemap_xml/entry.tpl" urlParams = $article.urlParams lastmod = $article.changed}
        {/if}
    {/foreach}
{/block}

 

Danke,

Jens

Hey, versuch es mal, indem du die folgende Funktion durch die vorherige ersetzt.

 

 public static function getSubscribedEvents() { return ['Enlight\_Controller\_Action\_PostDispatchSecure\_Frontend\_SitemapXml' =\> 'onPostDispatchSecureFrontendSitemapXml', 'Enlight\_Controller\_Action\_PostDispatchSecure\_Frontend\_SitemapMobileXml' =\> 'onPostDispatchSecureFrontendSitemapXml',]; }

Hi lenz,

leider hat das nicht funktioniert. att5 ist im sitemap_mobile_xml/index.tpl nicht sichtbar.

Vielen Dank und viele Grüsse,

Jens

@lenz schrieb:

Hey Jens,

Du musst die Datei in folgenden Ordner hochladen:

 

/custom/plugins/LenzXmlSitemapArticleAttributes/

 

Scheinbar habe ich an der Stelle noch eine Wissenslücke. Ich habe die PHP Datei in diesen Ordner hochgeladen aber es passiert leider gar nichts.
Was muss denn noch zusätzlich gemacht werden, damit dieses Plugin geladen wird?

Update: Ich habe den Fehler gefunden!
Der Pfad „/custom/plugins/LenzXmlSitemapArticleAttributes/“ ist falsch!

Richtig ist: "/custom/plugins/LenzSitemapXmlArticleAttributes/"