Webentwickler Blog http://www.andre-lanius.de/blog.html Sun, 24 Sep 2017 17:37:21 +0200 Sun, 24 Sep 2017 17:37:21 +0200 t3extblog extension for TYPO3 Sprachauswahl-Menu mit der Extension sr_language_menu Wed, 20 Sep 2017 11:54:00 +0200 http://www.andre-lanius.de/blog/artikel/sprachauswahl-menu-mit-der-extension-sr-language-menu.html post-10 http://www.andre-lanius.de/blog/artikel/sprachauswahl-menu-mit-der-extension-sr-language-menu.html Andre Lanius Hier wird anhand eines Beispiels gezeigt, wie man ein einfaches Sprachauswahl-Menu mit der Extension sr_language_menu erzeugen kann, ohne über großartige Programmierkenntnisse zu verfügen. Sprachauswahl-Menu mit der Extension sr_language_menu by Andre Lanius 20-09-17

Categories: TYPO3

Mit der Extension sr_language_menu kann man auf einfache Weise ein Menu zur Sprachauswahl erzeugen

Um den User seiner Webseite die Möglichkeit zu bieten, dass er jederzeit die Sprache wechseln kann, benötigt man ein Menu zur Sprachauswahl.

Nach dem man die Extension installiert hat, fügt man einfach folgendes TS noch ins Setup hinzu.

plugin.tx_srlanguagemenu_pi1 {
  defaultLanguageISOCode = DE
  defaultLayout = 2
  showInactive = 1
  useIsoLanguageCountryCode = 1
  link.INACT.doNotLinkIt = 1
  link.CUR.doNotLinkIt =  1
  link.NO.stdWrap.wrap = <span class="NO">|</span>
  link.CUR.stdWrap.wrap = <span class="CUR">|</span>
  links.stdWrap.split {
    token = {$plugin.tx_srlanguagemenu_pi1.token}
    wrap = | <span class="SPC">  |  </span> |*| | <span class="SPC">  |  </span> |*| |
  }
}
]]>
Sprachmenu in TYPO3 mit Fluid realisieren Wed, 13 Sep 2017 17:56:00 +0200 http://www.andre-lanius.de/blog/artikel/sprachmenu-in-typo3-mit-fluid-realisieren.html post-9 http://www.andre-lanius.de/blog/artikel/sprachmenu-in-typo3-mit-fluid-realisieren.html Andre Lanius Hier wird mal anhand eines einfachen Beispiels gezeigt, wie man ein einfaches Sprachmenu in TYPO3 mit Fluid erstellen kann. Hierzu muss aber die Extension VHS installiert sein, um auf einen bestimmten... Sprachmenu in TYPO3 mit Fluid realisieren by Andre Lanius 13-09-17

Categories: TYPO3

Um in TYPO3 ein einfaches Sprachmenu mit Fluid zu erzeugen, kann auf die Viewhelper von VHS zurückgreifen. Dazu muss allerdings die Extension VHS erst installiert werden, wenn noch nicht geschehen.

Hier mal ein schönes Beispiel, um ein einfaches Sprachmenu zu erzeugen.

<v:page.languageMenu
    defaultLanguageLabel="DE"
    hideNotTranslated="{true}" >
    <ul class="nav language pull-right">
        <f:for each="{languageMenu}" as="langmenu" iteration="langiter">
            <f:if condition="{langiter.isLast}">
                <f:then>
                    <li><a href="{langmenu.url}">{langmenu.label}</a></li>
                </f:then>
                <f:else>
                    <li><a href="{langmenu.url}">{langmenu.label}</a></li>
                    <li class="topbar-devider">|</li>
                </f:else>
            </f:if>
       </f:for>
    </ul>
</v:page.languageMenu>
]]>
SEO: Besseres Ranking für Webseiten mit mobiler Version Wed, 11 May 2016 15:16:00 +0200 http://www.andre-lanius.de/blog/artikel/seo-besseres-ranking-fuer-webseiten-mit-mobiler-version.html post-8 http://www.andre-lanius.de/blog/artikel/seo-besseres-ranking-fuer-webseiten-mit-mobiler-version.html Andre Lanius Immer mehr Menschen greifen von Unterwegs über ihr Smartphone auf das Internet zu und dadurch wird die Bedeutung von Inhalten, die für mobile Endgeräte optimiert sind, immer wichtiger. Aus diesem... SEO: Besseres Ranking für Webseiten mit mobiler Version by Andre Lanius 11-05-16

Categories: SEO

Optimierung auch für mobile Geräte

Immer mehr Menschen greifen von Unterwegs über ihr Smartphone auf das Internet zu und dadurch wird die Bedeutung von Inhalten, die für mobile Endgeräte optimiert sind, immer wichtiger. Aus diesem Grund hatte Google schon vor einigen Jahren einen eigenen Index für mobile Inhalte aufgebaut und dort erscheinen nur die Webseiten, die auch für mobile Geräte optimiert sind.

