Ergebnis 1 bis 6 von 6

Thema: Seitentitel generieren

  1. #1
    Contao-Nutzer
    Registriert seit
    22.08.2011.
    Beiträge
    75

    Standard Seitentitel generieren

    Hallo Communtiy,

    ich verwende das Modul navigationSubline_bz um beim Erstellen einer Seite einen Untertitel vergeben zu können.
    Nun würde ich den Seitenalias gerne automatisch aus Seitenname und Subline generieren.

    Für beide Werte stehen mir Inserttags zur Verfügung. Für die Subline habe ich mir einen eingen Tag erstellt.

    Ist sowas denkbar?

    Danke.
    rttmax
    Geändert von rttmax (31.10.2012 um 14:50 Uhr)

  2. #2
    Contao-Urgestein
    Registriert seit
    07.07.2009.
    Beiträge
    4.107

    Standard

    Ja durch eine eigene Extension geht das. Du kannst diese Funktionalität nachrüsten.

  3. #3
    Contao-Nutzer
    Registriert seit
    22.08.2011.
    Beiträge
    75

    Standard

    Ok das ist schon mal gut zu wissen. Allerdings habe ich noch nie eine Extension gemacht, würde es aber gerne versuchen.
    Wo fange ich in diesem Fall denn am besten an?

    Ich will nicht, wie oben erwähnt den alias, sondern den Seitentitel generieren.

    Danke. rttmax

  4. #4
    Contao-Urgestein
    Registriert seit
    07.07.2009.
    Beiträge
    4.107

    Standard

    Öhm was denn jetzt?

  5. #5
    Contao-Fan
    Registriert seit
    27.06.2010.
    Beiträge
    539

    Standard

    Ich würde dir erstmal raten, zum Erweiterungsgenerator [develop] zu greifen und dann die Anfangsdaten zu generieren.

    ----

    Ich habe mal die Mitgliedertabelle (tl_member) um ein Feld erweitert. Dann sollte das Feld automatisch generiert werden (aus Vor- und Nachname), wenn keine Eingabe erfolgte:

    Datei dca/tl_member.php
    PHP-Code:
    <?php

    /**
     * Contao Open Source CMS
     * 
     * Copyright (C) 2005-2012 Leo Feyer
     * 
     * … copyright etc.
     */

    $GLOBALS['TL_DCA']['tl_member']['fields']['participant'] = array
    (
        
    'label'                   => &$GLOBALS['TL_LANG']['tl_member']['participant'],
        
    'exclude'                 => true,
        
    'search'                  => true,
        
    'inputType'               => 'text',
        
    'eval'                    => array('feEditable'=>true'feViewable'=>true'feGroup'=>'personal''tl_class'=>'long'),
        
    'save_callback'           => array(array('tl_member_participant''saveParticipant'))
    );

    /**
     * Class tl_member_participant
     *
     * Provide miscellaneous methods that are used by the data configuration array.
     * …
     */
    class tl_member_participant extends tl_member
    {

        
    /**
         * Initialize the system
         */
        
    public function __construct()
        {
            
    parent::__construct();
        }

        
    /**
         * Generate participant field if there is no input
         */
        
    public function saveParticipant($varValueDataContainer $dc)
        {
            
    // Get the member fields
            
    $objMember $this->Database->prepare("SELECT * FROM tl_member WHERE id=?")
                                        ->
    limit(1)
                                        ->
    execute($dc->id);
            
            
    // Set variables
            
    $firstname    $objMember->firstname;
            
    $lastname    $objMember->lastname;

            if(!
    $varValue && $firstname && $lastname)
            {
                
    // Generate 'participant' from given name
                
    return $lastname ', ' $firstname;
            }
            else
            {
                return 
    $varValue;
            }
        }
    }
    Ich habe das mal gekürzt (hoffentlich nicht zu viel )

    Wichtig ist das save_callback. Die Funktion wird aufgerufen, bevor das Feld gespeichert wird.

    Du brauchst das Feld "Seitentitel" nicht mehr zu erstellen. Deswegen fällt bei dir das
    "$GLOBALS['TL_DCA']['tl_member']['fields']['participant'] = array( ... )"
    weg. Du solltest eher schreiben: $GLOBALS['TL_DCA']['tl_page']['fields']['pageTitle']['save_callback'] = 'DIE FUNKTION NUN AUFRUFEN, SIEHE OBEN';

    Nicht getestet!

    (Und ich glaube, dann brauchst du deinen eigenen InsertTag nicht mehr.)

  6. #6
    Contao-Nutzer
    Registriert seit
    22.08.2011.
    Beiträge
    75

    Standard

    Danke. Ich werde mich damit beschäftigen...

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •