Seite 3 von 4

Verfasst: 07.04.2005 13:15
von ich-nrw
ich versuch es mal zuerklären*g

also ich möchte das bei normalen usern, der normale und der zweite rank angezeigt wird. das geht ja ohne probleme! (dank punkface)
nun möchte ich aber das z.b. bei einem mod, der modrank und der zweite spezialrank angezeigt wird!
genauso bei admins!

Verfasst: 07.04.2005 17:57
von Wavedancer
Hi, ich habe ein Problem bei meinen viewtopic-Files, ich finde die zu suchenden Zeilen nicht und habe keine Ahnung, wo ich diese Zeilen einsetzen könnte. Ich musste scheinbar diese Zeilen für den ProfilCP-Mod löschen.
Hier die beiden Dateien:

http://www.all4talk.de/attachment/viewtopic.php.txt
http://www.all4talk.de/attachment/viewt ... dy.tpl.txt

Verfasst: 19.07.2006 12:06
von DaKu
Hallo

Ich möchte dieses Thema nochmal aufgreifen und zwar habe ich alles bei mir so eingestellt, wie es geschrieben wurde, jedoch funktioniert es irgendwie nicht richtig.

Bei mir steht jetzt 2x der SpezialRang untereinander und ich kann in der DropDown Liste im Adminbereich nichts einstellen.

Wenn ich etwas anderes bei den Spezialrängen einstelle, und ich dann auf Absenden klicke, ändert er es nicht?

Könntet ihr mir da mal bitte behilflich sein?

Danke schon mal im vorraus

Verfasst: 19.07.2006 15:07
von punkface
Hallo

Mach alle Änderungen rückgängig und bau den MOD dann nach der Anleitung hier ein:
http://punkface.pu.funpic.de/phpbb_dl/z ... _1.0.1.txt -> Zweite Ranggrafik

siehe dazu wie immer: KB:modsfaq

Verfasst: 19.07.2006 16:57
von DaKu
Danke.

nur ein Problem besteht noch, bei mir sieht es jetzt so aus:

Sp.Rang
Rang
SpRang

bin aber lt. Anleitung vorgegangen und habe vorher wieder alles rückgängig gemacht.

Eine Frage noch:
Ich kann in der DropDown Liste im Adminbereich nichts einstellen.
Wenn ich etwas anderes bei den Spezialrängen einstelle, und ich dann auf Absenden klicke, ändert er es nicht?

soll das so sein?

Verfasst: 19.07.2006 19:32
von punkface
1. verlink mal die viewtopic_body.tpl

2.
Ich kann in der DropDown Liste im Adminbereich nichts einstellen.
Wenn ich etwas anderes bei den Spezialrängen einstelle, und ich dann auf Absenden klicke, ändert er es nicht?
Ein bisschen präzieser bitte. Was heißt, du kannst in der Auswahlliste nichts einstellen? Gibt es keine Optionen in der Auswahlliste? Und bezieht sich die Frage jetzt auf die Auwahllist oder auf die Einstellungen zu Rängen allgemein?

Verfasst: 20.07.2006 12:02
von DaKu
zu 1.) ---erledigt---
zu 2.) unter Rang-Administration hat man doch da jetzt ein Drop-Down Feld, da steht zwar jetzt was drinn, aber nach dem Auswählen und speichern steht es immernoch auf "Die Einstellung nicht überschreiben", oder muss das so bleiben?

Verfasst: 20.07.2006 12:15
von punkface
zu 1.

Code: Alles auswählen

# 
#-----[ OPEN ]------------------------------------------ 
#
templates/subSilver/viewtopic_body.tpl

# 
#-----[ FIND ]------------------------------------------ 
#
{postrow.POSTER_SPECIAL_RANK}{postrow.SPECIAL_RANK_IMAGE}{postrow.POSTER_RANK}<br />{postrow.RANK_IMAGE}{postrow.POSTER_SPECIAL_RANK}<br />{postrow.SPECIAL_RANK_IMAGE}

# 
#-----[ REPLACE WITH ]------------------------------------------ 
#
{postrow.POSTER_SPECIAL_RANK}{postrow.SPECIAL_RANK_IMAGE}{postrow.POSTER_RANK}<br />{postrow.RANK_IMAGE}

zu 2.
Was du in der Auswahlliste auswählst wird nicht direkt gespeichert, daher ist es, wie es bei dir ist, richtig. Wenn du z.B. "normalen Rang extra anzeigen" auswählst, gilt das nicht für immer, sondern die Einstellungen der einzelnen Benutzer (die diesen Spezialrang haben) werden nur einmalig in der Datenbank überschrieben.

Verfasst: 20.07.2006 12:28
von DaKu
ahhhh, Danke, funktioniert wunderbar. :grin:

Verfasst: 24.07.2006 14:29
von Lohgock-Trainer
punkface hat geschrieben:Alles klar.. ich hätt dann auch noch eine Erweiterung dieser Änderung.

/edit: Update: siehe http://www.phpbb.de/viewtopic.php?p=734145#734145

