Loginumbau und Modul für bestimmte User

Hast du Probleme Admidio einzurichten? Hier kannst du Fragen rund um die Einrichtung stellen.
rohorubo
Beiträge: 20
Registriert: 13. Mär 2008, 12:09

Loginumbau und Modul für bestimmte User

Beitrag von rohorubo »

hi leutz

seit kurzem bin auch ich anwender von admidio. echt klasse tool!!

nun habe ich beim personalisieren probleme resp. fragen.

ich habe admidio in einem geschützen verzeichnis (ht.access) installiert. dh. das ein mitglied unseres vereins sich erst auf diesem verzeichnis einloggen muss, damit er überhaupt auf die interne seite kommt.

danach hat er einen link auf das adressbuch (ich benötige für die mitglieder nur das modul adressbuch, sonst nichts). wenn er nun darauf klickt, kommt er sofort zum login-screen (habe die admidio.html dementsprechend geändert).

Nun das problem...ich möchte, dass er nach dem login auf die modulübersicht kommt...bei mir erscheint jedoch wieder der login-screen. wie eine endlosschlaufe. wo muss ich admidio mitteilen, dass nach dem login auf die modulübersicht gewechselt wird?

Einfach gesagt: Adressbuchlink klicken --> Login erscheint --> einloggen --> Modulübersicht erscheint --> wenn Logout gemacht --> Login erscheint wieder

2. frage:
da ich der einzige bin, der änderungen machen darf, habe ich sämtliche module für die vereinsmitglieder gesperrt. gibt es eine möglichkeit, dass wenn ich mich als admin einlogge, das modul "mail" in der modulübersicht erscheint, damit ich dieses benützen kann. wenn das vereinsmitglied sich einloggt, soll das modul aber nicht ersichtlich sein.

besten dank für eure hilfe und tipps.

greez from switzerland
rohorubo
Benutzeravatar
fasse
Administrator
Beiträge: 6163
Registriert: 12. Nov 2005, 16:06

Beitrag von fasse »

Hallo Rohorubo,

zu Frage 1: Da müsstest du an der Stelle, wo du die Weiterleitung zum Logindialog eingebaut hast, mit der PHP-Variablen $g_session_valid arbeiten. Ist diese == false, so musst du weiterleiten, im anderen fall nicht.

zu Frage 2: Die kannst du mit der PHP-Funktion isWebmaster() erreichen. Auch hier muss dann die entsprechende Prüfung rein:

Code: Alles auswählen

if(isWebmaster())
{
     zeige E-Mail ...
}
Gruß
Fasse
rohorubo
Beiträge: 20
Registriert: 13. Mär 2008, 12:09

Beitrag von rohorubo »

hi fasse

ich habe die weiterleitung in der admidio.html gemacht...

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="refresh" content="0; url=adm_program/system/login.php">
</head>

Dort müsste ich mit "$g_session_valid" arbeiten? Falls ja, wie genau muss ich dieses einbinden. Oder muss ich dies in der login.php machen? Diese habe ich bis jetzt nicht bearbeitet.

zur antwort 2:
wo genau müsste ich diese Webmaster-Funktion einbauen?

Besten Dank für Deine Hilfe ;-)

greez
rohorubo
matzman2000
Former team member
Beiträge: 1087
Registriert: 2. Sep 2007, 17:12
Wohnort: Itzstedt
Kontaktdaten:

Beitrag von matzman2000 »

rohorubo hat geschrieben:zur antwort 2:
wo genau müsste ich diese Webmaster-Funktion einbauen?

Besten Dank für Deine Hilfe ;-)

greez
rohorubo
Hallo Rohorubo,

Datei: ADMIDIO\adm_program\index.php

Die Prüfung muss in jeder Zeile eingebaut werden, in der das entsprechende Modul aufgerufen wird. Beispiel:

Code: Alles auswählen

if($g_preferences['enable_announcements_module'] == 1)
Direkt dahinter kann die Prüfung auf den Webmaster geschehen (oder auch mit der jeweiligen Abfrage kombiniert werden)...

Gruss,
Matze
rohorubo
Beiträge: 20
Registriert: 13. Mär 2008, 12:09

Beitrag von rohorubo »

hallo matzmann

ich habe es mal eingebunden, erhalte allerdings einen parse error.

so hab ichs eingebunden:

