Ankündigung

Einklappen
Keine Ankündigung bisher.

Individuelles Template selber gestalten

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

  • Individuelles Template selber gestalten

    Liebe Community

    Ich möchte ein Inhaltselement mit folgenden Punkten erstellen: Überschrift, Bild, PDF-Download. Leider ist nur das PDF verlinkt. Ich möchte jedoch, dass der Download-Link über die gesamte Box geht.
    Nun habe ich bei den Templates mal reingeschaut und eine grosse Auswahl gefunden. Welches Template muss ich in Angriff nehmen? Das Template, welches ich ausgewählt habe (customelement_grouped.html5) oder ist dafür ein anders zuständig?

    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Bildschirmfoto 2016-05-26 um 11.24.58.png
Ansichten: 139
Größe: 41,2 KB
ID: 3395

    Liebe Grüsse
    Eva

  • #2
    Nutze das customelement_simple als Basis.
    http://www.premium-contao-themes.com

    Kommentar


    • #3
      Ich habe nun mittels
      PHP-Code:
      <?php $this->showTemplateVars() ?>
      im customelement_simple alles ausgeben lassen.
      Das sind die Angaben vom Download. Den Link davon möchte ich um die ganze Text-Box legen (inkl. Überschrift und Bild). Es wird das be_field_customelement genommen. Aber wie ich das Ganze in Angriff nehmen soll...... da benötige ich wirklich etwas Hilfe. Beim nächsten Mal weiss ich dann schon mehr, um selber basteln zu können.


      PHP-Code:
        [2] => PCT\CustomElements\Core\TemplateAttribute Object ( [attribute] => PCT\CustomElements\Attributes\Files Object ( [saveDataAs:protected] => [arrData:protected] => Array ( [id] => [pid] => [sorting] => 384 [tstamp] => 1463945061 [uuid] => 9bhrfsaknkq2jf [alias] => pdf [type] => files [title] => PDF [description] => [template] => customelement_attr_default [protected] => [user_groups] => [cssID] => a:2:{i:0;s:0:"";i:1;s:0:"";} [published] => [options] => [hidden] => [defaultValue] => [eval_mandatory] => [eval_rgxp] => [eval_rowscols] => [eval_multiple] => [eval_size] => [eval_rte] => [eval_submitOnChange] => [eval_allowHtml] => [eval_files] => [eval_filesOnly] => [eval_extensions] => [eval_path] => [eval_attributeType] => [eval_includeBlankOption] => [eval_datepicker] => [eval_pagepicker] => [eval_tl_style] => [eval_minlength] => [eval_maxlength] => [eval_tl_class_w50] => [eval_tl_class_clr] => [eval_tl_class_m12] => [eval_tl_class_long] => [be_visible] => [isDownload] => [sortBy] => custom [tinyTpl] => [isRadio] => [size] => [include_type] => [include_item] => [date_format] => [date_rgxp] => datetime [min_value] => [max_value] => [number_format] => [addFontIcon] => [fontIcon] => ) [objWidget:protected] => [objOrigin:protected] => PCT\CustomElements\Core\Origin Object ( [arrCache:protected] => Array ( ) [arrObjects:protected] => Array ( [Config] => Contao\Config Object ( [Files:protected] => [strTop:protected] => [strBottom:protected] => [blnIsModified:protected] => [arrData:protected] => Array ( ) [arrCache:protected] => Array ( ) ) [Session] => Contao\Session Object ( [arrSession:protected] => Array ( [icon_selector_files] => Array ( [0] => files/cto_layout/css/icons.min.css ) [referer] => Array ( [last] => sportster.html [current] => superlow.html ) ) ) ) ) [arrChildAttributes:protected] => Array ( ) [strFieldTemplate:protected] => be_field_customelement [varValue:protected] => 58488ebe-2053-11e6-bda7-0cc47a6cde36 [arrModified:protected] => Array ( [varValue] => ) [arrOptionValues:protected] => Array ( ) [arrTranslations:protected] => Array ( ) ) [class] => field_2 files even last [label] => PDF [name] => 9bhrfsaknkq2jf [html] => 

      Kommentar


      • #4
        Im Template kann man den Inhalt der Felder über folgenden Code ausgeben:

        field('meinFeldAlias')->value(); ?>
        (gibt den Wert des Feldes aus)
        oder

        field('meinFeldAlias')->html(); ?>
        (baut dir gleich die HTML Ausgabe wie z.B.

        Headline

        )

        In deinem Beispiel könnte das so aussehen:


        field('headline')->html(); ?>
        field('image')->html(); ?>


        Es gibt eine Schritt-für-Schritt Anleitung anhand einer Teambox. Das erläutert die Arbeitsweise von CustomElement sehr gut:

        http://www.premium-contao-themes.com...-elements.html
        *********************
        Neu: Kostenloser Contao Installer 3.0
        *********************
        Contao und Erweiterungen in wenigen Sekunden laden, installieren und updaten - ohne Composer oder Contao Manager.

        Kommentar


        • #5
          Danke für die Beschreibung. Ich habe nun etwas versucht. Leider nimmt es mir den Link zu Download nicht. Ausserdem hat der h2 nochmals einen div rundherum.

          HTML-Code:
          <div class="<?php echo $this->class; ?> block" <?php echo $this->cssID; ?>>
              <div class="content">
                  <div class="box_link">
                      <a href="<?php echo $this->field('pdf_link')->value(); ?>" target="_blank">
                      <?php echo $this->field('titel_press')->html(); ?>
                      <figure class="image_container">
                      <?php echo $this->replaceInsertTags('{{image::'.$this->field('bild_press')->value().'}}'); ?>
                  </figure>
                      Hier der Text für den Download</a>
                  </div>
              </div>
          </div>
          Der Link liegt nun um alle Elemente, aber das ausgegebene HTML im Browser sieht so aus:

          HTML-Code:
          <div class="ce_press last block">
              <div class="content">
                  <div class="box_link">
                      <a href="58488ebe-2053-11e6-bda7-0cc47a6cde36" target="_blank" title="" tmp_title="">
                      
          <div class="ce_headline attribute headline"><h2 class="attribute ce_headline headline">Speedmaster</h2></div>
                      <figure class="image_container">
                      <img src="files/kunde/images/ueber_uns/press/speedmaster.jpg" width="293" height="200" alt="">        </figure>
                      Hier der Text für den Download</a>
                  </div>
              </div>
          </div>
          Zuletzt geändert von weboptimal; 29.05.2016, 13:22.

          Kommentar


          • #6
            Hier werden zu viele Dinge vermischt.
            Ein Dateiauswahl-Feld ist natürlich kein Url Link bzw. Pfad, wie man der Ausgabe sieht. Man muss Contao anweisen den Pfad auszugeben, wie es in dem Beitrag zu den CE Variablen gezeigt ist: http://forum.premium-contao-themes.c...=1428#post1428

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

            Kommentar


            • #7
              So, jetzt sieht es bereits besser aus. Aber wie kriege ich den Div um den h2 weg?

              Wenn ich es so löse, gibt der h2 das Wort Array aus.

              HTML-Code:
              <div class="<?php echo $this->class; ?> block" <?php echo $this->cssID; ?>>
                  <div class="content">
                      <div class="box_link">
                          <a href="<?php echo \FilesModel::findByPk($this->field('pdf_link')->value())->path; ?>">
                          <h2><?php echo $this->field('titel_press')->value(); ?></h2>
                          <figure class="image_container">
                          <?php echo $this->replaceInsertTags('{{image::'.$this->field('bild_press')->value().'}}'); ?>
                      </figure>
                          Hier der Text für den Download</a>
                      </div>
                  </div>
              </div>
              Zuletzt geändert von weboptimal; 30.05.2016, 09:37.

              Kommentar


              • #8
                Zitat von weboptimal Beitrag anzeigen
                So, jetzt sieht es bereits besser aus. Aber wie kriege ich den Div um den h2 weg?
                Entweder ein eigenes Attribut Template für das Überschrift-Feld nutzen, was den ganzen anderen html-Gedöns nicht drin hat.
                Oder dann doch das Feld zerlegen:

                PHP-Code:
                <?php
                $arrHeadline 
                deserialize($this->field('myHeadline')->value());
                ?>
                <h1><?php echo $arrHeadline['value']; ?></h1>
                ps. dann könnte man auch einfach ein Textfeld nutzen
                http://www.premium-contao-themes.com

                Kommentar


                • #9
                  Danke Dir!

                  Kommentar

                  Lädt...
                  X