Seit 2015 werden in dem Index nur noch Webseiten gelistet, die für mobile Geräte optimiert wurden und was dadurch automatisch bedeutet, dass alle anderen Webseiten, die nicht für mobile Endgeräte optimiert sind, einfach schlechter ranken werden.

2 wichtige Rankingfaktoren für gutes SEO

Zum einen spielt die Ladegeschwindigkeit für mobile Geräte eine sehr große Rolle und zum anderen müssen die Inhalte (Texte, Bilder, etc.) so optimiert sein, dass der Content zum einen klein gehalten und zum anderen säuberlich dargestellt wird.

Responsive Design oder eigene mobile Version

Google hatte ausdrücklich ein responsives Webdesign empfohlen. Also quasi ein Design, welches sich der jeweiligen Bildschirmgröße automatisch anpasst. Eine seperate mobile Version wäre eine Alternative. Der Vorteil einer eigenen mobilen Version wäre, dass hier explizit für Smartphones etc. optimiert werden kann. Der Nachteil wäre die geringe Flexibilität in der Darstellung.

Mit dem folgenden Online-Tool von Google können Sie prüfen, ob Ihre Webseiten für mobile Geräte noch Optimierungspotential aufweist.

Öffnet externen Link in neuem FensterPageSpeed Insights

]]>
TYPO3: Seitentitel und Metatags mit TypoScript umsetzen Sun, 01 May 2016 22:37:00 +0200 http://www.andre-lanius.de/blog/artikel/typo3-seitentitel-und-metatags-mit-typoscript-umsetzen.html post-7 http://www.andre-lanius.de/blog/artikel/typo3-seitentitel-und-metatags-mit-typoscript-umsetzen.html Andre Lanius Standardmäßig setzt TYPO3 den Title-Tag auf den Seitentitel der aktuellen Seite. Wenn man aber einen großen Fokus auf SEO gelegt hat, so gibt es dann Fälle, da möchte man lieber den Title- und die... TYPO3: Seitentitel und Metatags mit TypoScript umsetzen by Andre Lanius 01-05-16

Categories: TYPO3

Hier wird gezeigt, wie man mit TypoScript den Seitentitel erweitert und zusätzlich Metatags erzeugt

Standardmäßig setzt TYPO3 den Title-Tag auf den Seitentitel der aktuellen Seite. Wenn man aber einen großen Fokus auf SEO gelegt hat, so gibt es dann Fälle, da möchte man lieber den Title- und die Meta-Tags individuell erzeugen.

Mit den folgendem TypoScript wird in TYPO3 der Title-Tag angepasst:

# Seitentitel entfernen
config.noPageTitle = 2

page = PAGE
page {
  # Neuen title Tag in headerData setzen
  headerData {
    5 = TEXT
    5 {
      field = title
      noTrimWrap = |<title>Mein Titel: | - Weiterer Text nach dem dynamischen Text</title>|
    }
  }
}

Die vorgestellte Möglichkeit ist nur eine von vielen Methoden, den Title-Tag innerhalb von TYPO3 zu erweitern. Alle möglichen Methoden vorzustellen, würde an dieser Stelle den Rahmen sprengen.

Meta-Tags mit TypoScript generieren

In den folgenden Beispielen wird gezeigt, wie man die unterschiedlichen Meta-Tags innerhalb einer TYPO3-Seite erzeugen kann.

Meta Description
Das Feld kann über die Seiteneigengeschaften Meta Daten befüllt werden. Maximal 130 Zeichen, wird meist von den Suchmaschinen als Textfeld berücksichtigt.

page.meta.description.data = page:description

Meta Keywords
In der Seo-Szene erzählt man sich, dass die Meta Keywords von Google nicht mehr berücksichtigt werden. Es kann aber nicht schaden, wenn man diese dennoch benutzt. Im Endeffekt kann kein Mensch genau wissen, ob Google die Meta Keywords evtl. nicht doch mit ins Ranking einfließen lässt.

page.meta.keywords.data = page:keywords 

Meta Author
Da der Name des Autors sich in der Regel nicht ändert, kann er fest im TypoScript gesetzt werden.

page.meta.author = Dein Name

Meta Date
Möchte man Google & Co. mitteilen, wann die letzte Änderung oder Anpassung der aktuellen Seite stattgefunden hat, so kann man folgendes Typoscript benutzen.

page.meta.date.data = page:SYS_LASTCHANGED // page:crdate
page.meta.date.date = Y-m-d

Meta Viewport
Zoomfaktor für mobile Endgeräte (Smartphones und Tablets)

page.meta.viewport  = width=device-width, initial-scale=1.0

Meta Robots
Anweisungen für die Bots der Suchmaschinen.

