Ergebnis 1 bis 9 von 9

Thema: Datumausgabe unterteilen und einzelne Bestandteile mit span-Elementen versehen

  1. #1
    Administrator Avatar von Nina
    Registriert seit
    04.06.2009.
    Ort
    Hamburg
    Beiträge
    4.755
    Contao-Projekt unterstützen

    Support Contao

    Standard Datumausgabe unterteilen und einzelne Bestandteile mit span-Elementen versehen

    Ich suche momentan nach einer Lösung, wie ich im Template eine Datumsausgabe "aufdröseln" und um die einzelnen Bestandteile herum noch jeweils ein span-Element schreiben kann.

    Konkret wäre mein Ziel, sowas:

    <span class="day">04</span> <span class="month">10</span> <span class="year">2011</span> usw.

    Die <time>-Angabe außen um alles rum (wenn man HTML5 in Contao 2.10.x eingestellt hat), sollte natürlich erhalten bleiben. Kann mir da ein PHP'ler aushelfen?

  2. #2
    Contao-Urgestein Avatar von Toflar
    Registriert seit
    15.06.2009.
    Beiträge
    4.467
    Partner-ID
    8667
    User beschenken
    Wunschliste

    Standard

    Klar, musst halt einfach die entsprechende Variable nehmen, die den Timestamp ersetzt.
    Aber ansonsten würde das so ausehen:
    PHP-Code:
    <span class="day"><?php echo $this->parseDate('d'$intTimestamp); ?></span>
    <span class="month"><?php echo $this->parseDate('m'$intTimestamp); ?></span>
    <span class="year"><?php echo $this->parseDate('Y'$intTimestamp); ?></span>
    Contao Core-Entwickler @terminal42 gmbh
    Wir sind Contao Premium-Partner!
    Für Individuallösungen kannst du uns gerne kontaktieren.
    PS: Heute schon getrakked?

  3. #3
    Administrator Avatar von Nina
    Registriert seit
    04.06.2009.
    Ort
    Hamburg
    Beiträge
    4.755
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Danke, funktioniert prima.

  4. #4
    Administrator Avatar von Nina
    Registriert seit
    04.06.2009.
    Ort
    Hamburg
    Beiträge
    4.755
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ich habe in den news-Templates diesen Abschnitt drin (wie hier im Thread zuvor vorgeschlagen):
    PHP-Code:
    <?php if ($this->hasMetaFields): ?>
    <p class="info">
    <time datetime="<?php echo $this->datetime?>">
    <span class="day"><?php echo $this->parseDate('d'$intTimestamp); ?>.</span>
    <span class="month"><?php echo $this->parseDate('M'$intTimestamp); ?>.</span>
    </time> <?php echo $this->author?> <?php echo $this->commentCount?></p>
    <?php endif; ?>
    Das Problem dabei: Es wird nicht das Datum des Newsbeitrages genutzt, sondern stattdessen immer die Daten des heutigen Tages! Die Ausgabe des time-Feldes stimmt also. Die Ausgabe sieht heute z. B. so aus:

    PHP-Code:
    <time datetime="2011-09-15T12:07:00+02:00">
    <
    span class="day">21.</span>
    <
    span class="month">Okt.</span>
    </
    time
    Hat jemand eine Idee weshalb das so ist und wie ich es korrigieren kann, so dass auch die zwei sichtbaren Angaben korrekt sind?

  5. #5
    Contao-Urgestein Avatar von Toflar
    Registriert seit
    15.06.2009.
    Beiträge
    4.467
    Partner-ID
    8667
    User beschenken
    Wunschliste

    Standard

    Ja klar, überleg mal Woher kommt $intTimestamp? Das gibt's ja gar nicht, das war ja nur ein Beispiel

    Du musst jeweils im Template gucken, welche Variable den gewünschten Timestamp beinhaltet:
    PHP-Code:
    <?php $this->showTemplateVars(); ?>
    Wahrscheinlich ist es sowas wie $this->date oder so
    Contao Core-Entwickler @terminal42 gmbh
    Wir sind Contao Premium-Partner!
    Für Individuallösungen kannst du uns gerne kontaktieren.
    PS: Heute schon getrakked?

  6. #6
    Administrator Avatar von Nina
    Registriert seit
    04.06.2009.
    Ort
    Hamburg
    Beiträge
    4.755
    Contao-Projekt unterstützen

    Support Contao

    Standard

    So ist es korrekt:
    PHP-Code:
    <?php if ($this->hasMetaFields): ?>
    <p class="info">
    <time datetime="<?php echo $this->datetime?>">
    <span class="day"><?php echo $this->parseDate('d'$this->timestamp); ?>.</span>
    <span class="month"><?php echo $this->parseDate('M'$this->timestamp); ?>.</span>
    </time> <?php echo $this->author?> <?php echo $this->commentCount?></p>
    <?php endif; ?>

  7. #7
    Contao-Nutzer
    Registriert seit
    19.09.2010.
    Ort
    Sömmerda
    Beiträge
    33

    Standard Nachfrage zum Thread

    Ich bin leider nicht so firm, weshalb ich Nachfragen hier habe. Bei mir soll das Datum des News auf meiner Seite so aussehen:

    Jahr
    Monat
    Tag

    Das ganze soll mit einer Grafik wie bei einem Abreißzettel hinterlegt oder mittels einer Box umrandet werden.

    Fragen:

    1. Kann ich mein Template news_full.html5 kopieren und den Code dort anstelle welchen Codeteils einpflanzen und dann geht das gleich?
    2.a. Wie muss mein Selektor für Jahr, Monat und Tag aussehen, wenn ich dann mittels css Schriftart und Größe einstellen will
    2.b. sowie für alles ingesamt, um einen Rahmen darum ziehen zu können?

    Grüsse
    Matthias

  8. #8
    Contao-Urgestein
    Registriert seit
    30.01.2011.
    Ort
    Stuttgart
    Beiträge
    4.138

    Standard

    Hallo Matthias,

    1. unter templates einfach eine Kopie erstellen, der neue Code muss in die Zeile beim timedate am Anfang rein
    2. entsprechend dem class Eintrag .year .month usw.
    3. ein Rahmen um .info erspart jeglich Grafik das geht alles mit css

    falls es nicht klappt schick mit dein template dann biegen wir das hin

  9. #9
    Contao-Nutzer
    Registriert seit
    19.09.2010.
    Ort
    Sömmerda
    Beiträge
    33

    Standard got it

    Hallo zurück,

    danke für die Antwort. Ich habe das jetzt soweit hinbekommen. Das Ergebnis ist unter www.lawfinger.de zu sehen. Muss ich noch dran arbeiten, aber ich probiere ja derzeit auch nur aus.

    Grüße
    Matthias

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
  •