[gelöst] View nur für den Profilbesitzer anzeigen lassen.
Eingetragen von fraweg (230)
am 11.04.2012 - 13:47 Uhr in
am 11.04.2012 - 13:47 Uhr in
Hallo zusammen. ich möchte ein View im Profil nur für den Profilbesitzer anzeigen lassen. Ich habe mal geschaut ob es über contextual filters über die uid geht. Das klappt leider nicht, da die Url meines Profiles immer so "http://localhost/test/user" aussieht.
Hat da jemand einen Tip?
Beste Grüße
Frank
- Anmelden oder Registrieren um Kommentare zu schreiben
Anzeige im Profil // Viewfield
am 11.04.2012 - 15:30 Uhr
Hallo Frank,
wie zeigst du die View denn im Profil an?
Viele Grüße,
Jacqueline
Edit:
Vielleicht hilft dir ja das Modul "Viewfield" (leider aktuell nur in einer Dev-Version verfügbar) weiter.
Es ermöglicht das Einbinden von Views als Feld. Du kannst dann auch Contextuel Filters bzw. Argumente gleich mitgeben, beispielsweise auch als Token: [current-user:uid] oder [current-user:name].
Hallo Jacqueline, über das
am 11.04.2012 - 22:32 Uhr
Hallo Jacqueline,
über das Module Viewfield bin ich auch schon gestoßen. Lieber wäre es mir jedoch das View mit Panels einzubinden.
Ich möchte das z.b. ein View der Online-Relations nur von dem Besitzer des Profiles gesehen wird. Kann man das irgendwie umsetzen?
Beste Grüße
Frank
Wenn der VIew als Block
am 12.04.2012 - 01:57 Uhr
Wenn der VIew als Block angezeigt wird, nutze einfach folgenden Code in den Sichtbarkeisteinstellungen des Blocks (PHP-Mode). In Panels wird es doch sowas ähnliches auch geben (damit kenne ich mich nicht aus)
<?php
global $user;
if (arg(0) == 'user' && $user->uid == arg(1)) {
return true;
} else {
return false;
}
?>
Damit wird der Block/View nur dem Profile-Inhaber angezeigt - andere User bekommen ihn nicht zu Gesicht.
Der Code ist für Drupal 6 (Drupal 7 nutze ich nicht) - die User-Variable wird bei 7 sicher auch noch $user heißen - ansonsten einfach anpassen.
Gruß Matthias
Drupal rockt!!!
Hallo Matthias, danke für
am 12.04.2012 - 14:50 Uhr
Hallo Matthias,
danke für deine Hilfe! Und wo plazierst du den Code? Machst du da ein Modul oder geht es wo anders hin...
Viele Grüße,
Frank
In den
am 12.04.2012 - 16:40 Uhr
In den "Sichtbarkeisteinstellungen" (bei Block). Soetwas muss es doch auch bei Panels geben (mit Panels kenne ich mich aber nicht aus)
Drupal rockt!!!
Du meinst in dem Feld welches
am 12.04.2012 - 17:27 Uhr
Du meinst in dem Feld welches ich im screenshot angefügt habe ? Ich würde das auch erstmal mit einem "normalen" Block testen..
Ist der Screenshot von
am 12.04.2012 - 17:28 Uhr
Ist der Screenshot von Panels?
Wie gesagt ... mit Panels kenne ich mich nicht aus. Sorry. Wenn es da keine "PHP-Sichtbarkeitsoption (nur bei TRUE anzeigen)" gibt, kann ich dir leider nicht weiter helfen.
Drupal rockt!!!
Nein das ist der Block. ich
am 12.04.2012 - 17:33 Uhr
Nein das ist der Block. ich würde es erst einmal ohne panels testen. Also ganz normal Block ins Theme. Sieht es in Drupal 6 anders aus ?
Bei 6 gibt es in den
am 12.04.2012 - 17:42 Uhr
Bei 6 gibt es in den Block-Sichtbarkeitseinstllungen eine "PHP-Code-Option" (nur anzeigen wenn TRUE zurück gegeben wird). Warum die bei 7 nicht mehr vorhanden ist, weiß ich leider nicht da ich, wie gesagt, 7 nicht nutze.
Drupal rockt!!!
Ahh OK...Dankefür deine
am 12.04.2012 - 17:44 Uhr
Ahh OK...Dankefür deine Mühe..muss ich mal googlen ob es in 7 ein zusatzmodule ist.. Oder weiß das hier jemand so (mal in die Runde fragt) ?
Gibt es noch, aber es findet
am 12.04.2012 - 23:01 Uhr
Gibt es noch, aber es findet sich unter der Sichtbarkeit nur dann, wenn auch der PHP-Filter als Modul aktiviert ist.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
DANKE! Das hat jetzt mal so
am 13.04.2012 - 10:28 Uhr
DANKE!
Das hat jetzt mal so richtig geholfen...der code funzt auch in Drupal 7. Weiß jemand wie der code aussehen müßte wenn man einem "relationshiptype" z.B "Buddy" des Profilusers exclusive Rechte auf den Block geben will? Ich habe das hier "http://drupal.org/node/203396" gefunden steige da aber nicht so richtig durch..
Beste Grüße,
Frank
Hier hatte ich das letztes
am 13.04.2012 - 10:56 Uhr
Hier hatte ich das letztes jahr für Drupal 6 erklärt. http://www.drupalcenter.de/node/34030#comment-121663
Die API von UR hat sich aber für D7 ein wenig geändert (glaube ich) daher musst du den Code/die Funktionen entsprechend anpassen.
Gruß Matthias
Drupal rockt!!!
Ach ja ... nochwas.Wenn Du
am 13.04.2012 - 11:20 Uhr
Ach ja ... nochwas.
Wenn Du den Block nicht über view_embed_view einbinden willst (und die Sichtbarkeit im Template steuern willst) sondern direkt über die Block-Sichtbarkeisteinstellungen - dann musst du die "Is Friend or not-Abfrage" in einem eigenen Minimodul machen und dann die Varibale (mit dem Wert) global verfügbar machen. Du brauchst die globale Varibale nämlich um in den Block-Sichtbarkeisteinstellungen darauf zugreifen zu können.
In 6 nutzt man dazu z.B. die Funktion hook_init.
Ob die in 7 auch verfügabr ist, musst du selbst schauen.
Gruß Matthias
Drupal rockt!!!
Hallo Matthias, danke für
am 13.04.2012 - 11:29 Uhr
Hallo Matthias,
danke für deine Hilfe.Wenn ich das richtig verstehe, geht es bei dem Link darum ein ganzes Profil für eine relationship verschwinden zu lassen.
Für mich wäre es interessant einen Block nur einer bestimmten "Relation" sichtbar zu machen.
Gruß Frank
Der Code funzt natürlich auch
am 13.04.2012 - 11:33 Uhr
Der Code funzt natürlich auch für einzelne Blöcke. Dazu musst du ihn ein wenig abändern. Im Code findets du die UR-Abfrage (ist jemand friend oder nicht). Diese nimmst du dir - setzt sie in ein Minimodul, übergibst den Wert in eine Varibale und machst sie "global".
Dann kannst du in den Block-Sichtbarkeitseinstellungen die Variable abfragen und TRUE oder FALSE setzen.
Drupal rockt!!!
Du meinst ich kann den
am 13.04.2012 - 11:34 Uhr
Du meinst ich kann den PHP-Code nicht im Block selber eingeben? Beispielsweise habe ich einen View als Block, welcher mir die Freunde bzw. Buddys anzeigt. Diesen sollen dann auch nur die Buddys des Users sehen.
Viele Grüße
Frank
Das geht auch (wenn du nur
am 13.04.2012 - 11:45 Uhr
Das geht auch (wenn du nur einen Block verwendest) - wenn du mehrere Blöcke hast, würde ich die Abfrage einmal im Minimodul machen und dann, in jedem Block, nur die globale Variable abfragen.
Ich habe z.B. 14 Blöcke im profil - wenn in jedem Block die gesamte Codeprozedur ablaufen müsste, nur um TRUE oder FALSE zu setzen, wäre das völlig unnötiger Aufwand /unnötige Serverlast. In jedem Block wird die user-varibale geladen (die recht groß sein kann). Wenn du also mehrere Blöcke hast, wird die user-varibale auch für jeden Block nochmal geladen (was völlig unnötig ist). Deshalb lagert man die "is-friend-or-not-Abfrage" ins Minimodul aus damit die gesamte Prozedur nur einmal ablaufen muss. Jeder Block schnappt sich dann einfach nur die globale Variable in der nur "1" oder "0" steht.
Drupal rockt!!!
Hallo nochmals und Danke für
am 14.04.2012 - 11:16 Uhr
Hallo nochmals und Danke für eure ausführlichen Antworten!
ich jetzt mal ein wenig herum probiert. Zumindest soweit wie es meine "nicht kenntnisse" es zulassen und Google es auspuckt.
Das der oben beschriebene Code mit den Blocks funktioniert sobald der PHP-Filter im core von Drupal angeschaltet ist hatte ich ja schon beschrieben.
Auch in Panels funtioniert er. Auch dort kann man dem zugefügtem Block einen PHP-Code hinzufügen. Diese muss dann so aussehen:
global $user;
if (arg(0) == 'user' && $user->uid == arg(1)) {
return TRUE;
}
Dann ging es um die Frage wie man es mit den UR umsetzen kann. Hierzu hat Google unter diesem Link http://drupal.org/node/375462 folgenden Code ausgespuckt:
global $user;
$profile_uid = arg(1);
if ($user->uid == 1) {
return TRUE;
} else {
return user_relationships_load(array('between' => array($user->uid, $profile_uid), 'approved' => 1), array('count' => TRUE));
}
Diesen konnte ich wenn ich im View untern Cotextual Filter-> requestee) User relationships: RTID->Provide default value->PHP-Code hinzufüge eingeben und es scheint auch zu funktionieren.
Wenn ich den Code richtig verstehe wurde diese Teil
$profile_uid = arg(1);
if ($user->uid == 1) {
return TRUE;
} else
hinzugefügt um auch den Admin an der ganzen Sache zu beteiligen. Das funktioniert für die den Admin mit der ID=1 auch. Aber was muss ich ändern, damit dieses auch für alle User mit der Rolle Administrator passiert?
@Matthias:
Bedeutet das nun, dass ich diesen Code
global $user;
$profile_uid = arg(1);
if ($user->uid == 1) {
return TRUE;
} else {
return user_relationships_load(array('between' => array($user->uid, $profile_uid), 'approved' => 1), array('count' => TRUE));
}
in ein Minimodul einfügen muss? Und wie sieht dann die Abfrage in den Blöcken aus? Entschuldige bitte meine naiven Fragen. Bin in diesen Dingen einfach noch nicht so weit...
Viele Grüße,
Frank
Zitat:.... das funktioniert
am 14.04.2012 - 14:33 Uhr
.... das funktioniert für die den Admin mit der ID=1 auch. Aber was muss ich ändern, damit dieses auch für alle User mit der Rolle Administrator passiert?
if ($user->uid == 1) {
return TRUE;
}
Bitte mal mitdenken! Wo steckt die Rolle drin und wie kann man sie abfragen? Im User-Object steckt sie!
global $user;
if (in_array('administrator', $user->roles))
{
return TRUE;
}
Mit diesem Code fragst du die Rolle "administrator" ab (beim betrachtenden User) und gibst dann "TRUE" zurück. Überprüfe bitte bei D7 ob $user->roles genauso existiert oder ob sich da irgendwas geändert hat. Für das Minimodul brauchen wir TRUE natürlich erstmal nicht (dazu aber später mehr). Schau bitte nach ob bei D7 die Rolle wirklich "administrator" und nicht "admin" heißt.
----------------------------------
http://drupal.org/node/375462
Der von dir angegebene Link enthält den Code von UR für D6. Hast du überprüft ob sich die Funktion bei UR für D7 verändert hat?
Kläre bitte zuerst diese beiden Fragen (ich nutze, wie schon mehrfach erwähnt, D7 nicht und kann dazu nichts sagen) - danach gehst weiter.
Gruß Matthias
Drupal rockt!!!
Hallo Matthias,danke
am 14.04.2012 - 15:51 Uhr
Hallo Matthias,
danke nochmals für deine Mühe!
Also laut diesem Link:
http://api.drupal.org/api/drupal/developer!globals.php/global/user/7
scheint es (wenn ich alles richtig verstehe) "$user->roles" zu geben.
Auch wenn ich bei mir in Drupal 7 in die Rollenverwaltung gehe gibt es die Rolle "administrator". In der Datenbank konnte ich sehen, dass die Administrator Rolle die Rid = 3 hat. Auch in diversen Codeschnipsel, die Google zu Drupal 7 gefunden hat, existiert diese Rolle.
Ich habe deinen Code mal in den anderen eingebaut und getestet.
global $user;
$profile_uid = arg(1);
if (in_array('administrator', $user->roles))
{
return TRUE;
} else {
return user_relationships_load(array('between' => array($user->uid, $profile_uid), 'approved' => 1), array('count' => TRUE));
}
Er scheint (wenn ich Ihn in Views einbaue) zu funktionieren.
Der von dir angegebene Link enthält den Code von UR für D6. Hast du überprüft ob sich die Funktion bei UR für D7 verändert hat?
Das hatte ich natürlich vorher getestet. Mit deinen Änderungen habe ich es nun auch nochmals (wie beschrieben) getestet. Damit kann ich nun schon mal die grundsätzliche Funktion abdecken. Ich kann aber deiner Agumentation folgen, dass es Sinn macht dieses in ein Modul auszulagern und bin dir natürlich sehr Dankbar für deine weitere Hilfe.
Gruß Frank
So ... jetzt lege dir in
am 15.04.2012 - 22:32 Uhr
So ... jetzt lege dir in deinem Modulordner den Ordner "eigene_module" an. In diesem widerum einen Ordner mit Namen "user_is_friend".
Was du tun musst, um ein eigenes Modul zu erstellen, schaue bitte selbst nach. Du brauchst eine user_is_friend.info und eine user_is_friend.module (hoffe das ist bei D7 auch so).
Folgenden Code kopierst du ins user_is_friend.module (mit php-start-tag)
<?php
function user_is_friend_init(){
global $user;
global $user_is_friend;
if (arg(0) == 'user' && is_numeric(arg(1))) {
$profile_uid = arg(1);
if (in_array('administrator', $user->roles))
{
$user_is_friend = 1;
// Wenn der Admin aufs Profil zugreift, bekommt er den Status 1.
}
elseif ($user->uid == $profile_uid) {
$user_is_friend = 1;
// Wenn der Profilinhaber aufs eigene Profil zugreift, bekommt er den Status 1.
}
else {
$user_is_friend = user_relationships_load(array('between' => array($user->uid, $profile_uid), 'approved' => TRUE)) ? 1 : 0;
// Nur Freunde bekommen den Status 1.
// Allen anderen bekommen den Status 0.
}}}
?>
Nach dem speichern - aktivierst du das Modul.
Nun kannst du die Sichtbarkeit der einzelnen Blöcke ganz einfach mit folgenden Code steuern.
<?php
global $user_is_friend;
if ($user_is_friend == "1") {
return TRUE;
}
else {
return FALSE;
}
?>
Zusammenfassend:
Die User mit der Rolle "administrator" haben immer den Status 1 (True) - sie können also alle Blöcke bei allen Usern sehen.
Der Profilinhaber kann seine Blöcke auch immer sehen Status 1 (True).
Und natürlich die UR-"Freunde" Status 1 (True).
Alle anderen haben eine "0" (False) und sehen die Blöcke nicht.
Der obige Code ist für D6 und funktioniert. Sollte sich bei D7 irgendwas geändert haben, musst du das (wie gesagt) entsprechend anpassen.
Gruß Matthias
Drupal rockt!!!
Hallo Matthias, zunächst
am 15.04.2012 - 19:54 Uhr
Hallo Matthias,
zunächst einmal herzlichen Dank für deine Geduld und deine Mühe!
Ich habe mir nu mal das Module gebaut. Es funktionierte auch für die Sichtbarkeit der Freunde. Nur konnten die User Auf ihren eigenen Profilen die Blöcke nicht sehen. ich habe denn nochmal geschaut und den code etwas verändert. Es scheint jetzt auch zu funktionieren. Da ich aber von PHP nicht wirklich Ahnung habe nochmals die Frage ob ich da etwas sinnvolles gemacht habe oder ob das so blödsinn ist.
Hier mein Code:
<?php
function user_is_friend_init(){
global $user;
global $user_is_friend;
global $profile_uid
// "$profile_uid" habe ich angefügt da ich sonnst eine "Undefined variable: profile_uid" hatte
if (arg(0) == 'user' && is_numeric(arg(1))) {
$profile_uid = arg(1);
}
if (in_array('administrator', $user->roles)) {
$user_is_friend = 1;
// Wenn der Admin aufs Profil zugreift, bekommt er den Status 1.
}
elseif ($user->uid == $profile_uid) {
$user_is_friend = 1;
// Wenn der Profilinhaber aufs eigene Profil zugreift, bekommt er den Status 1.
}
else {
$user_is_friend = user_relationships_load(array('between' => array($user->uid, $profile_uid), 'approved' => TRUE)) ? 1 : 0;
// Nur Freunde bekommen den Status 1.
// Allen anderen bekommen den Status 0.
}}
?>
Im Grunde habe ich nur unten eine Klammer weg genommen und hinter "$profile_uid = arg(1);" eingefügt.
Macht das so Sinn? Erklärt es die "Fehlfunktion" ?
Viele Grüße
Frank
Nein - das macht keinen
am 15.04.2012 - 21:30 Uhr
Nein - das macht keinen Sinn.
Die if-Anweisung
if (arg(0) == 'user' && is_numeric(arg(1)))
muss ganz hinten geschlossen werden - nicht hinter $profile_uid = arg(1); - da die ganze Prozedur nur ablaufen soll wenn ein Userprofile aufgerufen wird und daher muss sie komplett in die erste if-Anweisung eingeschlossen sein.Auch muss $profile_uid nicht global sein da diese Variable nur innerhalb der Funktion Verwendung findet.
Bei mir funzt der Code einwandfrei.
// "$profile_uid" habe ich angefügt da ich sonnst eine "Undefined variable: profile_uid" hatte
Hmmm ... grübel ... was für eine PHP-Version nutzt du?
Drupal rockt!!!
Ich habe nochmal alles
am 15.04.2012 - 22:34 Uhr
Ich habe nochmal alles überprüft und jede einzelen Variable ausgegeben um zu schauen ob alles korrekt ist (übergeben wird) und der obige Code funktioniert bei mir tadellos und es ist alles ok.
Warum bei dir diese Fehler auftreten, kann ich leider nicht sagen (andere PHP-Version - ich nutze 5.2.9 oder bei D7 hat sich irgendwas verändert - kA).
Nachtrag: Entferne bitte das PHP-End-Tag. In Modulen darf kein end-tag vorhanden sein. Bitte dann nochmal ausprobieren.
Ansonsten weiß ich leider nicht weiter.
Drupal rockt!!!
Hallo Matthias, danke
am 15.04.2012 - 22:39 Uhr
Hallo Matthias,
danke nochmals für deine Mühe. Schade ich dachte ich hätte den Fehler gefunden. Interessant ist das es so im Grunde funktioniert.. warum auch immer.
Ich nutze PHP 5.3.10 und Mysql 5.5.23 beides auf einem aktuellem Debian.
Ich werde einfach nochmal etwas weiter damit herum spielen und lesen. Mal sehen ob ich noch etwas heraus finde.
Wenn es klappt werde ich auf jeden fall die fertigen Module hier hoch laden.
Noch mal eine Frage...Was muss ich ändern, damit die Abfrage speziell auf einen Relationtyp funktioniert (Beispielsweise Buddy)?
Viele Grüße
Frank
fraweg schrieb Hallo
am 15.04.2012 - 22:42 Uhr
Hallo Matthias,
Noch mal eine Frage...Was muss ich ändern, damit die Abfrage speziell auf einen Relationtyp funktioniert (Beispielsweise Buddy)?
Das weiß ich leider nicht - da musst du mal in die API/Issues des Moduls schauen.
Drupal rockt!!!
Ok...Aber nochmals...
am 15.04.2012 - 23:00 Uhr
Ok...Aber nochmals... Herzlichen Dank!
Gruß
Frank
Edit:
Die if-Anweisung if (arg(0) == 'user' && is_numeric(arg(1))) muss ganz hinten geschlossen werden - nicht hinter $profile_uid = arg(1); - da die ganze Prozedur nur ablaufen soll wenn ein Userprofile aufgerufen wird und daher muss sie komplett in die erste if-Anweisung eingeschlossen sein.
Ich ahne wo das Problem ist..Ich denke ich bekomme das morgen hin und melde mich dann nochmal.
Das Problem schein t in
am 16.04.2012 - 22:39 Uhr
Das Problem schein t in dieser Zeile zu sein:
if (arg(0) == 'user' && is_numeric(arg(1))) {
Wenn ich sie weg lasse funktioniert es. Ist es wichtig dieses Module nur auf das Profil anzuwenden ?
Beste Grüße
Frank
Edit:
Auch dieser Teil:
elseif ($user->uid == $profile_uid) {
$user_is_friend = 1;
scheint bei mir im Drupal 7 nicht zu funktionieren... :-(
Vielleicht hat noch jemand
am 16.04.2012 - 22:42 Uhr
Vielleicht hat noch jemand der mit Drupal 7 arbeitet eine Idee?
Viele Grüße
Frank
Zitat: Wenn ich sie weg lasse
am 16.04.2012 - 22:44 Uhr
Wenn ich sie weg lasse funktioniert es. Ist es wichtig dieses Module nur auf das Profil anzuwenden ?
Die if-Anweisung sorgt dafür, dass der Code nur ausgeführt wird, wenn Userprofile aufgerufen werden. Wenn du sie weg lässt, wird das Modul ständig aktiv - ob Nodes, VIews (oder wasauchimmer) aufgerufen werden.
Warum das bei D7 bzw. bei deiner PHP-Version nicht funktioniert, kann ich leider nicht sagen - sorry.
Drupal rockt!!!
Trotzdem Danke für dien
am 16.04.2012 - 23:08 Uhr
Trotzdem Danke für dien Hilfe! Mal sehen.. vielleicht weiß ja noch jemand anderes Rat.
Beste Grüße,
Frank
Hallo,ich fasse nochmal
am 17.04.2012 - 17:19 Uhr
Hallo,
ich fasse nochmal meine bisherigen Ergebnisse zusammen.
Ich nutze diesesn Code als Modul:
<?php
function user_is_friend_init(){
global $user;
global $user_is_friend;
if (arg(0) == 'user' && is_numeric(arg(1))) {
$profile_uid = arg(1);
if (in_array('administrator', $user->roles))
{
$user_is_friend = 1;
// Wenn der Admin aufs Profil zugreift, bekommt er den Status 1.
}
elseif ($user->uid == $profile_uid) {
$user_is_friend = 1;
// Wenn der Profilinhaber aufs eigene Profil zugreift, bekommt er den Status 1.
}
else {
$user_is_friend = user_relationships_load(array('between' => array($user->uid, $profile_uid), 'approved' => TRUE)) ? 1 : 0;
// Nur Freunde bekommen den Status 1.
// Allen anderen bekommen den Status 0.
}}}
Was funktioniert:
- User sehen auf fremden Profilen die entsprechenden Blöcke.
Was nicht funktioniert:
- Die User inc. Admin sehen ihre eigenen Blöcke auf dem Userprofil nicht.
Wenn ich nun dieses Code-Teil entferne
if (arg(0) == 'user' && is_numeric(arg(1))) { }
sieht es folgendermaßen aus:
Was funktioniert:
- User sehen auf fremden Profilen die entsprechenden Blöcke.
- Der Admin sieht auf dem eigenen Profil seine Blöcke.
Was nicht funktioniert:
- Die User exc. des Admin sehen ihre eigenen Blöcke auf dem Userprofil nicht.
Das heißt dieser Teil des Codes scheint einwandfrei zu funktionieren:
$user_is_friend = user_relationships_load(array('between' => array($user->uid, $profile_uid), 'approved' => TRUE)) ? 1 : 0;
// Nur Freunde bekommen den Status 1.
// Allen anderen bekommen den Status 0.
Bei dem anderen harkt es noch.
Hat jemand welcher Drupal 7 nutzt noch eine Idee? Andert sich vielleicht was mit der Profile_uid wenn man Profile2 nutzt?
Viele Grüße
Frank
Hallo zusammen,soo ich bin
am 20.04.2012 - 10:42 Uhr
Hallo zusammen,
soo ich bin nun etwas weiter gekommen. Der Code wie er von Matthias angegeben wurde funktioniert grundsätzlich auch in Drupal 7. Das Problem an der Sache ist, dass wenn ich auf "My account" klicke ich nicht zu "http://.../sitename/user/id" komme sondern zu "http://.../sitename/user/".So funktioniert das ganze nicht. Wenn ich die ID händisch eingebe klappt es. Ich bin darauf gekommen, als ich im Profil mal auf edit geklickt hatte. Dann stand da "http://.../sitename/user/id/edit" und die blöcke waren da.
Es wäre sehr nett wenn mir jemand sagen könnte wie man das ändert so dass die ID da steht oder wie man in diesem Fall den Code erweitern muss.
Vielen Dank für jede Hilfe!
Frank
Edit: Da es ja nicht mehr um Views und CCK geht bin ich mal nach hier
http://www.drupalcenter.de/node/41047
umgezogen und habe s dort als "gelöst" markiert
Um auf die Grundfrage zurück
am 20.04.2012 - 10:50 Uhr
Um auf die Grundfrage zurück zu kommen :
"View nur für den Profilbesitzer anzeigen lassen"
Auch dieses kann man mit der Methode Modul und PHP-Code lösen in dem man ein Contextual Filter anlegt , dort "Provide default value mit dem Type "Php-Code" auswählt. Hier fügt man dann wieder den Code
global $user_is_friend;
if ($user_is_friend == "1") {
return TRUE;
}
else {
return FALSE;
}
ein.
Alternativ ein View als Block erzeugen und den Code dort unterbringen.
Ich werde die Module hier
http://www.drupalcenter.de/node/41047
zur verfügung stellen (falls es jemanden interessiert).
Beste Grüße
Frank