ilch Forum » Ilch CMS 2.X » Kritik und Verbesserungen » Pflichtfeld bei Registrierung

Geschlossen
  1. #1
    User Pic
    wagsch Mitglied
    Registriert seit
    31.03.2008
    Beitrge
    186
    Beitragswertungen
    2 Beitragspunkte
    Hallo an Alle.

    Ich kenne ich schon ewig und habe es damals als Clanscript genutzt.
    Nun nutze ich 2.0 für eine etwas andere Community.

    Habe mich schon ganz gut ins Script und Layout eingefuchst.
    Nun suche ich jedoch die Möglichkeit beim Registrieren ein Pflichtfeld anzugeben bzw zu verändern.
    Ist dies im Admincenter möglich? Wenn ja, wo?

    Oder muss ich selbst im Code was ändern und entsprechend die Datenbank erweitern, damit die Abfrage funktioniert?
    Habe damals oft was rumgebastelt. Aber auch immer mit Hilfe aus diesem Forum oder von Mairu.

    Spezifisch geht es Darum, dass ich beim Registrieren eine Kundennummer voraussetze, welche entsprechend eingeben werden muss.
    Die Registrierung ist per manueller Freigabe eingestellt, somit kann ich dann schauen ob die Kundennummer existiert und er wirklich ein Kunde ist um ihn dann frei zu geben.

    Danke vorab für eure Hilfe und Tipps. lcheln
    LG
    Carsten


    verwendete ilch Version: 2.1.x

    betroffene Homepage: damfafreun.de
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    BlackRomeo Moderator
    Registriert seit
    31.01.2014
    Beitrge
    145
    Beitragswertungen
    12 Beitragspunkte
    Nun ich könnte es mir so Vorstellen das man in der DB ein oder Zwei zeilen einfügt Zeile 1 ( Hinterlegte Kundennummern) Zeile 2 die eingegebene Kundennummer zum Abgleich der schon vorhanden Kundenummern.

    Und im Bereich Registrieren ein Bisschen Code hinzufügen für die Kundennummer abfrage.

    Sprich Kunde Registriert sich auf deiner Website Gibt Benutzername, Name, Nachname, evt Adresse,usw ein und am ende kommt dann das Feld Kundennummer.

    Da die Kundennummern in der DB hinterlegt sind kann eine Abfrage gestartet werden wo diesen Benutzer dann durch die entsprechende Kundenummer verifiziert.

    Im großen und ganzen müsstest du.
    > DB Zeilen und Abfrage KDN Hinterlegen
    > Registration Script umschreiben


    Falls etwas falsch ist könnt ihr mich gerne korrigieren
    Frag nicht  Du knntest eine Antwort erhalten

    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    wagsch Mitglied
    Registriert seit
    31.03.2008
    Beitrge
    186
    Beitragswertungen
    2 Beitragspunkte
    Ja, so grob habe ich mir das gedacht und auch heute angefangen umzusetzen.
    Das Feld wird zwar angezeigt, aber nicht in der Datenbank gespeichert.
    Ich werde noch wohl etwas dran rumfummeln müssen.
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    BlackRomeo Moderator
    Registriert seit
    31.01.2014
    Beitrge
    145
    Beitragswertungen
    12 Beitragspunkte
    ZitatZitat geschrieben von wagsch
    Ja, so grob habe ich mir das gedacht und auch heute angefangen umzusetzen.
    Das Feld wird zwar angezeigt, aber nicht in der Datenbank gespeichert.
    Ich werde noch wohl etwas dran rumfummeln müssen.


    Ja da kann ich dir leider nicht dabei Helfen so weit gehen meine Kenntnisse leider noch nicht.

    dir Drotzdem noch viel Erfolg kannst ja berichten ob es dann geklappt hat
    Frag nicht  Du knntest eine Antwort erhalten

    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    wagsch Mitglied
    Registriert seit
    31.03.2008
    Beitrge
    186
    Beitragswertungen
    2 Beitragspunkte
    ZitatZitat geschrieben von BlackRomeo
    ZitatZitat geschrieben von wagsch
    Ja, so grob habe ich mir das gedacht und auch heute angefangen umzusetzen.
    Das Feld wird zwar angezeigt, aber nicht in der Datenbank gespeichert.
    Ich werde noch wohl etwas dran rumfummeln müssen.


    Ja da kann ich dir leider nicht dabei Helfen so weit gehen meine Kenntnisse leider noch nicht.

    dir Drotzdem noch viel Erfolg kannst ja berichten ob es dann geklappt hat


    Mir würde schon helfen, die Struktur zu kennen, wo was stehen muß um es da und dort abzufragen. De Befehle der Abfragen kann man sich rauslesen oder googeln. Aber der Aufbau von ilch 2.0 ist mir noch ein Rätsel.
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Slipi ilch.de Design
    Registriert seit
    19.01.2018
    Beitrge
    770
    Beitragswertungen
    92 Beitragspunkte
    Hallo

    Ween du möchtest können wir uns in unserem TS treffen und ich erklär dir alles.
    Schreib mir einfach eine PN ann du zeit hättest.

    Oder du siehst dir die Video di unser RTX erstellt hat, in jedem Video erklärrt er dir den Aufbau eines Modul, die funktionen bzw aufgaben der einzellnen php usw. github.com/IlchCMS/Ilch-2.0/wiki/Video-Tutorials-von-RTX2070

    Slipi


    Zuletzt modifiziert von Slipi am 07.02.2021 - 11:40:26
    Grafiken | Layouts | OnePage
    www.sd-sdesign.at
    1 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    wagsch Mitglied
    Registriert seit
    31.03.2008
    Beitrge
    186
    Beitragswertungen
    2 Beitragspunkte
    So. Ich habe es mit einem Kumpel, der da etwas fitter ist, hinbekommen.
    Ich habe nun in bei der Registrierung ein zusätzliches Feld (in meinem Falle "Kundennummer").
    Diese wird in der Datenbank gespeichert.

    Dazu muss die Datenbank um diese Zeile erweitert werden. Habe dies in phpmyadmin gemacht.

    In der application\modules\user\views\regist\input.php habe ich im Code folgenden Zusatz anhand der Vorgaben von `name`ergänzt:

    <div class="form-group">
                    <label for="kundennummer" class="control-label col-lg-2">
                        <?=$this->getTrans('kundennummer') ?>:
                    </label>
    			    <div class="col-lg-8">
                        <input type="text"
                               class="form-control"
                               id="kundennummer"
                               name="kundennummer"
                               value="<?= $this->originalInput('kundennummer') ?>" />
               </div>
                </div>


    In der application\modules\user\models\User.php
    habe ich noch folgende Parameter hinzugefügt:

    protected $kundennummer;


    public function getKundennummer()
        {
            return $this->kundennummer;
        }
    
     public function setKundennummer($kundennummer)
        {
            $this->kundennummer = (string)$kundennummer;
    
            return $this;
        }


    Ich weiß jetzt ehrlich gesagt nicht, ob noch was fehlt. Wir waren heute in so vielen Dateien und Codeschnipseln und haben soviel rumprobiert und wieder rückgängig gemacht! ^^ Aber vielleicht halt es jemandem, der auch auf der Suche nach sowas ist.

    Nun mache ich mich noch dran, diese Kundennummer auch im admincenter zu sehen. Für den User selbst ist die Ansicht nicht weiter relevant. Die Kundennummer dient nur der Freischaltung.

    Update:
    Habe es nun so wie ich wollte.
    Im Admincenter wird mir nun in der Benutzerverwaltung zusätzlich die von mir verlangte Kundennummer angezeigt.
    Dazu habe ich Änderungen wie folgt vorgenommen:

    application\modules\user\views\admin\index\index.php
    Zeile 52
    <th><?=$this->getTrans('kundennummer') ?></th>


    und in Zeile 105
    <td><?=$this->escape($user->getKundennummer()) ?></td>


    und dann in der Modules\User\Mappers\User.php
    Zeile 58 - 70
       public function getUserByKundennummer($kundennummer)
        {
            $where = [
                'kundennummer' => (string)$kundennummer,
            ];
    
            $users = $this->getBy($where);
    
            if (!empty($users)) {
                return reset($users);
            }
    
            return null;


    Zeile 128 mit
    'kundennummer'

    ergänzt

    Zeile 224 -225
            if (isset($userRow['kundennummer'])) {
                $user->setKundennummer($userRow['kundennummer']);


    Zeile 331
    $kundennummer = $user->getKundennummer();


    Zeile 345 - 346
    		if (!empty($kundennummer)) {
                $fields['kundennummer'] = $user->getKundennummer();


    Ich weiß allerdings nicht ob alle Änderungen nötig waren?! Habe halt da Kundennummer hinzugefügt wo es Abfragen bezüglich dem User gibt.
    Falls es Änderungen sind die unnötig oder "gefährlich" sind, wäre ich für eine Info dankbar.. lcheln


    Zuletzt modifiziert von wagsch am 08.02.2021 - 02:53:23
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    wagsch Mitglied
    Registriert seit
    31.03.2008
    Beitrge
    186
    Beitragswertungen
    2 Beitragspunkte
    Zur Vervollständigung der Codeschnipsel noch den Rest, den ich heute Dank Corian umsetzen konnte:

    Modules\User\Controllers\regist.php

    Pflichtabfrage in Zeile 64 eingefügt
    'kundennummer' => 'required|integer|unique:users,kundennummer|size:13,string',


    Damit wird sichergestellt, dass die Kundennummer eingegeben wird, eine Zahl ist, nicht schon vergeben ist und 13 stellig sein muss.

    Damit die Kundennummer auch an die Datenbank übergeben wird ist in Zeile 104 noch folgendes hinzuzufügen:
    ->setKundennummer($this->getRequest()->getPost('kundennummer'))


    des Weiteren stellte ich in meinem Testwahnsinn fest, dass ich als Admin keine Mail bekomme, wenn sich jemand registriert und auf Freischaltung wartet. Bin ja schließlich nicht 24/7 im admincenter. zwinker

    Damit das nun passiert habe ich (dank Corian) In Zeile 151 noch folgenden Code gesetzt

     if ($this->getConfig()->get('regist_setfree') == 1) {
                        $mail = new \Ilch\Mail();
                        $mail->setFromName($this->getTranslator()->trans('automaticEmail'))
                            ->setFromEmail($this->getConfig()->get('standardMail'))
                            ->setToName('Admin')
                            ->setToEmail($this->getConfig()->get('standardMail'))
                            ->setSubject($this->getTranslator()->trans('newuseradmin'))
                            ->setMessage($this->getTranslator()->trans('newuseradmintxt'))
                            ->send();
                    }


    Die Begriffe für den Translator habe ich natürlich auch definiert.

    user\translations\de.php

    am Ende der Definitionen eingefügt.
    'newuseradmin' => 'Freischaltung fr deine Webseite',
    'newuseradmintxt' => 'Ein neuer Benutzer mchte freigeschaltet werden.',


    Kann natürlich jeder definieren wie er möchte. lcheln

    So, dass dürfte es gewesen sein.
    LG


    Zuletzt modifiziert von wagsch am 10.09.2021 - 15:01:27
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    wagsch Mitglied
    Registriert seit
    31.03.2008
    Beitrge
    186
    Beitragswertungen
    2 Beitragspunkte
    Mit Version 2.1.43 wurden wohl betroffene Codes überschrieben! Also ACHTUNG bei einem update, bzw vorher Sicherungen machen.
    Gott sei Dank finde ich hier nun noch meine eigenen Codeschnipsel! zwinker
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurck zu Kritik und Verbesserungen

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten