<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.creativecommons.org/index.php?action=history&amp;feed=atom&amp;title=Cchost%2Fdeveloper%2FHooking_the_User_Profile_page</id>
		<title>Cchost/developer/Hooking the User Profile page - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.creativecommons.org/index.php?action=history&amp;feed=atom&amp;title=Cchost%2Fdeveloper%2FHooking_the_User_Profile_page"/>
		<link rel="alternate" type="text/html" href="https://wiki.creativecommons.org/index.php?title=Cchost/developer/Hooking_the_User_Profile_page&amp;action=history"/>
		<updated>2026-05-09T08:28:18Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://wiki.creativecommons.org/index.php?title=Cchost/developer/Hooking_the_User_Profile_page&amp;diff=19623&amp;oldid=prev</id>
		<title>Fourstones at 11:55, 7 November 2008</title>
		<link rel="alternate" type="text/html" href="https://wiki.creativecommons.org/index.php?title=Cchost/developer/Hooking_the_User_Profile_page&amp;diff=19623&amp;oldid=prev"/>
				<updated>2008-11-07T11:55:58Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 11:55, 7 November 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l7&quot; &gt;Line 7:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 7:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{lowercase}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{lowercase}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If you like the data shown on the user profile page but want to change the layout you can skip down the layout section. If you like layout of the data shown on the user profile page but want to change the data, you'll need to able to do some PHP hacking. If you want to change both the data shown and the layout you'll have to do both.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If you like the data shown on the user profile page but want to change the layout you can skip down the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[#Changing_the_Layout|&lt;/ins&gt;layout section&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]]&lt;/ins&gt;. If you like layout of the data shown on the user profile page but want to change the data, you'll need to able to do some PHP hacking. If you want to change both the data shown and the layout you'll have to do both.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The exceptions are the 'Contact' and 'Member since' fields which are handled directly in the layout template (wups). In order to edit or remove those you'll need to hook the layout template.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The exceptions are the 'Contact' and 'Member since' fields which are handled directly in the layout template (wups). In order to edit or remove those you'll need to hook the layout template.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key ccwiki:diff:version:1.11a:oldid:19622:newid:19623 --&gt;
&lt;/table&gt;</summary>
		<author><name>Fourstones</name></author>	</entry>

	<entry>
		<id>https://wiki.creativecommons.org/index.php?title=Cchost/developer/Hooking_the_User_Profile_page&amp;diff=19622&amp;oldid=prev</id>
		<title>Fourstones: New page: Category:ccHost Category:ccMixter Category:Developer Category:Software Category:Technology {{draft}} {{lowercase}}  If you like the data shown on the user profile page ...</title>
		<link rel="alternate" type="text/html" href="https://wiki.creativecommons.org/index.php?title=Cchost/developer/Hooking_the_User_Profile_page&amp;diff=19622&amp;oldid=prev"/>
				<updated>2008-11-07T11:53:51Z</updated>
		
		<summary type="html">&lt;p&gt;New page: &lt;a href=&quot;/wiki/Category:CcHost&quot; title=&quot;Category:CcHost&quot;&gt;Category:ccHost&lt;/a&gt; &lt;a href=&quot;/wiki/Category:CcMixter&quot; title=&quot;Category:CcMixter&quot;&gt;Category:ccMixter&lt;/a&gt; &lt;a href=&quot;/wiki/Category:Developer&quot; title=&quot;Category:Developer&quot;&gt;Category:Developer&lt;/a&gt; &lt;a href=&quot;/wiki/Category:Software&quot; title=&quot;Category:Software&quot;&gt;Category:Software&lt;/a&gt; &lt;a href=&quot;/wiki/Category:Technology&quot; title=&quot;Category:Technology&quot;&gt;Category:Technology&lt;/a&gt; {{draft}} {{lowercase}}  If you like the data shown on the user profile page ...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:ccHost]]&lt;br /&gt;
