Mittwoch, 7. November 2018

Speaking URLs mit TYPO3 9.5.x + tx_news

Hallo Leute,

wie ihr wisst, gibt es RealURL bei TYPO3 9.5 nicht mehr. Um für tx_news die sprechenden URLs einzurichten, müsst ihr folgendes tun:

Öffnet diese Datei:

typo3conf/sites/eure-site/config.yaml

Fügt anschließend ganz am Ende der Datei folgende Codezeilen hinzu. Wichtig ist, dass ihr die eingerückten Zeilen/Leerzeichen beachtet! Ich füge daher zusätzlich einen Screenshot bei.

routeEnhancers:
  NewsPlugin:
    type: Extbase
    limitToPages: [8]
    extension: News
    plugin: Pi1
    routes:
      - { routePath: '/{news_title}', _controller: 'News::detail', _arguments: {'news_title': 'news'} }
    defaultController: 'News::detail'
    aspects:
      news_title:
        type: PersistedAliasMapper
        tableName: 'tx_news_domain_model_news'
        routeFieldName: 'path_segment'

Screenshot












  • Bei limitToPages fügt ihr die ID der jeweiligen Detail-Seite ein. 
  • Wenn ihr ein Segment wie /detail/ benötigt, könnt ihr entweder das über die eigentliche Unterseite lösen, die z.B. "Detail" heißt, oder 
  • Alternativ könnt ihr auch in diesem Beispiel in der Zeile 35 routePath: '/detail/{news_title}', schreiben. 
Et Voilà! Zugegebermaßen deckt diese Lösung keine Varianten wie z.B. "Archiv" ab, aber als Baseline-Lösung ist das sicherlich ein guter Ausgangspunkt!

Viel Spaß!

Euer Tao

Freitag, 19. Oktober 2018

fbclid + RealURL (und tx_news)

Hallo Leute,

wie ihr sicherlich mitbekommen habt, fügt Facebook seit einigen Tagen bei ausgehenden Links von Postings ab und zu einen Query String "fbclid" an. Analog zu Google Ads Query String "gclid" steht "fbclid wohl für "Facebook Click Identifier".

"fbclid" hat allerdings für gehörigen Wirbel bei einigen Betreibern von TYPO3-Websites in Kombination mit RealURL (und meistens auch tx_news o.ä.) gesorgt.

Folgende Phänomene tauchten plötzlich auf:

Phänomen 1: Falscher Inhalt wird gecached und demnach ausgeliefert


Wenn man News A aufruft mit einer fbclid ist zunächst alles ok.

.../newsA/?fbclid=xxx

Wenn man schließlich einen weiteren, beliebigen Newseintrag aufruft mit einem beliebigen fbclid-Parameter dranhängt, wird News A angezeigt.

.../newsB/?fbclid=xxx

Es wird immer die ursprüngliche News angezeigt, die als erstes mit fbclid aufgerufen wurde. Das ist natürlich sehr ärgerlich, wenn man einen Newseintrag auf Facebook teilt und dem User wird dann plötzlich ein anderer oder uralter Eintrag dargestellt.

Phänomen 2: Die Seite wird mit "fbclid" erst gar nicht angezeigt -> 404


In Kombination mit der Einstellung 'FE' => 'pageNotFoundOnCHashError' => true wird erst gar keine Seite angezeigt.

Die Lösung:

1. Im Installtool diese beiden Einstellungen setzen:

'FE' => 'pageNotFoundOnCHashError' => false,

'cHashExcludedParameters' => 'L, pk_campaign, pk_kwd, utm_source, utm_medium, utm_campaign, utm_term, utm_content, gclid, fbclid',

2. Bei RealURL folgende Einstellung setzen 

(achtet auf die Schreibweise, vielleicht habt ihr noch Array):

'cache' => [
'ignoredGetParametersRegExp' => '/^(?:gclid|fbclid|utm_[a-z]+|pk_campaign|pk_kwd|TSFE_ADMIN_PANEL.*)$/',
],

Anschließend sämtliche Caches (auch RealURL) löschen. Damit sollte das Problem vom Tisch sein :-)

Freitag, 6. Juli 2018

WPML und Oshine Theme Page Builder

Nutzt du Wordpress zusammen mit dem Oshine Page Builder und möchtest Übersetzungen/XLIFF mit WPML exportieren? Folgende Konfiguration für die Shortcodes sollten helfen!

