Concepts
Social Profiles models three things: platforms, profiles, and gamer cards.
Platform
A platform is one entry in the catalogue at AdminCP > [MC] Social Profiles > Platforms. Each platform carries the metadata needed to render an icon, validate a handle, link to the external profile page, and (optionally) generate a gamer-card image.
| Field | Purpose |
|---|---|
platform_key | Internal slug. Used in template look-ups and URL patterns. Lowercase letters and digits only. Must be unique. |
platform_name | Display name (e.g. "PlayStation", "Twitch"). |
icon_type | svg, fa (FontAwesome class), or image (URL). |
icon_value | The SVG markup, FA class string, or image URL. |
icon_color / icon_color_dark | Optional accent colours. Used by the SVG/FA renderer to tint the icon for light and dark themes. |
url_pattern | Outbound profile-page link. The token {value} is replaced by the user's handle. Example: https://twitch.tv/{value}. |
card_url_pattern | Optional gamer-card image URL. {value} and {value_encoded} are available. Example: https://example.com/cards/{value}.png. |
card_type | Currently image only. Future card formats land here. |
validation_regex | Regex applied to incoming handles. Invalid input is rejected at save. |
placeholder | Hint text shown in the user editor (e.g. your_username). |
edit_user_group_ids | If set, only members of the listed groups may add this platform. Empty = all members. |
view_user_group_ids | If set, only members of the listed groups may see this platform on others. Empty = all viewers. |
display_order | Sort order across the AdminCP, the editor, the icon strip, and the gamer-cards page. |
active | Disabled platforms are hidden everywhere but kept in the database. |
Profile
A profile is a single user's handle for one platform — a row in xf_mc_social_profile keyed on (user_id, platform_id). Members add and remove profiles from Account > Social profiles. Each profile stores just the handle (value); the link, icon, and card image are derived from the platform.
A user can have at most one profile per platform.
Gamer card
A gamer card is the image embedded by card_url_pattern. For platforms that expose a server-rendered profile card (PSN, Xbox Live, Steam community badge, etc.), the card URL points at that endpoint and the resulting image is shown on the member's profile page under a Gamer cards tab and at /members/{user}/gamer-cards/.
Platforms with no card_url_pattern simply do not produce a gamer card; their icon and link still render normally.
Surfaces
| Surface | What it shows |
|---|---|
| Account > Social profiles | The user's own editor. One row per platform they hold the edit group permission for. |
| Member card popover | Icon strip of the member's active profiles. |
| Member profile page | Icon strip plus a tab linking to the gamer-cards page when one or more cards are available. |
/members/{user}/gamer-cards/ | Full-card image gallery for the member. |
Gating
Two permissions control what visitors see on other members:
- View social profile icons governs the icon strip.
- View member gamer cards governs the gamer-cards tab and page.
Per-platform group restrictions (edit_user_group_ids, view_user_group_ids) layer on top: even with the global view permission, a viewer outside the platform's view-group list will not see profiles for that specific platform.