if($g_preferences['enable_mail_module'] == 1)
if(isWebmaster())
{
zeige E-mail ...
}

oder muss ich es auf einer zeile drin haben? habe anstatt "zeige E-Mail" auch mit meiner richtigen adresse ausprobiert, dann erhalte ich auch einen unexpected '@'-Fehler.

kannst du mir evtl. weiterhelfen?

thx & grüsse
rohorubo
Benutzeravatar
fasse
Administrator
Beiträge: 6163
Registriert: 12. Nov 2005, 16:06

Beitrag von fasse »

Wenn du mehrere Bedingungen verknüpfen willst, musst du das mit && machen:

Code: Alles auswählen

if($g_preferences['enable_mail_module'] == 1
&& isWebmaster())
{
zeige E-mail ...
} 
matzman2000
Former team member
Beiträge: 1087
Registriert: 2. Sep 2007, 17:12
Wohnort: Itzstedt
Kontaktdaten:

Beitrag von matzman2000 »

rohorubo hat geschrieben:zeige E-mail ...
... das ist im übrigen der Code, der sowieso schon an der Stelle im Programm steht, also Verlinkung des Modules auf der Übersichtsseite anzeigt!
rohorubo
Beiträge: 20
Registriert: 13. Mär 2008, 12:09

Beitrag von rohorubo »

glaub, ich bin doof....erhalte immer noch fehlermeldung.

habs so eingebunden in meiner adm_program/index.php:

if($g_preferences['enable_mail_module'] == 1
&& isWebmaster())
{
zeige E-mail ...
}

jetzt zeigt er mir einen unexpected T_STRING on line 156 an. Zeile 156 ist der Befehl: "zeige E-mail ...".

Was mach ich falsch? Muss ein bestimmte Vorgabe berücksichtigen beim einrücken der Zeilen oder fangen alle unter "if" an.

Danke!!
matzman2000
Former team member
Beiträge: 1087
Registriert: 2. Sep 2007, 17:12
Wohnort: Itzstedt
Kontaktdaten:

Beitrag von matzman2000 »

Dann hast Du nicht verstanden, was ich als Antwort geschrieben hatte... :roll:

Code: Alles auswählen

if($g_preferences['enable_mail_module'] == 1 && isWebmaster())
{
echo "
<div style=\"text-align: left; width: 40; float: left;\">
So wäre es richtig, der Quelltext geht natürlich an der Stelle noch weiter. Mit "zeige E-mail ..." ist wirklich der RICHTIGE Quelltext gemeint, der da von Anfang an steht. Das sollst Du nicht in den Quelltext zusätzlich eintragen - daher rührt auch die Fehlermeldung... :wink:

Gruss,
Matze
rohorubo
Beiträge: 20
Registriert: 13. Mär 2008, 12:09

Beitrag von rohorubo »

*lach*....jetzt hab auch ichs verstanden mit "zeige email"... :oops:

fehlermeldung ist wech...allerdings wird das mailmodul nicht angezeigt, wenn ich mich als webmaster einlogge.... :(
rohorubo
Beiträge: 20
Registriert: 13. Mär 2008, 12:09

Beitrag von rohorubo »

fasse hat geschrieben:Hallo Rohorubo,

zu Frage 1: Da müsstest du an der Stelle, wo du die Weiterleitung zum Logindialog eingebaut hast, mit der PHP-Variablen $g_session_valid arbeiten. Ist diese == false, so musst du weiterleiten, im anderen fall nicht.

Gruß
Fasse
Hallo fasse

meine admidio.html sieht folgendermassen aus:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="refresh" content="0; url=adm_program/system/login.php">
</head>
<body>
Wenn Sie nicht automatisch weitergeleitet werden, dann klicken Sie <a href="adm_program/system/login.php">hier</a> !
</body>
</html>

d.h. ich müsste gemäss deiner antwort $g_session_valid in dieser datei damit arbeiten...ist das korrekt? falls ja, wo setze ich diesen befehl? sorry, soweit reichen meine kenntnisse nicht, obwohl ich gerade dabei bin, mich in das thema einzulesen...;-)

danke
rohorubo
Beiträge: 20
Registriert: 13. Mär 2008, 12:09

Beitrag von rohorubo »

jetzt dachte, es funzt...war aber fehlalarm.

komischerweise erhalte ich heute eine fehlermeldung:

Fatal error: Call to undefined function: iswebmaster() in /home/www/web361/html/subdomains/intaern/adraessbuech/adm_program/index.php on line 153

diese erscheint, wenn ich den code wie folgt einbinde:

if($g_preferences['enable_mail_module'] == 1 && isWebmaster())
{
echo "
<div style=\"text-align: left; width: 40; float: left;\">
<a href=\"$g_root_path/adm_program/modules/mail/mail.php\">
<img style=\"position: relative; top: 5px;\" src=\"$g_root_path/adm_program/images/mail_open_big.png\" border=\"0\" alt=\"E-Mail\" />
</a>
</div>

mache ich daraus

if($g_preferences['enable_mail_module'] == 1 && isWebmaster)
{
echo "
<div style=\"text-align: left; width: 40; float: left;\">
<a href=\"$g_root_path/adm_program/modules/mail/mail.php\">
<img style=\"position: relative; top: 5px;\" src=\"$g_root_path/adm_program/images/mail_open_big.png\" border=\"0\" alt=\"E-Mail\" />
</a>
</div>

erscheint das Modul Email wieder, allerdings bereits vor dem login und auch nach dem login mit meinem "nur-lese-user". also scheint so der check ob webmaster oder nicht nicht zu funzen.

was mach ich falsch?... :lol:
matzman2000
Former team member
Beiträge: 1087
Registriert: 2. Sep 2007, 17:12
Wohnort: Itzstedt
Kontaktdaten:

Beitrag von matzman2000 »

Hallo nochmal,

ersetze bitte die Abfrage

Code: Alles auswählen

isWebmaster()
durch

Code: Alles auswählen

hasRole("Webmaster")
Dann sollte es funktionieren.

@fasse: Die Function isWebmaster gibt es in der Version 1.4.6 nicht (nur isModerator), hast Du die vielleicht in die Version 2.0 eingebaut und Dich bei der Anwtort in den Versionen vertan? :wink:
rohorubo
Beiträge: 20
Registriert: 13. Mär 2008, 12:09

Beitrag von rohorubo »

matzmann

werde es wohl bleiben lassen.

mit hasRole("Webmaster")) erhalte ich nun einen T_STRING-Fehler.

Da ich aber beim Lese-User keine Email-Adresse hinterlegt habe, kann ich das Modul Email anzeigen lassen, einen Vermerk, dass dies nur mit Administrator-Login benutzbar ist, und kann es so nutzen.

Allerdings stellt sich jetzt bei mir das Problem, dass wenn ich das Mail-Modul öffne, ich keinen Mitgliedergruppe auswählen kann, welche ich eine Email schreiben möchte....mal schauen, was hier passiert ist. Wenn das funzt, kann ich so damit leben.

schön wäre es jetzt noch, wenn beim aufruf des adressbuchlinks zuerst ein login gemacht werden muss und erst danach, bei erfolgreichem login, die Modulübersichtseite käme. Fasse hat mir zwar einen Tipp gegeben, aber ich bin nicht sicher, wo ich dies genau einbinden muss.

hassu evtl. eine Ahnung?

Danke :lol: :oops:
matzman2000
Former team member
Beiträge: 1087
Registriert: 2. Sep 2007, 17:12
Wohnort: Itzstedt
Kontaktdaten:

Beitrag von matzman2000 »

rohorubo hat geschrieben:mit hasRole("Webmaster")) erhalte ich nun einen T_STRING-Fehler.
Nana, wer wir denn die Flinte gleich ins Korn schmeissen? Kontrolliere bitte, ob Du alles richtig geschrieben hast. Ich habe das kurz getestet, bei mir ohne Probleme. Zur Sicherheit nochmal die Zeile für die Ankündigungen:

Code: Alles auswählen

if($g_preferences['enable_announcements_module'] == 1 && hasRole("Webmaster"))
Für Dein zweites Problem empfehle ich Dir in die Datei ADMIDIO\adm_program\modules\listslists.php in die Zeile 37 folgenden Code mit aufzunehmen:

Code: Alles auswählen

require("../../system/login_valid.php");
Damit ist das List-Modul nur nach vorherigem Login aufrufbar!

Wenn Du weiter an der Probleme hast: Ein Link, um sich das anzugucken hat noch nie geschadet... :wink:
Antworten