Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Themes & Theming ›

node title per php abrufen (z.b. in block)?

Eingetragen von aschiwi (1113)
am 26.08.2008 - 12:27 Uhr in
  • Themes & Theming
  • Drupal 5.x oder neuer

Ich möchte in einem Block "$title" verwenden können. Um $nodeid verwenden zu können, habe ich folgenden Code gefunden:

<?php

if (arg(0) == 'node' && is_numeric(arg(1))) $nodeid = arg(1);

?>

Kann ich da noch was hinzufügen, um $title zu kriegen?

Ich brauche das alles, um für Organic Group Home Pages, die ich mit Panels ersetze, einen eigenen Breadcrumb Trail zu schneidern. Klappt auch alles soweit, nur die Ausgabe des Titels des aktuellen Nodes fehlt :-(

‹ Wie theme ich die Liste die vom Taxonomy-Modul ausgegeben werden Block über Inhalt anzeigen lassen ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Probier's mal so: <?phpif

Eingetragen von bv (3924)
am 26.08.2008 - 12:41 Uhr

Probier's mal so:

<?php
if ((arg(0) == 'node') && (is_numeric(arg(1)))) { $meinnode = node_load(arg(1)); print $meinnode->title; }
?>

--
bv - DrupalCenter.de

  • Anmelden oder Registrieren um Kommentare zu schreiben

Juhu, das klappt! :-) Danke

Eingetragen von aschiwi (1113)
am 26.08.2008 - 13:50 Uhr

Juhu, das klappt! :-) Danke dir...

Ich nutze es allerdings so:

<?php
if ((arg(0) == 'node') && (is_numeric(arg(1)))) { $meinnode = node_load(arg(1));
// print $meinnode->title;
}
?>

Damit der Node Titel nicht an dieser Stelle angezeigt wird, sondern an späterer Stelle im Text. Aber genial, danke sehr!!!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Falls es jemanden

Eingetragen von aschiwi (1113)
am 26.08.2008 - 13:57 Uhr

Falls es jemanden interessiert, mein Code sieht insgesamt so aus:

(In einem Block)

<?php

if ((arg(0) == 'node') && (is_numeric(arg(1)))) { $meinnode = node_load(arg(1));
//print $meinnode->title; lädt node title
}

if (
arg(0) == 'node' && is_numeric(arg(1))) $nodeid = arg(1);
//print $nodeid;  lädt node id

if (module_exists('og')) {
 
$group_node = og_get_group_context();
 
$gid02 = $group_node->nid;
 
$gid = (int)$gid02;
  if (
$gid02 === null) $gid = 0;
 
$output .= "<ul>
<li><a title=\"Start\" href=\"/node/
$gid\">Start</a></li>
<li><a title=\"Übersicht Gruppe\" href=\"/node/
$gid\">Gruppe <strong>$group_node->title </strong></a></li>
<li><a title=\"Übersicht Node in Gruppe\" href=\"/node/
$gid/$nodeid\">Node in Gruppe <strong>$meinnode->title</strong></a></li>
</ul>
"
;
print
$output;
}
?>

Und zusätzlich unter Seitenspezifische Sichtbarkeitseinstellungen: Nur anzeigen wenn der folgende PHP-Code true zurückgibt

<?php
  $in_og
= FALSE;
if (
module_exists('og')) {
 
$in_og = TRUE;
 
$group_node = og_get_group_context();
 
$gid02 = $group_node->nid;
 
$gid = (int)$gid02;
  if (
$gid02 === null) $gid = 0;
  if (
$gid == 0) $in_og = FALSE;
}
return
$in_og;
?>

Ich benutze diesen Code z.B. für eine eigene Organic Groups Administrationsleiste für Benutzer, da ich die hauseigene von OG aus verschiedenen Gründen nicht benutzen kann. Jetzt werde ich ihn auch benutzen, um in den Panels sozusagen selbstgebaute Breadcrumbs anzuzeigen, weil Panels Breadcrumbs wohl kaputtmacht und ich sowieso eigene bräuchte, da ich Nodes innerhalb einer OG hierarchisch anordne (zu kompliziert zum erklären :-))

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wenn man mit dem Code von bv

