Frontenduser Profil / persönliche Daten

mko
Beiträge: 123
Registriert: Di 1. Feb 2005, 10:26
Wohnort: Österreich
Kontaktdaten:

Beitrag von mko » Do 27. Jul 2006, 18:18

Ich habe nur das Modul "Passwort Ändern" eingebaut und bekomme nach Eingabe von Passwort alt und 2x Passwort neu eine Messagebox, wo ich aufgefordert werden, den User auszuwählen für den ich das Passwort ändern will.

Eigenartigerweise bin ich mit User1 eingeloggt und zur Auswahl stehen root und sysadmin ???

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Mo 31. Jul 2006, 14:00

Ich verstehe gerade kein Wort, bitte suche mal nach dem Original-Modul von mir und baue dies ein...

"Change Password"

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

mko
Beiträge: 123
Registriert: Di 1. Feb 2005, 10:26
Wohnort: Österreich
Kontaktdaten:

Beitrag von mko » Mo 31. Jul 2006, 17:24

Ich versuche es nochmal...
Sobald ich dieses Modul aufrufe und das alte Passwort und 2x das neue Passwort eingebe, erscheint eine Msg-Box mit der Frage für welchen User ich das Passwort ändern will. In dieser Box sind 2 User zum Auswählen, sysadmin und root. Eigenartigerweise bin ich aber mit User1 eingeloggt.

Klicke ich auf abbrechen (x), wird das Passwort für User1 geändert. Wähle ich sysadmin aus, eben dieses. Auswahl Root-User hat keine Auswirkung, weil es den User in Contenido nicht gibt.

Liegt es womöglich an diversen Cookies, die am PC verspeichert sind?

Um diese Funktion meinen Usern zur Verfügung zu stellen zu können, sollte diese verwirrende Auswahl aber nicht vorhanden sein ?!?!?

Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname  :      Passwort ändern
* Author(s)   :     HerrB
* Copyright   :     HerrB
* Created     :     31.03.2006
************************************************/

cInclude("classes", "class.frontend.users.php");

$frontendusers = new FrontendUserCollection;
$frontendusers->select("idclient = '$client' AND username = '".urlencode($auth->auth[uname])."'");
if ($frontenduser = $frontendusers->next()) {
   $idfrontend    = $frontenduser->get("idfrontenduser");

   $strMsg = "";

   if ($_REQUEST["action"] == "save") {
      if ($_REQUEST["oldpw"] != "" || $_REQUEST["newpw1"] != "" || $_REQUEST["newpw2"] != "") {
         if ($_REQUEST["oldpw"] == "") {
            $strMsg = mi18n("If changing the password please provide the current password.");
         } else if ($_REQUEST["newpw1"] == "" || $_REQUEST["newpw2"] == "") {
            $strMsg = mi18n("If changing the password please specify new password and retype the new password to avoid typos.");
         } else if (md5($_REQUEST["oldpw"]) != $frontenduser->get("password")) {
            $strMsg = mi18n("Altes Passwort ist nicht richtig.");
         } else if ($_REQUEST["newpw1"] != $_REQUEST["newpw2"]) {
            $strMsg = mi18n("Das neue Passwort ist nicht identisch.");
         } else if (strlen($_REQUEST["newpw1"]) > 24) {
             $strMsg = mi18n("Das neue Passwort darf max. 22 Zeichen lang sein.");
         } else if (strlen($_REQUEST["newpw1"]) < 6) {
             $strMsg = mi18n("Das neue Passwort muss mind. 6 Zeichen lang sein.");
         }
      }
 
      if ($strMsg == "" && $_REQUEST["oldpw"] != "") {
        $frontenduser->set("password", $_REQUEST["newpw1"]);
        $frontenduser->store();
        $strMsg = mi18n("Änderung wurde gespeichert.");
      } else {
        $strMsg = '<font color="#FF0000">'.$strMsg.'</font>';
      }
   }

   echo '<form name="frmProfile" method="post" action="'.$auth->url().'">',chr(10);
   echo '  <table cellspacing="0"> ',chr(10);
   echo '    <tr>',chr(10);
   echo '      <td colspan="2">'.mi18n("").'</td>',chr(10);
   echo '    </tr>',chr(10);
   if ($strMsg != "") {
      echo '    <tr>',chr(10);
      echo '      <td colspan="2">'.$strMsg.'</td>',chr(10);
      echo '    </tr>',chr(10);
   }
   echo '    <tr>',chr(10);
   echo '    <tr>',chr(10);
   echo '      <td style="width: 150px;">'.mi18n("Altes Passwort:").'</td>',chr(10);
   echo '      <td class="detail_text"><input name="oldpw" type="password" size="24" maxlength="24"></td>',chr(10);
   echo '    </tr>',chr(10);
   echo '    <tr>',chr(10);
   echo '      <td style="width: 150px;">'.mi18n("Neues Passwort:").'</td>',chr(10);
   echo '      <td><input name="newpw1" type="password" size="24" maxlength="24"></td>',chr(10);
   echo '    </tr>',chr(10);
   echo '    <tr>',chr(10);
   echo '      <td style="width: 150px;">'.mi18n("Passwort wiederholen:").'</td>',chr(10);
   echo '      <td><input name="newpw2" type="password" size="24" maxlength="24"></td>',chr(10);
   echo '    </tr>',chr(10);
   echo '    <tr>',chr(10);
   echo '      <td style="width: 150px;">&nbsp;</td>',chr(10);
   echo '      <td><input type="hidden" name="action" value="save"><input class="submit" name="subscribe" type="submit" id="subscribe" value="'.mi18n("OK").'"></td>',chr(10);
   echo '    </tr>',chr(10);
   echo '  </table>',chr(10);
   echo '</form>',chr(10);
}
?>

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Di 1. Aug 2006, 09:53

Ähm... diese Meldung dürfte von Deinem Browser stammen - wenn Du über das Modul Dein Passwort änderst, ist natürlich die aktuelle Session, mit der Du im Frontend angemeldet bist ungültig. Wenn es konfiguriert ist, solltest Du wieder auf der Frontend-Login-Seite landen (wenn dem nicht so ist, sollte man es einbauen).

Ich nehme mal an, dass Du über Deinen Browser Passwörter speicherst - die Meldung kommt von eben diesem...

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

mko
Beiträge: 123
Registriert: Di 1. Feb 2005, 10:26
Wohnort: Österreich
Kontaktdaten:

Beitrag von mko » Di 1. Aug 2006, 12:40

Danke für die Unterstützung....

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Di 1. Aug 2006, 15:36

mko hat geschrieben:Danke für die Unterstützung....
Ist Dein Problem damit gelöst oder ist das Kritik?

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

mko
Beiträge: 123
Registriert: Di 1. Feb 2005, 10:26
Wohnort: Österreich
Kontaktdaten:

Beitrag von mko » Do 3. Aug 2006, 06:44

Natürlich gelöst - lag am Firefox, der alle User/Passwortdaten, die gespeichert sind, zur Auswahl stellt.

Also Dank und keine Kritik!

grubi
Beiträge: 9
Registriert: Fr 4. Aug 2006, 08:58
Wohnort: Baden, Österreich
Kontaktdaten:

Beitrag von grubi » Fr 4. Aug 2006, 09:03

Guten Morgen!

Ich darf nach 4 Tagen ausführlichem "Centenido-Testing" mal meinen ersten Post hier im Forum loslassen. :)
Nachdem ich ganz begeistert bin, was das Ding alles zusammen bringt, habe ich eine Frage zum feuserliste-Modul.

Und zwar würde ich dieses bei der Abfrage gerne so Einschränken, dass nur die Daten von EINEM User ausgegeben werden (Soll keine Liste aller User sondern eine Detailansicht jedes einzelnen Users werden, aus Platzgründen). Die SQL-query liegt bereits fertig vor mir, nur komm ich leider nicht drauf, wo man diesen im Output-Script einfügen könnte, damit das Modul nur den EINEN User "herausfiltert".

Any help?
DANKE
DANIEL

PS: Ich muss dazu sagen, ich bin was PHP, MySQL und Contenido-Module angeht noch etwas wackelig auf den Beinen :x

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Fr 4. Aug 2006, 10:12

Die Frage ist, woher Du die ID des Frontend Users nimmst. Wenn der Nutzer angemeldet ist und er seine Angaben sehen soll, ist das einfach:

Code: Alles auswählen

$oFEUser = new FrontendUser;
$oFEUser->loadByPrimaryKey($auth->auth["uid"]); # Ist ja nur einer und der muss existieren, da nur in geschütztem Bereich sinnvoll

echo $oFEUser->getProperty("titel", "address");
echo $oFEUser->getProperty("vorname", "address");
echo $oFEUser->getProperty("Nachname", "address");
echo $oFEUser->getProperty("postleitzahl", "address");
echo $oFEUser->getProperty("ort", "address");
echo $oFEUser->getProperty("strasse", "address");
echo $oFEUser->getProperty("land", "address");
echo $oFEUser->getProperty("geboren", "address");
echo $oFEUser->getProperty("telefon", "address");
echo $oFEUser->getProperty("fax", "address");
echo $oFEUser->getProperty("mobil", "address");
echo $oFEUser->getProperty("email", "address");
echo $oFEUser->getProperty("homepage", "address");
Wie im Code erwähnt, nur in einer geschützten Kategorie und mit Aufruf nach Frontend-Login sinnvoll. Die verfügbaren Informationen sind abhängig von Deinen Plugins.

Code stammt aus dem FrontendUser-Edit-Modul aus diesem Thread.

Wenn Du eine Liste der Nutzer hast, musst Du die ID übergeben und statt $auth->auth["uid"] einsetzen (hier ist eine vorherige Überprüfung, ob die übergebene ID numerisch ist, eine super Idee... [is_numeric]).

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

grubi
Beiträge: 9
Registriert: Fr 4. Aug 2006, 08:58
Wohnort: Baden, Österreich
Kontaktdaten:

Beitrag von grubi » Fr 4. Aug 2006, 10:37

HerrB hat geschrieben:Die Frage ist, woher Du die ID des Frontend Users nimmst.
Hallo!
Danke für die rasche Antwort!
Nein, die ID sollte er möglichst aus einem Link nehmen (bzw. ist es vll. besser, wenn einfach im Code der aufgerufenen Seite die Bedingung steht, dass nur eine bestimmte ID aufgerufen wird).
Man soll schlussendlich eine Userliste vor sich haben, die pro Zeile Vorname, Nachname und einen Link enthält (die originale feuserliste, bei der nur 3 Felder aufscheinen. Das hätte ich schon mal). Wenn der Link geklickt wird, soll man auf einer neuen Seite ALLE Daten dieser Person sehen können (also z.B. Vorname, Nachname, Strasse, PLZ, Ort, Tel., usw.). Diese sollten nicht bearbeitbar sein (für das gibts ja feuser-edit auf einer eigenen Seite).

Ist das evtl. relativ einfach realisierbar?

Gruß,
Daniel

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Fr 4. Aug 2006, 10:59

Das ist ja im Prinzip in den Modulen aus diesem Thread (erste Seite) realisiert. Du musst nur noch bei der Ausgabe der Empfänger einen Link auf einen "Detail-Anzeige"-Artikel ergänzen. Dieser Artikel bekommt das Modul von oben, angepasst nur um die Beachtung der ID als Parameter:

Code: Alles auswählen

cInclude ("classes", "class.frontend.users.php");

$idrcp = $_REQUEST["idrcp"];
if (is_numeric($idrcp)) {
   $oFEUser = new FrontendUser; 
   $oFEUser->loadByPrimaryKey($idrcp);

   ... 
}
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

pommes
Beiträge: 60
Registriert: So 21. Mai 2006, 19:05
Kontaktdaten:

Beitrag von pommes » Fr 11. Aug 2006, 19:54

Hi,

kann man hier auch beim frontenduser edit ein select Feld einbauen ?

Code: Alles auswählen

$oTpl->set('d', 'FIELDTITLE', mi18n("Betriebsart"));
$oTpl->set('d', 'FIELDTYPE', 'select');
$oTpl->set('d', 'FIELDNAME', 'Betriebsart');
$oTpl->set('d', 'FIELDID', 'betriebsart');
$oTpl->set('d', 'FIELDVALUE', $_REQUEST["Betriebsart"]);
$oTpl->next();
Ich bekomme nur ein normales Textfeld.
Irgenwo muss ich doch noch die einzelnen Optionen angeben.

