Anzeige nur, wenn Forum für Gäste offen

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Kermit_ch
Mitglied
Beiträge: 5
Registriert: 29.04.2015 21:52

Anzeige nur, wenn Forum für Gäste offen

Beitrag von Kermit_ch »

Hi Leute

Ich möchte gerne für meine Seite die Social-Media Buttons wie in diesem Thema beschrieben einbauen.

Das Problem dabei ist, dass ich verschiedene Forenbereiche habe, auf die Gäste keinen Zugriff haben. In solchen Foren machen die Buttons natürlich wenig Sinn, denn Facebook z.B. sieht dann nur die Login-Seite.

Ich kenne PHP, finde mich auch in den Templates zurecht, habe aber noch zu wenig Know-How in phpBB, um herauszufinden, wie ich z.B. in viewtopic.php bestimmen kann, ob sich das Thema in einem Forum befinden, das für Gäste gesperrt ist. Die Idee wäre, dann eine Template Variable zu erstellen, die ich im entsprechenden HTML auswerten kann.

Eventuell gibt es das ja sogar schon.

Danke für eure Hilfe!

Gruss - Kermit
Benutzeravatar
AYYILDIZLAR
Ehemaliges Teammitglied
Beiträge: 4148
Registriert: 09.11.2010 18:08
Kontaktdaten:

Re: Anzeige nur, wenn Forum für Gäste offen

Beitrag von AYYILDIZLAR »

Hallo,

Bin mir nicht ganz sicher, ob ich dich zu 100% richtig verstanden habe. Aber schau mal hier, ob dir das Snippet weiterhilft viewtopic.php?f=85&t=230116

Grüße
DasEtwasAndereMotorradforum.de
Deutsche Übersetzung der Tapatalk Extension | Deutsche Übersetzung der Tapatalk MOD
Bitte keine PN wegen Support, werde diese zukünftig ignorieren und gleich löschen.
Kermit_ch
Mitglied
Beiträge: 5
Registriert: 29.04.2015 21:52

Re: Anzeige nur, wenn Forum für Gäste offen

Beitrag von Kermit_ch »

Hi

Danke schon mal für deine Antwort. Nein, ich möchte nicht vom Benutzer wissen, ob er Gast ist oder nicht, sondern aufgrund des Themas (z.B. der Themen-ID), ob es in einem Forum ist, für das Gäste keinen Zugang haben. Dann würde ich die Social-Media Buttons nicht anzeigen.

Gruss - Kermit
Kermit_ch
Mitglied
Beiträge: 5
Registriert: 29.04.2015 21:52

Re: Anzeige nur, wenn Forum für Gäste offen

Beitrag von Kermit_ch »

Jemand eine Idee?
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: Anzeige nur, wenn Forum für Gäste offen

Beitrag von gn#36 »

Die Berechtigungen werden mit einem Objekt vom Typ \phpbb\auth\auth geprüft (oder einfach nur auth im includes/ Verzeichnis in phpBB 3.0.x): https://www.phpbb.de/infos/3.1/xref/php ... h.php.html

Es sollte möglich sein, dir einfach ein neues Auth Objekt zu erzeugen, das du mit den Daten eines Gastbenutzers fütterst, egal welcher Benutzer gerade angemeldet ist. Dann kannst du mit dem neuen Objekt prüfen, ob der Gastbenutzer Lese- oder sonstwelche Rechte hat, indem du $auth_gast->acl_get('f_read', $forum_id); oder was ähnliches benutzt. Mit obtain_user_data hat das Objekt sogar eine Methode, in der du nur die User ID des Gastbenutzers übergeben musst (ANONYMOUS).
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Kermit_ch
Mitglied
Beiträge: 5
Registriert: 29.04.2015 21:52

Re: Anzeige nur, wenn Forum für Gäste offen

Beitrag von Kermit_ch »

Danke vielmals, gn#36!

Musste zwar noch ein wenig rumturnen, weil in der von meinem Provider installierten phpBB Version die Methode auth::obtain_user_data noch nicht vorhanden war. Aber ich konnte sie von der Doku einfach rüber kopieren.

Nun siehts in viewtopic.php so aus:

Code: Alles auswählen

include($phpbb_root_path . 'includes/bbcode.' . $phpEx);
// 15.05.2015/MM: Added guest right check
include_once($phpbb_root_path . 'includes/auth.' . $phpEx); 
...

Code: Alles auswählen

// 15.05.2015/MM: Added guest right check
$eacl_auth = new auth(); // create the auth instance.
$eacl_auth->acl($eacl_auth->obtain_user_data(1)); // retrieve the guest users (ID=1) data.
// 15.05.2015/MM: Added guest right check END

// Send vars to template
$template->assign_vars(array(
    // 15.05.2015/MM: Added guest right check
    'EACL_GUESTS_CAN_READ' => $eacl_auth->acl_get('f_read', $forum_id) > 0,
    // 15.05.2015/MM: Added guest right check END
    'FORUM_ID'         => $forum_id,
 
und in der viewtopic_body.html des style templates:

Code: Alles auswählen

	<!-- IF S_DISPLAY_SEARCHBOX -->
		<div class="search-box">
			<form method="get" id="topic-search" action="{S_SEARCHBOX_ACTION}">
			<fieldset>
				<input class="inputbox search tiny"  type="text" name="keywords" id="search_keywords" size="20" value="{L_SEARCH_TOPIC}" onclick="if(this.value=='{LA_SEARCH_TOPIC}')this.value='';" onblur="if(this.value=='')this.value='{LA_SEARCH_TOPIC}';" />
				<input class="button2" type="submit" value="{L_SEARCH}" />
				{S_SEARCH_LOCAL_HIDDEN_FIELDS}
			</fieldset>
			</form>
		</div>
	<!-- ENDIF -->
	
	<!-- NOTE: 15.05.2015/MM Added social media buttons -->
	<!-- IF not S_IS_BOT and EACL_GUESTS_CAN_READ -->
		<div class="addthis_toolbox addthis_default_style ">
			<a class="addthis_button_facebook_like" fb:like:layout="button_count"></a>
			<a class="addthis_button_google_plusone" g:plusone:size="medium"></a>
			<a class="addthis_button_tweet"></a>
			<a class="addthis_counter addthis_pill_style"></a>
		</div>
		<script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js#pubid=xa-4eac6d5c6431ec66"></script>
	<!-- ENDIF -->
	<!-- NOTE: 15.05.2015/MM Added social media buttons END -->
Also nochmals: Besten Dank für den Support!

Gruss - Kermit_ch
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: Anzeige nur, wenn Forum für Gäste offen

Beitrag von gn#36 »

Falls du phpBB 3.1 einsetzt würde ich dir empfehlen, das noch in eine Extension zu stecken. Die besteht aus gerade mal drei bis vier Dateien und macht dich unabhängiger von Update Problemen, weil du keine Änderungen an bestehenden PHP Dateien brauchst.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Kermit_ch
Mitglied
Beiträge: 5
Registriert: 29.04.2015 21:52

Re: Anzeige nur, wenn Forum für Gäste offen

Beitrag von Kermit_ch »

Danke für den Hinweis. Leider stellt mein Hostingprovider nur die Version 3.0.10 zur Verfügung und ich möchte nicht eine neuere Version installieren, sonst krieg ich bei Bedarf womöglich keinen Support von ihm.
Benutzeravatar
Crizzo
Administrator
Administrator
Beiträge: 11954
Registriert: 19.05.2005 21:45
Kontaktdaten:

Re: Anzeige nur, wenn Forum für Gäste offen

Beitrag von Crizzo »

Hi,

oh weia. 3.0.10 ist wirklich uralt. Wir sind schon bei 3.0.14 angekommen. Zuletzt wurde auch eine Sicherheitslücke behoben. Deine Version ist über 3 Jahre alt.

Das Ding ist eben, dass du so hier nicht den besten Support bekommen kannst und bei den Entwicklern von phpBB.com gar keinen kriegst, außer bei Problemen beim Update zu 3.0.14.

Grüße
Antworten

Zurück zu „Coding & Technik“