Bisher kann man ja nur für jeden User einzeln Einstellen, dass unter dem Spezial auch noch der normale Rang angezeigt werden soll. Wenn jetzt aber Beispielsweise 50 Leute Spezialrang XYZ haben, und diese unterschiedliche Einstellungen haben was das extra Rang anzeigen betrifft, du aber willst das bei allen die diesen Rang XYZ haben auch der normale Rang extra angezeigt werden soll, müsstest du somit bei jedem unter den 50 Leuten bei dem im Profil eingestellt wurde das der normale Rang _nicht_ extra angezeigt werden soll, diese Einstellung ändern. (Ja, ich mag irgendwie lange Erklärungen 8) ) Das ist aber ziemlich aufwendig, und dazu kommt noch, dass du bei einer großen Anzahl an Leuten ja nicht mehr weißt wer welche Einstellung oder welchen Spezial Rang hat.

Die Lösung: Durch diese Änderung kannst du beim Rang editieren auswählen, dass bei allen die Spezialrang XYZ haben, die Einstellungen für extra Rang anzeigen überschrieben werden:

admin_ranks.php

Code: Alles auswählen

+++ suche +++

			$s_hidden_fields .= '<input type="hidden" name="id" value="' . $rank_id . '" />';

+++ danach einfügen +++

      $rank_normal_ow = '<option value="0">' . $lang['Rank_normal_ow_0'] . '</option><option value="1">' . $lang['Rank_normal_ow_1'] . '</option><option value="2">' . $lang['Rank_normal_ow_2'] . '</option>' . "\n";

+++ suche +++

			$rank_info['rank_special'] = 0;

+++ danach einfügen +++

      $rank_normal_ow = '';

+++ suche +++

			"NOT_SPECIAL_RANK" => $rank_is_not_special,

+++ danach einfügen +++

      "RANK_NORMAL_OW" => $rank_normal_ow,

+++ suche +++

			"L_RANK_SPECIAL" => $lang['Rank_special'],

+++ danach einfügen +++

      "L_RANK_NORMAL_OW" => $lang['Rank_normal_ow'],
      "L_RANK_NORMAL_OW_EXPLAIN" => $lang['Rank_normal_ow_explain'],

+++ suche +++

	}
	else if( $mode == "save" )
	{

+++ _davor_ einfügen +++

    if( $rank_normal_ow != '' )
    {
      $template->assign_block_vars('switch_rank_normal_ow', array() ); 
    }

+++ suche +++

		$special_rank = ( $HTTP_POST_VARS['special_rank'] == 1 ) ? TRUE : 0;

+++ danach einfügen +++

    $rank_normal_ow = ( $HTTP_POST_VARS['rank_normal_ow'] != 0 ) ? ( ($special_rank) ? $HTTP_POST_VARS['rank_normal_ow'] : 0 ) : 0;

+++ suche +++

			if (!$special_rank)
			{
				$sql = "UPDATE " . USERS_TABLE . " 
					SET user_rank = 0 
					WHERE user_rank = $rank_id";

				if( !$result = $db->sql_query($sql) ) 
				{
					message_die(GENERAL_ERROR, $lang['No_update_ranks'], "", __LINE__, __FILE__, $sql);
				}
			}

+++ danach einfügen +++

      if ($rank_normal_ow)
			{
				$set = ( $rank_normal_ow == 1 ) ? 1 : 0 ;
        $sql = "UPDATE " . USERS_TABLE . " 
					SET user_rank_normal = $set 
					WHERE user_rank = $rank_id";

				if( !$result = $db->sql_query($sql) ) 
				{
					message_die(GENERAL_ERROR, $lang['No_update_ranks'], "", __LINE__, __FILE__, $sql);
				}
			}

lang_admin.php

Code: Alles auswählen

+++ suche +++

$lang['Rank_normal_explain'] = 'Auswahl ob in Themen unter dem Spezialrang auch der normale Rang (der von der Anzahl der Beiträge abhängig ist) angezeigt werden soll';

+++ danach einfügen +++

$lang['Rank_normal_ow'] = 'Rang Einstellung überschreiben';
$lang['Rank_normal_ow_explain'] = 'Die Einstellung ob bei einem Benutzer unter dem Spezialrang auch der normale Rang angezeigt werden soll, kann hier für alle die diesen Spezialrang haben überschrieben werden';
$lang['Rank_normal_ow_0'] = 'Die Einstellung nicht überschreiben';
$lang['Rank_normal_ow_1'] = 'normalen Rang extra anzeigen';
$lang['Rank_normal_ow_2'] = 'normalen Rang nicht extra anzeigen';

ranks_edit_body.tpl

Code: Alles auswählen

+++ suche +++

	<tr>
		<td class="row1"><span class="gen">{L_RANK_SPECIAL}</span></td>
		<td class="row2"><input type="radio" name="special_rank" value="1" {SPECIAL_RANK} />{L_YES} &nbsp;&nbsp;<input type="radio" name="special_rank" value="0" {NOT_SPECIAL_RANK} /> {L_NO}</td>
	</tr>

+++ danach einfügen

  <!-- BEGIN switch_rank_normal_ow --> 
	<tr>
		<td class="row1"><span class="gen">{L_RANK_NORMAL_OW}</span><br />
		<span class="gensmall">{L_RANK_NORMAL_OW_EXPLAIN}</span></td>
		<td class="row2"><select name="rank_normal_ow">{RANK_NORMAL_OW}</select></td>
	</tr>
  <!-- END switch_rank_normal_ow -->
gruß
Dazu braucht man aber noch ne SQL Anweisung. Sonst geht nichts. wie lautet die SQL Anweisung?