This is a mod for CPG Dragonfly CMS.

You can follow these directions or download it: CPG Multiranks (380).

 

Start with inserting the needed mySQL fields:

ALTER TABLE cms_users ADD user_rank2 INT(11) DEFAULT '-2' AFTER user_rank;
ALTER TABLE cms_users ADD user_rank3 INT(11) DEFAULT '-2' AFTER user_rank2;
ALTER TABLE cms_users ADD user_rank4 INT(11) DEFAULT '-2' AFTER user_rank3;
ALTER TABLE cms_users ADD user_rank5 INT(11) DEFAULT '-2' AFTER user_rank4;

Note you will need to change the field header (cms_) to match your header.

 
Open modules/Forums/viewtopic.php

Find all instances of:

$sql = "SELECT u.username, u.user_id, u.user_posts, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_regdate, u.user_msnm, u.user_viewemail, u.user_rank

NOTE: you may need to do this three times!!!

For each instance inline find:

u.user_viewemail, u.user_rank

NOTE: you may need to dot his three times!!!

For each instance inline add after:

, u.user_rank2, u.user_rank3, u.user_rank4, u.user_rank5

Find:

	//
	// Generate ranks, set them to empty string initially.
	//
	$poster_rank = '';
	$rank_image = '';

 

Add after:

	$poster_rank2 = '';
	$rank_image2 = '';
	$poster_rank3 = '';
	$rank_image3 = '';
	$poster_rank4 = '';
	$rank_image4 = '';
	$poster_rank5 = '';
	$rank_image5 = '';

 

Find:

		if ($postrow[$i]['user_rank']) {			for($j = 0; $j < count($ranksrow); $j++) {
				if ( $postrow[$i]['user_rank'] == $ranksrow[$j]['rank_id'] && $ranksrow[$j]['rank_special'] ) {
					$poster_rank = $ranksrow[$j]['rank_title'];
					$rank_image = ( $ranksrow[$j]['rank_image'] ) ? '<img title="' . $poster_rank . '" src="' . $ranksrow[$j]['rank_image'] . '" border="0" alt="' . $poster_rank . '" />
' : '';
				}
			}
		} else {
			for($j = 0; $j &lt; count($ranksrow); $j++) {
				if ( $postrow[$i]['user_posts'] &gt;= $ranksrow[$j]['rank_min'] &amp;&amp; !$ranksrow[$j]['rank_special'] ) {
					$poster_rank = $ranksrow[$j]['rank_title'];
					$rank_image = ($ranksrow[$j]['rank_image']) ? '<img title="' . $poster_rank . '" src="' . $ranksrow[$j]['rank_image'] . '" border="0" alt="' . $poster_rank . '" />
' : '';
				}
			}
		}

 

Add after:

		// Multiranks
		if ($postrow[$i]['user_rank2']) {
			for($j = 0; $j &lt; count($ranksrow); $j++) {
				if ( $postrow[$i]['user_rank2'] == $ranksrow[$j]['rank_id'] &amp;&amp; $ranksrow[$j]['rank_special'] ) {
					$poster_rank2 = $ranksrow[$j]['rank_title'];
					$rank_image2 = ($ranksrow[$j]['rank_image']) ? '<img title="' . $poster_rank2 . '" src="' . $ranksrow[$j]['rank_image'] . '" border="0" alt="' . $poster_rank2 . '" />
' : '';
				}
			}
		} else {
			for($j = 0; $j &lt; count($ranksrow); $j++) {
				if ( $postrow[$i]['user_posts'] &gt;= $ranksrow[$j]['rank_min'] &amp;&amp; !$ranksrow[$j]['rank_special'] ) {
					$poster_rank2 = $ranksrow[$j]['rank_title'];
					$rank_image2 = ($ranksrow[$j]['rank_image']) ? '<img title="' . $poster_rank2 . '" src="' . $ranksrow[$j]['rank_image'] . '" border="0" alt="' . $poster_rank2 . '" />
' : '';
				}
			}
		}
		if ($postrow[$i]['user_rank3']) {
			for($j = 0; $j &lt; count($ranksrow); $j++) {
				if ( $postrow[$i]['user_rank3'] == $ranksrow[$j]['rank_id'] &amp;&amp; $ranksrow[$j]['rank_special'] ) {
					$poster_rank3 = $ranksrow[$j]['rank_title'];
					$rank_image3 = ($ranksrow[$j]['rank_image']) ? '<img title="' . $poster_rank3 . '" src="' . $ranksrow[$j]['rank_image'] . '" border="0" alt="' . $poster_rank3 . '" />
' : '';
				}
			}
		} else {
			for($j = 0; $j &lt; count($ranksrow); $j++) {
				if ( $postrow[$i]['user_posts'] &gt;= $ranksrow[$j]['rank_min'] &amp;&amp; !$ranksrow[$j]['rank_special'] ) {
					$poster_rank3 = $ranksrow[$j]['rank_title'];
					$rank_image3 = ($ranksrow[$j]['rank_image']) ? '<img title="' . $poster_rank3 . '" src="' . $ranksrow[$j]['rank_image'] . '" border="0" alt="' . $poster_rank3 . '" />
' : '';
				}
			}
		}
		if ($postrow[$i]['user_rank4']) {
			for($j = 0; $j &lt; count($ranksrow); $j++) {
				if ( $postrow[$i]['user_rank4'] == $ranksrow[$j]['rank_id'] &amp;&amp; $ranksrow[$j]['rank_special'] ) {
					$poster_rank4 = $ranksrow[$j]['rank_title'];
					$rank_image4 = ($ranksrow[$j]['rank_image']) ? '<img title="' . $poster_rank4 . '" src="' . $ranksrow[$j]['rank_image'] . '" border="0" alt="' . $poster_rank4 . '" />
' : '';
				}
			}
		} else {
			for($j = 0; $j &lt; count($ranksrow); $j++) {
				if ( $postrow[$i]['user_posts'] &gt;= $ranksrow[$j]['rank_min'] &amp;&amp; !$ranksrow[$j]['rank_special'] ) {
					$poster_rank4 = $ranksrow[$j]['rank_title'];
					$rank_image4 = ($ranksrow[$j]['rank_image']) ? '<img title="' . $poster_rank4 . '" src="' . $ranksrow[$j]['rank_image'] . '" border="0" alt="' . $poster_rank4 . '" />
' : '';
				}
			}
		}
		if ($postrow[$i]['user_rank5']) {
			for($j = 0; $j &lt; count($ranksrow); $j++) {
				if ( $postrow[$i]['user_rank5'] == $ranksrow[$j]['rank_id'] &amp;&amp; $ranksrow[$j]['rank_special'] ) {
					$poster_rank5 = $ranksrow[$j]['rank_title'];
					$rank_image5 = ($ranksrow[$j]['rank_image']) ? '<img title="' . $poster_rank5 . '" src="' . $ranksrow[$j]['rank_image'] . '" border="0" alt="' . $poster_rank5 . '" />
' : '';
				}
			}
		} else {
			for($j = 0; $j &lt; count($ranksrow); $j++) {
				if ( $postrow[$i]['user_posts'] &gt;= $ranksrow[$j]['rank_min'] &amp;&amp; !$ranksrow[$j]['rank_special'] ) {
					$poster_rank5 = $ranksrow[$j]['rank_title'];
					$rank_image5 = ($ranksrow[$j]['rank_image']) ? '<img title="' . $poster_rank5 . '" src="' . $ranksrow[$j]['rank_image'] . '" border="0" alt="' . $poster_rank5 . '" />
' : '';
				}
			}
		}
		//End Multiranks

 