Eingetragen von aschiwi (1113)
am 02.09.2008 - 12:07 Uhr

Wenn man mit dem Code von bv den nodetitel kriegt, kann man auch den Inhalt eines CCK-Felds abrufen? Wie müsste das dann aussehen?

<?php
if ((arg(0) == 'node') && (is_numeric(arg(1)))) { $meinnode = node_load(arg(1)); print $meinnode->title; }
?>

wenn ich print $meinnode->feldname; nehme, sagt es mir immer "Array". Ich stelle mir das so vor, dass ich mit print_r mal Variablen ausgebe, die ich benutzen kann. Mein Feld sagt ja auch, dass es ein Array ist:

[field_field_noderef_arbeitsschr] => Array
        (
            [0] => Array
                (
                    [nid] => 11
                )

        )

Daraufhin habe ich sowas probiert $meinnode->feldname[0][nid];, aber da passiert nix. Hat jemand ne Idee?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Klappt's

Eingetragen von bv (3924)
am 02.09.2008 - 12:31 Uhr

Klappt's so?

<?php
$meinnode
->feldname[0]['view'];
?>

--
bv - DrupalCenter.de

  • Anmelden oder Registrieren um Kommentare zu schreiben

Leider nein... :-( Habe auch

Eingetragen von aschiwi (1113)
am 02.09.2008 - 12:44 Uhr

Leider nein... :-(

Habe auch schon das probiert:

<?php
$feldname
[0]['view'];
?>

  • Anmelden oder Registrieren um Kommentare zu schreiben

CCK-Feld

Eingetragen von stBorchert (6003)
am 02.09.2008 - 13:14 Uhr

Hi.
Wenn Dir print_r($meine_node) unter Anderem

[field_field_noderef_arbeitsschr] => Array
        (
            [0] => Array
                (
                    [nid] => 11
                )

        )
ausgibt, müsste
<?php
print $meine_node->field_field_noderef_arbeitsschr[0]['nid'];
?>

bestens funktionieren. Hast Du möglicherweise die Anführungszeichen vergessen?

hth,

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ja es gibt mir das aus und

Eingetragen von aschiwi (1113)
am 02.09.2008 - 14:14 Uhr

Ja es gibt mir das aus und nein, der Code funktioniert nicht und auch kein Anführungszeichen vergessen :-(

Ich benutze das Ganze, um ein Feld mit Prepopulate auszufüllen.

<?php
 
global $user; ?>
  <?php
if ((arg(0) == 'node') && (is_numeric(arg(1)))) { $meinnode = node_load(arg(1));
//print $meinnode->title;
}

if (
arg(0) == 'node' && is_numeric(arg(1))) $nodeid = arg(1);
//print $nodeid;  show me your nid!

if (module_exists('og')) {
 
$group_node = og_get_group_context();
 
$gid02 = $group_node->nid;
 
$gid = (int)$gid02;
  if (
$gid02 === null) $gid = 0;
// only members can see this
 
if (in_array($gid, array_keys($user->og_groups)))
 
$output .= "<ul>
<li><a title=\"hinzuf&uuml;gen\" href=\"/node/add/aktivitaeten-ergebnisse?gids[]=
$gid&edit[field_field_field_noderef_testa][0][node_name]=$meinnode->field_field_noderef_arbeitsschr[0]['nid']\">hinzuf&uuml;gen</a></li>
</ul>
"
;
print
$output;
}
?>

Leider bekomme ich damit nur diese URL ?gids[]=19&edit[field_field_field_noderef_testa][0][node_name]=[0]['nid']. Node Titel und Node ID kann ich mir jedoch anzeigen lassen, das klappt auch. Was könnte ich nur übersehen?

***edit: Blöd, wenn ich den ganzen OG-Kram rausnehme, klappt es natürlich so wie es soll... Aber das brauche ich auch, weil der Link nur angezeigt werden soll, wenn der User ihn sehen darf (Subscriber in Group ist) bzw. man sich in einer Gruppe befindet...

  • Anmelden oder Registrieren um Kommentare zu schreiben

nochmal ich :-) also bei

Eingetragen von aschiwi (1113)
am 02.09.2008 - 14:23 Uhr

nochmal ich :-)
also bei folgendem code lasse ich oben den inhalt des feldes anzeigen und versuche diesen inhalt danach als teil der url zu verwenden. die anzeige klappt, im link steht weiter "Array[0]['nid']"...

<?php
 
global $user; ?>
  <?php
if ((arg(0) == 'node') && (is_numeric(arg(1)))) { $meinnode = node_load(arg(1));
print
$meinnode->field_field_noderef_arbeitsschr[0]['nid'];
}

if (
module_exists('og')) {
 
$group_node = og_get_group_context();
 
$gid02 = $group_node->nid;
 
$gid = (int)$gid02;
  if (
$gid02 === null) $gid = 0;
// only members can see this
 
if (in_array($gid, array_keys($user->og_groups)))
 
$output .= "<ul>
<li><a title=\"hinzuf&uuml;gen\" href=\"/grt2/node/add/aktivitaeten-ergebnisse?gids[]=
$gid&edit[field_field_field_noderef_testa][0][node_name]=$meinnode->field_field_noderef_arbeitsschr[0]['nid']\">hinzuf&uuml;gen</a></li>
</ul>
"
;
print
$output;
}
?>

  • Anmelden oder Registrieren um Kommentare zu schreiben

php Array-Ausgabe

Eingetragen von stBorchert (6003)
am 02.09.2008 - 14:40 Uhr
aschiwi@drupal.org schrieb

... im link steht weiter "Array[0]['nid']" ...

Das schreibst Du ja auch da rein! :-)

  ...
  $output .= "<ul>
