Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Views ›

cck time output - php-befehl gesucht

Eingetragen von Mystify (232)
am 06.04.2009 - 17:18 Uhr in
  • Views
  • Drupal 5.x oder neuer

hi,
ich hab mir gerade das cck time (http://drupal.org/project/cck_time) modul gedownloaded und etwas angepasst.
unter anderem habe ich auch eine leer-auswahl hinzugefügt

nach diesem patch: http://drupal.org/files/issues/cck_time.module.patch

das problem ist jetzt, dass man wenn man die leer-auswahl nutzt, man folgegende ausgabe bekommt:

-1:-1

erscheinen soll aber z.B. closed
wen kann man das jetzt erreichen, vielleicht durch php? bin leider nicht wirklich der pro in sachen php, aber gibt es vielleicht ein befehl, den man in einer theme datein (node-NODETYP.tpl.php) einfügen könnte, der automatisch

-1:-1 durch closed

ersetzt?

danke

‹ Views Field Ausgabe ändern Views Wörter Kürzen ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

für alle die kein bock

Eingetragen von Mystify (232)
am 06.04.2009 - 17:49 Uhr

für alle die kein bock haben das modul und den patch zu installieren hier die problematik:

das feld hat den namen field_zeiten
dieses feld hat zwei selectlisten, einmal für die stunden($hours) und einmal für die minuten($minutes).

beide haben mittels:

$hours[-1] = '--';
$minutes[-1] = '--';

die auswahl

--

als ersten wert erhalten.

die zeilen im theme sehen so aus

<?php foreach ((array)$field_zeit as $item) { ?>
    <?php print $item['view'] ?>
<?php } ?>

wenn man diese jetzt auswählt, erhält man folgende ausgabe:

-1:-1

den doppelpunkt erhält man aufgrund von

$node_field[0]['value'] = $node_field['hour'] .':'. $node_field['minute'];

  • Anmelden oder Registrieren um Kommentare zu schreiben

Also im Prinzip ist das

Eingetragen von panatlantica (71)
am 06.04.2009 - 17:50 Uhr

Also im Prinzip ist das nicht so schwierig. Es wird Dir sicherlich aber das Modul Content Template dabei helfen, weil dann musst Du keine Datei node-NODETYPE.tpl.php anlegen und für das was Du vorhast und Deinem Kenntnisstand von PHP wäre es eventuell sogar sehr hilfreich.

Nach installieren ist unter http://www.deinedomain.com/admin/content/templates ein Listing aller Node-Typen. Wähle den betreffenden und sage "Template erstellen".

Du hast nun drei Felder: für Anrisstext, Full-Node und für den RSS-Feed

Jetzt solltest Du nur vorher schon mal wenigstens einen Inhalt des Inhaltstyps angelegt haben, damit Content Template "etwas Futter hat". Denn unter jedem Editierfeld findest Du eine Art Listing, genannt "Body Variables", aller zu dem Node gehörender Elemente, wenn Du auf ein Element klickst, wird gleich die richtige PHP-Ausgabe in Dein Template gefügt und Du kannst es mit

s etc. noch weiter aufbereiten.

Es wird auch angezeigt, WAS ein solcher Code ausgeben würde.

Beispiel:

<?php print $body ?>

Das ist die Standardausgabe. Dann wird der ganze Node so ausgegeben, wie Drupal denkt, dass es richtig ist.

Jetzt hast Du z.B. mit dem CCK-Modul Deinem Inhaltstyp noch eine URL beigefügt. Du findest unter Body Variables irgendwo diesen Eintrag. Er könnte beispielsweise so aussehen:

$node->field_url (array)
  $node->field_url[0] (array)
  $node->field_url[0]['url']
     http://www.ride-a-harley.com
  $node->field_url[0]['title']
     http://www.ride-a-harley.com
  $node->field_url[0]['attributes'] (array)
  $node->field_url[0]['attributes']['target']
    _blank
  $node->field_url[0]['display_url']
     http://www.ride-a-harley.com
   $node->field_url[0]['display_title']
      http://www.ride-a-harley.com
    $node->field_url[0]['label']
      URL
    $node->field_url[0]['view']
       <a href="http://www.ride-a-harley.com" target="_blank">http://www.ride-a-harley.com</a>

Du siehst: Du kannst Dir auswählen, WAS Drupal genau ausspucken wird, wenn Du nur die URL brauchst, und selbst einen Link bauen willst, dann klickst Du auf $node->field_url[0]['url'] und Content Template setzt folgendes in das Editor-Fenster:

<?php print $node->field_url[0]['url'] ?>

Das bedeutet folgendes:
print (also gebe aus)
$node->... (ein Array-Wert der $node-Variable)
$node->field_url ... (aha, also das Feld URL, darum soll es gehen)
$node->field_url[0] ... (ok, der ERSTE Wert, den es in diesem Feld gibt, es könnten ja mehrere da sein, wir fangen beim Zählen mit 0 an)
$node->field_url[0]['url'] (ok, verstanden, das Feld URL des Node-Arrays bitte, und zwar der erste Wert, und dann nur die URL

So, jetzt kommen wir zu Deiner Frage.

Ich weiß nicht wie Du Dein CCK-Feld nennen wirst, aber sagen wir mal es heißt date (es wird anders heißen, aber so tasten wir uns langsam hin.
Um es auszugeben wird wahrscheinlich irgendwo unter den Body Variables dein -1:-1 auftauchen und darüber sowas ähnliches wie $node->field_date[0]['view']

Suche bitte die Variable raus, wo dein -1:-1 genau so steht, ohne weiteren Markup. Sagen wir es wäre tatsächlich wie in meinem fiktiven Beispiel $node->field_date[0]['view']

Jetzt machen wir mit PHP eine Kleine if-else-Abfrage: if - also WENN das Feld genau -1:-1 lautet, dann spucke aus "closed" an sonsten spucke den eigentlichen Wert aus:

<?php if ($node->field_date[0]['view'] == "-1:-1") : ?>
  SPUCKE "CLOSED" AUS
<?php else : ?>
  SPUCKE DEN EIGENTLICHEN WERT AUS
<?php endif; ?>

So, jetzt noch mal komplett:

<?php if ($node->field_date[0]['view'] == "-1:-1") : ?>
  <?php print "closed"; ?>
<?php else : ?>
  <?php print $node->field_date[0]['view']; ?>
<?php endif; ?>

Jetzt sind da noch ein wenig viele

<?php
und
?>
drin - das auch nur der Übersicht, etwas aufgeräumt sähe es so aus:

<?php if ($node->field_date[0]['view'] == "-1:-1") :
  print
"closed";
else :
  print
$node->field_date[0]['view'];
endif;
?>

Das ist es eigentlich schon! Vergiss nicht alle Felder anzuzeigen, die Du hast, auch den Body. Wenn Du diesen ALLEINE ohne weitere CCK-Felder ausgeben willst (Du willst ja EIN CCK-Feld anders anzeigen lassen), das findest Du weiter unten bei den Body Variablen, es ist in der Regel:

<?php $node->content['body']['#value'] ?>

  • Anmelden oder Registrieren um Kommentare zu schreiben

danke dir. also content

Eingetragen von Mystify (232)
am 06.04.2009 - 21:32 Uhr

danke dir.
also content template brauch ich, ich hab meine themes alle ansonsten selber gemacht, ist auch kein problem, das bekomm ich alles hin.

Zitat:

<?php
if ($node->field_date[0]['view'] == "-1:-1") :
  print
"closed";
else :
  print
$node->field_date[0]['view'];
endif;
?>

hatte ich auch schon versucht, hatte nur ne kleinigkeit vergessen, aber manchmal steht man halt auf dem schlauch.

aber danke dir auf jeden fall für deine mühe und investierte zeit!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 2 Wochen 6 Tagen
  • Hey danke
    vor 3 Wochen 4 Stunden
  • Update: jetzt gibt's ein
    vor 3 Wochen 22 Stunden
  • Hallo, im Prinzip habe ich
    vor 3 Wochen 5 Tagen
  • Da scheint die Terminologie
    vor 3 Wochen 5 Tagen
  • Kannst doch auch alles direkt
    vor 4 Wochen 2 Tagen
  • In der entsprechenden View
    vor 4 Wochen 2 Tagen
  • Dazu müsstest Du vermutlich
    vor 4 Wochen 2 Tagen
  • gelöst
    vor 6 Wochen 6 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 7 Wochen 5 Stunden

Statistik

Beiträge im Forum: 250233
Registrierte User: 20463

Neue User:

  • Znogsnernoimb
  • ByteScrapers
  • Mroppoofpaync

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 18 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association