MetaModels Workshop in Berlin
Ergebnis 1 bis 18 von 18

Thema: Theme+ 4: "Entwicklermodus" deaktivieren?

  1. #1
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Vienna, Austria
    Beiträge
    20.567
    User beschenken
    Wunschliste

    Standard Theme+ 4: "Entwicklermodus" deaktivieren?

    Lässt sich der "Entwicklermodus" nicht doch irgendwie deaktivieren, von mir aus durch Eingriff in den aktuellen Source der Extension? Kunden könnten es als störend empfinden, wenn sie im Backend eingelogged sind und das Frontend bei jedem Seitenaufruf vermeintlich ewig lädt, wenn bspw. viele einzelne JavaScript oder CSS Dateien durch den Theme+ Entwicklermodus ungecached immer wieder einzeln aufgerufen werden.

    Darüberhinaus stört es mich auch als Entwickler, wenn es um JavaScript Dinge geht... HTML & CSS wären ja noch relativ schnell geladen, aber wenn man warten muss bis die ganze Kette an einzelnen JavaScripts fertig geladen hat, bei jedem Seitenaufruf, nervt das schon ziemlich. Als Workaround könnte man natürlich auf welche Weise auch immer (zwei Verschiedene Browser oder Instanzen) verschiedene Sessions für Backend und Frontend verwenden... bequem ist das aber auch nicht .
    Geändert von Spooky (18.07.2013 um 17:14 Uhr)

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Vienna, Austria
    Beiträge
    20.567
    User beschenken
    Wunschliste

    Standard

    War doch nicht so schwierig den entsprechenden Kontrollpunkt zu finden. class ThemePlus:
    PHP-Code:
        public static function isDesignerMode()
        {
            return static::
    getInstance()->blnLiveMode
                
    false
                
    true;
        } 
    In der ThemePlus.php. (blnLiveMode wird indirekt über getInstance() gesetzt.) Um den Entwicklermodus manuell zu deaktivieren hier einfach statt dessen false zurückgeben lassen.

  3. #3
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    Ich kenne das Problem und arbeite an einer Lösung, für den Moment kannst du ThemePlus::setDesignerMode(false) oder ThemePlus::setLiveMode(true) verwenden, z.B. in deiner initconfig.php.

  4. #4
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Vienna, Austria
    Beiträge
    20.567
    User beschenken
    Wunschliste

    Standard

    Ah ok, danke .

    // hm, muss ich die ThemePlus Class in der initconfig.php manuell includen? Weil ansonsten bekomme ich einen "Class 'ThemePlus' not found" error
    Geändert von Spooky (21.07.2013 um 09:40 Uhr)

  5. #5
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    sry, die Klasse heißt korrekterweise natürlich ThemePlus\ThemePlus

    PS: Wenn Probleme auftreten, bitte nicht korrigieren sondern neu kommentieren, sonst bekomme ich das nicht mit (-> gibt sonst keine E-Mail Notification)

  6. #6
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Vienna, Austria
    Beiträge
    20.567
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von tril Beitrag anzeigen
    sry, die Klasse heißt korrekterweise natürlich ThemePlus\ThemePlus
    Achja, thx, dachte auch nicht an den Namespace.

    Zitat Zitat von tril Beitrag anzeigen
    PS: Wenn Probleme auftreten, bitte nicht korrigieren sondern neu kommentieren, sonst bekomme ich das nicht mit (-> gibt sonst keine E-Mail Notification)
    Jo, mache ich normalerweise eh, waren in dem Fall nur ein paar Minuten dazwischen.

  7. #7
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Vienna, Austria
    Beiträge
    20.567
    User beschenken
    Wunschliste

    Standard

    Komisch, wenn ich
    PHP-Code:
    ThemePlus\ThemePlus::setDesignerMode(false); 
    in der initconfig.php verwende, funktioniert es zwar, aber ich bekomme im Backend ganz unten ein paar PHP Warnings ausgespuckt:
    Code:
    Warning: mysqli::real_escape_string(): Couldn't fetch mysqli in system/modules/core/library/Contao/Database/Mysqli/Statement.php on line 48
    
    #0 [internal function]: __error(2, 'mysqli::real_es...', '/data/www/***...', 48, Array)
    #1 system/modules/core/library/Contao/Database/Mysqli/Statement.php(48): mysqli->real_escape_string('a:28:{s:7:"refe...')
    #2 system/modules/core/library/Contao/Database/Statement.php(398): Contao\Database\Mysqli\Statement->string_escape('a:28:{s:7:"refe...')
    #3 system/modules/core/library/Contao/Database/Statement.php(373): Contao\Database\Statement->escapeParams(Array)
    #4 system/modules/core/library/Contao/Database/Statement.php(252): Contao\Database\Statement->replaceWildcards(Array)
    #5 system/modules/core/classes/BackendUser.php(127): Contao\Database\Statement->execute('a:28:{s:7:"refe...', '1')
    #6 [internal function]: Contao\BackendUser->__destruct()
    #7 {main}
    
    
    Warning: mysqli::real_escape_string(): Couldn't fetch mysqli in system/modules/core/library/Contao/Database/Mysqli/Statement.php on line 48
    
    #0 [internal function]: __error(2, 'mysqli::real_es...', '/data/www/***...', 48, Array)
    #1 system/modules/core/library/Contao/Database/Mysqli/Statement.php(48): mysqli->real_escape_string('1')
    #2 system/modules/core/library/Contao/Database/Statement.php(398): Contao\Database\Mysqli\Statement->string_escape('1')
    #3 system/modules/core/library/Contao/Database/Statement.php(373): Contao\Database\Statement->escapeParams(Array)
    #4 system/modules/core/library/Contao/Database/Statement.php(252): Contao\Database\Statement->replaceWildcards(Array)
    #5 system/modules/core/classes/BackendUser.php(127): Contao\Database\Statement->execute('a:28:{s:7:"refe...', '1')
    #6 [internal function]: Contao\BackendUser->__destruct()
    #7 {main}
    
    Fatal error: Exception thrown without a stack frame in Unknown on line 0

  8. #8
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    Argh, das zerhaut den Initialisation Stack ... versuche es mal so:
    PHP-Code:
    <?php
    if (TL_MODE == 'BE') {
        
    BackendUser::getInstance();
        
    Database::getInstance();
    }
    ThemePlus\ThemePlus::setDesignerMode(false);
    Wenn das nicht hilft, die beiden Zeilen BackendUser::getInstance(); und Database::getInstance(); mal vertauschen.

    MfG Tristan

  9. #9
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    PS, Alternativ sollte es eigentlich auch so gehen:
    PHP-Code:
    <?php 
    if (TL_MODE == 'FE') { 
        
    ThemePlus\ThemePlus::setDesignerMode(false);
    }

  10. #10
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Vienna, Austria
    Beiträge
    20.567
    User beschenken
    Wunschliste

    Standard

    Passt, funktioniert

  11. #11
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Vienna, Austria
    Beiträge
    20.567
    User beschenken
    Wunschliste

    Standard

    Leider verursacht die initconfig Lösung doch auch andere Probleme: https://community.contao.org/de/show...em-mit-Session

  12. #12
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    Dann wird es dich freuen, dass man den Designer Modus zukünftig separat pro Benutzer aktivieren muss, dieser ist per default deaktiviert.

  13. #13
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Vienna, Austria
    Beiträge
    20.567
    User beschenken
    Wunschliste

    Standard

    Passt . Zukünftig heißt wann genau? Oder gibt's das schon auf GitHub .

  14. #14
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    ich baue da grad dran rum, wird wohl innerhalb dieser Woche kommen

  15. #15
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Vienna, Austria
    Beiträge
    20.567
    User beschenken
    Wunschliste

    Standard

    Okidoki, thx.

  16. #16
    Contao-Fan Avatar von Michael
    Registriert seit
    19.06.2009.
    Beiträge
    479

    Standard

    Ich hänge mich hier einmal rein. Habe seit kurze fast die genau gleiche Fehlermeldung:
    Code:
    PHP Warning: mysqli::real_escape_string() [<a href='http://ch2.php.net/manual/en/mysqli.real-escape-string.php'>mysqli.real-escape-string.php</a>]: Couldn't fetch mysqli in .../system/modules/core/library/Contao/Database/Mysqli/Statement.php on line 44
    #0 [internal function]: __error(2, 'mysqli::real_es...', '/home/.../w...', 44, Array)
    #1 .../system/modules/core/library/Contao/Database/Mysqli/Statement.php(44): mysqli->real_escape_string('a:27:{s:7:"refe...')
    #2 .../system/modules/core/library/Contao/Database/Statement.php(347): Contao\Database\Mysqli\Statement->string_escape('a:27:{s:7:"refe...')
    #3 .../system/modules/core/library/Contao/Database/Statement.php(322): Contao\Database\Statement->escapeParams(Array)
    #4 .../system/modules/core/library/Contao/Database/Statement.php(261): Contao\Database\Statement->replaceWildcards(Array)
    #5 .../system/modules/core/classes/BackendUser.php(154): Contao\Database\Statement->execute('a:27:{s:7:"refe...', '2')
    #6 [internal function]: Contao\BackendUser->__destruct()
    #7 {main}
    Habe ein gekauftes Theme(nicht das oben erwähnte) im Einsatz und eine eigene Erweiterung. Bis vor Kurzem lief alles rund.
    Hat jemand einen Tipp?

    Besten Dank!
    Michael
    Contao ist echt !

  17. #17
    Contao-Urgestein
    Registriert seit
    29.10.2009.
    Beiträge
    1.769
    Partner-ID
    626
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Michael Beitrag anzeigen
    Ich hänge mich hier einmal rein. Habe seit kurze fast die genau gleiche Fehlermeldung:
    Code:
    PHP Warning: mysqli::real_escape_string() [<a href='http://ch2.php.net/manual/en/mysqli.real-escape-string.php'>mysqli.real-escape-string.php</a>]: Couldn't fetch mysqli in .../system/modules/core/library/Contao/Database/Mysqli/Statement.php on line 44
    #0 [internal function]: __error(2, 'mysqli::real_es...', '/home/.../w...', 44, Array)
    #1 .../system/modules/core/library/Contao/Database/Mysqli/Statement.php(44): mysqli->real_escape_string('a:27:{s:7:"refe...')
    #2 .../system/modules/core/library/Contao/Database/Statement.php(347): Contao\Database\Mysqli\Statement->string_escape('a:27:{s:7:"refe...')
    #3 .../system/modules/core/library/Contao/Database/Statement.php(322): Contao\Database\Statement->escapeParams(Array)
    #4 .../system/modules/core/library/Contao/Database/Statement.php(261): Contao\Database\Statement->replaceWildcards(Array)
    #5 .../system/modules/core/classes/BackendUser.php(154): Contao\Database\Statement->execute('a:27:{s:7:"refe...', '2')
    #6 [internal function]: Contao\BackendUser->__destruct()
    #7 {main}
    Habe ein gekauftes Theme(nicht das oben erwähnte) im Einsatz und eine eigene Erweiterung. Bis vor Kurzem lief alles rund.
    Hat jemand einen Tipp?

    Besten Dank!
    Michael
    Wenn Theme+ nicht eingesetzt wird, dann ist der Beitrag hier im Forum falsch aufehoben.

    Dieser Fehler tritt auf, wenn irgendeine Erweiterung die Reihenfolge von den Contao Objekten (Database und User) falsch initialisiert. Zuerst muss das User-Objekt erstellt werden, in deinem Fall der BackendUser und danach die Datenbank. Der schwierige an den Fehler, dass man die Ursache nicht debuggen kann. Dir bleibt nichts anderes übrig als deine eigene Erweiterung und das Theme zu überprüfen.

  18. #18
    Contao-Fan Avatar von Michael
    Registriert seit
    19.06.2009.
    Beiträge
    479

    Standard

    Hallo webstar

    Ja, dann hätte ich wo möglich besser eine neues Thema erstellt. Sorry!
    Aber besten Dank für deine Erklärung! Dies hilft schon etwas weiter.
    Contao ist echt !

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
  •