Ergebnis 1 bis 12 von 12

Thema: 3.5.28 Template: event_full

  1. #1
    Contao-Nutzer
    Registriert seit
    21.08.2017.
    Beiträge
    54

    Standard 3.5.28 Template: event_full

    Hallo liebe Community,

    der Rückgabewert von der Variable "details" ist bei mir 1.

    Woher kommt dieser Wert bzw. von wo wird dieser Wert abgeleitet.

    Code:
      <?php if ($this->hasDetails): ?>
        <?= $this->details ?>
      <?php else: ?>
        <div class="ce_text block">
          <?= $this->teaser ?>
        </div>
      <?php endif; ?>

  2. #2
    Contao-Nutzer Avatar von alexgr
    Registriert seit
    01.10.2012.
    Beiträge
    69

    Standard

    Hast Du in dem Event unter "Weiterleitungsziel" was anderes als "Standard" ausgewählt? Dann entscheidet das Event-Modul, dass details auf true gesetzt wird und die Inhalte nicht dort rein kommen:
    ModuleEventReader.php
    PHP-Code:
            // Display the "read more" button for external/article links
            
    if ($objEvent->source != 'default')
            {
                
    $objTemplate->details true;
                
    $objTemplate->hasDetails true;
            }

            
    // Compile the event text
            
    else
            {
                [
    ]
            } 
    Warum das nicht nur mit hasDetails, sondern auch mit details gemacht wird, weiß ich nicht. Aber jedenfalls wird in der Ausgabe dann 1 ausgegeben, weil das true in echo true aufgrund der schwachen Typisierung von PHP halt als 1 ausgegeben wird.

    EDIT: Wenn es tatsächlich daran liegt, verstehe ich allerdings nicht, wie man überhaupt zu einer Seite mit Eventleser kommt, wenn ein anderes Weiterleitungsziel festgelegt ist – funktioniert das nicht analog zu den Nachrichten?
    Geändert von alexgr (31.08.2017 um 14:43 Uhr)

  3. #3
    Contao-Nutzer
    Registriert seit
    21.08.2017.
    Beiträge
    54

    Standard

    Danke alexgr für die schnelle Antwort.

    Habe meine Kalendereinträge mit der Erweiterung calendar_ical importiert.
    ICal importiert diese ohne eine Weiterleitungsziel auszuwählen.

    Wenn ich auf Standart setzt dann passt alles.

    Gibt es die Möglichkeit bei Ical oder generell die Option auszuwählen?

    Danke

  4. #4
    Contao-Nutzer
    Registriert seit
    21.08.2017.
    Beiträge
    54

    Standard

    Hallo,

    da ich mich nicht gut in PHP auskenne, wollte ich fragen ob es möglich währe das template cal_default um die Einträge vom Teaser und Details zu erweitern.

    PHP-Code:
    <table class="calendar">
    <thead>
      <tr>
        <th colspan="2" class="head previous"><?php if ($this->prevHref): ?><a href="<?= $this->prevHref ?>" title="<?= $this->prevTitle ?>"><?= $this->prevLink ?></a><?php else: ?>&nbsp;<?php endif; ?></th>
        <th colspan="3" class="head current"><?= $this->current ?></th>
        <th colspan="2" class="head next"><?php if ($this->nextHref): ?><a href="<?= $this->nextHref ?>" title="<?= $this->nextTitle ?>"><?= $this->nextLink ?></a><?php else: ?>&nbsp;<?php endif; ?></th>
      </tr>
      <tr>
        <?php foreach ($this->days as $i=>$day): ?>
          <th class="label<?= $day['class'?>"><?= utf8_substr($day['name'], 0$this->substr?><span><?= utf8_substr($day['name'], $this->substr?></span></th>
        <?php endforeach; ?>
      </tr>
    </thead>
    <tbody>
      <?php foreach ($this->weeks as $class=>$week): ?>
        <tr class="<?= $class ?>">
          <?php foreach ($week as $day): ?>
            <td class="<?= $day['class'?>">
              <div class="header"><?= $day['label'?></div>
              <?php foreach ($day['events'] as $event): ?>
                <div class="event cal_<?= $event['parent'?><?= $event['class'?>">
                  <a href="<?= $event['href'?>" title="<?= $event['title'?> (<?php if ($event['day']) echo $event['day'] . ', '?><?= $event['date'?><?php if ($event['time']) echo ', ' .  $event['time']; ?>)"<?= $event['target'?>><?= $event['link'?></a>
                </div>
              <?php endforeach; ?>
            </td>
          <?php endforeach; ?>
        </tr>
      <?php endforeach; ?>
    </tbody>
    </table>
    Im Template event_full ist es folgender Code:

    PHP-Code:
    <?php if ($this->teaser): ?>
      <div class="Details"> <?= $this->teaser ?></div>
    <?php endif; ?> 
    <?php if ($this->hasDetails): ?>
      <div class="Details"> <?= $this->details ?></div>
    <?php endif; ?>

  5. #5
    Contao-Nutzer Avatar von alexgr
    Registriert seit
    01.10.2012.
    Beiträge
    69

    Standard

    Zitat Zitat von Christian001 Beitrag anzeigen
    Habe meine Kalendereinträge mit der Erweiterung calendar_ical importiert.
    Ok, das ist natürlich eine ganz entscheidende Information.

    Gibt es die Möglichkeit bei Ical oder generell die Option auszuwählen?
    Das weiß ich nicht, ich habe calendar_ical noch nie verwendet. Wenn Du allerdings jetzt einen Weg suchst, um die leeren Weiterleitungsoptionen nicht alle von Hand setzen zu müssen, kannst Du SQL nutzen:
    Code:
    UPDATE tl_calendar_events SET source = 'default' WHERE source = '';
    Zitat Zitat von Christian001 Beitrag anzeigen
    da ich mich nicht gut in PHP auskenne, wollte ich fragen ob es möglich währe das template cal_default um die Einträge vom Teaser und Details zu erweitern.
    In der innersten foreach-Ebene hast Du $event, da müsste es $event['teaser'] und $event['details'] drin geben.

  6. #6
    Contao-Nutzer
    Registriert seit
    21.08.2017.
    Beiträge
    54

    Standard

    Hallo,

    wie bereits gesagt verwende ich die Standart-Templates: cal_default.html5 bzw. cal_default.xhtml.
    Habe die Standart-Templates einen neuen Namen gegeben: cal_default_intern.html5 bzw. cal_default_intern.xhtml

    Wenn ich den Code um folgende Zeilen ergänze: <?= $event['details'] ?>

    PHP-Code:
    <table class="calendar">
    <thead>
      <tr>
        <th colspan="2" class="head previous"><?php if ($this->prevHref): ?><a href="<?= $this->prevHref ?>" title="<?= $this->prevTitle ?>"><?= $this->prevLink ?></a><?php else: ?>&nbsp;<?php endif; ?></th>
        <th colspan="3" class="head current"><?= $this->current ?></th>
        <th colspan="2" class="head next"><?php if ($this->nextHref): ?><a href="<?= $this->nextHref ?>" title="<?= $this->nextTitle ?>"><?= $this->nextLink ?></a><?php else: ?>&nbsp;<?php endif; ?></th>
      </tr>
      <tr>
        <?php foreach ($this->days as $i=>$day): ?>
          <th class="label<?= $day['class'?>"><?= utf8_substr($day['name'], 0$this->substr?><span><?= utf8_substr($day['name'], $this->substr?></span></th>
        <?php endforeach; ?>
      </tr>
    </thead>
    <tbody>
      <?php foreach ($this->weeks as $class=>$week): ?>
        <tr class="<?= $class ?>">
          <?php foreach ($week as $day): ?>
            <td class="<?= $day['class'?>">
              <div class="header"><?= $day['label'?></div>
              <?php foreach ($day['events'] as $event): ?>
                <div class="event cal_<?= $event['parent'?><?= $event['class'?>">
                  <a href="<?= $event['href'?>" title="<?= $event['title'?> (<?php if ($event['day']) echo $event['day'] . ', '?><?= $event['date'?><?php if ($event['time']) echo ', ' .  $event['time']; ?>)"<?= $event['target'?>><?= $event['link'?></a>
     -->         <?= $event['details'?>
                </div>
              <?php endforeach; ?>
            </td>
          <?php endforeach; ?>
        </tr>
      <?php endforeach; ?>
    </tbody>
    </table>
    Erscheint folgende Fehlermeldung:

    Code:
    Recoverable error: Object of class Closure could not be converted to string in templates/cal_default_intern.html5 on line 23
    
    #0 templates/cal_default_intern.html5(23): __error(4096, 'Object of class...', '/data/web/e2405...', 23, Array)
    #1 system/modules/core/library/Contao/BaseTemplate.php(88): include('/data/web/e2405...')
    #2 system/modules/core/library/Contao/Template.php(277): Contao\BaseTemplate->parse()
    #3 system/modules/core/classes/FrontendTemplate.php(46): Contao\Template->parse()
    #4 system/modules/calendar/modules/ModuleCalendar.php(171): Contao\FrontendTemplate->parse()
    #5 system/modules/core/modules/Module.php(287): Contao\ModuleCalendar->compile()
    #6 system/modules/calendar/modules/ModuleCalendar.php(79): Contao\Module->generate()
    #7 system/modules/core/elements/ContentModule.php(59): Contao\ModuleCalendar->generate()
    #8 system/modules/core/library/Contao/Controller.php(484): Contao\ContentModule->generate()
    #9 system/modules/core/modules/ModuleArticle.php(213): Contao\Controller::getContentElement(Object(Contao\ContentModel), 'main')
    #10 system/modules/core/modules/Module.php(287): Contao\ModuleArticle->compile()
    #11 system/modules/core/modules/ModuleArticle.php(67): Contao\Module->generate()
    #12 system/modules/core/library/Contao/Controller.php(417): Contao\ModuleArticle->generate(false)
    #13 system/modules/core/library/Contao/Controller.php(277): Contao\Controller::getArticle(Object(Contao\ArticleModel), false, false, 'main')
    #14 system/modules/core/pages/PageRegular.php(133): Contao\Controller::getFrontendModule('0', 'main')
    #15 system/modules/core/controllers/FrontendIndex.php(285): Contao\PageRegular->generate(Object(Contao\PageModel), true)
    #16 index.php(20): Contao\FrontendIndex->run()
    #17 {main}
    Mein PHP ist nicht so gut, daher stehe ich an bzw. weiß ich nicht wie ich den Fehler beheben kann.

    Danke

  7. #7
    Contao-Nutzer
    Registriert seit
    21.08.2017.
    Beiträge
    54

    Standard

    Hallo liebe Community,

    könnte mir jemand bei meine Problem helfen?

    Danke

  8. #8
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Du kannst nicht von einem Modul auf ein anderes schließen. Jedes Modul bringt andere Variablen ins FE, welche du so anzeigen kannst.
    PHP-Code:
    <?php
    $this
    ->showTemplateVars();

    // oder
    dump($this->arrData);
    ?>
    Die Module unter der Rubrik Events sind
    • Kalender
    • Eventleser
    • Eventliste
    • Eventliste-Menü

    Diese bringen alle ihre eigenen Variablen ins FE. Dass diese teilweise übereinstimmen liegt daran, dass sie alle zu den Events gehören. Du kannst dich aber nicht darauf verlassen. Wenn du in einem Template auf eine Variable zugreifen möchtest, dann musst du auch schon mal die zur Verfügung stehenden Variablen untersuchen.

    Dein "event['details']" dort in der Schleife ist z.B. ein riesiges Object, welches über ein Echo nicht ausgegeben werden kann. Solche Variablen kannst du einfach untersuchen mit
    PHP-Code:
    <?php
    ...
    dump(event['details']);
    ...
    ?>
    Die Irreführung liegt teilweise auch an Contao, da bei den Modulen Eventleser und Eventliste die gleichen Templates zur Auswahl angeboten werden. Eigentlich müssten die Templates für den Leser mit einem anderen Prefix beginnen, als die für die Liste, sodass man immer nur die jeweiligen Templates sieht, welche auch zu dem Modul passen. eventreader_full, eventlist_full.

    Wenn du nochmal genau beschreibst, was eigentlich dein Ziel ist, kann man dir vielleicht helfen. Denn die Antwort von @alexgr passt irgendwie überhaupt nicht zu deiner Frage.

    Ein Event hat übrigens dann Details, sobald man ein Contentelement in das Event einpflegt. Contentelemente werden in der DB in tl_content und Events in tl_calendar_events gespeichert. Schau dir die Tabellen auch mal mit phpMyAdmin, HeidiSQL o.ä. an.

    Das Readermodul z.B. baut intern einen HTML-String aus den CEs zusammen, welche zu dem auszugebenden Event gehören. Dieser String wird dann im Template als $this->details zur Verfügung gestellt. Das Kalendermodul macht dies nicht. Natürlich kann man sich da auch im Nachhinein alles holen was man möchte, aber dazu muss man z.B. im Template ein wenig programmieren. Suche mal hier im Forum. Ich glaube das wurde letztens erst gezeigt. Ich meine in dem Thread müsste das Wort CalendarEventsModel vorkommen oder auch getContentElement.
    Geändert von Andreas (14.12.2017 um 00:42 Uhr)
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  9. #9
    Contao-Nutzer
    Registriert seit
    21.08.2017.
    Beiträge
    54

    Standard

    Hallo Andreas,

    im Kalender (siehe Foto) habe ich 3 Einträge:

    Frühstückstreffen --> $event['parent']
    09:00 - 11:00 --> $event['time']
    Vorbereitung am Do. --> $event['details']

    Kalender.png

    Ich habe in den Terminen auch unterschiedliche Informationen eingetragen.
    Bei diesem z.B. Vorbereitung am Donnerstag.

    Alle diese Informationen in den Details möchte ich auf einem Blick sehen und zwar auf dem Kalender, so wie beim Foto.

    Ich habe auch unterschiedliche Details die je nach Anmeldeten User ersichtlich sind.

    Ich hoffe das geht.

  10. #10
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Gehen tut alles . Ich würde die Informationen wahrscheinlich nicht über ein Inhaltselement des Events pflegen, sondern direkt dort, wo du z.B. auch den Teaser einträgst, ein oder mehrere Felder hinzufügen, dann müsstest du diese Felder leicht im Template abgreifen können.

    Ansonsten beschäftige dich damit, wie du mit den Models einen Datensatz bekommst.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  11. #11
    Contao-Nutzer
    Registriert seit
    21.08.2017.
    Beiträge
    54

    Standard

    Hallo Andreas,

    danke für deine Antwort.
    Ansonsten beschäftige dich damit, wie du mit den Models einen Datensatz bekommst.
    Ich glaube zu wissen, was du damit meinst, aber irgendwie stehe ich auf der Leitung.
    Hättest du einen Link wo ich dieses nachlesen könnte?

    Danke

  12. #12
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Z.B. in der Doku https://docs.contao.org/books/cookbook/de/Models.html. Und dort auch unten dem Link auf den Foliensatz folgen https://contao.org/files/conference/...op.pdf#page=28

    Oder auch mal im Ordner system/ die php Dateien mit dem Searchtool deiner Wahl nach "Model::" durchsuchen.

    Oder mit Google im Forum suchen "Model:: site:community.contao.org".
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

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
  •