Page 1 of 1

Rechte vergeben für den Download Mod

Posted: 16. February 2009 18:26
by Wollinger
Hallole,

ich hoffe ich bin hier richtig. Wenn nicht dann nicht gleich auspeitschen :mrgreen:

Ich hab bei mir den "DL-Block_1_0_0" installiert. Ist ja alles toll, doch er zeigt alle Downloads jedem an. Ich würde jedoch gerne den Download Block nur anzeigen lassen, wenn der User einer bestimten Gruppe angehöhrt. Z.B. "Tester"

Hab mal versucht dies in der "portal_body.html" zu ändern, doch das nimmt er gar nicht an. Der Block wird weiterhin jedem angezeigt.

Wie kann ich das denn machen?

Gruß Wollinger

Re: Rechte vergeben für den Download Mod

Posted: 16. February 2009 18:31
by thomas.d
Ach Mist, meine Peitsche hab' ich an Indiana Jones ausgeliehen ... ;-)
Wollinger wrote:... Hab mal versucht dies in der "portal_body.html" zu ändern, doch das nimmt er gar nicht an. Der Block wird weiterhin jedem angezeigt. ...
Wie hast du das gemacht?

Re: Rechte vergeben für den Download Mod

Posted: 16. February 2009 18:54
by Wollinger
Hallo thomas.d,
thomas.d wrote:Ach Mist, meine Peitsche hab' ich an Indiana Jones ausgeliehen ... ;-)
Da hab ich ja nochmal glück gehabt :mrgreen:

Ich habe es, da ich es nicht besser weiß, so eingefügt:

Code: Select all

		<!-- IF S_DISPLAY_ATTACHMENTS -->
			<!-- IF not S_IS_BOT and S_USER_LOGGED_IN -->
				<!-- INCLUDE portal/block/attachments.html -->
			<!-- ENDIF -->
		<!-- ENDIF -->
Hab zum Testen erstmal nur den "normalen User" ausprobiert. Es wird aber dem Gast immer noch angezeigt.

Gruß Wollinger

Re: Rechte vergeben für den Download Mod

Posted: 17. February 2009 10:55
by Skippy07
Wollinger wrote: Ich habe es, da ich es nicht besser weiß, so eingefügt:

Code: Select all

		<!-- IF S_DISPLAY_ATTACHMENTS -->
			<!-- IF not S_IS_BOT and S_USER_LOGGED_IN -->
				<!-- INCLUDE portal/block/attachments.html -->
			<!-- ENDIF -->
		<!-- ENDIF -->
Hab zum Testen erstmal nur den "normalen User" ausprobiert. Es wird aber dem Gast immer noch angezeigt.

Gruß Wollinger
Hallo,

attachments.html sind die Dateianhänge. Probiere das ganze doch mal um die recent_dl.html

Code: Select all

<!-- IF S_DISPLAY_RECENT_DL -->
<!-- IF not S_IS_BOT and S_USER_LOGGED_IN -->
			<!-- INCLUDE portal/block/recent_dl.html -->
		<!-- ENDIF -->
<!-- ENDIF -->
Anschließend den Cache löschen und die Templates und Theme aktualisieren. Dann sollte der Block nur noch für eingeloggt User sichtbar sein.

Gruss
Stefan

Re: Rechte vergeben für den Download Mod

Posted: 17. February 2009 12:39
by Kevin
Das muss so funktionieren:

Code: Select all

      <!-- IF S_DISPLAY_ATTACHMENTS -->
         <!-- IF not S_IS_BOT and S_USER_LOGGED_IN -->
            <!-- INCLUDE portal/block/attachments.html -->
         <!-- ENDIF -->
      <!-- ENDIF --> 
Vielleicht wirklich einfach vergessen den Cache zu leeren?

Re: Rechte vergeben für den Download Mod

Posted: 17. February 2009 14:29
by Christian_N
Wie Skippy schon schrieb ist es. :)
Wenn auf den Dateianhängen-Block es machst kann der DL-Block nicht ausgeblendet werden, dazu hätts es schon auf den DL-Block anwenden müssen. :D

Um es auf eine bestimmte Gruppe zu beschränken, gibt es auf phpBB.de ein Artikel: http://www.phpbb.de/community/viewtopic.php?t=164060

