Contao-Camp 2024
Ergebnis 1 bis 8 von 8

Thema: Feld mit Link hat immer die String-Länge 16

  1. #1
    Contao-Nutzer Avatar von malle
    Registriert seit
    21.03.2012.
    Ort
    Berlin
    Beiträge
    65

    Standard Feld mit Link hat immer die String-Länge 16

    Ich wollte $this->Environment->request (link der aktuellen Seite) mit $box->link (Link des Teasers) vergleichen.
    Obwohl ich optisch keinen Unterschied feststellen kann, wenn ich mir die Variablen-Inhalte ausgeben lasse, klappt
    if ($this->Environment->request == $box->link): nicht (ich spare mir hier mal das php darum).

    Ein var_dump liefert für $this->Environment->request:
    string(20) "de/auditorium-b.html"

    Ein var_dump liefert für $box->link:
    string(16) "de/auditorium-b.html"

    Im Ausgabe-Template sind noch mehr $box->link in einer foreach-Schleife.
    Jeder (!) $box->link liefert string(16), obwohl die Links unterschiedlich lang sind.

    Es ist ein Contao 4.9.13 mit neuester RSCE Version.

    Gibt es Optionenen, die beiden Strings vergleichbar zu machen?
    Es gibt immer Möglichkeiten.

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.896
    Partner-ID
    10107

    Standard

    Poste die _config.php des RSCEs, damit wir wissen, was sich hinter $box->link genau verbirgt. Vermutlich ein Insert-Tag
    » sponsor me via GitHub or PayPal or Revolut

  3. #3
    Contao-Nutzer Avatar von malle
    Registriert seit
    21.03.2012.
    Ort
    Berlin
    Beiträge
    65

    Standard

    PHP-Code:
    <?php

    return array(
         
    'label' => array('Team''Liste mit Bild und Text'),
        
    'types' => array('content''module'),
        
    'standardFields' => array('cssID'), 
        
            
    'fields' => array(
             
    'boxes' => array(
                
    'label' => array('Textboxen'''),
                
    'elementLabel' => 'Teammitglied %s',
                
    'inputType' => 'list'
                
    'minItems' => 1,
                
    /*'maxItems' => 4,*/

        
    'fields' => array( 
                    
    'image' => array(
                        
    'label' => array('Bild''Format min 250x250 Pixel'),
                        
    'inputType' => 'fileTree',
                        
    'eval' => array(
                            
    'fieldType' => 'radio',
                            
    'filesOnly' => true,
                            
    'extensions' => 'jpg,jpeg,png',
                            
    'mandatory'=>false,
                        ),
                    ),
    /*               
          'size' => array(
                'label' => array('Bildbreite und Bildhöhe', ''),
                'inputType' => 'imageSize',
                'options' => \System::getImageSizes(),
                'reference' => &$GLOBALS['TL_LANG']['MSC'],
                'eval' => array(
                    'rgxp' => 'digit',
                    'includeBlankOption' => true,
                ),
            ),
    */                
             
    'alt' => array(
                 
    'label' => array('Alternativtext''Beschreibung für das Bild (SEO)'),
                 
    'eval' => array('maxlength'=>35,'mandatory'=>false,'tl_class' => 'w50 clr'),
                 
    'inputType' => 'text',
                    ),
             
    'name' => array(
                 
    'label' => array('Name'''),
                  
    'eval' => array('mandatory'=>false,'tl_class' => 'w50 clr'),
                  
    'inputType' => 'text',
                    ),
                
    'content' => array(
                   
    'label' => array('Funktion''Funktion in der Firma'),
                   
    'eval' => array('mandatory'=>false,'tl_class' => 'w50 clr'),
                   
    'inputType' => 'text',
                    ),
               
    'phone' => array(
                  
    'label' => array('Telefon''Telefonnummer eingeben'),
                   
    'eval' => array('mandatory'=>false,'tl_class' => 'w50 clr'),
                   
    'inputType' => 'text'
                    
    ),
              
    'phonelink' => array(
                
    'label' => array('Telefon Link''Nur!! Telefonnummer ohne!!! Leerzeichen!!! (12345678) eingeben'),
                
    'inputType' => 'text',
          
    'eval' => array('tl_class' => 'w50 clr'),
           ),                  
               
    'mail' => array(
                
    'label' => array('E-Mail''Bitte nur!!! E-Mail eingeben'),
                
    'inputType' => 'text',
                 
    'eval' => array('tl_class' => 'w50 clr'),
                    ), 
                   
    'short_text' => array(
                   
    'label' => array('Anfragetext''Kurzer Anfrage Text - wir nur gezeigt wenn Link-Title gesetzt'),
                   
    'eval' => array('mandatory'=>false,'tl_class' => 'w50 clr'),
                   
    'inputType' => 'text',
                    ),
                  
    'linktext' => array(
                     
    'label' => array('Link-Title''Button Text - muss!!! eingetragen werden, wenn Link gesetzt wird'),
                     
    'eval' => array('mandatory'=>false,'tl_class' => 'w50 clr'),
                     
    'inputType' => 'text'
                    
    ), 
                  
    'link' => array(
                        
    'label' => array('Anfragelink''wenn gesetzt, ist der Button verlinkt'),
                        
    'eval' => array('rgxp'=>'url''decodeEntities'=>true,'maxlength'=>100,'mandatory'=>false,'tl_class' => 'w50 clr'),
                        
    'inputType' => 'url'
                    
    ),
                    
    'link_target' => array(
                        
    'label' => $GLOBALS['TL_LANG']['MSC']['target'],
                        
    'inputType' => 'checkbox',
                        
    'eval' => array('tl_class' => 'clr'),
                    ),                      
        ),
            ),
                ),
    );
    Sorry, Code ist nicht von mir.
    Es gibt immer Möglichkeiten.

  4. #4
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.682
    User beschenken
    Wunschliste

    Standard

    wo kommt

    PHP-Code:
    'inputType' => 'url' 
    her ?

    https://docs.contao.org/dev/reference/dca/fields/

    Edit: von hier https://rocksolidthemes.com/de/conta...on#feldtyp-url

  5. #5
    Contao-Urgestein
    Registriert seit
    29.10.2009.
    Ort
    Magdeburg
    Beiträge
    2.020
    Partner-ID
    626
    User beschenken
    Wunschliste

    Standard

    Probiere mal \Patchwork\Utf8::strlen(), strlen ist nicht UTF8 kompatibel.

  6. #6
    Contao-Nutzer Avatar von malle
    Registriert seit
    21.03.2012.
    Ort
    Berlin
    Beiträge
    65

    Standard

    Ok. Tatsächlich speichert Contao {{link_url::20}} in der DB.

    Bei der Ausgabe steht das zwar im String (daher auch immer 16 Zeichen lang), aber Contao konvertiert die Ausgabe gleich und damit SEHE ich den richtigen Link, wenn ich mir das mit var_dump ausgeben lasse.
    Es gibt immer Möglichkeiten.

  7. #7
    Contao-Nutzer Avatar von RockSolid Themes
    Registriert seit
    29.05.2012.
    Beiträge
    205
    Partner-ID
    8945

    Standard

    Mit
    PHP-Code:
    \Contao\Controller::replaceInsertTags($box->link
    sollte sich der Insert-Tag in die URL konvertieren lassen.

  8. #8
    Contao-Nutzer Avatar von malle
    Registriert seit
    21.03.2012.
    Ort
    Berlin
    Beiträge
    65

    Standard

    Vielen Dank für die Hilfe!
    Es gibt immer Möglichkeiten.

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
  •