313 lines
13 KiB
HTML
313 lines
13 KiB
HTML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE xsl:stylesheet [
|
|
<!ENTITY nbsp " ">
|
|
]>
|
|
<xsl:stylesheet
|
|
version="1.0"
|
|
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
|
xmlns:msxml="urn:schemas-microsoft-com:xslt"
|
|
xmlns:our.library="urn:our.library"
|
|
xmlns:umbraco.library="urn:umbraco.library" xmlns:Exslt.ExsltCommon="urn:Exslt.ExsltCommon" xmlns:Exslt.ExsltDatesAndTimes="urn:Exslt.ExsltDatesAndTimes" xmlns:Exslt.ExsltMath="urn:Exslt.ExsltMath" xmlns:Exslt.ExsltRegularExpressions="urn:Exslt.ExsltRegularExpressions" xmlns:Exslt.ExsltStrings="urn:Exslt.ExsltStrings" xmlns:Exslt.ExsltSets="urn:Exslt.ExsltSets" xmlns:uForum="urn:uForum" xmlns:uForum.raw="urn:uForum.raw" xmlns:uWiki="urn:uWiki"
|
|
exclude-result-prefixes="msxml our.library umbraco.library Exslt.ExsltCommon Exslt.ExsltDatesAndTimes Exslt.ExsltMath Exslt.ExsltRegularExpressions Exslt.ExsltStrings Exslt.ExsltSets uForum uForum.raw uWiki ">
|
|
|
|
|
|
<xsl:output method="xml" omit-xml-declaration="yes"/>
|
|
<xsl:param name="currentPage"/>
|
|
|
|
<xsl:variable name="memId" select="umbraco.library:GetHttpItem('umbMemberLogin')"/>
|
|
|
|
<!-- Signed in Member -->
|
|
<xsl:variable name="isAdmin" select="uForum:IsInGroup('admin')"/>
|
|
<xsl:variable name="isHQ" select="uForum:IsInGroup('HQ')"/>
|
|
<xsl:variable name="mem">
|
|
<xsl:if test="umbraco.library:IsLoggedOn()">
|
|
<xsl:value-of select="uForum:GetCurrentMember()/@id"/>
|
|
</xsl:if>
|
|
</xsl:variable>
|
|
|
|
<xsl:template match="/">
|
|
|
|
<xsl:if test="$memId != ''">
|
|
<xsl:variable name="mem" select="umbraco.library:GetMember(number($memId))"/>
|
|
|
|
<div id="memberProfile">
|
|
<div id="avatar">
|
|
<xsl:call-template name="badge">
|
|
<xsl:with-param name="mem" select="$mem" />
|
|
</xsl:call-template>
|
|
</div>
|
|
|
|
<div id="details">
|
|
<h1><xsl:value-of select="$mem/node/@nodeName"/></h1>
|
|
|
|
<xsl:if test="string-length($mem//company) > 1">
|
|
<h2>Company: <xsl:value-of select="$mem//company"/></h2>
|
|
</xsl:if>
|
|
|
|
<xsl:variable name="twittr" select="$mem//twitter"/>
|
|
<xsl:if test="string-length($twittr) > 1">
|
|
<h2>
|
|
Twitter:
|
|
<a href="http://twitter.com/{$twittr}">
|
|
<xsl:value-of select="$twittr"/>
|
|
</a>
|
|
</h2>
|
|
</xsl:if>
|
|
|
|
<xsl:variable name="location" select="$mem//location" />
|
|
<xsl:if test="string-length($location) > 1">
|
|
<h2>Location: <xsl:value-of select="$location"/></h2>
|
|
</xsl:if>
|
|
|
|
<p style="clear: both; margin-right: 100px;">
|
|
<xsl:value-of select="$mem//profileText" disable-output-escaping="yes"/>
|
|
</p>
|
|
|
|
<!-- Block Member Options - For Admin group members only -->
|
|
<xsl:if test="umbraco.library:IsLoggedOn()">
|
|
<xsl:if test="$isAdmin = true()">
|
|
|
|
<xsl:variable name="memberBlocked" select="$mem//blocked" />
|
|
|
|
<div class="options">
|
|
<ul>
|
|
<li>
|
|
<xsl:if test="$memberBlocked = 1">
|
|
<xsl:attribute name="style">
|
|
<xsl:text>display:none;</xsl:text>
|
|
</xsl:attribute>
|
|
</xsl:if>
|
|
|
|
<a href="#" class="act blockMember" title="Block Member" rel="{$memId}">Block Member</a>
|
|
</li>
|
|
<li>
|
|
<xsl:if test="not($memberBlocked = 1)">
|
|
<xsl:attribute name="style">
|
|
<xsl:text>display:none;</xsl:text>
|
|
</xsl:attribute>
|
|
</xsl:if>
|
|
|
|
<a href="#" class="act unblockMember" title="Unblock Member" rel="{$memId}">Unblock Member</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</xsl:if>
|
|
|
|
<xsl:if test="$isHQ = true()">
|
|
<div class="options">
|
|
<ul>
|
|
<li>
|
|
<a href="#" class="act deleteMember" title="Delete Member" rel="{$memId}">Delete Member</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</xsl:if>
|
|
</xsl:if>
|
|
|
|
|
|
<xsl:variable name="memberTopics" select="uForum.raw:TopicsWithAuthor(number($memId))"/>
|
|
<div style="overflow: hidden; width: 390px; float: left; clear: none;">
|
|
<div class="box">
|
|
<h4>Recent Posts</h4>
|
|
<ul class="summary">
|
|
<xsl:choose>
|
|
<xsl:when test="count($memberTopics) > 0">
|
|
<xsl:for-each select="$memberTopics//topic">
|
|
<xsl:sort select="updated" order="descending"/>
|
|
|
|
<!-- SHOW upto 10 Recent posts -->
|
|
<xsl:if test="position() <= 10">
|
|
<li>
|
|
<a href="{uForum:NiceTopicUrl(id)}"><xsl:value-of select="title"/></a>
|
|
<small><xsl:value-of select="uForum:TimeDiff(updated)"/></small>
|
|
</li>
|
|
</xsl:if>
|
|
</xsl:for-each>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<li>This user has yet to make a post.</li>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
|
|
<div style="overflow: hidden; width: 390px; float: right; clear: none;">
|
|
<xsl:variable name="projects" select="$currentPage/ancestor-or-self::Community/Projects//Project" />
|
|
|
|
<xsl:if test="count($projects [owner = $memId and projectLive = 1]) > 0">
|
|
<div class="box">
|
|
<h4>Projects</h4>
|
|
<ul class="projects summary">
|
|
<xsl:for-each select="$projects">
|
|
<xsl:sort select="@nodeName"/>
|
|
|
|
<!-- Check to see if Owner of project -->
|
|
<xsl:if test="owner = $memId and projectLive = 1">
|
|
<li>
|
|
<a href="{umbraco.library:NiceUrl(@id)}"><xsl:value-of select="@nodeName"/></a>
|
|
<xsl:if test="version">
|
|
<small>Version: <xsl:value-of select="version"/></small>
|
|
</xsl:if>
|
|
</li>
|
|
</xsl:if>
|
|
</xsl:for-each>
|
|
</ul>
|
|
</div>
|
|
</xsl:if>
|
|
|
|
<xsl:variable name="contripr" select="our.library:ProjectsContributing(number($memId))" />
|
|
<xsl:if test="count($contripr//projectId) > 0">
|
|
<div class="box">
|
|
<h4>Contributes to</h4>
|
|
<ul class="projects summary">
|
|
<xsl:for-each select="$contripr//projectId">
|
|
<xsl:sort select="umbraco.library:GetXmlNodeById(.)/@nodeName" />
|
|
<xsl:variable name="project" select="umbraco.library:GetXmlNodeById(.)" />
|
|
<li>
|
|
<a href="{umbraco.library:NiceUrl(.)}"><xsl:value-of select="$project/@nodeName"/></a>
|
|
<xsl:if test="$project/version">
|
|
<small>Version: <xsl:value-of select="$project/version"/></small>
|
|
</xsl:if>
|
|
</li>
|
|
</xsl:for-each>
|
|
</ul>
|
|
</div>
|
|
</xsl:if>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<!-- DEBUG -->
|
|
<xsl:if test="umbraco.library:RequestQueryString('dingo') = 'meh'">
|
|
<br style="clear: both;"/>
|
|
|
|
<xsl:variable name="karma" select="umbraco.library:GetXmlDocument( concat('/upowers/',$memId,'.xml'), true())"/>
|
|
<xsl:variable name="topicsReceived" select="sum($karma/karma/summaries/summary [alias = 'topic']/received)"/>
|
|
<xsl:variable name="topicsPerformed" select="sum($karma/karma/summaries/summary [alias = 'topic']/performed)"/>
|
|
<xsl:variable name="commentsReceived" select="sum($karma/karma/summaries/summary [alias = 'comment']/received)"/>
|
|
<xsl:variable name="commentsPerformed" select="sum($karma/karma/summaries/summary [alias = 'comment']/performed)"/>
|
|
<xsl:variable name="projectsReceived" select="sum($karma/karma/summaries/summary [alias = 'project']/received)"/>
|
|
<xsl:variable name="projectsPerformed" select="sum($karma/karma/summaries/summary [alias = 'project']/performed)"/>
|
|
<xsl:variable name="wikiPerformed" select="sum($karma/karma/summaries/summary [alias = 'wiki']/performed)"/>
|
|
|
|
<div class="box">
|
|
<h4>Karma history</h4>
|
|
<div style="padding: 10px;">
|
|
<h3>Forum topics</h3>
|
|
<ul>
|
|
<li><xsl:value-of select="$topicsPerformed" /> points earned for starting conversations</li>
|
|
<li><xsl:value-of select="$topicsReceived" /> points rewarded for posting helpfull topics</li>
|
|
</ul>
|
|
|
|
<h3>Forum Comments</h3>
|
|
<ul>
|
|
<li><xsl:value-of select="$commentsReceived" /> points rewarded for posting helpfull comments</li>
|
|
<li><xsl:value-of select="$commentsPerformed" /> points earned by giving other replies karma</li>
|
|
</ul>
|
|
|
|
<h3>Projects</h3>
|
|
<ul>
|
|
<li><xsl:value-of select="$projectsReceived" /> rewarded for quality projects</li>
|
|
<li><xsl:value-of select="$projectsPerformed" /> giving projects karma</li>
|
|
</ul>
|
|
|
|
<h3>Wiki</h3>
|
|
<ul>
|
|
<li><xsl:value-of select="$wikiPerformed" /> points rewarded for starting wiki pages</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</xsl:if>
|
|
|
|
</xsl:if>
|
|
|
|
</xsl:template>
|
|
|
|
<xsl:template name="badge">
|
|
<xsl:param name="mem"/>
|
|
<xsl:param name="date"/>
|
|
|
|
<xsl:variable name="forumPosts">
|
|
<xsl:choose>
|
|
<xsl:when test="$mem//forumPosts">
|
|
<xsl:value-of select="$mem//forumPosts"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="$mem//data [@alias = 'forumPosts']"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:variable>
|
|
|
|
<xsl:variable name="reputationCurrent">
|
|
<xsl:choose>
|
|
<xsl:when test="$mem//reputationCurrent">
|
|
<xsl:value-of select="$mem//reputationCurrent"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="$mem//data [@alias = 'reputationCurrent']"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:variable>
|
|
|
|
<xsl:variable name="groups">
|
|
<xsl:choose>
|
|
<xsl:when test="$mem//groups">
|
|
<xsl:value-of select="$mem//groups"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="$mem//data [@alias = 'groups']"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:variable>
|
|
|
|
<div class="memberBadge rounded">
|
|
<img alt="Avatar" class="photo" src="/media/avatar/{$memId}.jpg" style="width: 32px; height: 32px;" />
|
|
<span class="posts">
|
|
<xsl:value-of select="$forumPosts"/>
|
|
<small>posts</small>
|
|
</span>
|
|
<span class="karma">
|
|
<xsl:value-of select="$reputationCurrent"/>
|
|
<small>karma</small>
|
|
</span>
|
|
</div>
|
|
|
|
<xsl:if test="string-length($groups) > 0">
|
|
<xsl:variable name="items" select="umbraco.library:Split($groups,',')" />
|
|
<xsl:for-each select="$items//value">
|
|
<xsl:choose>
|
|
<xsl:when test=". = '2011-mvp-candidate'">
|
|
<a href="/umbracomvp2011" title="Umbraco: Most Valuable Person 2011 Candidate" class="badge mvpcandidate">MVP</a>
|
|
</xsl:when>
|
|
|
|
<xsl:when test=". = 'HQ'">
|
|
<a href="/wiki/about/umbraco-corporation" title="Umbraco HQ Employee" class="badge hq">HQ</a>
|
|
</xsl:when>
|
|
|
|
<xsl:when test=". ='admin'">
|
|
<a href="/wiki/about/our-admins" title="Member of the our.umbraco.org admin team" class="badge admin">admin</a>
|
|
</xsl:when>
|
|
|
|
<xsl:when test=". = 'vendor'">
|
|
<a href="/wiki/about/vendors" title="Umbraco Shop Vendor" class="badge vendor">Vendor</a>
|
|
</xsl:when>
|
|
|
|
<xsl:when test=".='Core'">
|
|
<a href="/wiki/about/core-team" title="Member of the umbraco core team" class="badge core">Core</a>
|
|
</xsl:when>
|
|
|
|
<xsl:when test=".='CoreContrib'">
|
|
<a href="/wiki/about/core-contributor" title="Member of the umbraco core contribution team" class="badge core-contrib">Core</a>
|
|
</xsl:when>
|
|
|
|
<xsl:when test=".= 'MVP'">
|
|
<a href="/wiki/about/mvps" title="Umbraco: Most Valuable Person" class="badge mvp">MVP</a>
|
|
</xsl:when>
|
|
</xsl:choose>
|
|
</xsl:for-each>
|
|
</xsl:if>
|
|
|
|
</xsl:template>
|
|
</xsl:stylesheet> |