<li><a title=\"hinzuf&uuml;gen\" href=\"/grt2/node/add/aktivitaeten-ergebnisse?gids[]=$gid&edit[field_field_field_noderef_testa][0][node_name]=$meinnode->field_field_noderef_arbeitsschr[0]['nid']\">hinzuf&uuml;gen</a></li>
</ul>
";
  ...

Funktioniert so nicht.
  ...
  $nid = $meinnode->field_field_noderef_arbeitsschr[0]['nid'];
  $output .= "<ul>
<li><a title=\"hinzuf&uuml;gen\" href=\"/grt2/node/add/aktivitaeten-ergebnisse?gids[]=$gid&edit[field_field_field_noderef_testa][0][node_name]=$nid\">hinzuf&uuml;gen</a></li>
</ul>
";
  ...

wird da schon eher funktionieren. Array-Ausgaben in Strings kann php nicht (ohne Gewähr; ist mir jedenfalls nicht bekannt). Du musst das Ergebnis des Array-Aufrufs erst in einer Variable ablegen und die dann verwenden.
Oder
"<ul><li><a title=\"hinzuf&uuml;gen\" href=\"/grt2/node/add/aktivitaeten-ergebnisse?gids[]=$gid&edit[field_field_field_noderef_testa][0][node_name]=". $meinnode->field_field_noderef_arbeitsschr[0]['nid'] ."\">hinzuf&uuml;gen</a></li></ul>"

Noch besser ist die Verwendung von l(). Da fügst Du die Werte dann per Parameter ein.

hth,

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hey Stefan, danke dir, das

Eingetragen von aschiwi (1113)
am 02.09.2008 - 14:59 Uhr

Hey Stefan,

danke dir, das mit den Punkten hab ich mir auch grad zusammengebastelt und es hat geklappt! Man hat's schon schwer als Nicht-PHP-Mensch :-)

Mit "das mit den Punkten" meine ich

$output .= '<a href="/grt2/node/add/aktivitaeten-ergebnisse?gids[]=$gid&edit[field_field_field_noderef_testa][0][node_name]='. $meinnode->field_field_noderef_arbeitsschr[0]['nid'] .' ">hinzuf&uuml;gen</a>'
;

Ist hier und da noch etwas schief, aber ich kriege das ausgegeben was ich will. (Juhu) ***EDIT Code korrigiert, so klappt es perfekt! (JUHU) :-)

Nochmal danke fürs Mitdenken!!!

  • Anmelden oder Registrieren um Kommentare zu schreiben

l

Eingetragen von stBorchert (6003)
am 02.09.2008 - 15:03 Uhr
aschiwi@drupal.org schrieb

Ist hier und da noch etwas schief, aber ich kriege das ausgegeben was ich will.

Fein.
Noch ein Tipp: verwende bitte die Funktion l(), um den Link zu bauen. Das sieht im Code wesentlich besser und verständlicher aus.

<?php
$query
= 'gids[]='. $gid;
$query .= 'edit[field_field_field_noderef_testa][0][node_name]=';
$query .= $meinnode->field_field_noderef_arbeitsschr[0]['nid'];
$output .= l('hinzufügen',
 
'node/add/aktivitaeten-ergebnisse',
  array(
'class' => 'dingens', 'title' => 'klick'),
 
$query
);
?>

So in der Art.

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ach Stefan. Du hast ja so

Eingetragen von aschiwi (1113)
am 02.09.2008 - 15:22 Uhr

Ach Stefan. Du hast ja so recht. :-) Aber jetzt hab ich noch ein zweites Argument, um ein weiteres Feld mit Prepopulate auszufüllen... Eigentlich bin ich froh, dass es so funktioniert, alles andere würde wieder mindestens ne halbe Stunde rumfummeln bedeuten :-(

Liebe Grüße
Anja

  • Anmelden oder Registrieren um Kommentare zu schreiben

propopulate

Eingetragen von stBorchert (6003)
am 02.09.2008 - 15:33 Uhr
aschiwi@drupal.org schrieb

Aber jetzt hab ich noch ein zweites Argument, um ein weiteres Feld mit Prepopulate auszufüllen...

Es gibt für alles eine Lösung :-)

<?php
$fields
= array(
 
'gids[]' => $gid,
 
'edit[field_field_field_noderef_testa][0][node_name]' => $meinnode->field_field_noderef_arbeitsschr[0]['nid'],
 
'edit[irgendwas][0][anderes]' => 'Wert',
);
$query = '';
// Felder in $query einfügen
foreach($fields as $field => $value) {
 
$query .= $field . '=' . $value . '&';
}
// letztes "&" entfernen
if (strlen($query) > 0) {
 
$query = substr($query, 0, -1);
}
$output .= l('hinzufügen',
 
'node/add/aktivitaeten-ergebnisse',
  array(
'class' => 'dingens', 'title' => 'klick'),
 
$query
);
?>

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

Oh danke, sehr hilfsbereit

Eingetragen von aschiwi (1113)
am 02.09.2008 - 16:45 Uhr

Oh danke, sehr hilfsbereit :-)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Neuinstallation: vermutlich ein rewrite-Problem
  • Drupal CMS installieren
  • [erledigt]MP3 in Drupal 10 einbinden
  • (gelöst)Drupal 11 installieren
  • Titel ausblenden
  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Dynamische Ansicht von Seiteninhalt (als Tabelle?)
  • Vergabe von Berechtigungen für bestimmte Rollen; mir fehlt der Haken bzw. das „Veröffentlicht“
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • Rolle erstellen nicht zu finden
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
Weiter

Neue Kommentare

  • Wenn die Subdomain auf
    vor 14 Stunden 44 Minuten
  • ordnerstruktur
    vor 1 Tag 1 Stunde
  • Die Subdomain muß auf den
    vor 3 Tagen 9 Stunden
  • Verwende doch das Tag dafür,
    vor 3 Wochen 5 Tagen
  • Guckst du hier: step by step
    vor 3 Wochen 4 Tagen
  • Guckst du hier: step by step
    vor 3 Wochen 4 Tagen
  • Ich habe ja keine Angst vor
    vor 5 Wochen 6 Stunden
  • Ist grundsätzlichmachbar – aber nichts für „einfach mal schnell“
    vor 5 Wochen 2 Tagen
  • Vielen Dank erst einmal, aber
    vor 5 Wochen 4 Tagen
  • Du hast die "Trusted host
    vor 5 Wochen 4 Tagen

Statistik

Beiträge im Forum: 250288
Registrierte User: 20511

Neue User:

  • Pavlotog
  • burningTree
  • Marvinkep

» Alle User anzeigen

User nach Punkten sortiert:
wla9466
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 13 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