Ankündigung

Einklappen
Keine Ankündigung bisher.

Meta Einträge Description & Title

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Meta Einträge Description & Title

    Das Feld Meta Description scheint im Frontend nicht übernommen zu werden.
    Es ist im BE gepflegt aber nicht auf der Seite sichtbar.

    Ist eine gesondertes Feld für das Title Attribut geplant? Falls nein, wie kann dieses dynamisch auf Basis der bestehenden Felder erzeugt werden?

  • #2
    Diese Attribute haben keinen Frontend output, sondern beschreiben direkt das Page objekt.
    Keyword in dem Fall über $GLOBALS['TL_KEYWORDS']
    Descriptions nur für Leser-Seiten über $objPage->descriptions
    http://www.premium-contao-themes.com

    Kommentar


    • #3
      So how would I go about it on my Reader page to get title and description to be picked up from my product?
      Do I Create a new fe_page?

      Kommentar


      • #4
        I found an answer myself. Maybe there is a better way but this worked for me.

        In the Reader template I change the pageTitle and description to my the value of my fields.

        PHP-Code:

        foreach($this->entries as $entry): 

        global $objPage
        $objPage->pageTitle $entry->field('product_title')->value(); 
        $objPage->description $entry->field('meta')->value(); 

        Kommentar


        • #5
          There are also two attributes for this, if you need/want individual fields
          1. Meta Descriptions
          2. Meta Keywords

          Pagetitle should be set just the way you did it.

          Alternative is direclty in the backend page title field using: {{customcatalog::MY-TABLE::autoitem::MY-TITLE-FIELD}}

          http://www.premium-contao-themes.com

          Kommentar


          • #6
            I push this thread here to top, due to some questions which came up for me.
            Hope you can support me.

            The goal is to display the product name in the page title of the reader page.

            I put this into the reader template:
            <?php
            global $objPage;
            $objPage->pageTitle = $entry->field('name')->html();
            ?>

            But unfortunately now the whole div appears in the title:
            <title>
            <div class="ce_headline attribute headline name"><h1 class="attribute ce_headline headline name">BASIC 200</h1></div>
            </title>
            How to display only the product name (in this case "BASIC 200")?

            I know it's something with the array and I think this is pretty easy as a PHP professional, but unfortunately not for me.

            Thanks for the support! :-)

            Kommentar


            • #7
              Headlines are serialized arrays:
              $arrHeadline = deserialize($entry->field('name')->value());
              $value = $arrHeadline["value“];
              $unit = $arrHeadline["unit“];

              In a CC reader Template, since there is only one entry being processed this is possible:

              PHP-Code:
              <?php
              $arrHeadline 
              deserialize($this->field('name')->value()); // or $this->entries[0]->field('name')->value()
              global $objPage;
              $objPage->pageTitle $arrHeadline['value'];
              ?>
              http://www.premium-contao-themes.com

              Kommentar


              • carsten
                carsten kommentierte
                Kommentar bearbeiten
                It works. Thank you very much :-)
                A PHP expert has made a designer very happy.

            • #8
              Hallo, ich grabe den Thread mal aus, wenn ich den Code von dir Tim einfüge, bekomme ich folgende Meldung im FE:

              HTML-Code:
              Warning: Illegal string offset 'value' in line ...
              Woran liegt das?

              Kommentar


              • #9
                Weil es kein Überschriften-Attribut ist
                Ein einfaches Textfeld kann direkt ausgelesen werden.

                $objPage->pageTitle = $this->field('meinFeld')->value();
                http://www.premium-contao-themes.com

                Kommentar


                • #10
                  Das dachte ich ja auch aber:
                  PHP-Code:
                  <?php $objPage->pageTitle $this->field('cce_resource_name')->value(); ?>
                  Bekomme ich diese Meldung aber der Name ist nicht leer.

                  Code:
                  [B]Warning[/B]: Creating default object from empty value

                  Kommentar


                  • #11
                    Du musst schon $objPage vorher initialisieren. Schau mal das Beispiel an.
                    http://www.premium-contao-themes.com

                    Kommentar


                    • #12
                      Ah ok, vielen Dank, kann man den auch noch auf 160 zeichen begrenzen?

                      Kommentar


                      • #13
                        Zitat von Juli_ane Beitrag anzeigen
                        Ah ok, vielen Dank, kann man den auch noch auf 160 zeichen begrenzen?
                        http://php.net/manual/de/function.substr.php

                        $str = substr($str,0,160);
                        http://www.premium-contao-themes.com

                        Kommentar


                        • #14
                          Ich habe das für mich mal umgeschrieben aber irgend wo habe ich noch einen Fehler:

                          $objPage->pageTitle = $rest = substr($this->field('cce_resource_name')->value(), 0, 5);

                          Kommentar


                          • #15
                            $objPage->pageTitle = substr($this->field('cce_resource_name')->value(), 0, 5);

                            ?

                            Kommentar

                            Lädt...
                            X