Ergebnis 1 bis 3 von 3

Thema: array_unique und FileAsset

  1. #1
    Contao-Nutzer
    Registriert seit
    05.02.2014.
    Beiträge
    8

    Standard array_unique und FileAsset

    Hallo,

    Ich habe ein Problem mit FileAsset:

    Dieser Code funktioniert:

    PHP-Code:
    $asset = new \Assetic\Asset\FileAsset(TL_ROOT '/assets/style1.css');
    $GLOBALS['TL_CSS'][] = $asset
    Mit diesem bekomme ich eine Fehlermeldung:

    PHP-Code:
    $asset = new \Assetic\Asset\FileAsset(TL_ROOT '/assets/style1.css');
    $GLOBALS['TL_CSS'][] = $asset;
    $asset = new \Assetic\Asset\FileAsset(TL_ROOT '/assets/style2.css');
    $GLOBALS['TL_CSS'][] = $asset
    Code:
    Recoverable error: Object of class Assetic\Asset\FileAsset could not be converted to string in system/modules/theme-plus/classes/src/ThemePlus/ThemePlus.php on line 791
    Und das Problem liegt in:

    system/modules/theme-plus/classes/src/ThemePlus/ThemePlus.php

    in Programmzeil 791:

    PHP-Code:
                $this->addAssetsToCollectionFromArray(
                    
    array_unique($GLOBALS['TL_CSS']),
                    
    'css',
                    
    true,
                    
    $collection,
                    
    $stylesheets,
                    
    $defaultFilters
                
    ); 
    weil:

    http://de3.php.net/manual/de/function.array-unique.php
    Hinweis: Zwei Elemente werden nur dann als gleich angesehen, wenn (string) $elem1 === (string) $elem2. In Worten: Wenn die String-Repräsentation die gleiche ist. Das erste Element wird verwendet.
    Habt ihr eine Lösung oder ist das ein Bug?

    Danke

  2. #2
    Contao-Nutzer
    Registriert seit
    05.02.2014.
    Beiträge
    8

    Standard

    Eine Lösung habe ich gefunden:

    PHP-Code:
                $asset = new \Assetic\Asset\FileAsset(TL_ROOT '/assets/style1.css');
                
    $collection = new \Assetic\Asset\AssetCollection(array($asset));
                
    $asset = new \Assetic\Asset\FileAsset(TL_ROOT '/assets/style2.css');
                
    $collection->add($asset);
                
    $GLOBALS['TL_CSS'][] = $collection

  3. #3
    Contao-Urgestein
    Registriert seit
    03.06.2010.
    Ort
    Wuppertal
    Beiträge
    2.149
    User beschenken
    Wunschliste

    Standard

    Wäre das so nicht effektiver?

    PHP-Code:
                $collection = new \Assetic\Asset\AssetCollection(array(
                    new \
    Assetic\Asset\FileAsset(TL_ROOT '/assets/style1.css'),
                    new \
    Assetic\Asset\FileAsset(TL_ROOT '/assets/style2.css')
                )); 
                
    $GLOBALS['TL_CSS'][] = $collection
    Bin mir aber nicht 100%ig sicher ob das so klappt... Aber du machst mit der Zuweisung ja nichts, von daher sollte die nicht nötig sein.

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
  •