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 - 11: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 - 11: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 - 12: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 - 12: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 - 11: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 - 11: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 - 11: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 - 12: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 - 13: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 - 13: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 - 13: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 - 13: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 - 14: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 - 14: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 - 14: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 - 15:45 Uhr

Oh danke, sehr hilfsbereit :-)

  • 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 5 Stunden
  • Hey danke
    vor 2 Wochen 23 Stunden
  • Update: jetzt gibt's ein
    vor 2 Wochen 1 Tag
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 6 Tagen
  • Da scheint die Terminologie
    vor 2 Wochen 6 Tagen
  • Kannst doch auch alles direkt
    vor 3 Wochen 3 Tagen
  • In der entsprechenden View
    vor 3 Wochen 3 Tagen
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 3 Tagen
  • gelöst
    vor 6 Wochen 2 Stunden
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 1 Tag

Statistik

Beiträge im Forum: 250233
Registrierte User: 20452

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» 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 22 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