page.meta.robots = index,follow
]]>
TYPO3: RealURL Tutorial zur Konfiguration Tue, 26 Apr 2016 20:11:00 +0200 http://www.andre-lanius.de/blog/artikel/typo3-realurl-tutorial-zur-konfiguration.html post-4 http://www.andre-lanius.de/blog/artikel/typo3-realurl-tutorial-zur-konfiguration.html Andre Lanius Hier finden Sie eine RealURL-Konfiguration für TYPO3, die in fast allen Fällen funktionieren sollte, ohne größere Anpassungen vornehmen zu müssen. TYPO3: RealURL Tutorial zur Konfiguration by Andre Lanius 26-04-16

Categories: TYPO3

Hier finden Sie eine RealURL-Konfiguration für TYPO3, die in den meisten Projekten funktionieren sollte

Mit den folgenden Zeilen im TypoScript wird zunächst RealURL aktiviert und gegebenenfalls SimulateStatic-Documents abgeschaltet.

config {
  prefixLocalAnchors = all
  simulateStaticDocuments = 0
  baseURL = http://www.domain.tld/
  absRelPath = /
  tx_realurl_enable = 1
}
        

Anzupassen wäre hier unter baseURL der tatsächliche Domainname.
Bei dieser RealURL-Konfiguration sorgt prefixLocalAnchors, dass Ankerpunkte auch in Verbindung mit REALURL sauber funktionieren.

RealURL-Konfiguration

<?php
// $GLOBALS['TYPO3_CONF_VARS']['FE']['addRootLineFields'].= ',tx_realurl_pathsegment'; // Nicht mehr nötig
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl'] = array(
  '_DEFAULT' => array(
    'init' => array(
      'enableCHashCache' => 1,
      'appendMissingSlash' => 'ifNotFile',
      'enableUrlDecodeCache' => 1,
      'enableUrlEncodeCache' => 1,
      'postVarSet_failureMode' => '',
    ),
    'redirects' => array(),
    'preVars' => array(
      array(
        'GETvar' => 'no_cache',
          'valueMap' => array(
            'nc' => 1,
          ),
          'noMatch' => 'bypass',
        ),
        array(
          'GETvar' => 'L',
          'valueMap' => array(
            # 'de' => '0',
            'en' => '1',
          ),
          'valueDefault' => 'de',
          'noMatch' => 'bypass',
        ),
      ),
      'pagePath' => array(
        'type' => 'user',
        'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
        'spaceCharacter' => '-',
        'languageGetVar' => 'L',
        'expireDays' => 7,
        'rootpage_id' => 1,
        'firstHitPathCache' => 1,
      ),
      'fixedPostVars' => array(),
      'postVarSets' => array(
        '_DEFAULT' => array(
          // news archive parameters
          'archive' => array(
            array(
              'GETvar' => 'tx_ttnews[year]' ,
            ),
            array(
              'GETvar' => 'tx_ttnews[month]' ,
              'valueMap' => array(
              'january' => '01',
              'february' => '02',
              'march' => '03',
              'april' => '04',
              'may' => '05',
              'june' => '06',
              'july' => '07',
              'august' => '08',
              'september' => '09',
              'october' => '10',
              'november' => '11',
              'december' => '12',
            )
          ),
        ),
        // news pagebrowser
        'browse' => array(
          array(
            'GETvar' => 'tx_ttnews[pointer]',
          ),
        ),
        // news categories
        'select_category' => array (
          array(
            'GETvar' => 'tx_ttnews[cat]',
          ),
        ),
        // news articles and searchwords
        'article' => array(
          array(
            'GETvar' => 'tx_ttnews[tt_news]',
            'lookUpTable' => array(
              'table' => 'tt_news',
              'id_field' => 'uid',
              'alias_field' => 'title',
              'addWhereClause' => ' AND NOT deleted',
              'useUniqueCache' => 1,
              'useUniqueCache_conf' => array(
                'strtolower' => 1,
                'spaceCharacter' => '-',
              ),
            ),
          ),
          array(
            'GETvar' => 'tx_ttnews[backPid]',
          ),
          array(
            'GETvar' => 'tx_ttnews[swords]',
          ),
        ),
      ),
    ),
    // configure filenames for different pagetypes
    'fileName' => array(
      'defaultToHTMLsuffixOnPrev' => 0,
      'index' => array(
        'print.html' => array(
          'keyValues' => array(
            'type' => 98,
          ),
        ),
        'rss.xml' => array(
          'keyValues' => array(
            'type' => 100,
          ),
        ),
        'rss091.xml' => array(
          'keyValues' => array(
            'type' => 101,
          ),
        ),
        'rdf.xml' => array(
          'keyValues' => array(
            'type' => 102,
          ),
        ),
        'atom.xml' => array(
          'keyValues' => array(
            'type' => 103,
          ),
        ),
      ),
    ),
  ),
);
]]>