Hat mir jemand da bitte einen Tip ?

Auch bekomme ich bei der frontenduser edit Seite bei der Ausgabe bei Nachname immer noch ein m davor, also "mNachname".
Weder im Code von frontenduser edit noch sonstwo kann ich es entdecken. Kommt es vielleicht von der Datenbank ?
Im Backend unter Frontend, wird es normal angezeigt, nur im Frontend nicht.

Gruß
Pommes

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Mo 14. Aug 2006, 09:20

Zum mNachname: Bitte keine Cross-Postings, das hast Du an anderer Stelle nochmal gefragt (und dort beantwortet bekommen).

Zur Liste:
So ohne weiteres ist es nicht möglich. Das Template enthält ein <input type="FIELDTYPE" name="FIELDNAME"... >. Du brauchst natürlich ein <select ...>.

Da hast Du dann ein wenig Arbeit vor Dir, Du müsstest im Template das ganze <input...>-Konstrukt durch einen generischen Platzhalter ersetzen (z.B. {FIELD}).

Und dann im Modul das Feld komplett erzeugen, d.h.

Code: Alles auswählen

$oTpl->set('d', 'FIELD', '<input type="text" name="nachname" ...>');
oder
$oTpl->set('d', 'FIELD', '<select name="betriebsart" ...>...</select>');
Das mit dem <select...> ist nur ein Beispiel. Du solltest die Select-Box über die Contenido-Funktionen erzeugen, siehe z.B. contenido/includes/include.newsletter_menu.php und dort nach cHTMLSelect.

Bitte setze Dich ein wenig mit den Modul-Templates und der Technik auseinander...

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

MediaMuchacho
Beiträge: 71
Registriert: Do 3. Nov 2005, 15:01
Wohnort: Ulm
Kontaktdaten:

seltsam...

Beitrag von MediaMuchacho » Mo 21. Aug 2006, 14:54

verstehe ich das richtig...das modul ist für die "Frontenduser" Datenerweiterung...

Nachdem ich das mal zu installieren begonnen habe ist mir bei Schritt 1. folgendes aufgefallen. Bei mir erscheinen nicht im Bereich Frontenduser neue Felder sondern im Bereich "Benutzer" also normale User des Backend...

Ist das gewollt? Ich hab den leisen Verdacht es ist nicht gewollt oder irgendwie missverstehe ich etwas. Mein System ist ein Contenido 4.6.8
Ich hab an den Daten nichts geändert wollte es mal testen, da ich etwas ähnliches benötige. Und daran gedacht habe es mit einem Newsletteranmeldeformular zu kombinieren. ( Hätte das dann programmiert und veröffentlicht )

Kann mir wer weiterhelfen?
danke
gruß
muchacho
Media in Vita - Medienagentur
Webdesign, Programmierung, Design

pommes
Beiträge: 60
Registriert: So 21. Mai 2006, 19:05
Kontaktdaten:

Re: seltsam...

Beitrag von pommes » Mo 21. Aug 2006, 15:38

MediaMuchacho hat geschrieben:verstehe ich das richtig...das modul ist für die "Frontenduser" Datenerweiterung...

Nachdem ich das mal zu installieren begonnen habe ist mir bei Schritt 1. folgendes aufgefallen. Bei mir erscheinen nicht im Bereich Frontenduser neue Felder sondern im Bereich "Benutzer" also normale User des Backend...

Ist das gewollt? Ich hab den leisen Verdacht es ist nicht gewollt oder irgendwie missverstehe ich etwas. Mein System ist ein Contenido 4.6.8
Ich hab an den Daten nichts geändert wollte es mal testen, da ich etwas ähnliches benötige. Und daran gedacht habe es mit einem Newsletteranmeldeformular zu kombinieren. ( Hätte das dann programmiert und veröffentlicht )

Kann mir wer weiterhelfen?
Hallo MediaMuchacho,

hast du es unter contenido/plugins gespeichert ?
Also da solltest Du einen Ordner namens frontendusers haben und in diesem die ganzen Ordner des Modules, wie es auch in der Anleitung steht.
Das mit der Newsletteranmeldung gibt es schon, finde gerade nur nicht die Seite.

Gruß
Pommes

Gesperrt