<wpml-config>
    <shortcodes>
 
        <shortcode>
            <tag>text</tag>
        </shortcode>
     
        <shortcode>
            <tag>special_sub_title</tag>
        </shortcode>
     
        <shortcode>
            <tag>accordion</tag>
        </shortcode>
     
        <shortcode>
            <tag>chart</tag>
        </shortcode>
     
        <shortcode>
            <tag>animated_numbers</tag>
        </shortcode>
     
        <shortcode>
            <tag>flex_slider</tag>
        </shortcode>
     
        <shortcode>
            <tag>be_slider</tag>
        </shortcode>
     
        <shortcode>
            <tag>blog</tag>
        </shortcode>
     
        <shortcode>
            <tag>bubble_testimonial</tag>
        </shortcode>
     
        <shortcode>
            <tag>button_group</tag>
        </shortcode>
     
        <shortcode>
            <tag>button</tag>
        </shortcode>
     
        <shortcode>
            <tag>call_to_action</tag>
        </shortcode>
     
        <shortcode>
            <tag>contact_form</tag>
        </shortcode>
     
        <shortcode>
            <tag>content_slides</tag>
        </shortcode>
     
        <shortcode>
            <tag>be_countdown</tag>
        </shortcode>
     
        <shortcode>
            <tag>separator</tag>
        </shortcode>
     
        <shortcode>
            <tag>dropcap</tag>
        </shortcode>
     
        <shortcode>
            <tag>dropcap2</tag>
        </shortcode>
     
        <shortcode>
            <tag>linebreak</tag>
        </shortcode>
     
        <shortcode>
            <tag>animate_icons_style1</tag>
        </shortcode>
     
        <shortcode>
            <tag>gallery</tag>
        </shortcode>
     
        <shortcode>
            <tag>gmaps</tag>
        </shortcode>
     
        <shortcode>
            <tag>icon_card</tag>
        </shortcode>
     
        <shortcode>
            <tag>icon_group</tag>
        </shortcode>
     
        <shortcode>
            <tag>grids</tag>
        </shortcode>
     
        <shortcode>
            <tag>icon</tag>
        </shortcode>
     
        <shortcode>
            <tag>justified_gallery</tag>
        </shortcode>
     
        <shortcode>
            <tag>lists</tag>
        </shortcode>
     
        <shortcode>
            <tag>menu_card</tag>
        </shortcode>
     
        <shortcode>
            <tag>newsletter</tag>
        </shortcode>
     
        <shortcode>
            <tag>notifications</tag>
        </shortcode>
     
        <shortcode>
            <tag>shortcode_modules</tag>
        </shortcode>
     
        <shortcode>
            <tag>portfolio</tag>
        </shortcode>
     
        <shortcode>
            <tag>portfolio_carousel</tag>
        </shortcode>
     
        <shortcode>
            <tag>project_details</tag>
        </shortcode>
     
        <shortcode>
            <tag>portfolio_navigation_module</tag>
        </shortcode>
     
        <shortcode>
            <tag>pricing_column</tag>
        </shortcode>
     
        <shortcode>
            <tag>process_style1</tag>
        </shortcode>
     
        <shortcode>
            <tag>recent_posts</tag>
        </shortcode>
     
        <shortcode>
            <tag>services</tag>
        </shortcode>
     
        <shortcode>
            <tag>skills</tag>
        </shortcode>
     
        <shortcode>
            <tag>special_sub_title</tag>
        </shortcode>
     
        <shortcode>
            <tag>special_heading</tag>
        </shortcode>
     
        <shortcode>
            <tag>special_heading2</tag>
        </shortcode>
     
        <shortcode>
            <tag>special_heading3</tag>
        </shortcode>
     
        <shortcode>
            <tag>special_heading4</tag>
        </shortcode>
     
        <shortcode>
            <tag>special_heading5</tag>
        </shortcode>
     
        <shortcode>
            <tag>tabs</tag>
        </shortcode>
     
        <shortcode>
            <tag>team</tag>
        </shortcode>
     
        <shortcode>
            <tag>testimonials</tag>
        </shortcode>
     
        <shortcode>
            <tag>title_icon</tag>
        </shortcode>
     
        <shortcode>
            <tag>tweets</tag>
        </shortcode>
     
        <shortcode>
            <tag>animate_icons_style2</tag>
        </shortcode>
     
        <shortcode>
            <tag>video</tag>
        </shortcode>
     
        <shortcode>
            <tag>clients</tag>
        </shortcode>     
 
    </shortcodes>
</wpml-config>