Ergebnis 1 bis 19 von 19

Thema: Fehler nach DCA-Erweiterung

  1. #1
    Contao-Fan
    Registriert seit
    13.08.2010.
    Beiträge
    304

    Standard Fehler nach DCA-Erweiterung

    Hallo,

    ich habe der Tabelle tl_page ein neues Feld hinzugefügt (bzw. es versucht ) und erhalte nun - wenn ich im Backend die Seitenstruktur aufrufen möchte - die folgende Fehlermeldung:



    Das habe ich gemacht:

    (1) /system/modules/seofootertext/config/database.sql angelegt mit folgendem Inhalt:
    Code:
    CREATE TABLE `tl_page` (
      `seofootertext` varchar(255) NOT NULL default ''
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    (2) /system/modules/seofootertext/dca/tl_page.php angelegt mit folgendem Inhalt:
    Code:
    // Anpassung der Palette
    $GLOBALS['TL_DCA']['tl_page']['palettes']['regular']=str_replace('description', 'description,seofootertext', $GLOBALS['TL_DCA']['tl_page']['palettes']['regular']);
    
    // Hinzufügen der Feld-Konfiguration
    $GLOBALS['TL_DCA']['tl_page']['fields']['seofootertext'] = array
    (
        'label'     => &$GLOBALS['TL_LANG']['tl_page']['seofootertext'],
        'exclude'   => true,
        'default'   => 0,
        'inputType' => 'input'
    );
    (3) /system/modules/seofootertext/languages/de/tl_page.php angelegt mir folgendem Inhalt:
    Code:
    // Sprache deutsch
    $GLOBALS['TL_LANG']['tl_page']['seofootertext']=array(
      'SEO Footer-Text',
      'SEO-Text in der Copyright-Zeile'
    );
    (4) Contao-Installtool aufgerufen und Datenbank aktualisiert.

    Und nun erhalte ich o.g. Fehler. Hat jemand eine Idee, wo der Fehler liegt?

    Besten Dank,
    Timo

  2. #2
    Gesperrt
    Registriert seit
    02.12.2009.
    Ort
    Berlin
    Beiträge
    103

    Standard

    nur eine Vermutung:

    vielleicht liegt der Fehler nicht im Code, sondern in der Art, wie Du die Dateien speicherst. Welchen Editor verwendest Du? In welchem Format speichert der Editor? UTF-8? Mit oder ohne BOM (byte order mark)?

    Eigentlich müsste das zwar zu einem anderen Fehler führen, aber was anderes fällt mir dazu nicht ein.

  3. #3
    Alter Contao-Hase
    Registriert seit
    04.02.2010.
    Beiträge
    1.366

    Standard

    Hi, ich glaub, das liegt am default eines VARCHAR(..) Feldes. Ich hab mal was gelesen, dass da ein Ei gibt bei MySQL. Evtl. mal weglassen, nur, um sicher zu gehen.

    Gruß
    Michel

  4. #4
    Gesperrt
    Registriert seit
    02.12.2009.
    Ort
    Berlin
    Beiträge
    103

    Standard

    Die Fehlermeldung würde aber in jedem Fall anders aussehen.... bei einem Datenbank-Fehler auch.
    Also vielleicht kannst Du schrittweise nochmal zurückgehen. Also DB-Feld nochmal rausschmeißen - testen.. usw.

    Gibst Du uns bitte nochmal Feedback, wie der Stand aktuell ist?

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

    Standard

    Deaktiviere mal die GZIP Komprimierung, dann kommt vielleicht der Fehler ans Tageslicht

  6. #6
    Contao-Fan
    Registriert seit
    13.08.2010.
    Beiträge
    304

    Standard

    Hallo,

    besten Dank für die ganzen Hinweise, denen ich Schritt für Schritt nachgegangen bin. Der Fehler lag - leider - in meiner nächtlichen geistigen Umnachtung: Ich hatte die /system/modules/seofootertext/dca/tl_page.php nicht geschlossen (?>). Die GZIP-Deaktivierung hat´s ans Tageslicht gebracht.

    Dennoch danke für eure zahlreichen Überlegungen und Hinweise!

    Eine Frage noch im Anschluss: Ließe sich der Wert "seofootertext" nun eigentlich per InsertTag aus der DB auslesen?

    Gruß, TN

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

    Standard

    Du kannst den replaceInsertTag Hook dafür verwenden und einen eigenen Hook Schreiben, der das für dich tut

  8. #8
    Contao-Fan
    Registriert seit
    13.08.2010.
    Beiträge
    304

    Standard

    Hallo,

    mein replaceInsertTag-Versuch nach dieser Anleitung hat nicht ganz funktioniert:

    /system/modules/seofootertext/config/config.php
    Code:
    $GLOBALS['TL_HOOKS']['replaceInsertTags'][] = array('SeoFooterText', 'SeoFooterTag');
    /system/modules/seofootertext/SeoFooterText.php
    Code:
    public function SeoFooterTag($strTag)
    
    {
        if ($strTag == 'seotag')
        {
            return 'seotag replacement';
        }
     
        return false;
    }
    Ergebis sind weiße Seiten im Frontend ;-)

    Die gesamte Extension (falls man das bisschen schon so nennen kann) mal als ZIP im Anhang.

    Über das Aussehen des InsertTags bin ich mir auch noch nicht ganz im Klaren: {{env::seotag}}? Dazu konnte ich leider nichts finden...
    Angehängte Dateien Angehängte Dateien
    Geändert von NoName26 (08.03.2011 um 14:58 Uhr)

  9. #9
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.559
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo NoName26,

    Zitat Zitat von NoName26 Beitrag anzeigen
    Ich hatte die /system/modules/seofootertext/dca/tl_page.php nicht geschlossen (?>).
    Der schließende PHP-Tag ist nicht zwingend notwendig.

    http://www.php.net/manual/de/languag...separation.php
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

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

    Standard

    Zitat Zitat von xchs Beitrag anzeigen
    Hallo NoName26,


    Der schließende PHP-Tag ist nicht zwingend notwendig.

    http://www.php.net/manual/de/languag...separation.php
    Das lässt sich aber per php.ini Konfigurieren, das PHP da strikter vorgeht und ein abschließendes ?> verlangt

    PS: Scheint aber eher ein Relikt aus alten Zeiten zu sein, nach meinem Wissen aber immer noch vorhanden ...

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

    Standard

    Du hast die Klasse vergessen
    PHP-Code:
    class SeoFooterText
    {
      public function 
    SeoFooterTag($strTag)
      {
        if (
    $strTag == 'seotag')
        {
            return 
    'seotag replacement';
        }
     
        return 
    false;
      }

    PS: sry4doppelpost, hab in der Hektik auf 2 Antworten geantwortet

  12. #12
    Contao-Fan
    Registriert seit
    13.08.2010.
    Beiträge
    304

    Standard

    Naja, das Schließen hat immerhin geholfen ;-)

    Allerdings stehe ich bereits vor einem neuen Problem den replaceInsertTag-Hook betreffend. Siehe oben... :-(

  13. #13
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.559
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von tril Beitrag anzeigen
    Das lässt sich aber per php.ini Konfigurieren, das PHP da strikter vorgeht und ein abschließendes ?> verlangt
    Weißt Du vielleicht auch, wie die entsprechende Anweisung genau lautet?

    Wenn das tatsächlich so in der PHP-Konfiguration eingestellt wurde, dann dürften so ziemlich alle Erweiterungen von andreas.schempp nicht korrekt funktionieren...
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  14. #14
    Contao-Fan
    Registriert seit
    13.08.2010.
    Beiträge
    304

    Standard

    Schande über mein Haupt! Danke tril!

    Wie müsste denn der InsertTag dann aussehen? {{env::seotag}} und {{var::seotag}} funktionieren schonmal nicht :-(

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

    Standard

    Zitat Zitat von xchs Beitrag anzeigen
    Weißt Du vielleicht auch, wie die entsprechende Anweisung genau lautet?

    Wenn das tatsächlich so in der PHP-Konfiguration eingestellt wurde, dann dürften so ziemlich alle Erweiterungen von andreas.schempp nicht korrekt funktionieren...
    Puh, da fragste mich was, damit bin ich das letzte mal vor 3~4 Jahren oder länger konfrontiert gewesen...

    Zitat Zitat von NoName26 Beitrag anzeigen
    Wie müsste denn der InsertTag dann aussehen? {{env::seotag}} und {{var::seotag}} funktionieren schonmal nicht :-(
    HTML-Code:
    {{seotag}}

  16. #16
    Contao-Fan
    Registriert seit
    13.08.2010.
    Beiträge
    304

    Standard

    Ne das ist mir jetzt zu einfach und logisch. Gibt´s da nicht was anderes?

    Okay, {{seotag}} funktioniert, gibt aber "seotag replacement" aus. D.h.
    Code:
    return 'seotag replacement';
    muss ich ersetzen, macht ja Sinn. Hier müsste ich vermutlich die Verbindung zu meiner Spalte "seofootertext" aus der DB-Tabelle "tl_page" schaffen, richtig? Herrje, ich bin gerade gnadenlos überfordert...
    Geändert von NoName26 (08.03.2011 um 15:25 Uhr)
    Viele Grüße, TN

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

    Standard

    Genau, imo müsstest du das direkt vom $objPage Objekt abgreifen können:
    PHP-Code:
    global $objPage;
    return 
    $objPage->seofootertext
    Wenn dem nicht so ist, dann halt über die DB:
    PHP-Code:
    class SeoFooterText extends Frontend
    {
      public function 
    __construct()
      {
        
    $this->import('Database');
      }
      public function 
    SeoFooterTag($strTag
      { 
        if (
    $strTag == 'seotag'
        { 
            
    $objPage $this->Database->prepare("SELECT seofootertext FROM tl_page WHERE id=?")->execute($GLOBALS['objPage']->id);
            if (
    $objPage->next())
            {
              return 
    $objPage->seofootertext;
            }
            return 
    ''
        } 
      
        return 
    false
      } 


  18. #18
    Contao-Fan
    Registriert seit
    13.08.2010.
    Beiträge
    304

    Standard

    Perfekt, du bist mein Gott ;-) Besten Dank!
    Viele Grüße, TN

  19. #19
    Contao-Fan
    Registriert seit
    13.08.2010.
    Beiträge
    304

    Standard

    Macht´s Sinn, das in Extension Repository zu stellen? Ist zwar nur ne kleine, aber für Google schon ganz nette Erweiterung...

    Wann ja: An wen darf ich´s schicken?
    Viele Grüße, TN

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Tags nach Update der Erweiterung verschwunden
    Von sinusfabrik im Forum tags
    Antworten: 4
    Letzter Beitrag: 08.02.2011, 23:04
  2. Antworten: 2
    Letzter Beitrag: 23.07.2010, 13:58
  3. [gallery] Probleme nach Update der Erweiterung
    Von Chris87 im Forum Sonstige Erweiterungen
    Antworten: 4
    Letzter Beitrag: 20.07.2010, 12:19
  4. morelinks Erweiterung - Fehler bei Deinstallation
    Von mdoll im Forum Sonstige Erweiterungen
    Antworten: 2
    Letzter Beitrag: 21.02.2010, 05:36
  5. Erweiterung nach Umzug geht nicht mehr
    Von chr.flader im Forum Installation / Update
    Antworten: 16
    Letzter Beitrag: 20.02.2010, 11:45

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •