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

[gelöst] arguments (Views) mit php steuern und Kritik am O'Reilly- Buch wegen der fehlerhaften Wiedergabe von PHP- Codes

Eingetragen von weberh (132)
am 04.01.2010 - 00:05 Uhr in
  • CCK und Views
  • Drupal 6.x

Ich möchte Argumente in den Views mit php steuern.
In einem View als Block sollen die Bands des gleichen Genres ausgegeben werden, wie die Band im Node Content in der Mitte.

Code zum Argument Genre:

$nid = arg(1);
if ($this -> view -> current_display == 'block'
&& arg(0) == 'node' && is_numeric($nid))
{ $context = node_load($nid);
if ($context -> type == 'bandprofil')
{
return $context -> field_genre[0]['nid'];
}
}
return 'all';

Der Views tut zeigt nach wie vor alle Bands an, egal welchen Genres, es tut sich also nichts, ob mit oder ohne Code.

Dieses Beispiel stammt aus dem recht guten Buch von O'Reilly; "Praxiswissen Drupal6".
Ich gehe davon aus, dass ich die Einträge laut Buch alle richtig gemacht habe, auch für diesen View: "Bands gleichen Genres"
Ich habe natürlich das PHP Modul aktiviert.

Wer kann mir helfen?

Hartmut

‹ Felder in entsprechenden Kategorien anzeigen [gelöst] Anfänger - Ist Views bei Drupal 6 anders als bei Drupal 5 ? ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Mit der Funktion var_export

Eingetragen von traxer (1013)
am 04.01.2010 - 02:11 Uhr

Mit der Funktion var_export kannst anzeigen lassen, welchen Wert eine Variable hat und mit drupal_set_message kannst du eine Statusmeldung in Drupal anzeigen.

Das kannst du dazu verwenden, um deinen Code mit Debugging-Informationen anzureichen:

<?php
$nid
= arg(1);

drupal_set_message('DBG $nid: ' . var_export($nid, true));
drupal_set_message('DBG current_display: ' . var_export($this->view->current_display, true));
drupal_set_message('DBG arg(0): ' . var_export(arg(0), true));
drupal_set_message('DBG is_numeric($nid): ' . var_export(is_numeric($nid), true));

if (
$this -> view -> current_display == 'block'
 
&& arg(0) == 'node' && is_numeric($nid))
{
 
$context = node_load($nid);

 
drupal_set_message('DBG $context->type: ' . var_export($context->type, true));

  if (
$context -> type == 'bandprofil')
  {

   
drupal_set_message('DBG $context->field_genre[0]["nid"]: ' . var_export($context->field_genre[0]['nid'], true));

    return
$context -> field_genre[0]['nid'];
  }
}

drupal_set_message('DBG: return "all" wird ausgeführt.');

return
'all';
?>

Wenn du nun ein Bandprofil besuchst, dann solltest du recht schnell erkennen ab wann dein Code und deine Vorstellungen getrennte Wege gehen.

BTW: ich glaube, $this->view->current_display == 'block_1'.
--
XING

--
XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke und: Wohin damit?

Eingetragen von weberh (132)
am 04.01.2010 - 17:27 Uhr

Wird dein Code in eine neue Seite als PHP-Code eingefügt?

Gruß Hartmut

  • Anmelden oder Registrieren um Kommentare zu schreiben

Der Code ersetzt deinen

Eingetragen von traxer (1013)
am 04.01.2010 - 19:48 Uhr

Der Code ersetzt deinen bestehenden Code.

--
XING

--
XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Die Debug- Anzeige klappt

Eingetragen von weberh (132)
am 05.01.2010 - 01:39 Uhr

Ein interessante Möglichkeit zu debuggen. Danke für die Arbeit. Und ich weis jetzt wie es geht.
Woher kann man diese Info bekommen? Gibt es ein Buch?
Z.B. Drupal für Entwickler?

Ich werde jetzt anhand der Ausgaben prüfen, welche Fehler auftreten. Zumindest geht aber der PHP- Code überhaupt.

In dem Views/ Arguments habe ich jedoch die php-Codezeichen

<?php
....
?>
weglassen müssen.

Gruß Hartmut

  • Anmelden oder Registrieren um Kommentare zu schreiben

Deine Vermutung war richtig!

Eingetragen von weberh (132)
am 05.01.2010 - 01:37 Uhr

Du hast richtig gelegen mit der Benennung "Block_1" statt lediglich "Block".

Die erste if- Bedingung war dadurch immer false und wurde nie durchlaufen, damit auch nicht die darunterstehende Debug- Ausgabe.

Nach der Veränderung lief es richtig.

Damit hast du einen wichtigen Bug in dem O'Reilly - Buch aufgedeckt.

Und ich hab den Einstieg in das PHP - Debugging geschafft.

Nochmals Danke für die schnelle Hilfe.

  • Anmelden oder Registrieren um Kommentare zu schreiben
Drupal 7 Demo-Website

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Node-Speichern wird mit zunehmender Laufzeit des Servers langsam
  • Fatal error: Maximum execution time of 30 seconds exceeded in ....../includes/file.inc on line 934
  • Probleme bei der Installation von memcache
  • Treffen in Düsseldorf - 8.9. und 22.9.2010
  • [erledigt] id und klassen bei blöcken
  • Anzahl der erstellten Nodes eines bestimmten Contenttypes für bestimmte Rollen limitieren
  • Seiten kombinieren
  • Drupal Übersetzung Englisch Deutsch
  • Fragen vor Umstieg zu Drupal 6 von Joomla
  • Lightbox-2 Inputfilter
  • Kostenplfichtige Useraccounts
  • Such-Index: Problem mit ISBNs / großen Zahlen
Weiter

Neue Kommentare

  • Zum einen würde ich den
    vor 3 Stunden 54 Minuten
  • Das Aktivieren von Modulen
    vor 4 Stunden 1 Minute
  • Lies dich mal in Ruhe ein,
    vor 4 Stunden 5 Minuten
  • Hallo, das heißt, dass Dein
    vor 4 Stunden 12 Minuten
  • danke für den tip!
    vor 4 Stunden 40 Minuten
  • Nur ein Tip, aber ich würde
    vor 5 Stunden 6 Minuten
  • Ich habe noch das Problem,
    vor 5 Stunden 1 Minute
  • E-Fee schrieb ...Entweder man
    vor 5 Stunden 25 Minuten
  • Tja, was heiß quasi Standard?
    vor 5 Stunden 39 Minuten
  • Hallo E-Fee, nach dem was Du
    vor 5 Stunden 56 Minuten

Statistik

Beiträge im Forum: 130977
Registrierte User: 11264

Neue User:

  • BAue
  • CodeFlatter
  • michastock

» Alle User anzeigen

User nach Punkten sortiert:
quiptime4714
stBorchert4318
md3609
Tobias Bähr3607
bv3490
Alexander Langer2737
dereine2604
pebosi2490
Thoor2223
rapsli1505
» User nach Punkten
Zur Zeit sind 2 User und 25 Gäste online.

Benutzer online

  • Tobias Bähr
  • t0b1

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Showroom
  • » Forum
  • » Drupalchannel
  • » Ü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
  • Bücherecke

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
  • Drupal Demo
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association