Page 1 of 2

Blöcke nur für Gruppe sichbar machen

Posted: 5. March 2009 00:00
by megran
Deine Portal Version: 1.0.0RC3
Typ Deines phpBB Forums: Standard phpBB3
MODs installiert: Ja
Dein Wissensstand: Grundwissen

Was hast Du gemacht, bevor das Problem aufgetreten ist?
Eine Blöcke erstellt, an anderen Blöcken gebastelt.

Was hast Du bereits versucht um das Problem zu lösen?
SUFU

Fehlerbeschreibung und Nachricht
Hallo Zusammen,

ich will einen eigenen Block erstellen der nur für eine bestimmte Gruppe sichtbar ist.
Das geht bestimmt mit so einer <--! IF --> Bedingung. Wie würde so eine Bedingung aussehen?

Danke.

Re: Blöcke nur für Gruppe sichbar machen

Posted: 5. March 2009 00:16
by Christian_N
Foren-Regel wrote:
  • Fragestellung
    • Suchfunktion / Knowledge Base Vor dem Erstellen eines neuen Themas oder einer Frage bitte gründlich die Suche benutzen und in der Knowledge Base / FAQ nachschauen. Viele Fragen sind bereits beantwortet.
@Foren-Regel ;)

In der Suchmaske 2 Wörter "Block Gruppe" eingegeben, welche ja deine Frage ist und gleich war unterhalb somit deines Beitrages (weil neuer) ein noch nicht allzu alter Beitrag der die Frage beantwortet, hier das Thema: http://board3.de/viewtopic.php?f=28&t=1 ... ppe#p11487 - 2 Beiträge über diesen Beitrag hab ich auch schon einen Link geschrieben gehabt der zu einen Artikel auf phpBB.de führt.

Re: Blöcke nur für Gruppe sichbar machen

Posted: 5. March 2009 00:47
by Mike
Ich hatte auch mal eine Zusammenfassung der Möglichen switches geschrieben.
Falls es um die Standartgruppen geht könnte das eventuell auch helfen ;)

http://board3.de/viewtopic.php?p=11031#p11031

Re: Blöcke nur für Gruppe sichbar machen

Posted: 6. March 2009 14:51
by megran
Hi Mike,

leider hilft mir das nicht weiter. Das Prinzip hab ich schon verstanden. Trotzdem Danke.

Ich habe was zu phpBB2 gefunden: http://www.phpbb.de/kb/best_gruppen.
Geht das in phpBB3 vielleich so ähnlich?

Re: Blöcke nur für Gruppe sichbar machen

Posted: 6. March 2009 14:53
by Christian_N
Hast auch mal mein Beitrag gelesen und ausgeführt? Das funktioniert bestens. ;)

Re: Blöcke nur für Gruppe sichbar machen

Posted: 6. March 2009 19:33
by megran
Hallo Chrisitan,

ich hab deinen Beitrag zuerst übersehn...
Hab ihn mir jetzt durchgelesen, aber da steht nur wie man etwas für Gäste ect. unsichtbar macht, nicht für Gruppen...

Oder hab ich schon wieder was überlesen?

Beste Grüße
megran

Re: Blöcke nur für Gruppe sichbar machen

Posted: 6. March 2009 20:36
by Mike
Vielleicht erklärst du mal genauer was du willst, denn "Gäste" sind eine Gruppe...
Ebenso wie "Administratoren", "Bots" usw...

EDIT: Ich glaube mir dämmert so langsam was du eigentlich willst. Dir gehts darum, das du benutzerdefinierte Gruppen hast, und willst das die Blöcke die Forenberechtigung beachten?

Re: Blöcke nur für Gruppe sichbar machen

Posted: 6. March 2009 21:46
by Christian_N
Christian_N wrote:
In der Suchmaske 2 Wörter "Block Gruppe" eingegeben, welche ja deine Frage ist und gleich war unterhalb somit deines Beitrages (weil neuer) ein noch nicht allzu alter Beitrag der die Frage beantwortet, hier das Thema: http://board3.de/viewtopic.php?f=28&t=1 ... ppe#p11487 - 2 Beiträge über diesen Beitrag hab ich auch schon einen Link geschrieben gehabt der zu einen Artikel auf phpBB.de führt.
Hm in diesen wurde genau beschrieben wie man es auf eine GRUPPE ID einschränkt wird (weil der Benutzer es bei dem DL-Block haben wollte) - der besagte Artikel auf phpBB.de den ich dort 2 Beiträge weiter oben verlinkt hatte war dieser: http://www.phpbb.de/community/viewtopic.php?t=164060

Ich versteh also nicht wo das Problem ist?
Wenn eine Gruppe angelegt hast z.B. names "Tester" und diese Gruppe die ID 10 hat tragst in den Code einfach die 10 ein und schon wird der Block nur für die Gruppe Tester angezeigt. :roll:

Welches dann mit der <!-- IF S_IN_GROUP --> - Bedingung machen kannst im Template und das war doch eingangs im erste Post deine frage wie die IF-Bedingung lautet - damit die funktioniert muss nur wie in dem Beitrag beschrieben eben in der *.php Datei diese erstmal definiert werden.

Re: Blöcke nur für Gruppe sichbar machen

Posted: 8. March 2009 20:02
by megran
Hi Christian,

sorry kann nicht lesen, hab irgendwie deine Beiträge übersehn. :oops:

Hab jetzt die vorgeschlagene Prozedur durchgeführt, aber es funktioniert nicht. :?:
Ich dachte, das liegt am Portalview MOD, und deswegen die Funktion (group_meberships() oder so) auch mal im portalview.php includet.
Hat aber auch nicht gebracht.

Woran kann es noch liegen?

Re: Blöcke nur für Gruppe sichbar machen

Posted: 9. March 2009 12:48
by megran
Ich habe noch einwenig rumexperemtentiert.
Wenn ich die Änderungen nur in portal.php mache, passiert nichts (d.h. der Block ist für alle zu sehen)
Wenn ich die Änderungen nur in portalview.php mache, ist der Block für niemanden mehr zu sehen. Auch nicht für die Gruppe die ihn sehen müsste.
Wenn ich die Änderungen in beinen Datein machen, passiert wieder nichts. (d.h. der Block ist für alle zu sehen)

Re: Blöcke nur für Gruppe sichbar machen

Posted: 11. March 2009 12:18
by megran
Hallo Zusammen,

warum antwortet keiner? Hat niemand eine Idee?

Jedenfalls habe ich noch einen Hinweis. Nach stundenlagen rumeditieren bis ich zum Schluss gekommen:

1. Portalview.php übergibt die Variebale überhaupt nicht an die html Datei. Gewisserweise funktioniert nicht der Code:

Code: Select all

        // Teile dem Template System mit, das die Variable "S_IN_GROUP" den Wert TRUE bekommt
       $template->assign_var('S_IN_GROUP', true);
Selbst wenn ich die if - Bedingung weglasse:

Code: Select all

if ($is_in_group == true)
wird FALSE übertragen, weil der bestimmte Block für alle Benutzer verschwindet

2. Wenn ich die ganze Sache im Portal.php mache, wird die user_id nicht übergeben. D.h. $benutzer_id , die an die Funktion group_meberships.php übergeben wird, ist falsch. Der Rest kann somit auch nicht funktionoeren.

(Das hab ich rausgefunden, indem ich einfach eine feste user_id genommen habe, dann hast nämlich funktioniert. Somit liegt es auch nicht an group_meberships() )

Wäre echt super wenn jemand noch eine Idee hätte. Denn ich bin am Ende... :cry:

Re: Blöcke nur für Gruppe sichbar machen

Posted: 11. March 2009 12:33
by Marc
Kannst du bitte mal genau angeben, wie deine Funktion in der portal.php bzw. portalview.php aussieht und wie du das ganze in die HTML-Datei eingebaut hast?

Bei mir funktioniert das ganze ohne Probleme.

Re: Blöcke nur für Gruppe sichbar machen

Posted: 11. March 2009 14:54
by Christian_N
Also für das Portal funktioniert es jedenfalls da hatte ich es mal selbst installiert - da den Portalview installiert hast, mal ins "MOD Portalview"-Forum verschoben.

Re: Blöcke nur für Gruppe sichbar machen

Posted: 11. March 2009 15:39
by megran
Hi Marc,

also wie gesagt, ich weiß immernoch nicht, ob die Funktion in portal.php oder portalview.php gehört (oder beide). Aber ich denke aber eher poral.php und deshalb schicke ich es dir, wie ich es in poral.php eingebaut habe: (in proralview.php somit keine Änderungen)

Code: Select all

<?php

/**
*
* @package - Board3portal
* @version $Id: portal.php 325 2008-08-17 18:59:40Z kevin74 $
* @copyright (c) kevin / saint ( www.board3.de/ ), (c) Ice, (c) nickvergessen ( www.flying-bits.org/ ), (c) redbull254 ( www.digitalfotografie-foren.de ), (c) Christian_N ( www.phpbb-projekt.de )
* @based on: phpBB3 Portal by Sevdin Filiz, www.phpbb3portal.com
* @license http://opensource.org/licenses/gpl-license.php GNU Public License 
*
*/


define('IN_PHPBB', true);
define('IN_PORTAL', true);

$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';

$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'portal/includes/functions.'.$phpEx);
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);


$portal_config = obtain_portal_config();

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('mods/lang_portal');

*Haufen CODE*

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

    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);
    }

page_header($user->lang['PORTAL']);

$template->set_filenames(array(
	'body' => '/portal/portal_body.html'
));


make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));

page_footer();

?>
Und wie ichs in die html Datei (portal_body.html) eingebunden habe:

Code: Select all

		<!-- IF S_IN_GROUP -->
		<!-- IF S_DISPLAY_POLL -->
			<!-- INCLUDE portal/block/poll.html -->
		<!-- ENDIF -->
		<!-- ENDIF -->
Wie gesagt, unter diesen Einstellungen sehe ich die Umfrage immer. Egal ob als Admin (group_id=5) oder Gast oder sonstewas...

Re: Blöcke nur für Gruppe sichbar machen

Posted: 11. March 2009 16:37
by Christian_N
Der Debug-Modus sagt:
[phpBB Debug] PHP Notice: in file /portal.php on line 28: Undefined index: user_id
Hm das kommt davon wenn die Leute kein Freedback geben (also der von dem verlinkte Thema hat sich ja nicht mehr zu geäußert) so das man meint das es funktioniert - komisch das es bei mir mal ging muss mal schauen was ich wohl noch geändert hatte darmals. :D

Ein kleinen Moment noch...