[gelöst] Block Argument
Eingetragen von ale_89 (54)
am 28.01.2010 - 10:30 Uhr in
am 28.01.2010 - 10:30 Uhr in
Hallo,
ich möchte einem Block ein Argument übergeben.
Auf dieser Seite Drupal SN habe ich einen Weg gefunden den Pfad auszulesen.
Leider klappt das bei mir nicht - es wird immer alles ausgegeben (Einstellung wenn das Argument nicht vorhanden ist).
Ich habe folgenden Code verwendet:
<?php
$path = drupal_get_path_alias($_GET['q']);
$path = explode('/', $path);
if ($path[1] == 'XY') {
return $path[0];
}
?>
Wenn ich das selbe z.B. in die Kopfzeile schreibe (Eingabeformat=PHP) und statt "return" "print_r" nehme wird zumindest das richtige Argument angezeigt.
(PS: am liebsten wäre es mir nicht den "Alias-Pfad" allerdings kenne ich hier die entsprechende Methode nicht.)
- Anmelden oder Registrieren um Kommentare zu schreiben
Bist Du sicher, daß Du
am 28.01.2010 - 11:14 Uhr
Bist Du sicher, daß Du nicht die Argumente 0 und 1 vertauscht hast? Bei mir war das üblicherweise andersherum.
Z.B. http://deine.domain.de/XY/123
path[0] fragt den einleitendes Text ab ('XY') und path[1] wäre das Argument (123), das der Block haben soll.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
ne habe ich mit absicht
am 28.01.2010 - 12:02 Uhr
ne habe ich mit absicht vertauscht weil das bei mir so im alias-namen ist
(wie gesagt ich hätte auch lieber den "normalen" pfad)
Hast Du den Block denn auch
am 29.01.2010 - 09:29 Uhr
Hast Du den Block denn auch aktiviert? Unter Strukturierung > Blöcke >alle anzeigen > DeinTheme mußt Du den Block in eine der Regionen schieben, damit er sichtbar wird.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
arg()
am 29.01.2010 - 09:42 Uhr
Mit der Funktion arg() erhälst Du den internen Systempfad (
node/1
beispielsweise) als Array.hth,
Stefan
--
Sei nett zu Deinem Themer!
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
block
am 29.01.2010 - 11:43 Uhr
<?php
$path = arg();
$path = explode('/', $path);
if ($path[0] == 'kalender'){return $path[1];}
?>
<?php
return 'meineKategorie'
?>
Unter Validator "Basic
am 29.01.2010 - 12:50 Uhr
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
es geht! (teilweise)
am 29.01.2010 - 14:12 Uhr
DANKE und ich hab mich schon immer gefragt was das ganze eigentlich mit Validieren zu tun hat ;)
nur am PHP-Code scheint noch etwas nicht zu stimmen ... (es wird immer nichts zurückgegeben)
wenn man allerdings zum testen
<?php
return 'meineKategorie'
?>
Debug
am 29.01.2010 - 14:14 Uhr
nur am PHP-Code scheint noch etwas nicht zu stimmen
Mach doch mal Debug-Ausgaben:
<?php
drupal_set_message('<pre>' . var_export($path, 1) . '</pre>');
?>
Stefan
--
Sei nett zu Deinem Themer!
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
debuggen
am 29.01.2010 - 19:43 Uhr
wenn das mit anhänge kommt folgende Info:
array (
0 => 'Array',
)
immer das blöde "ß"
am 08.02.2010 - 14:10 Uhr
sorry aber da konnte auch keiner wissen ;)
es funktionierte nur nie, weil das Argument ein "ß" hatte ... eine kleine Ergänzung und nun läuft alles - juhu :
<?php
if ($path[0] == 'fussball'){return 'Fußball';} else { return $path[0];}
?>