Ergebnis 1 bis 5 von 5

Thema: [Events] Listenanzeige im Backend anpassen

  1. #1
    Contao-Nutzer Avatar von JBN
    Registriert seit
    03.07.2014.
    Ort
    Prieros bei Berlin
    Beiträge
    22

    Standard [Events] Listenanzeige im Backend anpassen

    Hallo zusammen,

    ich möchte gerne die Anzeige der Events im Backend ändern. Im Prinzip möchte ich die Funktion "listEvents" aus der tl_calendar_events.php überschreiben bzw. deren Ausgabe ändern. Dort soll zum einen das Datum als erstes angezeigt werden und danach erst der Titel und ich möchte ein eigenes Feld zusätzlich anzeigen. Wie gehe ich da am sinnvollsten Updatesicher ran? Ich habe es mit einer "abgeleitetend Klasse" versucht - aber dort kann ich dann die Funktion "listEvents" nicht "überschreiben" - oder doch? Ich stehe da gerade etwas auf dem Schlauch...

    Danke schon mal im Voraus.
    JBN

  2. #2
    Contao-Urgestein
    Registriert seit
    30.01.2011.
    Ort
    Stuttgart
    Beiträge
    4.138

    Standard

    Wurde die neue Klasse registriert?
    Wie sieht die "neue" tl_calendar_events.php aus?

  3. #3
    Contao-Nutzer Avatar von JBN
    Registriert seit
    03.07.2014.
    Ort
    Prieros bei Berlin
    Beiträge
    22

    Standard

    Ich habe mein eigenes Modul angelegt und in der autoload.php folgendes eingetragen:

    Code:
    ClassLoader::addClasses(array(
    	'tl_calendar_events' => 'system/modules/jbn/classes/tl_calendar_events.php',
    ));
    Dann gibt es eine entsprechende Datei die so aussieht:

    Code:
    use Backend;
    
    /**
     * Class tl_calendar_events
     *
     */
    class tl_calendar_events extends \Backend\tl_calendar_events
    {
    
    	public function listEvents($arrRow)
    	{
    		$span = Calendar::calculateSpan($arrRow['startTime'], $arrRow['endTime']);
    
    		if ($span > 0)
    		{
    			$date = Date::parse($GLOBALS['TL_CONFIG'][($arrRow['addTime'] ? 'datimFormat' : 'dateFormat')], $arrRow['startTime']) . ' - ' . Date::parse($GLOBALS['TL_CONFIG'][($arrRow['addTime'] ? 'datimFormat' : 'dateFormat')], $arrRow['endTime']);
    		}
    		elseif ($arrRow['startTime'] == $arrRow['endTime'])
    		{
    			$date = Date::parse($GLOBALS['TL_CONFIG']['dateFormat'], $arrRow['startTime']) . ($arrRow['addTime'] ? ' ' . Date::parse($GLOBALS['TL_CONFIG']['timeFormat'], $arrRow['startTime']) : '');
    		}
    		else
    		{
    			$date = Date::parse($GLOBALS['TL_CONFIG']['dateFormat'], $arrRow['startTime']) . ($arrRow['addTime'] ? ' ' . Date::parse($GLOBALS['TL_CONFIG']['timeFormat'], $arrRow['startTime']) . '-' . Date::parse($GLOBALS['TL_CONFIG']['timeFormat'], $arrRow['endTime']) : '');
    		}
    
    		return '<div class="tl_content_left"><span style="color:#333;padding-right:5px">[' . $date . ']</span> ' . $arrRow['title'] . '</div>';
    	}
    
    }
    Im Prinzip soll hier nur die Anzeige umgedreht werden und später noch ein weitere Flag hinzu kommen.
    Nur wird diese Klasse anscheinend gar nicht erst geladen...

  4. #4
    Contao-Urgestein
    Registriert seit
    30.01.2011.
    Ort
    Stuttgart
    Beiträge
    4.138

    Standard

    kopiere folgendes nach system\modules\calendar_mod\dca
    PHP-Code:
    <?php

    /**
     * Contao Open Source CMS
     *
     * Copyright (c) 2005-2014 Leo Feyer
     *
     * @package Calendar
     * @link    https://contao.org
     * @license http://www.gnu.org/licenses/lgpl-3.0.html LGPL
     */

    /**
     * Table tl_calendar_events
     */

    $GLOBALS['TL_DCA']['tl_calendar_events']['list']['sorting']['child_record_callback'] = array('tl_calendar_events_mod''listEvents');

    /**
     * Class tl_calendar_events_mod
     *
     * Provide miscellaneous methods that are used by the data configuration array.
     * @copyright  Leo Feyer 2005-2014
     * @author     Leo Feyer <https://contao.org>
     * @package    Calendar
     */
    class tl_calendar_events_mod extends \Backend
    {

        
    /**
         * Add the type of input field
         * @param array
         * @return string
         */
        /**
         * Add the type of input field
         * @param array
         * @return string
         */
        
    public function listEvents($arrRow)
        {
            
    $span Calendar::calculateSpan($arrRow['startTime'], $arrRow['endTime']);

            if (
    $span 0)
            {
                
    $date Date::parse($GLOBALS['TL_CONFIG'][($arrRow['addTime'] ? 'datimFormat' 'dateFormat')], $arrRow['startTime']) . ' - ' Date::parse($GLOBALS['TL_CONFIG'][($arrRow['addTime'] ? 'datimFormat' 'dateFormat')], $arrRow['endTime']);
            }
            elseif (
    $arrRow['startTime'] == $arrRow['endTime'])
            {
                
    $date Date::parse($GLOBALS['TL_CONFIG']['dateFormat'], $arrRow['startTime']) . ($arrRow['addTime'] ? ' ' Date::parse($GLOBALS['TL_CONFIG']['timeFormat'], $arrRow['startTime']) : '');
            }
            else
            {
                
    $date Date::parse($GLOBALS['TL_CONFIG']['dateFormat'], $arrRow['startTime']) . ($arrRow['addTime'] ? ' ' Date::parse($GLOBALS['TL_CONFIG']['timeFormat'], $arrRow['startTime']) . '-' Date::parse($GLOBALS['TL_CONFIG']['timeFormat'], $arrRow['endTime']) : '');
            }

            return 
    '<div class="tl_content_left">' ' <span style="color:#b3b3b3;padding-left:3px">[' $date '] </span>' $arrRow['title'] . '</div>';
        }


    }
    damit ist dann datum und titel in einer contao 3.2.x Version vertauscht - für 3.3 ist die Funktion modifiziert und verwendet die Config::get Methode
    Geändert von magicsepp (18.09.2014 um 07:39 Uhr)

  5. #5
    Contao-Nutzer Avatar von JBN
    Registriert seit
    03.07.2014.
    Ort
    Prieros bei Berlin
    Beiträge
    22

    Standard

    Tausend Dank... der Weg ist super...

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
  •