[[Category:ccMixter]]&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:Technology]]&lt;br /&gt;
{{draft}}&lt;br /&gt;
{{lowercase}}&lt;br /&gt;
&lt;br /&gt;
If you like the data shown on the user profile page but want to change the layout you can skip down the layout section. If you like layout of the data shown on the user profile page but want to change the data, you'll need to able to do some PHP hacking. If you want to change both the data shown and the layout you'll have to do both.&lt;br /&gt;
&lt;br /&gt;
The exceptions are the 'Contact' and 'Member since' fields which are handled directly in the layout template (wups). In order to edit or remove those you'll need to hook the layout template.&lt;br /&gt;
&lt;br /&gt;
=Changing the Data=&lt;br /&gt;
The data on the user profile page is very dynamic based on a myriad of user stats. In order to manipulate them you hook the user profile filter event which is called whenever the user profile template is about to be displayed. &lt;br /&gt;
&lt;br /&gt;
  CCEvents::AddHandler( CC_EVENT_FILTER_USER_PROFILE, 'user_profile_filter' );&lt;br /&gt;
 &lt;br /&gt;
  function user_profile_filter(&amp;amp;$rows)&lt;br /&gt;
  {&lt;br /&gt;
      $user_row  =&amp;amp; $rows[0];&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
Your handler will be called with an array, the first element of which will be a user record that has already been massaged by the other modules interested in displaying something. In the code above we make a reference to that record for better readability throughout the code.&lt;br /&gt;
&lt;br /&gt;
There are three areas in the user record with potential interest:&lt;br /&gt;
*$user_row['user_fields'] is an array of labeled data fields for display&lt;br /&gt;
*$user_row['user_tag_fields'] is an array list links that are supposed to treated and displayed as folksonomy tags&lt;br /&gt;
*''(everything else)'' in the record is raw data taken out of the database for that user.&lt;br /&gt;
&lt;br /&gt;
The 'user_fields' and 'user_tag_field' arrays are not indexed, which means if you want to remove an element, the safest thing to do is to make a copy of the array:&lt;br /&gt;
&lt;br /&gt;
  $ok_array = array();&lt;br /&gt;
   &lt;br /&gt;
  foreach( $user_row['user_fields'] as $uf )&lt;br /&gt;
  {&lt;br /&gt;
     if( $uf['label'] == 'str_stats' )&lt;br /&gt;
        continue; &lt;br /&gt;
     $ok_array[] = $uf;&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
Then set the new array it back into the user record:&lt;br /&gt;
&lt;br /&gt;
  $user_row['user_fields'] = $ok_array;&lt;br /&gt;
&lt;br /&gt;
The actual contents of any of those areas is very sensitive to context and might change from session to session so you should never assume the presence of any, always be ready for any these and don't assume that a comprehensive list is feasible.&lt;br /&gt;
&lt;br /&gt;
Having said all that, possible values to watch for in 'user_fields'&lt;br /&gt;
{|border=1&lt;br /&gt;
|-&lt;br /&gt;
!label&lt;br /&gt;
!Typical value&lt;br /&gt;
!&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|str_user_about_me&lt;br /&gt;
|HTML formatted user description&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|str_user_home_page&lt;br /&gt;
|HTML formatted link to user's home page&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|str_user_feeds&lt;br /&gt;
|Link to user_feeds template&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|str_user_forum_posts&lt;br /&gt;
|Number of posts user has made to the forums&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|str_playlists&lt;br /&gt;
|Link to number of playlists (or galleries) user is featured in&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|str_publicize&lt;br /&gt;
|Link to 'publicize' feature&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|str_review_stats&lt;br /&gt;
|Stats about reviews&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-            &lt;br /&gt;
|str_stats&lt;br /&gt;
|Remix stats&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Possible values to search for in 'user_tag_fields'&lt;br /&gt;
&lt;br /&gt;
{|border=1&lt;br /&gt;
|-&lt;br /&gt;
!label&lt;br /&gt;
!Typical value&lt;br /&gt;
!&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Favorite people&lt;br /&gt;
|Links to other users&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|str_prof_what_i_like&lt;br /&gt;
|Links to '''search/people/whatilike''' tags&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|str_prof_what_i_pound_on&lt;br /&gt;
|Links to '''search/people/whatido''' tags&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|str_prof_what_im_looking_for&lt;br /&gt;
|Links to '''search/people/lookinfor'''&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Other fields that may be available directly off the record:&lt;br /&gt;
&lt;br /&gt;
*user_avatar_url&lt;br /&gt;
*user_date_format&lt;br /&gt;
*user_emailurl&lt;br /&gt;
*user_homepage&lt;br /&gt;
*user_id&lt;br /&gt;
*user_name&lt;br /&gt;
*user_num_posts&lt;br /&gt;
*user_num_remixed&lt;br /&gt;
*user_num_remixes&lt;br /&gt;
*user_num_reviewed&lt;br /&gt;
*user_num_reviews&lt;br /&gt;
*user_num_uploads&lt;br /&gt;
*user_real_name&lt;br /&gt;
&lt;br /&gt;
You can use these to build up new versions of user fields:&lt;br /&gt;
&lt;br /&gt;
  $user_row['user_fields'][] = array(&lt;br /&gt;
               'label' =&amp;gt; 'Posting stats for ' . $user_row['user_real_name'],&lt;br /&gt;
               'value' =&amp;gt; $user_row['user_num_reviews'] . ' reviews, ' . &lt;br /&gt;
                          $user_row['user_num_posts'] . ' forum posts'&lt;br /&gt;
               )&lt;br /&gt;
&lt;br /&gt;
==Full Example Code==&lt;br /&gt;
Put the following into a module at '''&amp;lt;local_files&amp;gt;/lib/my_user_profile_hook.php'''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;?&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 CCEvents::AddHandler( CC_EVENT_FILTER_USER_PROFILE, 'user_profile_filter' );&lt;br /&gt;
 &lt;br /&gt;
 function user_profile_filter(&amp;amp;$rows)&lt;br /&gt;
 {&lt;br /&gt;
    // Setup some useful variables&lt;br /&gt;
 &lt;br /&gt;
    $user_row          =&amp;amp; $rows[0];&lt;br /&gt;
    $is_user_logged_in = CCUser::IsLoggedIn();&lt;br /&gt;
    $is_current_user   = $is_user_logged_in &amp;amp;&amp;amp; (CCUser::CurrentUser() == $user_row['user_id']);&lt;br /&gt;
 &lt;br /&gt;
    // If we want to remove a field (like the &lt;br /&gt;
    // 'review' stats) then we have make a copy&lt;br /&gt;
    // of the user_fields&lt;br /&gt;
 &lt;br /&gt;
    $ok_fields = array();&lt;br /&gt;
    &lt;br /&gt;
    foreach( $user_row['user_fields'] as $uf )&lt;br /&gt;
    {&lt;br /&gt;
        if( $uf['label'] == 'str_review_stats' )&lt;br /&gt;
            continue;&lt;br /&gt;
        $ok_fields[] = $uf;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    // We want to add a special message to everybody but 'joe'&lt;br /&gt;
 &lt;br /&gt;
    if( !$is_current_user || ($user_row['user_name'] != 'joe') )&lt;br /&gt;
    {&lt;br /&gt;
        $ok_fields[] = array(&lt;br /&gt;
             'label' =&amp;gt; &amp;quot;Special Message&amp;quot;,&lt;br /&gt;
             'value' =&amp;gt; &amp;quot;&amp;lt;nowiki&amp;gt;&amp;lt;h3&amp;gt;It's joe's birthday on Friday!&amp;lt;/h3&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;quot;&lt;br /&gt;
              );&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    $user_row['user_fields'] = $ok_fields;&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  &amp;lt;nowiki&amp;gt;?&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Changing the Layout=&lt;br /&gt;
===Setting things up===&lt;br /&gt;
In order to change the look and layout of the user profile copy '''ccskins/shared/user_profile.tpl''' to '''&amp;lt;local_files&amp;gt;/skins/user_profile.tpl''' (make sure to keep the same file name!)&lt;br /&gt;
&lt;br /&gt;
If you plan on changing the CSS (likely) copy '''ccskins/shared/css/user_profile.css''' to '''&amp;lt;local_files&amp;gt;/skins/css/user_profile.css''' (make sure to keep the same file name!)&lt;br /&gt;
&lt;br /&gt;
Before you get too far and in order to fully understand this template it helps to temporarily insert an '''%inspect%''' macro after the call to '''%map%''' while developing:&lt;br /&gt;
&lt;br /&gt;
  %map(#U,records/0)%&lt;br /&gt;
  '''%inspect(#U)%'''   &lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; title=&amp;quot;Default Style&amp;quot; href=&amp;quot;%url(css/user_profile.css)%&amp;quot; /&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now browse to a profile (e.g. '''people/admin/profile''') to see if you've properly hooked the system and view a dump of the user record.&lt;br /&gt;
&lt;br /&gt;
===Walking through the template===&lt;br /&gt;
The template has a couple of 'tricks' to get things laid out in a certain way. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====A Quick Hack====&lt;br /&gt;
This template assumes that the user description is at the top of the array and has an ID of '''user_description_html'''&lt;br /&gt;
&lt;br /&gt;
Because of convention in social sites, we want the 'Contact' and 'Member Since' fields to follow directly below that. In order to make sure that happens, the template hacks in two user fields into the second and third slot of the array the line that looks like:&lt;br /&gt;
&lt;br /&gt;
   array_splice( $U['user_fields'], 1, 0, array(  ...&amp;lt;snip&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Printing the user_fields====&lt;br /&gt;
Once those elements are in, we loop over the 'user_fields' displaying them &amp;quot;as is&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;nowiki&amp;gt;&amp;lt;div id=&amp;quot;user_fields&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
        %loop(#U/user_fields,uf)%&lt;br /&gt;
            &amp;lt;nowiki&amp;gt;&amp;lt;div class=&amp;quot;ufc&amp;quot; %if_attr(#uf/id,id)%&amp;gt;&amp;lt;span class=&amp;quot;ufc_label&amp;quot;&amp;gt;%text(#uf/label)%&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
                &amp;lt;nowiki&amp;gt;&amp;lt;div class=&amp;quot;ufc_value&amp;quot;&amp;gt;%text(#uf/value)%&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
        %end_loop%&lt;br /&gt;
    &amp;lt;nowiki&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Printing the user_tag_links====&lt;br /&gt;
Then we output the 'user_tag_fields' which are tag links for this user. The links URLs (HREF value) and text are already formatted, we just have to lay out the links in an orderly fashion. The links are 'grouped' so there's an outer loop for the groups:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;nowiki&amp;gt;&amp;lt;div class=&amp;quot;user_tag_links&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
        %loop(#U/user_tag_links,groups)%&lt;br /&gt;
            &amp;lt;nowiki&amp;gt;&amp;lt;span class=&amp;quot;ufc_label&amp;quot;&amp;gt;%text(#groups/label)%&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And within each group is array of links:&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;nowiki&amp;gt;&amp;lt;div class=&amp;quot;ufc_value taglinks&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
                    %loop(#groups/value,link)%&lt;br /&gt;
                        &amp;lt;nowiki&amp;gt;&amp;lt;a href=&amp;quot;%(#link/tagurl)%&amp;quot;&amp;gt;%(#link/tag)%&amp;lt;/a&amp;gt;%if_not_last(#link)%, %end_if%&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
                    %end_loop%&lt;br /&gt;
            &amp;lt;nowiki&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then we close off the outer group loop and DIV:&lt;br /&gt;
&lt;br /&gt;
        %end_loop%&lt;br /&gt;
    &amp;lt;nowiki&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
====Hacking the avatar into the user description====&lt;br /&gt;
The template then outputs some javascript that will reformat things and 'make things nice.' &lt;br /&gt;
&lt;br /&gt;
If the user has written something about themselves, then we want to put their avatar into the description box and make it round and pretty.&lt;br /&gt;
&lt;br /&gt;
If the user did not fill out a description then we inject the avatar in the top of the profile page.&lt;br /&gt;
&lt;br /&gt;
All of this, of course, is default policy driven lay out code, hopefully your mileage will vary.&lt;/div&gt;</summary>
		<author><name>Fourstones</name></author>	</entry>

	</feed>