(Gelöst) ERROR mit PHP wenn ausgeloggter Zustand

am 17.09.2013 - 20:33 Uhr in
Hallo Zusammen
Ich möchte gerne in Node so was einbauen. Funktioniert eigendlich wunderbar nur in eingeloggten Zustand.
Wenn ich ausgeloggt bin und in die Node gehe habe ich ein error... kann mir hier jemand sagen warum?
<?php
if (node_access('update', $nid , $user))
{
print l('<i class="icon-edit-sign icon-3x"></i>', 'node/' . $nid. '/edit', array('html' => 'true'));
}
?>
LG
Sven
Anhang | Größe |
---|---|
Bildschirmfoto 2013-09-17 um 21.30.52.png | 96.82 KB |
- Anmelden oder Registrieren um Kommentare zu schreiben
Wo kommt denn Deine Variable
am 17.09.2013 - 22:11 Uhr
Wo kommt denn Deine Variable $user her? Die sollte ein Objekt sein. Manchmal hilft auch das Lesen der API-Dokumentation.
Beste Grüße
Werner
Die Variable $user ist nicht
am 17.09.2013 - 22:42 Uhr
Die Variable $user ist nicht gesetzt, da solltest Du vorher mit "if" prüfen ob diese gesetzt ist
Ich bedanke mich für die
am 18.09.2013 - 08:08 Uhr
Ich bedanke mich für die schnelle Antwort.
Ich bin noch ein Neuling was es PHP angeht, wo muss ich die $user Variable setzen?
LG
Sven
<?phpif ($user) { if
am 18.09.2013 - 08:12 Uhr
<?php
if ($user) {
if (node_access('update', $nid , $user)) {
print l('<i class="icon-edit-sign icon-3x"></i>', 'node/' . $nid. '/edit', array('html' => 'true'));
}
}
?>
Herzlichen dank. Das Problem
am 18.09.2013 - 16:16 Uhr
Herzlichen dank.
Das Problem besteht immer noch, ich bekomme immer noch die fehlermeldung aber nur wenn die Rolle "Gast" oder "Käufer" denn Beitrag sehen.
Wenn Rolle "Verkäufer" eingeloggt keine fehlermeldung
Wenn Rolle "Käufer" fehlermeldung
Wenn Rolle "Gast" fehlermeldung
LG
Sven
Was passiert denn
am 18.09.2013 - 16:26 Uhr
Was passiert denn hier?
<?php
global $user;
if (node_access('update', $nid , $user)) {
print l('<i class="icon-edit-sign icon-3x"></i>', 'node/' . $nid. '/edit', array('html' => 'true'));
}
?>
das gleiche problem!
am 18.09.2013 - 16:37 Uhr
das gleiche problem!
Kann ja auch nicht
am 18.09.2013 - 16:54 Uhr
Kann ja auch nicht funktionieren, node_access erwartet als 2. Parameter das Node Objekt und nicht die NID
<?php
node_access('update', $node, $user)
?>
Ja und so funktioniert es
am 18.09.2013 - 17:07 Uhr
Ja und so funktioniert es :-)
<?php
if (node_access('update', $node , $user))
{
print l('<i class="icon-edit-sign icon-3x"></i>', 'node/' . $nid. '/edit', array('html' => 'true'));
}
?>
ist das so aber auch richtig?
LG
Sven
ja, siehe api zu
am 18.09.2013 - 17:46 Uhr
ja, siehe api zu node_access()
Ich bedanke mich recht
am 19.09.2013 - 09:28 Uhr
Ich bedanke mich recht herzlich!
So habe ich es gemacht.
<div class="class1">
<?php
if ($user) {
if (node_access('update', $node , $user)) {
print l('<i class="icon-trash icon-3x"></i>', 'node/' . $nid. '/delete', array('html' => 'true'));
}
}
?>
</div>
<div class="class1">
<?php
if ($user) {
if (node_access('update', $node , $user)) {
print l('<i class="icon-edit-sign icon-3x"></i>', 'node/' . $nid. '/edit', array('html' => 'true'));
}
}
?>
</div>
<div class="class1">
<?php
if ($user) {
if (node_access('update', $node , $user)) {
print l('<i class="icon-print icon-3x"></i>', 'print/' , array('html' => 'true'));
}
}
?>
</div>
Habe noch ein kleines Problem bei der print/ Ausgabe es wird bei andere Rollen nicht angezeigt da muss ich noch schauen wie das funktioniert, sonst ist alles ok.
Die Schreibweise von PHP kann man sicher noch kürzen aber bin halt noch Neuling und weiss es nicht besser :-)
LG
Sven