Flagged username från panels/content profile?

Events happening in the community are now at Drupal community events on www.drupal.org.
Melot's picture

Jag använder Panels 3 och content profile för att ändra användarprofilerna (använder den user profile template som följer med panels). Till detta har jag sedan även Flag Abuse som stoppar en Flag-länk på varje profil (jag visar den länken genom ett views-fält som är tillagt som content i panels). När en användare flaggar profilen genom att trycka på länken så ska ett meddelande skickas iväg till admin via private message modulen. Meddelandet är redan skrivet och använder token [account:user] för att visa vilken profil som har blivit flaggad som stötande.

Problemet jag har är att när någon anmäler en profil så skickas meddelandet som det ska men [account:user] verkar inte kunna få fram något användarnamn från profilen utan skicka istället tillbaka namnet "Anonymous", ändrar jag det till uid så får jag uid 0. Flag Abuse har dessutom en page-view som visar en tabell med namnen på alla de flaggade användarna och även där listas de som "Anonymous".

Det här är vad jag har för inställningar:
* Flaggen är av typ "User" (har även testat Node men då vill inte länken visas på profilen).
* Den view som jag använder består av ett customtype-fält som innehåller PHP-koden:
<?php print flag_create_link('flag_name', $account->uid); ?
* Jag använder argumentet "User: Uid" i samma view som sedan kopplas ihop med panels.

Varför kan jag inte få ut användarnamnet eller ens Uid?

Comments

Knasig kod, troligtvis

itangalo's picture

Jag är långt ifrån ninja på att skriva PHP, men det verkar lite konstigt att använda $account->uid. Kanske är det den saken som får uid att bli konstigt. Eller så måste du hämta ut uid på ett mer avancerat sätt från flaggan – vilket inte vore helt oväntat eftersom varje flaggning både innehåller data om vem som flaggas och vem som flaggade.
En annan möjlighet är att länken som skriver ut flaggan har konstig indata, så att den inte fungerar på det sätt som du tänker dig.

MEN!

Jag skulle starkt rekommendera att du testar två steg för en alternativ lösning. Den innebär mindre PHP och mer "Drupal way" – det vill säga en lösning som blir lättare att överblicka, uppgradera och dessutom blir säkrare och stabilare. Mindre kod, mer konfiguration. (Ett par läsvärda bloggar om detta finns bland annat hos NodeOne och Palantir.)

Jag rekommenderar följande:

  1. Använd relationships i Views för att hämta in data från flaggor, och därigenom kunna visa en länk för att slå på/av abuse-flaggor. Då får du formatering och massor av annat gratis, men framförallt vet du att informationen till och från flaggan hanteras som det är tänkt.
  2. Använd Rules för att skicka e-postmeddelande när en flagga sätts. Rules låter dig genomföra åtgärder vid en rad olika händelser på webbplatsen, bland annat när flaggor sätts. En av åtgärderna är att skicka e-brev, och det finns tokens för användare, noder med mera tillgängligt.

Tyvärr är Rules inte alltid lätt att komma in i. Jag gjorde tidigare en screencast som introducerar Rules, och det finns en del andra resurser som kan vara värda att kolla in.

Lycka till!
//Johan Falk, NodeOne

PS: Det borde vara möjligt att använda nod-flaggor för användarprofiler, men om du är nöjd med att ha användarflaggor borde det ju gå lika bra. Säg till annars, så får du mer tips.
**
Vill du lära dig mer om Drupal? Kolla in samlingen av tips och guider!
Har du en fråga om Drupal? Missa inte FAQ-sidan på forumet!
Första svenska boken om Drupal! Börja med Drupal – smart webbpublicering med open source
Kolla in NodeOnes Drupalkurs i Panels och Views 15–17 september!

Sweden

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: