Ergebnis 1 bis 3 von 3

Thema: Einrückungen im Sorting mode 5 pagetree

  1. #1
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.799

    Frage Einrückungen im Sorting mode 5 pagetree

    Wie bekomme ich denn die Einrückungen im sorting mode 5 richtig hin?

    "Aktuelle Berichte" (Ebene 0) und "Deutsche Jugendmeisterschaften" (Ebene 1) sieht noch okay aus. Darunter "Einzel" und "Ländermeisterschaften" ist aber bereits Ebene 2. "EU-Meisterschaften" und "Europacup für Vereinsmannschaften" ist aber wieder Ebene 1, sieht aber wie 0 aus.
    Fast beschleicht mich das Gefühl, nur die Einträge mit dem Toggle-Icon (+ -) stehen richtig. Die ohne Icon müßten um die Icongröße weiter rechts eingerückt werden. Habe ich irgendein Blind-Icon übersehen? Hier der DCA:
    PHP-Code:
    $GLOBALS['TL_DCA']['tl_linkscollection'] = array
    (

        
    // Config
        
    'config' => array
        (
            
    'label'                       => $GLOBALS['TL_LANG']['tl_linkscollection']['maintitle'],
            
    'dataContainer'               => 'Table',
            
    'ctable'                      => array('tl_linkscollection_links'),
            
    'enableVersioning'            => true,
            
    'sql' => array
            (
                
    'keys' => array
                (
                    
    'id' => 'primary',
                    
    'pid' => 'index',
                    
    'alias' => 'index'
                
    )
            )
        ),

        
    // List
        
    'list' => array
        (
            
    'sorting' => array
            (
                
    'mode'                    => 5,
                
    'fields'                  => array('sorting'),
                
    'icon'                    => 'pagemounts.gif',
                
    'panelLayout'             => 'filter,search'
            
    ),
            
    'label' => array
            (
                
    'fields'                  => array('title'),
                
    'format'                  => '%s',
            ),
            
    'global_operations' => array
            (
                
    'toggleNodes' => array
                (
                    
    'label'               => &$GLOBALS['TL_LANG']['MSC']['toggleAll'],
                    
    'href'                => 'ptg=all',
                    
    'class'               => 'header_toggle',
                    
    'showOnSelect'        => true 
                
    ),
                
    'all' => array
                (
                    
    'label'               => &$GLOBALS['TL_LANG']['MSC']['all'],
                    
    'href'                => 'act=select',
                    
    'class'               => 'header_edit_all',
                    
    'attributes'          => 'onclick="Backend.getScrollOffset()" accesskey="e"'
                
    )
            ),
            
    'operations' => array
            (
                
    'edit' => array
                (
                    
    'label'               => &$GLOBALS['TL_LANG']['tl_linkscollection']['edit'],
                    
    'href'                => 'table=tl_linkscollection_links',
                    
    'icon'                => 'edit.gif',
                ),
                
    'editheader' => array
                (
                    
    'label'               => &$GLOBALS['TL_LANG']['tl_linkscollection']['editheader'],
                    
    'href'                => 'act=edit',
                    
    'icon'                => 'header.gif',
                ), 
            )
        ),

        
    // Palettes
        
    'palettes' => array
        (
            
    '__selector__'                => array('protected'), 
            
    'default'                     => '{title_legend},title,alias;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space;{published_legend},published,start,stop'
        
    ), 

        
    // Subpalettes
        
    'subpalettes' => array
        (
            
    'protected'                   => 'groups'
        
    ), 
        
        
    // Fields
        
    'fields' => array
        (
            
    'id' => array
            (
                
    'label'                   => array('ID'),
                
    'search'                  => true,
                
    'sql'                     => "int(10) unsigned NOT NULL auto_increment"
            
    ),
            
    'pid' => array
            (
                
    'sql'                     => "int(10) unsigned NOT NULL default '0'"
            
    ),
            
    'sorting' => array
            (
                
    'sql'                     => "int(10) unsigned NOT NULL default '0'"
            
    ),
            
    'tstamp' => array
            (
                
    'sql'                     => "int(10) unsigned NOT NULL default '0'"
            
    ),
            
    'title' => array
            (
                
    'label'                   => &$GLOBALS['TL_LANG']['tl_linkscollection']['title'],
                
    'exclude'                 => true,
                
    'inputType'               => 'text',
                
    'search'                  => true,
                
    'eval'                    => array('mandatory'=>true'maxlength'=>255'decodeEntities'=>true),
                
    'sql'                     => "varchar(255) NOT NULL default ''"
            
    ),
            
    'alias' => array
            (
                
    'label'                   => &$GLOBALS['TL_LANG']['tl_linkscollection']['alias'],
                
    'exclude'                 => true,
                
    'inputType'               => 'text',
                
    'search'                  => true,
                
    'eval'                    => array('rgxp'=>'folderalias''doNotCopy'=>true'maxlength'=>128'tl_class'=>'w50'),
                
    'sql'                     => "varbinary(128) NOT NULL default ''",
                
    'save_callback' => array
                (
                    array(
    'tl_linkscollection''generateAlias')
                ), 
            ),
            
    'protected' => array
            (
                
    'label'                   => &$GLOBALS['TL_LANG']['tl_linkscollection']['protected'],
                
    'exclude'                 => true,
                
    'filter'                  => true,
                
    'inputType'               => 'checkbox',
                
    'eval'                    => array('submitOnChange'=>true),
                
    'sql'                     => "char(1) NOT NULL default ''"
            
    ),
            
    'groups' => array
            (
                
    'label'                   => &$GLOBALS['TL_LANG']['tl_linkscollection']['groups'],
                
    'exclude'                 => true,
                
    'inputType'               => 'checkbox',
                
    'foreignKey'              => 'tl_member_group.name',
                
    'eval'                    => array('mandatory'=>true'multiple'=>true),
                
    'sql'                     => "blob NULL",
                
    'relation'                => array('type'=>'hasMany''load'=>'lazy')
            ),
            
    'guests' => array
            (
                
    'label'                   => &$GLOBALS['TL_LANG']['tl_linkscollection']['guests'],
                
    'exclude'                 => true,
                
    'filter'                  => true,
                
    'inputType'               => 'checkbox',
                
    'eval'                    => array('tl_class'=>'w50'),
                
    'sql'                     => "char(1) NOT NULL default ''"
            
    ),
            
    'cssID' => array
            (
                
    'label'                   => &$GLOBALS['TL_LANG']['tl_linkscollection']['cssID'],
                
    'exclude'                 => true,
                
    'inputType'               => 'text',
                
    'eval'                    => array('multiple'=>true'size'=>2'tl_class'=>'w50 clr'),
                
    'sql'                     => "varchar(255) NOT NULL default ''"
            
    ),
            
    'space' => array
            (
                
    'label'                   => &$GLOBALS['TL_LANG']['tl_linkscollection']['space'],
                
    'exclude'                 => true,
                
    'inputType'               => 'text',
                
    'eval'                    => array('multiple'=>true'size'=>2'rgxp'=>'digit''nospace'=>true'tl_class'=>'w50'),
                
    'sql'                     => "varchar(64) NOT NULL default ''"
            
    ),
            
    'published' => array
            (
                
    'label'                   => &$GLOBALS['TL_LANG']['tl_linkscollection']['published'],
                
    'exclude'                 => true,
                
    'inputType'               => 'checkbox',
                
    'eval'                    => array('doNotCopy'=>true),
                
    'sql'                     => "char(1) NOT NULL default ''"
            
    ), 
            
    'start' => array
            (
                
    'exclude'                 => true,
                
    'label'                   => &$GLOBALS['TL_LANG']['tl_linkscollection']['start'],
                
    'inputType'               => 'text',
                
    'eval'                    => array('rgxp'=>'datim''datepicker'=>true'tl_class'=>'w50 wizard'),
                
    'sql'                     => "varchar(10) NOT NULL default ''"
            
    ),
            
    'stop' => array
            (
                
    'exclude'                 => true,
                
    'label'                   => &$GLOBALS['TL_LANG']['tl_linkscollection']['stop'],
                
    'inputType'               => 'text',
                
    'eval'                    => array('rgxp'=>'datim''datepicker'=>true'tl_class'=>'w50 wizard'),
                
    'sql'                     => "varchar(10) NOT NULL default ''"
            

        )
    );

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

        
    /**
         * Import the back end user object
         */
        
    public function __construct()
        {
            
    parent::__construct();
            
    $this->import('BackendUser''User');
        }

        
    /**
         * Auto-generate a page alias if it has not been set yet
         * @param mixed
         * @param \DataContainer
         * @return string
         * @throws \Exception
         */
        
    public function generateAlias($varValueDataContainer $dc)
        {
            
    $autoAlias false;

            
    // Generate an alias if there is none
            
    if ($varValue == '')
            {
                
    $autoAlias true;
                
    $varValue standardize(String::restoreBasicEntities($dc->activeRecord->title));
            }

            
    $objAlias $this->Database->prepare("SELECT id FROM tl_linkscollection WHERE id=? OR alias=?")
                                       ->
    execute($dc->id$varValue);

            
    // Check whether the page alias exists
            
    if ($objAlias->numRows 1)
            {
                if (!
    $autoAlias)
                {
                    throw new 
    Exception(sprintf($GLOBALS['TL_LANG']['ERR']['aliasExists'], $varValue));
                }

                
    $varValue .= '-' $dc->id;
            }

            return 
    $varValue;
        } 


    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

  2. #2
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.799

    Standard

    Ich habe jetzt mal weitergeforscht.
    Die Anzeige des Standardicons scheint nicht die richtigen Abstände zu verwenden. Ich sah mir deshalb genauer den label_callback in tl_page an. Und mit der Verwendung eines eigenen Icons klappt es jetzt:



    Jetzt bastele ich dann weiter an der Breadcrumb-Navigation, wie man sieht.
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

  3. #3
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.799

    Standard

    Der Vollständigkeit halber hier der (gekürzte) Code dazu:

    dca/tl_linkscollection.php
    PHP-Code:
    $GLOBALS['TL_DCA']['tl_linkscollection'] = array
    (
        
    'list' => array
        (
            
    'label' => array
            (
                
    'fields'                  => array('title'),
                
    'format'                  => '%s',
                
    'label_callback'          => array('tl_linkscollection''addIcon')
            ),
        )
    );

    class 
    tl_linkscollection extends Backend
    {

        
    /**
         * Add the breadcrumb menu
         */
        
    public function addBreadcrumb()
        {
            
    $arrLinks = array
            (
                
    => 'Rubrik 0',
                
    => 'Rubrik 1',
                
    => 'Rubrik 2',
            );
            
            
    // Insert breadcrumb menu
            
    $GLOBALS['TL_DCA']['tl_linkscollection']['list']['sorting']['breadcrumb'] .= '
            <ul id="tl_breadcrumb">
                  <li>' 
    implode(' &gt; </li><li>'$arrLinks) . '</li>
            </ul>'
    ;
        }

        
    /**
         * Add an image to each page in the tree
         *
         * @param array         $row
         * @param string        $label
         * @param DataContainer $dc
         * @param string        $imageAttribute
         * @param boolean       $blnReturnImage
         * @param boolean       $blnProtected
         *
         * @return string
         */
        
    public function addIcon($row$labelDataContainer $dc=null$imageAttribute=''$blnReturnImage=false$blnProtected=false)
        {
            if (
    $blnProtected)
            {
                
    $row['protected'] = true;
            }

            
    $image 'system/modules/linkscollection/assets/images/category.png';
            
    $imageAttribute trim($imageAttribute ' data-icon="category.png" data-icon-disabled="category.png"');

            
    // Return the image only
            
    if ($blnReturnImage)
            {
                return \
    Image::getHtml($image''$imageAttribute);
            }

            
    // Markiere Root-Kategorien
            
    if ($row['pid'] == '0')
            {
                
    $label '<strong>' $label '</strong>';
            }

            
    // Rückgabe der Zeile
            
    return \Image::getHtml($image''$imageAttribute) . '<a href="' . \Controller::addToUrl('node='.$row['id']) . '" title="'.specialchars($GLOBALS['TL_LANG']['MSC']['selectNode']).'"> ' $label '</a>';

        }

    Die Breadcrumb-Funktion habe ich für Nachahmer mal drin gelassen. Dort baue ich die Datenbankabfragen ein, um die Breadcrumb aufzubauen.
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

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
  •