Direkt zum Inhalt springen
News Image Sprechende URL für eigene Extension
TYPO3 Webentwicklung

Sprechende URL für eigene Extension

Erstellt am
Tags
# Development # Extensions # SEO # TYPO3 # TypoScript

Hier zeige ich Dir anhand einer meiner Extensions wie Du die Datensätze mit einer sprechenden Url aurfufen kannst!

 

1. Erweitere die Datenbanktabelle Deiner Extension in ext_tables.sql um uri varchar(255) DEFAULT '0' NOT NULL, damit die Url gespeichert werden kann.


Das ganze sieht dann in etwas so aus:

 

CREATE TABLE tx_mhstellenanzeigen_domain_model_stellenanzeigen (
    title varchar(255) DEFAULT '' NOT NULL,
    teaser varchar(255) DEFAULT '' NOT NULL,
    uri varchar(255) DEFAULT '0' NOT NULL,
    beschreibung text,
    abwann date DEFAULT NULL,
    dokument int(11) unsigned NOT NULL default '0',
    ort int(11) unsigned DEFAULT '0' NOT NULL,
    ansprechpartner int(11) unsigned DEFAULT '0' NOT NULL,
);

 

2. Nun musst Du noch das TCA in DEINEXTENSIONFOLDER/Configuration/TCA/DEINETCAKONFIGURATION.php anpassen.
In 'Label' => 'Der Name der im Backend angezeigt werden soll'
In 'fields' => ['Der Name der Zeile in der der Name steht. Das kann title, name oder oder sein.....']


Das sieht dann so aus:

 

        'uri' => [
           'label' => 'URL',
           'exclude' => 1,
           'config' => [
               'type' => 'slug',
               'generatorOptions' => [
                   'fields' => ['title'],
                   'fieldSeparator' => '/',
                   'prefixParentPageSlug' => false,
                   'replacements' => [
                       '/' => '',
                   ],
               ],
               'prependSlash' => true,
               'fallbackCharacter' => '-',
               'eval' => 'uniqueInSite',
           ],
       ],

 

Damit Du das Feld nun auch bedienen kannst, muss hier noch uri eingetragen werden! So kann Du im Backend die URL selbst vergeben oder automatisch erstellen lassen!

 

'types' => [
       '1' => ['showitem' => 'sys_language_uid, l10n_parent, l10n_diffsource, hidden, title, uri, teaser, beschreibung, abwann, dokument, ort, ansprechpartner, --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.access, starttime, endtime'],
   ],

 

In der config.yaml Deiner Site Konfiguration dann noch folgendes eintragen:

Falls Du nicht weißt, wie Du Deine Extension, Plugin, Controller etc. bennant hast, schaue in die ext_localconf.php. Dort findes Du alle benötigten Angaben.

 


routeEnhancers:
 Stellenanzeigendetailansicht:
   type: Extbase
   extension: Mhstellenanzeigen
   plugin: Mhstellenanzeigenplugin
   routes:
       - { routePath: '/{stellenanzeigen_title}', _controller: 'Stellenanzeigen::show', _arguments: {'stellenanzeigen_title': 'stellenanzeigen'} }
   defaultController: 'Stellenanzeigen::show'
   aspects:
     stellenanzeigen_title:
       type: PersistedAliasMapper
       tableName: 'tx_mhstellenanzeigen_domain_model_stellenanzeigen'
       routeFieldName: 'uri'
       routeValuePrefix: '/'

 

 

Anschließend gehst Du in Adminwerkzeuge -> Wartung auf Analyze Database und aktualisierst Deine Datenbank oder Du deaktivierst die Extension, leerst den Cache und aktivierst Deine Extension wieder.

Weiter Informationen findest Du hier in der offiziellen TYPO3 Dokumentation.

Extensions

Aktuelle Themen

Haben Sie Fragen zu diesem Artikel?

Bringen Sie Ihre Homepage auf ein neues Level. Schreiben Sie uns eine kurze Nachricht, damit wir uns anschauen können, wie wir Ihre Ziele erreichen. 

Ich berate Sie gerne! 
Rüdiger Zirks | SEO-Experte, TYPO3-Spezialist, 3D-Artist

 

Kontakt