Hatte es irgendwo schon mal hier gepostet, aber hatte jetzt nicht die Zeit den Beitrag rauszusuchen und da ich den Artikel als Lesenzeichen gespeichert habe, hab ich jetzt einfach den nochmal kopiert hier.

Gruß Chris

Re: Rechte vergeben für den Download Mod

Posted: 17. February 2009 21:14
by Wollinger
Hallole,

vielen Dank für Eure Hilfe. Das hat funktioniert.
Das mit den Gruppenrechte hab ich noch nicht gemacht, kapiere es im Moment nicht. Werde es mir morgen nochmal genau durchlesen, vieleicht versteh ich es dann. :oops:

Gruß Wollinger

Re: Rechte vergeben für den Download Mod

Posted: 17. February 2009 22:40
by Christian_N
Hallo,
so schwer ist der artikel eigentlich nicht zu verstehen, in der portal.php muss erst die functions_user.php includiert werden sofern die nicht schon vom Portal includiert wird? Da bin ich mir jetzt nicht so sicher und auch keine Zeit jetzt nachzuschauen.

Daher nur ungetestet, die Anleitung:
ÖFFNEN: portal.php

FINDEN:

Code: Select all

include($phpbb_root_path . 'portal/includes/functions.'.$phpEx); 


DANACH EINFÜGEN:

Code: Select all

include_once($phpbb_root_path . 'includes/functions_user.' . $phpEx);
// zu überprüfende Gruppen ID ( Beispiel Gruppen ID 5 )
$gruppen_id = 5;

// zu überprüfender User ( Beispiel: Der User, der diese Seite aufgerufen hat )
$benutzer_id = $user->data['user_id'];

// Nun erfolgt die eigentliche Prüfung:
$is_in_group = group_memberships($gruppen_id, $benutzer_id , true); 


Wenn jetzt mehren Gruppen haben willst nimmst aus dem Artikel den 2. Code also wäre es dann:
DANACH EINFÜGEN:

Code: Select all

include_once($phpbb_root_path . 'includes/functions_user.' . $phpEx);
// zu überprüfende Gruppen IDs ( Beispiel Gruppen ID 5, 10, 12, 15 )
// Hinweis: Bei mehreren Gruppen muss es ein array() sein!
$gruppen_id = array(5,10,12,15);

// zu überprüfender User ( Beispiel: Der User, der diese Seite aufgerufen hat )
$benutzer_id = $user->data['user_id'];

// Nun erfolgt die eigentliche Prüfung:
$is_in_group = group_memberships($gruppen_id, $benutzer_id , true); 
FINDEN:

Code: Select all

$template->assign_vars(array(
    'PORTAL_LEFT_COLUMN'     => $portal_config['portal_left_column_width'],
    'PORTAL_RIGHT_COLUMN'     => $portal_config['portal_right_column_width'],
)); 


DANACH EINFÜGEN:

Code: Select all

if ($is_in_group == true)
{
    // Teile dem Template System mit, das die Variable "S_IN_GROUP" den Wert TRUE bekommt
   $template->assign_var('S_IN_GROUP', true);
} 


Damit ist es schon mal in der portal.php definiert so das in der portal_body.html dann nun den SWITCH benutzen kannst.
Natürlich bei $gruppen_id = die Zahl anpassen mit der ID für deiner Gruppe die nur die Berechtigung haben soll/darf.

Dann einfach noch den SWITCH im Template benutzen:
ÖFFNEN: portal_body.html

FINDEN:

Code: Select all

    <!-- IF S_DISPLAY_RECENT_DL -->
             <!-- INCLUDE portal/block/recent_dl.html -->
    <!-- ENDIF --> 


ERSETZEN MIT:

Code: Select all

    <!-- IF S_DISPLAY_RECENT_DL -->
    <!-- IF S_IN_GROUP -->
             <!-- INCLUDE portal/block/recent_dl.html -->
          <!-- ENDIF -->
    <!-- ENDIF --> 


Dann dein Style im ACP aktualisieren, Cache sowie Browser-Cache leeren und es sollte funktionieren.
Wie gesagt nicht getestet, daher am beste vor dem ändern die Dateien dir sichern.

P.S. mit diesem SWITCH kannst dann jeden Block für alle andere die nicht in der Gruppen sind ausblenden. :D

Gruß Chris