Find:

		'POSTER_RANK' =&gt; $poster_rank,
		'RANK_IMAGE' =&gt; $rank_image,

Add after:

	// Multirank
		'POSTER_RANK2' =&gt; $poster_rank2,
		'RANK_IMAGE2'  =&gt; $rank_image2,
		'POSTER_RANK3' =&gt; $poster_rank3,
		'RANK_IMAGE3'  =&gt; $rank_image3,
		'POSTER_RANK4' =&gt; $poster_rank4,
		'RANK_IMAGE4'  =&gt; $rank_image4,
		'POSTER_RANK5' =&gt; $poster_rank5,
		'RANK_IMAGE5'  =&gt; $rank_image5,
	// End Multirank

 

Open /modules/your_account/edit_profile.php

Find:

	$rank_select[0] = 'No special rank assigned';

 
Replace with:

	// Modified for Multirank
	$rank_select[-2] = 'No special rank assigned';
	$rank_select[0] = 'Automatic ranking by posts';
// End Multirank

Find:

<td class="row1"> </td>
 <span class="gen">Rank Title</span>
<td class="row2"> </td>
 '.select_box('user_rank', $userinfo['user_rank'], $rank_select).'

Replace with (NOTE: we are breaking a table row here, be careful):

  <!-- Multirank -->
<td class="row1"> </td>
<span class="gen">Rank Title 1</span>
<td class="row2"> </td>
'.select_box('user_rank', $userinfo['user_rank'], $rank_select).'
<td class="row1"> </td>
<span class="gen">Rank Title 2</span>
<td class="row2"> </td>
'.select_box('user_rank2', $userinfo['user_rank2'], $rank_select).'
<td class="row1"> </td>
<span class="gen">Rank Title 3</span>
<td class="row2"> </td>
'.select_box('user_rank3', $userinfo['user_rank3'], $rank_select).'
<td class="row1"> </td>
<span class="gen">Rank Title 4</span>
<td class="row2"> </td>
'.select_box('user_rank4', $userinfo['user_rank4'], $rank_select).'
<td class="row1"> </td>
<span class="gen">Rank Title 5</span>
<td class="row2"> </td>
 '.select_box('user_rank5', $userinfo['user_rank5'], $rank_select).'
<!-- End Multirank -->

Find:

		$sql = 'user_allow_pm='.intval($_POST['user_allow_pm']).', user_allowavatar='.intval($_POST['user_allowavatar']).', user_rank='.intval($_POST['user_rank']);

Repalce with:

// Multirank
		$sql = 'user_allow_pm='.intval($_POST['user_allow_pm']).', user_allowavatar='.intval($_POST['user_allowavatar']).', user_rank='.intval($_POST['user_rank']).', user_rank2='.intval($_POST['user_rank2']).', user_rank3='.intval($_POST['user_rank3']).', user_rank4='.intval($_POST['user_rank4']).', user_rank5='.intval($_POST['user_rank5']);
// End Multirank

Open themes/yourtheme/template/forums/viewtopic_body.html

Find:

{postrow.POSTER_AVATAR}

Add After (NOTE: remove the around the POSTER_RANK to have the actual title display above the rank graphic):

<!-- Muiltirank -->
	 <!-- {postrow.POSTER_RANK2}
 -->
	  {postrow.RANK_IMAGE2}
	  <!-- {postrow.POSTER_RANK3}
 -->
	  {postrow.RANK_IMAGE3}
	  <!-- {postrow.POSTER_RANK4}
 -->
	  {postrow.RANK_IMAGE4}
	  <!-- {postrow.POSTER_RANK5}
 -->
	  {postrow.RANK_IMAGE5}
<!-- End Muiltirank -->
Share and Enjoy:
  • Print
  • Digg
  • Facebook
  • Google Bookmarks
  • Add to favorites
  • Reddit