[1.1.0] CBACK Portal

ein flexibles Portalsystem für das CF4

 
cback
Admin
Avatar
Geschlecht:
Herkunft: Saarland
Alter: 37
Homepage: cback.net
Beiträge: 17610
Dabei seit: 12 / 2003
Betreff:

Re: [1.0.2] CBACK Portal

 · 
Gepostet: 17.02.2021 - 11:53 Uhr  ·  #49
Hallo allerseits!

Es ist kürzlich aufgefallen, dass man manchmal eine mit der Funktion "Globale Nachricht an die Nutzer" erzeugte Infobox als User nicht immer (auf jeder Seite wo es gezeigt wird) als gelesen markieren kann. Um dieses Problem zu fixen könnt Ihr folgenden kleinen Codechange machen, damit das in jeder Konstellation wieder zuverlässig funktioniert:

ÖFFNE
modules/cback_portal/tpl/cback_portal_globalmsg.htm

FINDE
Code
      <a href="{rewrite mode='index'}?cportalmsg=markread&amp;{$CFPROTECT_GETTOKEN}" class="uk-button uk-button-small uk-button-primary">{$LANG.cback_portal.mark_me_read}</a>


ERSETZE MIT
Code
      <a href="index.php?cportalmsg=markread&amp;{$CFPROTECT_GETTOKEN}" class="uk-button uk-button-small uk-button-primary">{$LANG.cback_portal.mark_me_read}</a>



Wird dann beim nächsten Plugin Update mit aufgenommen aber für die eine kleine Stelle lohnt sich jetzt noch kein neues Release. :-) Wer die "Global Message" Funktion vom Portal nicht benutzt muss den Fix auch nicht machen, wirkt sich sonst im Portal nirgendwo aus.

LG,
Chris
Douzeper
Benutzer
Avatar
Geschlecht:
Herkunft: Antrim, Northern Ireland
Alter: 55
Homepage: motorhomecraic.com
Beiträge: 555
Dabei seit: 10 / 2004
Betreff:

Re: [1.0.2] CBACK Portal

 · 
Gepostet: 11.03.2021 - 15:26 Uhr  ·  #50
cback
Admin
Avatar
Geschlecht:
Herkunft: Saarland
Alter: 37
Homepage: cback.net
Beiträge: 17610
Dabei seit: 12 / 2003
Betreff:

Re: [1.0.2] CBACK Portal

 · 
Gepostet: 11.03.2021 - 16:34 Uhr  ·  #51
cback
Admin
Avatar
Geschlecht:
Herkunft: Saarland
Alter: 37
Homepage: cback.net
Beiträge: 17610
Dabei seit: 12 / 2003
Betreff:

Re: [1.1.0] CBACK Portal

 · 
Gepostet: 14.07.2021 - 12:54 Uhr  ·  #52
Das Portal Plugin wurde auf Version 1.1.0 aktualisiert
WICHTIG: Dieses Portal Update (1.1.0) benötigt jetzt mindestens CBACK Forum in der Version 4.9.0!

WICHTIGER HINWEIS ZUM PLUGIN UPDATE
Die beiden Widgets "CBACK Now Online" und "CBACK Stats" sind jetzt ein fester Teil des Pluginpaketes selbst und müssen wegen Änderungen in CBACK Forum ab v4.9 mit aktualisiert werden (d.h. zusammen mit dem gesamten Plugin). Bitte deaktiviert vor dem Portal Plugin Update eventuell genutzte Portal-Boxen mit dem bisherigen "Now Online" und "Stats" Widget und löscht danach via FTP die Beiden Ordner /modules/cback_portal/widgets/cback_nowonline/ sowie /modules/cback_portal/widgets/cback_stats/. Ladet dann wie gewohnt bei Plugin Updates das neue Paket aus dem ersten Post in Eurem ACP hoch, um das Portal Plugin zu aktualisieren. Die beiden Widgets "Now Online" sowie "Stats" werden dann automatisch neu in ihrer aktuellen Version mitinstalliert und können danach wieder über die Boxen-Konfiguration hinzugefügt werden.


Changelog
  • Anpassung der Account Widget Kompatibilität mit CFv4.9.0
  • Zusätzlich vollständige Unterstützung von PHP8
  • Kompatibilität zum in CF v4.9 eingeführten und wählbaren "High Contrast" ACP Theme
  • Es wurde ein Problem behoben, bei dem u.U. eine globale Nachricht nicht auf jeder Seite bestätigt werden konnte



Viel Spaß mit dem Plugin!
Mimi
Benutzer
Avatar
Geschlecht:
Alter: 39
Beiträge: 95
Dabei seit: 05 / 2017
Betreff:

Re: [1.1.0] CBACK Portal

 · 
Gepostet: 10.10.2021 - 09:50 Uhr  ·  #53
Hallo Chris!

Wie schaffe ich es, dass das die Inhalte/Boxen des Portals nur für eingeloggte User sichtbar sind?
Prüfe ich das in jeder einzelnen Box (dein letzte Beiträge Widget macht dies ja) oder geht das auch zentral? Wenn ja, wo?

Danke dir schon einmal!
Viele Grüße,
Miriam
cback
Admin
Avatar
Geschlecht:
Herkunft: Saarland
Alter: 37
Homepage: cback.net
Beiträge: 17610
Dabei seit: 12 / 2003
Betreff:

Re: [1.1.0] CBACK Portal

 · 
Gepostet: 11.10.2021 - 11:26 Uhr  ·  #54
Hallo Miriam,

im Grunde macht das Portal Plugin die Unterscheidung schon überall selbst und Du hättest da eigentlich keinen Handlungsbedarf. Bei den Automatik Boxen (mit Beiträgen Deiner Wahl aus Foren Deiner Wahl) und sogar bei Posts, die Du manuell ans Portal bindest wird immer das CF4 Befugnissystem als Basis genommen. Mit anderen Worten: Niemand sieht etwas, wofür er keine READ Permission in den CF4 Befugnissen gesetzt bekommen hat. (SEE & VIEW Rechte dort, wenn einer nur das Forum nicht sehen dürfte aber den Inhalt würden diese Topics natürlich trotzdem gelistet, ähnlich wie bei der Suchfunktion, wenns eine Gruppe niemals sehen soll muss also immer SEE & VIEW beidermaßen abgeschaltet sein).

Bei den Widgets ist das Verhalten dann immer so, wie es programmiert ist, damit Widgetentwickler hier volle Flexibilität haben. Während beispielsweise "Letzte Beiträge" und "Attachments" im Grunde auch das CF4 Befugnissystem als Basis nehmen, würde das Account Widget z.B. Gästen den Logindialog zeigen, eingeloggten die Infos zum Account.

Lediglich die Boxen "eigener HTML Code" haben natürlich keine Unterscheidung zwischen eingeloggt & Gast.

Sollte hier eine Änderung nötig sein, musst Du ein eigenes Widget entwickeln oder vorhandene Widgets modifzieren. Das ist im Grunde sehr leicht, weil in der widget_runner.php nur die Ausgabe einer Box passiert und in der widget_info.php informationen zum Widget drinstecken für die Anzeige im ACP (keine doppelten Namen verwenden). Die Automatikboxen des Portals sind ein festes Verhalten und kein Widget. Die kämen also immer, aber richten sich wie gesagt eh nach den Befugnissen.

Bei Deinen eigenen Widgets könntest Du aber immer mit den PHP Switches if ( $User->login_status() ) {} vom CF4 arbeiten und dann eine leere Ausgabe zurückgeben, falls gar keine Box kommen soll (das ist ganz wichtig, dass so ein Alternativfall existiert, damit Du keine uninitialisierten Variablen hast was zu Widget-Dopplungen führen kann). Auch im Template ist das mit dem typischen {if $LOGGED_IN}{/if} switch möglich. Beachte beim PHP Code bitte, dass Du initial am Anfang vom widget_runner.php das $User Objekt korrekt vom System abholst mit $User = Controller::getClass('User'); - bei Anpassungen im Template ist das nicht nötig, die Variable ist global im CF4 verfügbar egal wo man ist.

Wenn Du global und generell unter keinen Umständen Boxen für Gäste zeigen willst, dann kannst Du aber natürlich im Portal Plugin den Template-Switch auch {if $LOGGED_IN}{/if} im Root Template verwenden. (modules/cback_portal/tpl/cback_portal_2row.htm (2-Spaltiges Portal) bzw. modules/cback_portal/tpl/cback_portal_3row.htm (3-Spaltiges Portal) ). Wenn Gäste da andere Boxen sehen sollen oder ne Info kannst Du ja auch mit einem {else} block dort selbst Infoboxen anlegen als HTML Code:
Code

{if $LOGGED_IN}
  eingeloggtes Verhalten, das wäre dann das, was das Portal da eh macht bzw. die Ausgabevariable der jeweiligen Spalte
{else}
  Deine Info für ausgeloggte
{/if}


Eine andere Option hättest Du aber nicht. Also entweder eigene Widgets mit eigenem Verhalten oder eben global im Spaltentemplate.

LG,
Chris
Mimi
Benutzer
Avatar
Geschlecht:
Alter: 39
Beiträge: 95
Dabei seit: 05 / 2017
Betreff:

Re: [1.1.0] CBACK Portal

 · 
Gepostet: 11.10.2021 - 11:37 Uhr  ·  #55
Hallo Chris!

vielen Dank für deine ausführliche Antwort!
Ich überlege mir mal, wie genau ich das Portal für unser Forum gestalten will und wo ich entsprechend ansetze.

Grundsätzlich soll unser Forum nach außen verschlossen sein.
Wir wollen nur aktive Mitglieder und daher muss man sich anmelden, wenn man was sehen (und auch beitragen :) ) möchte.
Diesen Prinzipien soll auch unser Portal folgen.

Ein eigenes Widget habe ich bisher noch nicht gemacht. Vielleicht wäre das ja der richtige Aufhänger dafür. ;)
cback
Admin
Avatar
Geschlecht:
Herkunft: Saarland
Alter: 37
Homepage: cback.net
Beiträge: 17610
Dabei seit: 12 / 2003
Betreff:

Re: [1.1.0] CBACK Portal

 · 
Gepostet: 11.10.2021 - 16:00 Uhr  ·  #56
Huhu!

Sehr gerne!

Nun ich denke mal auch wenn Dein Forum recht "verschlossen" sein soll hättest Du da grundlegend keine Probleme weil: Die Gäste sehen dann halt eh nichts in den Boxen, wenn sie keine Lese/Sehbefugnis für die entsprechenden Foren haben. Module wie "Statistik" oder so wären auf dem Index eh ersichtlich und ansonsten läuft ja eigentlich eh alles nur je nach Berechtigung.

Vielleicht macht dann als "Infotext für Gäste" eher Sinn ein Forum zu machen, das nur Gäste sehen können (das dann sozusagen verschwindet, wenn man sich einloggt) und da schreibt man ein Infotopic fürs Portal rein das man dort dann dranpinnt, dann sehen Gäste nur diese Info in der Mitte oder so und sobald sie sich einloggen verschwindet es und die anderen Boxen füllen sich.

Aber gut die Option das übers Template generell "abzuspecken" bestünde ja auch, mit einem Gast-Switch um das ganze Spalten-Template herum wäre im Grunde die Portalseite komplett leer und Du könntest notfalls im else-Zweig selbst HTML Code oder Infokästchen einfügen je nach Wunsch.

Viele Grüße,
Chris
Gewählte Zitate für Mehrfachzitierung:   0

Registrierte in diesem Topic

Aktuell kein registrierter in diesem Bereich

Die Statistik zeigt, wer in den letzten 5 Minuten online war. Erneuerung alle 90 Sekunden.