Eigenes Inhaltsfeld

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Messa
    Alter Contao-Hase
    • 19.01.2011
    • 1423

    #1

    Eigenes Inhaltsfeld

    Hallo Leute.

    Will ein eigenens Feld bei tl_avisota_newsletter.php machen.
    Besser gesagt, dass Feld ist drinnen.
    Möchte es nun als Wert wieder raus holen.
    Wie mache ich das am besten, möchte ungern alle Dateien durchlesen.
    Hätte es gerne das ich es im Template einfach einfügen kann wie "<?php echo $this->body; ?>"

    Dann könnte ich den direkt beim <body> ein style dazu machen.

    Es geht darum, dass mein Kunde bei jedem News ein neues Background image haben möchte.
    Der wert wird schon in die Datenbank eingefragen

    Code:
    -- 
    -- Table `tl_avisota_newsletter`
    
    CREATE TABLE `tl_avisota_newsletter` (
      `id` int(10) unsigned NOT NULL auto_increment,
    ......
      `backgroundimage` varbinary(128) NOT NULL default '',
      ......
    lg Matthias
    Full Service Agentur - Grafikdesign, Screendesign, Webdesign, Webentwicklung, SEO, Weiterbildung, persönliches Coaching
    http://www.matthiasgmeiner.com
  • Messa
    Alter Contao-Hase
    • 19.01.2011
    • 1423

    #2
    Hat sich ereldigt.

    Mit

    Code:
    <pre><?php print_r($this->newsletter); ?> </pre>
    bekommt man alle Felder raus.

    Dann

    Code:
    <?php echo $this->newsletter [FELD]; ?>
    lg
    Full Service Agentur - Grafikdesign, Screendesign, Webdesign, Webentwicklung, SEO, Weiterbildung, persönliches Coaching
    http://www.matthiasgmeiner.com

    Kommentar

    • lucina
      Administratorin
      • 19.06.2009
      • 7544

      #3
      Zitat von Messa Beitrag anzeigen
      Es geht darum, dass mein Kunde bei jedem News ein neues Background image haben möchte.
      Es geht mich ja eigentlich nichts an - ich frag's trotzdem: Dir bzw. Deinem Kunden ist schon klar, dass Outlook ab Version 2007 (mit einem Marktanteil von um und bei 15 Prozent) keine, Android und Webmailer vom Schlage eines Outlook.com nur eingeschränkt Hintergrundbilder unterstützen? Sichere Alternative ist es, keine Hintergrundbilder zu verwenden und das stattdessen im Layout wie vor 10 Jahren mit Bilderntabellen mit eingerenderten Texten zu simulieren. Ich weiß, das Verhalten der Mailclients bzw. der Firmen, die dafür verantwortlich sind ist eine Schande. Das stört die aber nicht.

      Du hattest ja in einem anderen Beitrag bereits einen Link auf http://www.campaignmonitor.com/css/ bekommen. Vielleicht schaust Du noch mal gemeinsam mit Deinem Kunden, welche Gestaltungsmöglichkeiten Du in Newslettern tatsächlich hast.
      Contao in Kiel: kikmedia webdevelopment | Contao-Partnerin | Contao Usergroup Kiel | github | Contao-Community-Alliance | MetaModels-Team

      Kommentar

      • Messa
        Alter Contao-Hase
        • 19.01.2011
        • 1423

        #4
        Naja.
        So einfach ist das dann auch nicht.
        Der Inhalt wird in Tabellen ja dargestellt.
        Nur will der Kunde pro Newsletter den Hintergrund ändern.
        Da aber der Hintergrund immer auf 100% width und height sein soll.
        Habe ich keine andere Lösung gefunden.
        Oder wie würdest du das machen?
        Eine Tabelle die alle Inhalte umschließt und die dann auf 100% width and hight?
        Dürfen Tabellen keine Background haben?

        ich lade das bild auf .body rein

        lg Matthias
        Zuletzt geändert von Messa; 14.09.2012, 19:01.
        Full Service Agentur - Grafikdesign, Screendesign, Webdesign, Webentwicklung, SEO, Weiterbildung, persönliches Coaching
        http://www.matthiasgmeiner.com

        Kommentar

        • tblumrich
          Contao-Urgestein
          • 25.06.2009
          • 2239

          #5
          Hmm.
          Und auch, wenn du deinem Kunden sagst, das ziemlich viele Leute, die seinen Newsletter lesen, den BG garnicht sehen können, will er das noch?
          Das wollte lucina doch sagen... du solltest doch ernsthaft abwägen, ob es Sinn macht sich technisch in etwas reinzuhängen, was sehr viele nie zu Gesicht bekommen.

          Ich habe irgendwo mal was von diversen Tricks für BG Images gelesen und auch schon ausprobiert und umgesetzt - ich fands aber zu aufwendig für weitere Projekte. z.B. http://www.optivo.de/campfire/hinter...2007-und-2010/

          Hilft dir nicht... schon klar... ich fand aber es macht Sinn nochmal drauf hinzuweisen.

          Gruß
          Thomas
          blucomp | Webdesign & Onlinelösungen

          Kommentar

          • lucina
            Administratorin
            • 19.06.2009
            • 7544

            #6
            Zitat von Messa Beitrag anzeigen
            Naja.
            So einfach ist das dann auch nicht.
            Der Inhalt wird in Tabellen ja dargestellt.
            Nur will der Kunde pro Newsletter den Hintergrund ändern.
            Da aber der Hintergrund immer auf 100% width und height sein soll.
            Grundsätzlich kann Avisota schon alles ausgeben was Du ihm an Elementen mitgibst. Du brauchst dafür auch keine zusätzlichen Felder anzustückeln, sondern kannst dazu Layoutbereiche nutzen. Soweit ich mich erinnere sind da ja in einem erschreckend kleinen Feld ein paar vordefiniert (#head, #left,#right, #main, #footer ... ich müsste jetzt mal gucken wie die exakt heißen ...) in einer Liste, die dann beim Befüllen des NL das Dropdown speist, das festlegt wo ein Inhalt erscheinen soll. Füge da einfach eine neue Section hinzu (meinetwegen #background ...).

            Im Grunde funktioniert das genau so wie der Contao Layoutbuilder beim Prinzip der Custom Sections. Layoutbereich angeben, Inhaltselemente angeben, fertig.

            Wo die dann ausgegeben werden, das bestimmst Du ja dann im Newslettertemplate (welches das ist legst Du ja auch fest). mail_html_extended ist eine gute Basis, und wenn Du Dir das mal anschaust, dann findest Du auch recht schnell die Abschnitte, in denen beispielsweise für die linke Spalte mittels
            PHP-Code:
            <?php echo $this->left; ?>
            die Ausgabe erfolgt.

            Füge also für Deine oben definierte Section #background an die Stelle, an die Du das ausgeben möchtest, ein
            PHP-Code:
            <?php echo $this->mycustomsection; ?>
            hinzu, am Besten noch analog zu den anderen Ausgabebereichen in ein
            PHP-Code:
            <?php if ($this->mycustomsection): ?> ... <?php endif; ?>
            verpackt. Meinetwegen auch an die Stelle, wo das <body>-Tag ausgegeben wird.

            Dann sollte Avisota das auch rendern wenn Du da keine groben PHP-Fehler gemacht hast. So gesehen ist das erstmal kein Hexenwerk.

            Was dann beim Kunden ankommt steht auf einem anderen Blatt.
            Zitat von Messa Beitrag anzeigen
            Habe ich keine andere Lösung gefunden.
            Oder wie würdest du das machen?
            Eine Tabelle die alle Inhalte umschließt und die dann auf 100% width and hight?
            Dürfen Tabellen keine Background haben?

            ich lade das bild auf .body rein

            lg Matthias
            Das Problem liegt beim Mailclient. Mal angenommen Du baust das so mit einer Konstruktion a la
            PHP-Code:
            <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                   "http://www.w3.org/TR/html4/loose.dtd">
            <html>
            <head>
            (...)
            </head>
            <body>
            (und hier dann der Code um ein Backgroundimage mittels <?php echo $this->mycustomsection; ?> daraus zu machen)
            <table class="before" align="center" cellpadding="0" cellspacing="0" border="0">
             ...
            </table>
            </body>
            ... dann kann ein Teil der Mailclients tatsächlich etwas damit anfangen und wird das vielleicht auch wie gewünscht ausgeben. ein andere Teil wird es ignorieren - was ja noch okay ist. Der üblere Teil der Cilents wird vermutlich zwar ein Bild ausgeben, die folgende Tabelle aber einfach dahinter drangehängt ausgeben.

            Ich hab das ehrlich gesagt das letzte Mal vor ein paar Jahren ausprobiert, die Ergebnisse waren nicht so schön. Was Microsoft-Produkte angeht so haben die Renderfähigkeiten in der Vergangenheit eher ab- als zugenommen seitdem die sich entschlossen haben, Mails nicht mehr mit der Engine des IE (bzw. einer abgespeckten Version davon) sondern mit der von Word zu rendern.

            Darum ging es mir.

            Alternative wäre eben, mit Hintergründen für jeden Teil der Ausgabetabelle in der html_mail_extended zu arbeiten. Wohl eher mit Hintergrundfarben - weil es ansonsten nämlich bedeutet, das Hintergrundbild vorher zu slicen und die Einzelteile jeweils einem Ausgabeabschnitt zuzuweisen (und dann auch noch das Risiko einzugehen, dass Word das schreddert).

            Machen große Firmen so, in denen dann auch im dritten Jahrtausend tatsächlich noch jemand sitzt und die Newsletter auf diese Art und Weise zusammenfummelt (und wenn Du da mal genau drauf achtest, dann werden Hintergundbilder für Texte dabei peinlich vermieden und stattdessen eher darauf gesetzt, alles als ein großes Bild zu schicken, in dem die entsprechenden Texte dann im Grafikprogramm reingebaut wurden).

            Man könnte dieses Problem vermutlich auch durch den Einsatz von Elementen erschlagen, die mit GDLib gerendert werden, aber das sollte aufwendig sein. Im Prinzip machbar, aber die Rechnung dafür, diese Verbindung herzustellen, dürfte beträchtlich sein. Mir fiele dazu eine der älteren Extensions ein, die Texte als Bilder ausgibt und die vermutlich etwas aufgebohrt werden müsste. Soweit die Theorie.

            ich glaube ja weiterhin, dass Du das mit dem Kunden besprechen solltest.

            Carolina.
            Contao in Kiel: kikmedia webdevelopment | Contao-Partnerin | Contao Usergroup Kiel | github | Contao-Community-Alliance | MetaModels-Team

            Kommentar

            Lädt...