1. Wenn du hier im Forum ein neues Thema erstellst, sind schon Punkte aufgeführt die du ausfüllen musst. Das dient im Allgemeinen dazu die notwendigen Informationen direkt mit der Frage bereitzustellen.
    Da in letzter Zeit immer wieder gerne das Formular gelöscht wurde und erst nach 3 Seiten Nachfragen die benötigten Infos für eine Hilfe kommen, werde ich nun jede Fragestellung die nicht einmal annähernd das Formular benutzt, sofort in den Sondermüll schicken.
    Füllt einfach die abgefragte Daten aus und alle können euch viel schneller helfen.
    Information ausblenden

XF2.1 Userprofil unvollständig. User "zwingen" zur vervollständigung

Dieses Thema im Forum "Fehler, Fragen und Antworten" wurde erstellt von Tamara-Jasmin, 11. Aug. 2019.

  1. Tamara-Jasmin

    Tamara-Jasmin Aktives Mitglied Lizenzinhaber

    Hallöchen allesamt!

    Im laufe der Zeit musste einiges am Userprofil verbessert werden - aber auch erweitert (individuelle Nutzerfelder).
    Unsere alten Nutzer haben somit ein unvollständiges Nutzerprofil. Einige Punkte werden somit nicht - oder Falsch angezeigt, was natürlich nicht sein wollte.

    Wo es mir aufgefallen ist habe ich die Nutzer angeschrieben, dass sie doch bitte ihr Nutzerprofil aktualisieren.
    Keine Reaktion - nicht mal eine Antwort. Das sagt mir ziemlich eindeutig "Du kannst mich mal".

    Jetzt suche ich nach einer Möglichkeit, das DIE mal was können - und zwar ihr Benutzerprofil aktualisieren bevor die auch nur einen Buchstaben weiterlesen können.
    Soll ja mit den Nutzungsbedingungen so laufen (oder waren es die Datenschutzbestimmungen?). Wenn die den Haken setzen - dann geht es "normal" weiter.
    Wüsste jemand, wie man das lösen könnte. Oder kennt jemand ein AddOn was das erledigt?

    LG: Tammy
     
  2. Tealk

    Tealk Bekanntes Mitglied Lizenzinhaber

    Müsstest du dir ein Add-on schreiben lassen, abgesehen davon dass das rechtlich bedenklich ist. Vom moralischen Rede ich erst gar nicht
     
    Masetrix und otto gefällt das.
  3. nocte

    nocte Aktives Mitglied Lizenzinhaber

    Völlig ungetestet, aber so könnte es gehen:

    Ein Event Listener 'checkFields()' für das Event 'dispatcher_post_dispatch'. Das würde dann so aussehen:
    PHP:
    <?php

    namespace Vendor\AddonId;

    class Listener
    {
        public static function checkFields(\XF\Mvc\Dispatcher $dispatcher, \XF\Mvc\Reply\AbstractReply &$reply, \XF\Mvc\RouteMatch $routeMatch, \XF\Mvc\RouteMatch $originalMatch)
        {
            $app = \XF::app();
            $visitor = \XF::visitor();

            if ($reply->getResponseType() != 'html' ||
                !($app instanceof \XF\Pub\App) ||
                $app->request()->isPost() ||
                $routeMatch->getController() == 'XF:Account' ||
                $routeMatch->getController() == 'XF:Logout' ||
                $routeMatch->getController() == 'XF:AccountConfirmation' ||
                $routeMatch->getController() == 'XF:Register' ||
                $routeMatch->getController() == 'XF:Misc')
            {
                return;
            }

            if ($vistor->user_state != 'valid')
            {
                return;
            }

            $fields = [
                'field1',
                'field2',
                'field3'
            ];

            foreach ($fields as $field)
            {
                if (!$visitor->Profile->custom_fields->getFieldValue($field))
                {
                    $reply = new \XF\Mvc\Reply\View(
                        'XF:Account\AccountDetails', 'account_details'
                    );

                    return;
                }
            }
        }
    }
    Man kann sicher auch andere Listener nehmen, aber im Prinzip sollte es so funktionieren - Feintuning wird wohl noch notwendig sein. Es wird dann überall (außer den Ausnahmen im ersten "if" block) geprüft ob der User alle in $fields definierten Felder ausgefüllt hat. Wenn das nicht der Fall ist, wird ihm der Inhalt von "account/account-details" (ohne Redirect) angezeigt.
     
    Tamara-Jasmin und McAtze gefällt das.
  4. nocte

    nocte Aktives Mitglied Lizenzinhaber

    Nachdem ich ja nix besseres zu tun habe.. im Anhang das ganze noch als Addon.

    Einfach installieren und unter admin.php?options/groups/users/ (ganz unten) die benötigten Benutzerfelder (durch Komma getrennt) eingeben. Das ganze sollte nur für Felder, die unter account/account-details eingegeben werden, genutzt werden.
     

    Anhänge:

  5. Tamara-Jasmin

    Tamara-Jasmin Aktives Mitglied Lizenzinhaber

    Das ist sogar noch besser wie ich mir vorgestellt habe ;) Danke! Hab schon versucht rauszufinden wo ich das PHP Script eingeben muss ;)
    Probiere es gleich aus! Danke!
    Rückmeldung kommt ....

    LG: Tammy
     
  6. Tamara-Jasmin

    Tamara-Jasmin Aktives Mitglied Lizenzinhaber

    JA !!!!!!!!!!!!!

    Genial !!!
    Perfekt!

    Jetzt muss ich nur noch eine Meldung anzeigen, warum man nun auf der Seite landet - und nicht mehr weg klicken kann ;)

    Schreib mir bitte mal per PN Deine PP Adresse ;)

    LG: Tammy
     
  7. nocte

    nocte Aktives Mitglied Lizenzinhaber

    dazu erstell einfach eine "Notice" und gib unter "Page criteria" als "content template" folgendes ein: "account_details"

    Diesen Hinweis sehen dann aber auch User, die bereits alles ausgefüllt haben, wenn sie die "Account details" aufrufen. Muss man halt entsprechend allgemein formulieren.
     
    Tamara-Jasmin gefällt das.
  8. Tamara-Jasmin

    Tamara-Jasmin Aktives Mitglied Lizenzinhaber

    Das hab ich schon getan ;) Aber das "i-tüpfelchen" was das "content_template".
    Hatte schon alles durchsucht ob "Kontodetails" irgendwo auftaucht ;)

    Du bist echt gut!
    Und ich hab wieder EINIGES gelernt heute!

    Vergiss bitte die PN nicht! 1000 Dank !!!

    LG: Tammy
     
  9. Tamara-Jasmin

    Tamara-Jasmin Aktives Mitglied Lizenzinhaber

    Oha ... jetzt gibt es trotzdem ein Problem!
    Alle Gäste können das Forum nicht mehr nutzen, weil da ja keine Daten existieren ;)

    Muss das AddOn nochmal deaktivieren.

    LG: Tammy
     
  10. nocte

    nocte Aktives Mitglied Lizenzinhaber

    nochmal probieren bitte.
     

    Anhänge:

    Masetrix, Tamara-Jasmin und McAtze gefällt das.
  11. Tamara-Jasmin

    Tamara-Jasmin Aktives Mitglied Lizenzinhaber

  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden