[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
NEU: Addon TVSFEUser - Frontend-User-Login - Seite 2 - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Benutzeravatar
himmelreich
Beiträge: 51
Registriert: 1. Mär 2007, 09:56

Re: NEU: Addon TVSFEUser - Frontend-User-Login

26. Jan 2011, 22:52

Hallo michaelwandel,

kannst du mir einen Tipp geben mit welcher Variabel ich die freigegebenen Artikel-ID's auslesen kann und wie ich das in einem Modul anstelle.
Die weitere Verarbeitung in der Artikelliste bekomme ich hin aber die ID's auslesen welche für den Benutzer freigegeben sind dafür reichen meine PHP-Kenntnisse leider nicht aus.

Im voraus schon mal vielen Dank für diene Hilfe.

Gruß Himmelreich

Benutzeravatar
michaelwandel
Beiträge: 331
Registriert: 1. Jul 2010, 13:54
Wohnort: Köln
Kontaktdaten: Website

Re: NEU: Addon TVSFEUser - Frontend-User-Login

27. Jan 2011, 09:10

Hi :)

Mmh, also ich hab mal ein kleines Modul geschrieben mit dem Du erstmal alle Artikel einer Kategorie ausgeben kannst:

Code: Alles auswählen

--------
EINGABE:
--------

<h1>Kategorie-ID:</h1>
<br />
Kategorie-ID: <input type="text" name="VALUE[1]" value="REX_VALUE[id="1" ifempty="0"]">

--------
AUSGABE:
--------


<?php

	if($REX['REDAXO'] != 1) {
		$cat = OOCategory::getCategoryById(REX_VALUE[1]); // hier die ID der Kategorie
		$articles = $cat->getArticles( true ); // Alle Artikel der Kategorie auslesen, die Online sind

		if ( is_array( $articles) && count( $articles) > 0) {
			echo "<ul>";
			foreach ( $articles as $article) {
				// Den aktuellen Artikel nicht verlinken
				if ( $article->getId() == REX_ARTICLE_ID) continue;

				// Startartikel ausblenden
				if ( $article->isStartPage()) continue;

				echo "<li><a href=\"" . rex_getUrl($article->getId()) . "\">" . $article->getName() . "</a></li>";
			}
			echo "</ul>";
		}
	}
	else
		echo "Alle Artikel der Kategorie REX_VALUE[1] ausgeben!";
?> 
Jetzt müsste man das mit der Session-Geschichte und dem Auslesen der User kombinieren, hab gerade nicht viel Zeit aber ich versuche mal die Tage was zu basteln ;-) Könnte ich eigentlich auch mal gebrauchen :D

Gruß, Michael :)

Benutzeravatar
himmelreich
Beiträge: 51
Registriert: 1. Mär 2007, 09:56

Re: NEU: Addon TVSFEUser - Frontend-User-Login

27. Jan 2011, 12:02

Hallo michaelwandel,

hier ein Versuch eines PHP-Anfängers.
Bitte schau mal drüber ob man dies so machen kann oder ob es eine bessere Lösung gibt.

Code: Alles auswählen

<?php

// Artikelliste bei der nicht geschüzte und für den aktuellen Benutzer freigegebene Artikel angezeigt werden.


// Rechte des aktuellen Benuzers auslesen
$rechte = explode(",", $_SESSION['tvsfeuser']['feuser']['rights']);


// Alle geschüzten Bereiche aus INI-Datei auslesen
$tvsfeuserIniFile = $REX['INCLUDE_PATH'] . "/addons/tvsfeuser/tvsfeuser.ini";
if (file_exists($tvsfeuserIniFile)) {
	$stringData = file_get_contents($tvsfeuserIniFile);
	$settings = parse_ini_file($tvsfeuserIniFile);
	$rights	= $settings['accessRestrictions'];
	$gesp_all = explode(",", $rights);
}


// Geschützte für aktuellen Benutzer nicht zugänglichen Artikel ermitteln	
$gesch = array_diff($gesp_all, $rechte);


if($REX['REDAXO'] != 1) {
	$cat = OOCategory::getCategoryById(REX_VALUE[1]); // hier die ID der Kategorie
	$articles = $cat->getArticles( true ); // Alle Artikel der Kategorie auslesen, die Online sind
	
	if ( is_array( $articles) && count( $articles) > 0) {
		echo "<ul>";
		foreach ( $articles as $article) {
			// Den aktuellen Artikel nicht verlinken
			if ( $article->getId() == REX_ARTICLE_ID) continue;
			
			// Startartikel ausblenden
			if ( $article->isStartPage()) continue;
			
			$artid = $article->getId();
			
			// Geschützte für aktuellen Benutzer nicht zugänglichen Artikel ausblenden
			if (in_array($artid, $gesch)) continue;
			
			echo "<li><a href=\"" . rex_getUrl($artid) . "\">" . $article->getName() . "</a></li>";
		}
		echo "</ul>";
	}
}
else
	echo "Alle Artikel der Kategorie REX_VALUE[1] ausgeben!";
?> 
Nochmals vielen Dank für deine Hilfe.

Gruß Himmelreich

Benutzeravatar
himmelreich
Beiträge: 51
Registriert: 1. Mär 2007, 09:56

Re: NEU: Addon TVSFEUser - Frontend-User-Login

27. Jan 2011, 15:12

Hallo zusammen,

hab das Script lokal auf dem PC unter Xampp getestet lief einwandfrei.
Dann hab ich es auf einer Internetseite im Netz getestet und folgendes Festgestellt:

Die Variable $rechte enthält im Frontend keine Daten im Backend sind die Daten da.

Der Befehl var_dump($_SESSION); Zeigt im Frontend NULL an im Backend sind alle Daten da.

An was kann das liegen?
Kann mir jemand helfen?

Im voraus schon mal vielen Dank für eure Mühe

Gruß Himmelreich

Benutzeravatar
Richard.Laing
Beiträge: 2105
Registriert: 28. Aug 2005, 00:55
Wohnort: Brühl / Rheinland
Kontaktdaten: Website

Re: NEU: Addon TVSFEUser - Frontend-User-Login

27. Jan 2011, 15:19

EDIT falsche frage von mir sorry habe deine frage nicht richtig gelesen (bin auch kein progger hihi)
gruß richy
Zuletzt geändert von Richard.Laing am 27. Jan 2011, 16:00, insgesamt 2-mal geändert.
REXvideo Videotutorials für Redaxo www.REXvideo.de
Webseite www.on-laing.de smokezig.de www.smokezig.de

Benutzeravatar
himmelreich
Beiträge: 51
Registriert: 1. Mär 2007, 09:56

Re: NEU: Addon TVSFEUser - Frontend-User-Login

27. Jan 2011, 15:40

Hallo Richard.Laing,

Danke für deine Antwort, ich verstehe aber nur Bahnhof.

Kannst du mir sagen was ich hier falsch mache?

Code: Alles auswählen

// Rechte des aktuellen Benuzers auslesen
$rechte = explode(",", $_SESSION['tvsfeuser']['feuser']['rights']);
Im voraus schon mal danke.

Gruß
Himmelreich

tecker2010
Beiträge: 36
Registriert: 12. Apr 2010, 11:54
Wohnort: Berlin
Kontaktdaten: ICQ Website

Re: NEU: Addon TVSFEUser - Frontend-User-Login

28. Jan 2011, 10:47

Mich würde mal das Changelog der kommenden Version interessieren :-)

Benutzeravatar
michaelwandel
Beiträge: 331
Registriert: 1. Jul 2010, 13:54
Wohnort: Köln
Kontaktdaten: Website

Re: NEU: Addon TVSFEUser - Frontend-User-Login

28. Jan 2011, 10:50

Na das ist einfach ;-)
Version 0.4:
- Einbeziehung von Offline-Seiten
- Codeverbesserungen durch Koala, Danke an dieser Stelle ;)
;-) Ist noch nicht viel geworden :D

Gruß, Michael

tecker2010
Beiträge: 36
Registriert: 12. Apr 2010, 11:54
Wohnort: Berlin
Kontaktdaten: ICQ Website

Re: NEU: Addon TVSFEUser - Frontend-User-Login

28. Jan 2011, 11:18

Das ging ja fix.

Auf der ersten Seite war mal von "Rechte allen Usern zuweisen" die Rede. Das gibts bislang noch nicht oder?

Aber ein cooles Add auf jeden Fall!

Benutzeravatar
michaelwandel
Beiträge: 331
Registriert: 1. Jul 2010, 13:54
Wohnort: Köln
Kontaktdaten: Website

Re: NEU: Addon TVSFEUser - Frontend-User-Login

28. Jan 2011, 11:33

Hi :)

Jaaaa, ist grad ruhig in der Agentur, da muß auch mal Zeit für ein bisschen tüfteln sein, das mit der Userrechten werde ich wohl doch mit reinnehmen, das kann ich selbst oft brauchen, ich setz mich gleich mal ran :D

Gruß, M ichael :)

tecker2010
Beiträge: 36
Registriert: 12. Apr 2010, 11:54
Wohnort: Berlin
Kontaktdaten: ICQ Website

Re: NEU: Addon TVSFEUser - Frontend-User-Login

28. Jan 2011, 11:39

Cool :-) Wollt schon selbst ein bisschen modifizieren.

Würde es sich evtl. anbieten die Spalte 'rights' in der user-Tabelle gegen eine 'role' zu tauschen, eine Zweite Tabelle mit Rollendefinitionen zu definieren und quasi jeden Benutzer an 1 oder mehrere Rollen zu binden?

Dann könnte man im Backend einen weiteren Reiter "Rollen" hinzufügen und dort die Rechte verwalten. Beim User dann einfach ein "Rolle XY dem User zuweisen" - Dropdown. Wäre im Grunde auch nicht all zu aufwendig.

Nur so eine Überlegung :-)

Benutzeravatar
himmelreich
Beiträge: 51
Registriert: 1. Mär 2007, 09:56

Re: NEU: Addon TVSFEUser - Frontend-User-Login

28. Jan 2011, 13:33

Hallo zusammen,

hab den Fehler bei der Artikelliste gefunden.
ich musste nur am Anfang der Modulausgabe ein session_start(); einfügen.

Moduleingabe

Code: Alles auswählen

<h1>Kategorie-ID:</h1>
<br />
Kategorie-ID: <input type="text" name="VALUE[1]" value="REX_VALUE[id="1" ifempty="0"]">
Modulausgabe

Code: Alles auswählen

<?php

// Artikelliste bei der nicht geschützte und für den aktuellen Benutzer freigegebene Artikel angezeigt werden.

if (!isset ($_SESSION)) {
  session_start();
}

// Rechte des aktuellen Benuzers auslesen
$rechte = explode(",", $_SESSION['tvsfeuser']['feuser']['rights']);


// Alle geschüzten Bereiche aus INI-Datei auslesen
$tvsfeuserIniFile = $REX['INCLUDE_PATH'] . "/addons/tvsfeuser/tvsfeuser.ini";
if (file_exists($tvsfeuserIniFile)) {
	$stringData = file_get_contents($tvsfeuserIniFile);
	$settings = parse_ini_file($tvsfeuserIniFile);
	$rights	= $settings['accessRestrictions'];
	$gesp_all = explode(",", $rights);
}


// Geschützte für aktuellen Benutzer nicht zugänglichen Artikel ermitteln	
$gesch = array_diff($gesp_all, $rechte);


if($REX['REDAXO'] != 1) {
	$cat = OOCategory::getCategoryById(REX_VALUE[1]); // hier die ID der Kategorie
	$articles = $cat->getArticles( true ); // Alle Artikel der Kategorie auslesen, die Online sind
	
	if ( is_array( $articles) && count( $articles) > 0) {
		echo "<ul>";
		foreach ( $articles as $article) {
			// Den aktuellen Artikel nicht verlinken
			if ( $article->getId() == REX_ARTICLE_ID) continue;
			
			// Startartikel ausblenden
			if ( $article->isStartPage()) continue;
			
			$artid = $article->getId();
			
			// Geschützte für aktuellen Benutzer nicht zugänglichen Artikel ausblenden
			if (in_array($artid, $gesch)) continue;
			
			echo "<li><a href=\"" . rex_getUrl($artid) . "\">" . $article->getName() . "</a></li>";
		}
		echo "</ul>";
	}
}
else
	echo "Alle Artikel der Kategorie REX_VALUE[1] ausgeben!";
?> 
Gruß
Himmelreich
Zuletzt geändert von himmelreich am 29. Jan 2011, 16:39, insgesamt 1-mal geändert.

Benutzeravatar
michaelwandel
Beiträge: 331
Registriert: 1. Jul 2010, 13:54
Wohnort: Köln
Kontaktdaten: Website

Re: NEU: Addon TVSFEUser - Frontend-User-Login

28. Jan 2011, 13:39

Hi :)

Ja buper, werde das mal ausprobieren und vielleicht (mit Deiner freundlichen Genehmigung) als zusätzliches Beispielmodul mit einpflanzen ?

Gruß, Michael :)

tecker2010
Beiträge: 36
Registriert: 12. Apr 2010, 11:54
Wohnort: Berlin
Kontaktdaten: ICQ Website

Re: NEU: Addon TVSFEUser - Frontend-User-Login

28. Jan 2011, 13:48

Nur zu!
BIn gespannt auf das Update :-)

Benutzeravatar
michaelwandel
Beiträge: 331
Registriert: 1. Jul 2010, 13:54
Wohnort: Köln
Kontaktdaten: Website

Re: NEU: Addon TVSFEUser - Frontend-User-Login

28. Jan 2011, 16:01

So,

die 0.4-er Version ist nun online: http://www.redaxo.de/180-0-addon-detail ... don_id=784

Hoffe es läuft soweit bei allen ;-)

Erfolgreich läuft es auf jeden Fall auf 4.2.1 und 4.3.2.

Gruß, Michael

Benutzeravatar
Richard.Laing
Beiträge: 2105
Registriert: 28. Aug 2005, 00:55
Wohnort: Brühl / Rheinland
Kontaktdaten: Website

Re: NEU: Addon TVSFEUser - Frontend-User-Login

28. Jan 2011, 16:26

hi michael
auf anhieb in 4.3.2 geklappt.
bestens.
gruß richy
REXvideo Videotutorials für Redaxo www.REXvideo.de
Webseite www.on-laing.de smokezig.de www.smokezig.de

Benutzeravatar
Koala
Beiträge: 1612
Registriert: 3. Okt 2005, 13:20

Re: NEU: Addon TVSFEUser - Frontend-User-Login

28. Jan 2011, 20:18

Achtung! Den Session-Start-Befehl niemals ohne vorherige Prüfung auf eine bereits gestartete Session verwenden:
himmelreich hat geschrieben:Modulausgabe

Code: Alles auswählen

<?php

// Artikelliste bei der nicht geschüzte und für den aktuellen Benutzer freigegebene Artikel angezeigt werden.

session_start();
So ists richtig:

Code: Alles auswählen

<?php

// Artikelliste bei der nicht geschüzte und für den aktuellen Benutzer freigegebene Artikel angezeigt werden.

if (!isset ($_SESSION)) {
  session_start();
}
<?php print $Footer; ?>

Sven

Ich würde ja die Welt verändern,
doch der Quellcode ist mir zu absurd!


REX 5 :: Tricks und Tipps
REX 5 :: Modulesammlung

Wiki zu Redaxo 3 und 4 (!nur noch im Webarchiv!)

Benutzeravatar
himmelreich
Beiträge: 51
Registriert: 1. Mär 2007, 09:56

Re: NEU: Addon TVSFEUser - Frontend-User-Login

29. Jan 2011, 16:42

Hallo zusammen,

Koala danke für den Hinweis hab es oben abgeändert.

michaelwandel würde mich freuen wenn du das Artikellistenmodul verwendest.

Gruß
Himmelreich

Benutzeravatar
himmelreich
Beiträge: 51
Registriert: 1. Mär 2007, 09:56

Re: NEU: Addon TVSFEUser - Frontend-User-Login

29. Jan 2011, 21:38

Hallo zusammen,

hier noch eine weitere Variante der Artikelliste mit folgenden Funktionen:
- REX_LINK_BUTTON zur einfachen Auswahl der Startartikel (inklusive Korrektur einer fehlerhaften Eingabe)
- Schriftersetzung des Artikelnamens mit sleightofhand
- Artikelbeschreibung aus den Metadaten

Moduleingabe:

Code: Alles auswählen

<b>Startartikel der Kategorie auswählen:</b>
<br />
REX_LINK_BUTTON[1]
Bei leerem Eingabefeld, wird automatisch der Startartikel der aktuellen Kategorieebene verwendet
Modulausgabe:

Code: Alles auswählen

<?php

// Artikelliste bei der nicht geschützte und für den aktuellen Benutzer freigegebene Artikel angezeigt werden.

if (!isset ($_SESSION)) {
  session_start();
}

// Rechte des aktuellen Benuzers auslesen
$rechte = explode(",", $_SESSION['tvsfeuser']['feuser']['rights']);


// Alle geschüzten Bereiche aus INI-Datei auslesen
$tvsfeuserIniFile = $REX['INCLUDE_PATH'] . "/addons/tvsfeuser/tvsfeuser.ini";
if (file_exists($tvsfeuserIniFile)) {
   $stringData = file_get_contents($tvsfeuserIniFile);
   $settings = parse_ini_file($tvsfeuserIniFile);
   $rights   = $settings['accessRestrictions'];
   $gesp_all = explode(",", $rights);
}


// Geschützte für aktuellen Benutzer nicht zugänglichen Artikel ermitteln   
$gesch = array_diff($gesp_all, $rechte);

if($REX['REDAXO'] != 1) {

	// Ermittlung der Kategorie ID
	if ("REX_LINK_ID[1]" != "") {
		$cat1 = OOCategory::getCategoryById(REX_LINK_ID[1]);
		
		// REX_LINK_ID[1] ist Startartikel ID welche in REX_LINK_ID[1] steht verarbeiten
		if ( $cat1->isStartPage()) $cat = OOCategory::getCategoryById(REX_LINK_ID[1]);
		
		// REX_LINK_ID[1] kein Startartikel -> suche Startartikel zu der in REX_LINK_ID[1] gespeicherten ID
		else $cat = OOCategory::getCategoryById($cat1->getValue('re_id'));
	}
	// leeres REX_LINK_ID[1] Feld -> ermittle Kategorie-ID bei dem das Modul eingetragen ist
	else $cat = OOCategory::getCategoryById($this->getValue("category_id"));
	
	// Alle Artikel der Kategorie auslesen, die Online sind
	$articles = $cat->getArticles( true );
   
	if ( is_array( $articles) && count( $articles) > 0) {
		foreach ( $articles as $article) {
			 // Den aktuellen Artikel nicht verlinken
			 if ( $article->getId() == REX_ARTICLE_ID) continue;
			 
			 // Startartikel ausblenden
			 if ( $article->isStartPage()) continue;
			 
			 $artid = $article->getId();
			 
			 // Geschützte für aktuellen Benutzer nicht zugänglichen Artikel ausblenden
			 if (in_array($artid, $gesch)) continue;
			 
			 // Ausgabe der Überschrift
			echo a561_sleightofhand(array(
				'text' => $article->getName(),
				'font' => 'futura.ttf', 
				'link' => rex_getUrl($artid),		
				'prefix' => '<h6>',
				'suffix' => '</h6>',
				'color' => array(255,153,0), 
				'mouseover' => array(255,153,0),
				'size' => '16',
				'spacing' => '1.6'
			));
			
			echo '<p>'.$article->getValue('art_description').' <a href="'.rex_getUrl($artid).'">Weiter</a></p>';
		}
	}
}
else
   echo "Alle Artikel der Kategorie REX_VALUE[1] ausgeben!";
?> 
Als kleines Dankeschön für das beste und einfachste Frontend-User-Login
Viel Spaß damit

Gruß
Himmelreich

stuttgarter
Beiträge: 224
Registriert: 18. Feb 2005, 14:00
Wohnort: stuttgart

Re: NEU: Addon TVSFEUser - Frontend-User-Login

4. Feb 2011, 12:24

Hallo

Ich bin immer noch begeistert von dem Addon ! dies vorne weg ! :lol:

zu meiner Frage, ich möchte einen Loginbereich für ca 40 Mitglieder mit unterschiedlichen Rechten erstellen...

Hier werden hunderte Seiten erstellt mit infos und ca. 2500 Dateien / Dokumente...

Nun sind ja Dateien / Dokumente nicht geschützt, das heisst wenn z.B. ein Mitglied einen Link eines Dokumentes irgendwo anders veröffentlicht , dann könnte diese Datei mit diesem Link jeder aufrufen...

Wie würdet ihr dieses Sache lösen?

Grüßle und Danke für eine Antwort!

Benutzeravatar
michaelwandel
Beiträge: 331
Registriert: 1. Jul 2010, 13:54
Wohnort: Köln
Kontaktdaten: Website

Re: NEU: Addon TVSFEUser - Frontend-User-Login

4. Feb 2011, 12:29

Hi ;-)

Tja, darüber habe ich mir auch schon den Kopf zerbrochen, habe aber noch nicht probiert, ob es was bringt das /files-Verzeichnis irgendwie rechtemäßig einzuschränken, denn sonst kann ja jeder den Dateilink weiterverteilen...

Da wäre ich auch für einen Denkansatz dankbar ;-)

Gruß und Danke für das Lob,

Michael :)

Tizian
Beiträge: 151
Registriert: 4. Apr 2008, 11:58
Wohnort: Bremen
Kontaktdaten: Website

Re: Navigation die User - Rechte berücksichtigt?

10. Feb 2011, 14:54

hallo michael,

super Add-On. danke dafür.

gibt es schon eine Navigation die die User - Rechte berücksichtigt?

habe versucht die artikelliste entsprechened "aufzubohren" – bin aber gescheitert…
schöne grüße
tizian
********************************
ansichtsache TM

Benutzeravatar
michaelwandel
Beiträge: 331
Registriert: 1. Jul 2010, 13:54
Wohnort: Köln
Kontaktdaten: Website

Re: NEU: Addon TVSFEUser - Frontend-User-Login

10. Feb 2011, 18:07

Hi Tizian,

mmh nein bisher noch nicht, der Ansatz ist bislang, die Navigation immer anzuzeigen aber in Abhängigkeit der Rechte den User "draufzulassen" oder auch nicht ;-) Aber die Navigation entsprechend auszugeben sollte problemlos möglich sein, schau doch mal in den Ansatz von "Himmelreich" auf der Seite 3 dieses Threads ;-)

Gruß, Michael :)

Tizian
Beiträge: 151
Registriert: 4. Apr 2008, 11:58
Wohnort: Bremen
Kontaktdaten: Website

Re: NEU: Addon TVSFEUser - Frontend-User-Login

11. Feb 2011, 14:06

danke, ja. habe auch schon versucht die rechte-abfrage in diversen navigationen unterzubringen …

ich weiß ja, das ich theoretisch nur diese beiden zeilen der lösung von "Himmelreich" ändern muß, damit nicht nur artikel in einer kategorie sondern auch in den unterkategorien berücksichtigt werden:

Code: Alles auswählen

       $cat = OOCategory::getCategoryById(34); // hier die ID der Kategorie
       $articles = $cat->getArticles( true ); // Alle Artikel der Kategorie auslesen, die Online sind
stehe nur leider gerade voll auf dem schlauch…
schöne grüße
tizian
********************************
ansichtsache TM

Vogelsang
Beiträge: 4
Registriert: 22. Jan 2011, 00:42

Re: NEU: Addon TVSFEUser - Frontend-User-Login

19. Apr 2011, 19:05

Moin,
das addon funktioniert soweit, allerdings kann ich keine Benutzer anlegen.

Benutzer anlegen => speichern => Es sind noch keine Benutzer vorhanden.

Wo liegt der Fehler?

Zurück zu „Allgemeines [R4]“