privatemsg Empfänger automatisch ausfüllen [erledigt]
Eingetragen von drupalino (1064)
am 15.07.2010 - 21:26 Uhr in
am 15.07.2010 - 21:26 Uhr in
Hallo zusammen,
ich biete auf dem Userprofil einen Button "Message" an, wo der User direkt angeschrieben werden kann. Wie schaffe ich es, dass dann das "Empfänger" feld schon vorausgefüllt ist?
- Anmelden oder Registrieren um Kommentare zu schreiben
Du schreibst, das Problem sei
am 16.07.2010 - 11:51 Uhr
Du schreibst, das Problem sei erledigt. Kannst du uns auch noch verraten, wie du es gelöst hast?
http://www.twitter.com/aschiwi
Drupal-Initiative e.V.
Klar ;-) da private messages
am 16.07.2010 - 11:57 Uhr
Klar ;-)
da private messages das über die uid regelt und die url messages/new/ ist. Kann ich das erreichen, indem ich messages/new/[uid] verwende.
Damit erhalte ich ein Nachrichtenformular, indem der Empfänger gleich ausgefüllt ist durch das Übergeben der uid.
[edit] und ich meinte in meinem Eingangspost auch nicht zwingend das Userprofil, sondern ich möchte und kann nun auch auf jeder Node, dem Autor der Node darüber eine Nachricht schicken, wenn ich den entsprechenden Button mit dieser Verlinkung einbaue.
gruss
drupalino
Hallo, der Thread ist schon
am 19.09.2010 - 17:39 Uhr
Hallo,
der Thread ist schon etwas älter aber kannst Du mir sagen wo Du die Änderung messages/new/[uid] vorgenommen hast?
Ich nutze heute das erste Mal "private messages" und bin etwas verwirrt.
Drupal rockt!!!
Zitat: messages/new/[uid] ist
am 19.09.2010 - 18:54 Uhr
messages/new/[uid]
ist ja in dem Sinne keine Änderung. Ich hatte ja oben beschrieben, dass ich einen Button anbiete und der hört natürlich auf die url
<a href="messages/new/[uid]">Nachricht schreiben</a>
Natürlich musst Du das [uid] durch die uid ersetzen. Dazu hast Du natürlich die verscheidensten Möglichkeiten. In meinem Fall hole ich mir die uid aus der Node, da ich hier wissen muss wer der "eigentümer" der Node ist, wo der Button sich befindet. das sieht dann in meinem Fall so aus :
<a href="messages/new/<?php print $node->uid; ?>">Nachricht schreiben</a>
Dadurch geht das Message-Modul hin und füllt den Empfänger automatisch aus.
Ich hoffe das hilft Dir weiter.
gruss
drupalino
Hallo drupalino, danke für
am 19.09.2010 - 18:19 Uhr
Hallo drupalino,
danke für die schnelle Antwort.
Ich habe in Zeile 1507 - in der modul-Datei - den Eintrag gefunden.
$links[] = l(t('Write new message'), 'messages/new');
Ich nutze Content-Profile für die Profile (dort soll der Link erscheinen) - jetzt muss ich mit meinen fast-nicht-vorhandenen PHP-Kentnissen mal bißchen rumprobieren damit ich da die uid rein bekomme.
Aber zumindest weiß ich jetzt schonmal wo ich ansetzen muss.
Dank Dir ;-)
Gruß Matthias
Drupal rockt!!!
Okay, das ist natürlich ein
am 19.09.2010 - 18:56 Uhr
Okay, das ist natürlich ein etwas anderer Weg.
Bei mir ist das in der beschriebenen Weise kein Problem, da ich diesen Button im Template habe.
gruss
drupalino
Hmmm .... Private Message ist
am 19.09.2010 - 19:22 Uhr
Hmmm .... Private Message ist ein umfangreiches Modul - geschrieben in mehreren tausend Zeilen Code.
Das zu Coden war sicherlich ziemlich Zeitaufwändig.
Was ich dabei aber nicht verstehe ...... bei einem Modul - mit dem man Nachrichten an andere User verschicken kann - muss man jetzt per Hand im Code rumhacken damit das to-Feld mit dem Emfänger ausgefüllt wird.
Ich dachte, dass fehlende Ausfüllen des Empfänger-Feldes hat was mit Content-Profile zu tun aber selbst wenn ich den Block nicht im Profile sondern in einem normalen Node anzeigen lasse, bleibt das Empfänger-Feld immer leer und man muss über das Autocomplete-Feld den Empfänger heraussuchen.
Welchen Sinn das haben soll, erschließt sich mir absolut nicht denn wenn man aus einem Profile/Node heraus den Link "Nachricht schicken" anklickt - was mag der User damit wohl meinen? Er will eine Nachricht an den Author/Profile-Inhaber schicken und nicht an irgendeinen anderen User XYZ - daher müsste das Empfänger-Feld auch standardmäßig ausgefüllt sein.
Sehr unverständlich!
Drupal rockt!!!
Content-Profile @ privatemsg
am 28.01.2011 - 23:36 Uhr
Hallo Noob Anfänger,
bei Content-Profile setze ich folgenden Code für privatemsg ein
<?php
if (user_access('write privatemsg') && (isset($user->privatemsg_allow) ? $user->privatemsg_allow : 1)) {
$frommetoprofileuser = arg(1);
if (arg(0) == 'user' && is_numeric(arg(1))) {
if ($account->uid == $user->uid) {
echo '';
}
else {
print l(t('Eine Nachricht an: ').$account->name, 'messages/new/'. $frommetoprofileuser) ;
}
}
}
?>
LG t-u-x
Und bei Panels?
am 13.03.2012 - 11:21 Uhr
Versuch mich auch grade daran, privatemsg wie oben geschildert zu integrieren. Funzt leider nicht so recht.
Die Benutzerprofile (Content Profile) werden bei mir als Panels ausgegeben, gefüllt durch einige Views. Argument ist natürlich die UID des Beitragsauthors (%node:uid). Soweit so gut - nun aber verlassen mich meine Künste.
Wie bekomme ich die node:uid als Argument in den obigen Code? Bei meinen Versuchen hab ich leider immer wieder Fehlermeldungen in Bezug auf ungültige Syntax ...
Danke,
Holger