Hallo,
Bin gerade am basteln einer Funktion die Gruppe ({if $oUser && $oUser->inGroup(‘oxidnewsletter’)}) abfragt.
Danach will ich sie in CMS Seite einbauen.
Meine Frage ist: wird das über CMS Seite funktionieren?
sicher, ich würde mich aber nicht darauf verlassen, dass es den Objekt oUser überall gibt und daher die Funktion getUser() benutzen
Hi Vanilla,
Vielen Dank für deine Antwort.
Ich habe allerdings noch eine Frage: Ich habe gerade festgestellt, dass die Funktion die ich ändern möchte existiert und läuft in Views.
Wenn ich sie noch ein Mal in CMS einfüge dann werden sie beide aber unterschiedlich abgearbeitet. Ich glaube das ist nicht gut :).
Wie gehe ich da vor?
um welche Funktion gehts?
Ich will, dass die Newsletter Anmeldung abgefragt wird. Das mit Gruppe war ein falscher Weg.
In View steht:
// if user was added/loaded successfully and subscribe is on - subscribing to newsletter
if ( $blSubscribe && $blUserLoaded ) {
removing user from subscribe list before adding
$oUser->setNewsSubscription( false, false );
$blOrderOptInEmail = $this->getConfig()->
getConfigParam( ‘blOrderOptInEmail’ );
if ( $oUser->setNewsSubscription( true,
$blOrderOptInEmail ) ) {
done, confirmation required?
if ( $blOrderOptInEmail ) { $this->_iNewsletterStatus = 1;
} else {
$this->_iNewsletterStatus = 2;
}
} else {
oxUtilsView::getInstance()->addErrorToDisplay(‘NEWSLETTER_NOTABLETOSENDEMAIL’);
}
} elseif ( !$blSubscribe && $blUserLoaded ) {
// unsubscribing user
$oUser->setNewsSubscription( false, false );
$this->_iNewsletterStatus = 3;
}
}
Mein Wunsch ist, wenn die Email schon eingetragen ist, dann soll einfach eine Benachrichtigung auftauchen: “Sie sind bereits angemeldet.”. Weil, jetzt wird der Benutzer in so einem Fall abgemeldet und muss dann den Link wieder bestätigen wie bei Neuanmeldung, erst dann wird er wieder zum Abonnenten. Das finde ich unsinnig.
ich verstehe immer noch nicht ganz, was du meinst, aber du könntest ja beim Rendern der Seite schon nach dem Status der Anmeldung abfragen und den HInweis direkt ausgeben. So wäre es schon da bevor der Kunde auf die Idee kommt sich nochmal anzumelden
Hi Vannila,
Das Problem ist unregistrierte Benutzer die sich für Newsletter anmelden. Bei den kann ich nichts abfragen. Des wegen bleibt nur die Abfrage über email möglich. Was wäre richtig, gleich view ändern (siehe oben) oder evl modul?
Hi Vanilla!
Ein alter Thread den ich hier rauskrame - aber wie kann ich denn --> zb. auf der Startseite auf einfach Weise abfragen ob ein User eingeloggt UND aktiver Newsletterempfänger ist --> denn dann möchte ich ihm die “Subscribe” Box gar nicht mehr anzeigen.
Ich finde da derzeit nur recht umständliche Wege…
Viel einfach geht’s aber nicht mehr. xxx mit Deiner Box ersetzen.:
[{ if $oxcmp_user}]
[{assign var="NewsSubscription" value=$oxcmp_user->getNewsSubscription()}]
[{assign var="getOptInStatus" value=$NewsSubscription->getOptInStatus()}]
[{/if}]
[{ if $getOptInStatus == 1}]xxx[{/if}]
Hi foxido!
Danke - so hatte ich das auch aufgebaut - dennoch hat mich dein aufbau weiter gebracht - ich hatte die Lösung innerhalb des Blocks gesetzt und musste diesen somit an jeder möglichen Newsletter-Scubscription-Stelle platzieren (Startseite, Footer, …) - jetzt bin ich auf einmal zentral!
Aber direkt auf den User kann man das nicht abfragen, oder? $oxcmp_user->ja_oder_nein? schade!
Das geht schon, indem Du die Funktion in einem Modul hinterlegst und dann überall mit z.B. $oxcmp_user->ja_oder_nein(); abfragst.