Freund hinzufügen auf der Profilseite mit "User Relationships"
Eingetragen von Vieper (22)
am 09.01.2010 - 15:29 Uhr in
am 09.01.2010 - 15:29 Uhr in
Hi,
ich würde gerne auf der Profilseite von jedem user die möglichkeit haben ihn direkt als Freund hinzuzufügen und das möchte ich gerne in die "user-profile.tpl.php" einbauen.
Ich denke, es müsste dem Code um jemanden direkt eine Nachricht mit privatemsg zuschreiben ja recht ähnlich sein:
<?php
print $profile[privatemsg_send_new_message];
?>
Der funktioniert auch.
Also dachte ich mir für User relationships folgendes:
<?php
print $profile[user_relationships_api_request_action];
?>
Doch das funktioniert leider nicht. Da kommt nichts.
Kann mir einer weiterhelfen?
Lg Vieper
- Anmelden oder Registrieren um Kommentare zu schreiben
weiß keiner ne Antwort?
am 19.01.2010 - 15:03 Uhr
weiß keiner ne Antwort? oder habe ich mich vllt. unverständlich ausgedrückt?
Es gibt ja auch schon einen Block in dem genau das, also einen Freund hinzufügen erreicht wird... Nur will ich es nicht als Block sondern im Profil eingebunden. Ich komme aber leider nicht and den Code von dem Block ran, also weiss nicht was da drin steht...
Jemand ne Idee?
Hi, ich bin selbst noch ganz
am 23.01.2010 - 13:31 Uhr
Hi, ich bin selbst noch ganz ungeübt mit Drupal. Aber ich würde sagen mit
<?php
print $profile[user_relationships_ui];
?>
erreichst du, was du möchtest.
Vielleicht hilft dir auch http://drupal.org/node/35728 weiter.
Und danke für die Frage. Damit hast du mir gleich zwei Antworten gegeben, die ich gerade gesucht hab *g*.
Oh man, ich habe alles
am 23.01.2010 - 15:37 Uhr
Oh man, ich habe alles mögliche ausprobiert aber genau das nicht XD
Ich danke dir VIELMALS!!!!!!!!!
Jetz weiss nich vllt. noch zufällig mal eben wie ich den Text ändern kann der da steht, bzw. wo? Also im moment steht ja da:
Beziehungen
Beziehungs Aktionen
Become ...`s Freund
Vieper schrieb Jetz weiss
am 23.01.2010 - 16:21 Uhr
Jetz weiss nich vllt. noch zufällig mal eben wie ich den Text ändern kann der da steht, bzw. wo? Also im moment steht ja da:
In Deiner Oberflächenübersetzung admin/build/translate
Drupal 7 Screencasts in deutsch!
hmm also ich könnte ja auch
am 23.01.2010 - 19:14 Uhr
hmm also ich könnte ja auch einfach die .po datei dafür umschreiben oder?
Allerdings möchte ich ja auch gerne die formatierung ändern, also was genau da stehen soll. Z.B hätte ich gerne das dort steht:
... zur Freundesliste hinzufügen
oder
... als Freund hinzufügen
Und nicht noch der Quatsch mit Beziehungen, Aktionen oderso
Meine Lösung
am 30.01.2010 - 21:25 Uhr
Weil ich 0 Ahnung von PHP und nur wenig Erfahrung mit Drupal hab, ist das möglicherweise der schlechteste Weg es zu tun, aber bei mir funktionierts wunderbar. Ich hab mir meine Lösung aus Code-Schnippseln von anderen zusammengesucht und noch etwas dran gefrickelt. Also darf gerne jemand einen besseren/saubereren Vorschlag machen.
In die user-profile.tpl.php
Um bestehende Beziehungen (und einen Entfernen-Link) anzuzeigen:
<?php
global $user;
$actions = _user_relationships_ui_between($user, $account);
if (count($actions)) {
//get remove link from array
foreach($actions as $remove){
//print remove link
print $remove; print "<br/><br/>";
}
}
?>
Für einen Become-a-Fan-Link:
<?php
global $language;
?>
<?php
$req = $user->uid;
$acc = $account->uid;
if (user_relationships_load(array('between' => array($req, $acc), 'rtid' => '10', 'approved' => 1), array('count' => TRUE)) > 0){
// print $remove;
}
else{
print "<a href=\"?q=";
print $language->language;
print "/relationship/";
print $account->uid;
print "/request/10\">";
print t('Become a Fan');
print "</a><br/>";
}
?>
Hier musst du an beiden Stellen die 10 durch die ID des jeweiligen Beziehungstyps ersetzen (also vermutlich 1, wenn du nur einen Beziehungstyp angelegt hast) und eben das 'Become a Fan' durch was passendes ersetzen.
Den zweiten Block kannst du für jeden Beziehungstyp wiederholen, jeweils mit einer anderen ID.
Hoffe es hilft weiter.
<?phpglobal $user;$currentuid
am 29.03.2010 - 11:59 Uhr
<?php
global $user;
$currentuid = $user->uid;
$uid = arg(1);
$name = user_load($uid);
$name = $name->name;
$rid = array();
$relationships = user_relationships_load(array('between' => array($currentuid, $uid), 'rtid' => $rtid, 'approved' => 1));
if (module_exists('devel')) {
dsm($relationships);
}
foreach ($relationships as $key => $value) {
$rid = $key;
}
if (count($relationships) === 0) {
$friender = '<tr>
<td><a href="/relationship/'.$uid.'/request?destination=user/'.$uid.'" title="Add Friend" class="user_relationships_popup_link"><img src="/files/icons/buddyrequest.png"></a></td>
<td><a href="/relationship/'.$uid.'/request?destination=user/'.$uid.'" title="Add Friend" class="user_relationships_popup_link">Befriend '.$name.'</a></td>
</tr>';
}
elseif (count($relationships) >0) {
$friender = '<tr>
<td><a href="/user/1/relationships/'.$rid.'/remove?destination=user/'.$uid.'" title="Remove Friend" class="user_relationships_popup_link"><img src="/files/icons/buddyremove.png"></a></td>
<td><a href="/user/1/relationships/'.$rid.'/remove?destination=user/'.$uid.'" title="Remove Friend" class="user_relationships_popup_link">De-Friend '.$name.'</a></td>
</tr>';
}?>
<table>
<?php print $friender;?>
<tr>
<td><a href="linktousersfriends"><img src="/files/icons/buddylist.png"></a></td>
<td><a href="linktousersfriends"><?php print $name;?>'s friends</a></td>
</tr>
<tr>
<td><a href="/messages/new/<?php print $uid;?>" title="Message <?php print $name;?>"><img src="/files/icons/compose.png"></a></td>
<td><a href="/messages/new/<?php print $uid;?>" title="Message <?php print $name;?>">Message <?php print $name;?></a></td>
</tr>
<tr>
<td><a href="usercontent/<?php print $uid;?>" title="<?php print $name;?>'s content"><img src="/files/icons/globe.png"></a></td>
<td><a href="usercontent/<?php print $uid;?>" title="<?php print $name;?>'s content"><?php print $name;?>'s content</a></td>
</tr>
</table>
?>
Damit geht es besser, müsst es nur richtig zusammen setzten.
Ich finde das ist alles sehr
am 29.03.2010 - 12:21 Uhr
Ich finde das ist alles sehr umständlich.
Warum nicht einfach im Theme eine neue Region definieren, diese, z.B. in der page.tpl.php oder user-profile.tpl.php, dort ausgeben wo man sie haben will und dann den Block für diese Region auf der User Profilseite aktivieren.
Vielleicht noch mit CSS etwas stylen und fertig.
vg
md - DrupalCenter.de
mdwp* Drupal Consulting & Services
Das sagst du so einfach das
am 29.03.2010 - 12:57 Uhr
Das sagst du so einfach das problem ist wenn du das so ausgeben...bekommst du 4 Zeilen Text:
Beziehung
Beziehnung blaa...
und dann noch "wollen sie blaa hinzu adden"
das Beziehung ist einfach unötig und sieht scheisse aus ... wenn du das mit css bearbeiten willst geht das nur mit dem ganzen Text ! ... hat schon sein Grund das es hier so beschrieben wird ...
hier noch ein beipsiel funktioniert super !
<?php
global $user;
//check if user may have this relationship
if (user_relationships_api_can_request($user->uid, '1')) {
$req = $user->uid;
$acc = $account->uid;
//check if relationship allready excists, change the rtid to the relationship id you want them to have
if (user_relationships_load(array('between' => array($req, $acc), 'rtid' => '1', 'approved' => 1), array('count' => TRUE)) > 0){
//create remove action
$actions = _user_relationships_ui_between($user, $account);
if (count($actions)) {
//get remove link from array
foreach($actions as $remove){
//print remove link
print $remove;
}
}
}
else{
//create relation action
$actions = _user_relationships_ui_actions_between($user, $account);
if (count($actions)) {
//print create link action
print $actions[0];
}
}
}
?>
Das sag ich nicht nur so
am 29.03.2010 - 14:21 Uhr
Das sag ich nicht nur so einfach, sondern mach das auch. Z.B. in der Community für den beck Verlag.
http://community.beck.de
Aber natürlich kann das jeder so lösen, wie er möchte.
vg
md - DrupalCenter.de
mdwp* Drupal Consulting & Services
Okay, dann würd ich gern
am 29.03.2010 - 14:46 Uhr
Okay, dann würd ich gern wissen wie du das gemacht hast ? beschreib mal genauer bitte :)
ich meine wenn ich das hier ausfüre
<?php
print $profile[user_relationships_ui];
?>
erhalte ich
___________________________
Beziehungen
Your relationships to this user
* Freund (Entfernen)
___________________________
Was will ich da groß ändern mit CSS ?
Gruß
Viel genauer beschreiben, als
am 29.03.2010 - 15:38 Uhr
Viel genauer beschreiben, als oben, kann ich es eigentlich nicht. Ich platziere einfach den Block
"User Relationships: Actions" in eine spezielle Region.
vg
md - DrupalCenter.de
mdwp* Drupal Consulting & Services
wie hast du denn den block in
am 08.09.2010 - 07:57 Uhr
wie hast du denn den block in die Region bekommen? Ich habe den nicht zur auswahl wenn ich Inhalt hinzufügen möchte.
Den Block wirst du nicht so
am 10.09.2010 - 10:47 Uhr
Den Block wirst du nicht so auf dein Profil bekommen. du musst in der user-profile.tpl.php das hier eintragen:
<?php
print $profile[user_relationships_ui];
?>
dann kannst du User deiner liste hinzufügen über das Profil...
Wenn man eine entsprechende
am 10.09.2010 - 11:03 Uhr
Wenn man eine entsprechende Region im Theme hat, bekommt man den Block selbstverständlich ins Profil. Wir haben den z.B. in der 'content_top' untergebracht, könnte aber ebenso eine Sidebar sein.
Wieso sollte ein Modul sonst einen Block zur Verfügung stellen?
vg
md - DrupalCenter.de
mdwp* Drupal Consulting & Services
na klar.
am 13.09.2010 - 10:36 Uhr
ja logisch, wenn ich den Block nicht aktiviere, kann ich den natürlich auch in den Views nicht verwenden.. Danke an alle. Ich hab´s nun also.