Zum Inhalt springen

fe_users.module_sys_dmail_category.I.x

Erstellt am 2. März 2006 · 19 Antworten · letzte Antwort am 3. März 2006

Tags: Frage

martina_47 ·

Halo Leute,

ich habe newloginbox und sr_user_register installiert es geht auch alles soweit erfolgreich bis auf den Punkt dmail.

Ich habe nur ein einziges Newsletter und möchte nicht zehn Newsletter bei der Registrierung anbieten.

Was habe ich bis jetzt dafür getan?

Nachdem ich es mit TS-Script versucht hatte aber zu keiner Lösung kam änderte ich folgende Dateien ab:

Zuvor den TS den ich im Setup dafür einfügte:

plugin.tx_srfeuserregister_pi1._LOCAL_LANG {
 de {
module_sys_dmail_category = Möchten Sie Informationen zu
folgenden Themen erhalten?
fe_users.module_sys_dmail_category.I.1= allgemein
}

Natürlich nur ein Ausschnitt von dmail.

Und nun die Dateien:

ext_tables.php

In dieser Datei habe ich versucht das Array abzuändern und zwar so:

$TCA['fe_users']['columns']['module_sys_dmail_category']['config'] =  Array (
		'type' => 'check',
		'items' => Array (
			Array('LLL:EXT:sr_feuser_register/locallang_db.php:fe_users.module_sys_dmail_category.I.1', ''),
		),
		'default' => 0,
		'cols' => 4,
);

locallang_db.php

'de' => Array (
		'tt_content.list_type' => 'Front End Benutzer Registrierung',
		'fe_users.static_info_country' => 'Land:',
		'fe_users.zone' => 'Bundesland / Staat / Provinz:',
		'fe_users.language' => 'Sprache:',
		'fe_users.first_name' => 'Vorname:',
		'fe_users.last_name' => 'Nachname:',
		'fe_users.module_sys_dmail_category' => 'Möchten Sie News zu folgenden Themen erhalten?',
		'fe_users.module_sys_dmail_category.I.1' => 'allgemein',
	/**	'fe_users.module_sys_dmail_category.I.2' => 'Thema 2',
		'fe_users.module_sys_dmail_category.I.3' => 'Thema 3',
		'fe_users.module_sys_dmail_category.I.4' => 'Thema 4',
		'fe_users.module_sys_dmail_category.I.5' => 'Thema 5',
		'fe_users.module_sys_dmail_category.I.6' => 'Thema 6',
		'fe_users.module_sys_dmail_category.I.7' => 'Thema 7',
		'fe_users.module_sys_dmail_category.I.8' => 'Thema 8',
		'fe_users.module_sys_dmail_category.I.9' => 'Thema 9',
		'fe_users.module_sys_dmail_category.I.10' => 'Thema 10',*/
		'fe_users.module_sys_dmail_html' => 'E-Mails im HTML-Format erhalten?',
		'fe_users.date_of_birth' => 'Geburtsdatum:',
		'fe_users.gender' => 'Hr./Fr.:',
		'fe_users.gender.I.0' => 'Hr.',
		'fe_users.gender.I.1' => 'Fr.',
		'fe_users.status' => 'Status:',
		'fe_users.status.I.1' => 'Student',
		'fe_users.status.I.2' => 'Schüler',
		'fe_users.status.I.3' => 'Angestellt',
		'fe_users.status.I.4' => 'Selbstständig',
		'fe_users.comments' => 'Kommentare:',
	),

Also die anderen module_sys_dmail_category.I. auskommentiert.

Ergebnis:

Ich bekomme die erste fe_users.module_sys_dmail_category.I.1 Checkbox mit "allgeimen" angezeigt eigentlich so wie ich es will. Nur darunter sind noch die anderen 9 Checkboxen ohne Namen vertreten.

Weiß jemand wie ich die noch wegbekomme?

Und noch ein kleines Problem:

Ich hatte zuvor 3 Test-feuser angelegt. Sie kamen nach erfolgreicher registrierung auch wunderbar in die für die Gruppe freigeschaltete Weiterleitung.

Dann importierte ich ca. 300 Benutzer in die Datenbank aber diese werden nun nicht mehr weitergeleitet (sind aber erfolgreich eingeloggt).

Erst wenn ich in einen fe_user reingehe und den Punkt "Beim LogIn weiterleiten zur Seite..." eintrage, danach einlogge und dann wieder entferne klappt es wunderbar.

Ich habe diesen Punkt doch schon der fe_gruppe gegeben und jeder Benutzer ist auch Mitglied dieser Gruppe.

Kann mir von Euch jemand helfen?

Gruß
Martina

dfluess ·

Hallo,

Du musst die nicht gewünschten Kategorien einfach in der ext_tables.php auskommentieren. Vergiss nicht den Cache zu leeren.

D.

martina_47 ·

Hallo dfluess,

aber das habe ich doch gemacht. Zwar nicht auskommentiert sondern bis auf "Array('LLL:EXT:sr_feuser_register/locallang_db.php:fe_users.module_sys_dmail_category.I.1', '')," gelöscht, wie Du oben sehen kannst. Müsste doch auf selbe rauskommen oder ?

Der Cache wird natürlich nach jedem Vorgang total gelöscht

Gruß
Martina

dfluess ·

Ich weis nicht was Du gemacht hast. Es reicht, in der Datei
ext_tables.php die Kategorien einzeln - z.B. mit // - auszukommentieren.
Danach den Cache leeren.

D.

martina_47 ·

Das hatte ich eigentlich auch gedacht:

Hier nochmals die zwei editierte Dateien:

$TCA['fe_users']['columns']['module_sys_dmail_category']['config'] =  Array (
        'type' => 'check',
        'items' => Array (
            Array('LLL:EXT:sr_feuser_register/locallang_db.php:fe_users.module_sys_dmail_category.I.1', ''),
           /** Array('LLL:EXT:sr_feuser_register/locallang_db.php:fe_users.module_sys_dmail_category.I.2', ''),
            Array('LLL:EXT:sr_feuser_register/locallang_db.php:fe_users.module_sys_dmail_category.I.3', ''),
            Array('LLL:EXT:sr_feuser_register/locallang_db.php:fe_users.module_sys_dmail_category.I.4', ''),
            Array('LLL:EXT:sr_feuser_register/locallang_db.php:fe_users.module_sys_dmail_category.I.5', ''),
            Array('LLL:EXT:sr_feuser_register/locallang_db.php:fe_users.module_sys_dmail_category.I.6', ''),
            Array('LLL:EXT:sr_feuser_register/locallang_db.php:fe_users.module_sys_dmail_category.I.7', ''),
            Array('LLL:EXT:sr_feuser_register/locallang_db.php:fe_users.module_sys_dmail_category.I.8', ''),
            Array('LLL:EXT:sr_feuser_register/locallang_db.php:fe_users.module_sys_dmail_category.I.9', ''),
            Array('LLL:EXT:sr_feuser_register/locallang_db.php:fe_users.module_sys_dmail_category.I.10', ''),*/
        ),
        'default' => 0,
        'cols' => 4,
);

locallang_db.php

$LOCAL_LANG = Array (
	'default' => Array (
		'tt_content.list_type' => 'Front End User Registration',
		'fe_users.static_info_country' => 'Country:',
		'fe_users.zone' => 'State/province:',
		'fe_users.language' => 'Language:',
		'fe_users.first_name' => 'First Name:',
		'fe_users.last_name' => 'Last Name:',
		'fe_users.module_sys_dmail_category' => 'Interessieren Sie sich für unser Newsletter?',
		'fe_users.module_sys_dmail_category.I.1' => 'allgemein',
		'fe_users.module_sys_dmail_html' => 'Receive emails in HTML format?',
		'fe_users.date_of_birth' => 'Date of birth:',
		'fe_users.gender' => 'Herr/Frau:',
		'fe_users.gender.I.0' => 'Herr',
		'fe_users.gender.I.1' => 'Frau',
		'fe_users.status' => 'Status:',
		'fe_users.status.I.1' => 'Student',
		'fe_users.status.I.2' => 'Job seeking',
		'fe_users.status.I.3' => 'Working',
		'fe_users.status.I.4' => 'Retired',
		'fe_users.comments' => 'Kommentare:',
	),
	'dk' => Array (
		'tt_content.list_type' => 'Front End Bruger Registrering',
		'fe_users.static_info_country' => 'Land:',
		'fe_users.zone' => 'Stat/Provins/Amt:',
		'fe_users.language' => 'Sprog:',
	),
	
	'de' => Array (
		'tt_content.list_type' => 'Front End Benutzer Registrierung',
		'fe_users.static_info_country' => 'Land:',
		'fe_users.zone' => 'Bundesland / Staat / Provinz:',
		'fe_users.language' => 'Sprache:',
		'fe_users.first_name' => 'Vorname:',
		'fe_users.last_name' => 'Nachname:',
		'fe_users.module_sys_dmail_category' => 'Möchten Sie News zu folgenden Themen erhalten?',
		'fe_users.module_sys_dmail_category.I.1' => 'allgemein',
	/**	'fe_users.module_sys_dmail_category.I.2' => 'Thema 2',
		'fe_users.module_sys_dmail_category.I.3' => 'Thema 3',
		'fe_users.module_sys_dmail_category.I.4' => 'Thema 4',
		'fe_users.module_sys_dmail_category.I.5' => 'Thema 5',
		'fe_users.module_sys_dmail_category.I.6' => 'Thema 6',
		'fe_users.module_sys_dmail_category.I.7' => 'Thema 7',
		'fe_users.module_sys_dmail_category.I.8' => 'Thema 8',
		'fe_users.module_sys_dmail_category.I.9' => 'Thema 9',
		'fe_users.module_sys_dmail_category.I.10' => 'Thema 10',*/
		'fe_users.module_sys_dmail_html' => 'E-Mails im HTML-Format erhalten?',
		'fe_users.date_of_birth' => 'Geburtsdatum:',
		'fe_users.gender' => 'Hr./Fr.:',
		'fe_users.gender.I.0' => 'Hr.',
		'fe_users.gender.I.1' => 'Fr.',
		'fe_users.status' => 'Status:',
		'fe_users.status.I.1' => 'Student',
		'fe_users.status.I.2' => 'Schüler',
		'fe_users.status.I.3' => 'Angestellt',
		'fe_users.status.I.4' => 'Selbstständig',
		'fe_users.comments' => 'Kommentare:',
	),

nur hier wird das 'default'-Array benutzt.

Gruß
Martina

dfluess ·

In einem Array kann wohl nicht mehrere Zeilen mit /**/ auskommentieren.
Machs einfach so:

$TCA['fe_users']['columns']['module_sys_dmail_category']['config'] =  Array (
		'type' => 'check',
		'items' => Array (
			Array('LLL:EXT:df_feuser_register_ext/pi1/locallang_db.php:fe_users.module_sys_dmail_category.I.1', ''),
//			Array('LLL:EXT:df_feuser_register_ext/pi1/locallang_db.php:fe_users.module_sys_dmail_category.I.2', ''),
//			Array('LLL:EXT:df_feuser_register_ext/pi1/locallang_db.php:fe_users.module_sys_dmail_category.I.3', ''),
//			Array('LLL:EXT:df_feuser_register_ext/pi1/locallang_db.php:fe_users.module_sys_dmail_category.I.4', ''),
//			Array('LLL:EXT:df_feuser_register_ext/pi1/locallang_db.php:fe_users.module_sys_dmail_category.I.5', ''),
//			Array('LLL:EXT:df_feuser_register_ext/pi1/locallang_db.php:fe_users.module_sys_dmail_category.I.6', ''),
//			Array('LLL:EXT:df_feuser_register_ext/pi1/locallang_db.php:fe_users.module_sys_dmail_category.I.7', ''),
//			Array('LLL:EXT:df_feuser_register_ext/pi1/locallang_db.php:fe_users.module_sys_dmail_category.I.8', ''),
//			Array('LLL:EXT:df_feuser_register_ext/pi1/locallang_db.php:fe_users.module_sys_dmail_category.I.9', ''),
//			Array('LLL:EXT:df_feuser_register_ext/pi1/locallang_db.php:fe_users.module_sys_dmail_category.I.10', ''),
		),
martina_47 ·

Habe ich gemacht.

Es bleibt aber alles beim alten

Eine Checkbox mit Text "allgemein" (die er sich ja richtig von der locallang_db.php hohlt)und danach 9 Checkboxen ohne Text 😢

Martina

jweiland ·

Ich hatte bei einem Projekt das gleiche Problem und das *einzelne* Auskommentieren der Zeilen war die Lösung... jetzt habe ich statt 2 + 8 leere Checkboxen nur noch die gewünschten 2.

Muß man aber auch erst mal drauf kommen, daß in einem Array nicht mehrere Zeilen mit /* ... */ auskommentiert werden können.

Jochen Weiland

dfluess ·

Wenn Du die Kategorien wir von jweiland und mir beschrieben einzeln mit // auskommentiert dann sollte es gehen. Und den Cache... ;-)

D.

martina_47 ·

ich habe die Kategorien wirklich nun einzeln auskommentiert und natürlich auch den Cache ("FE-Cache löschen" sowie "Browser-Cache") gelöscht. Ich verstehe nicht das es bei mir nicht klappt und vor allem das es nicht möglich ist dies per TS zu händeln.

Habe aber doch seit post 1 schon alles richtig gemacht ob jetzt löschen oder Auskommentieren, dass müsste doch letztendlich aufs selbe rauskommen.

Grüße Euch
Martina

dfluess ·

Datei auch hochgeladen ;-)

Array wird mit einer Schleife aus der ext_tables.php ausgelesen (function addTcaMarkers in class.tx_srfeuserregister). Im Prinzip ganz galant gelöst. Man muss es nur wissen.

Wenn Du alles richtig gemacht hast, dann weis ich wirklich nicht warum das bei Dir nicht funktioniert.

D.

martina_47 ·
dfluess schrieb

Datei auch hochgeladen ;-)

Na sicher doch

dfluess schrieb

Array wird mit einer Schleife aus der ext_tables.php ausgelesen (function addTcaMarkers in class.tx_srfeuserregister). Im Prinzip ganz galant gelöst. Man muss es nur wissen.

Ich nehme doch mal an die Datei class.tx_srfeuserregister_pi1.php in /pi1 oder ?
Aber da bräucht man wohl nichts mehr editieren oder ?

Ich füge hier mal meinen login.template ein

Constants

plugin.tx_srfeuserregister_pi1 {
email = xxx@xxx.de
pid = 155
loginPID = 153
confirmPID = 152
confirmType = 0        
editPID = 154
registerPID = 195
delete = 0                                                                   
infomail = 1                                                                 
notify.DELETE_SAVED = 0    
linkToPID = 1
linkToPIDAddButton = 0 
defaultCODE = CREATE
siteName = testsite
formFields = username, password, gender, first_name, last_name, date_of_birth, email, address, city, zone, zip, telephone, title, company, www, module_sys_dmail_html, module_sys_dmail_category, comments, disable
edit.fields = username, password, gender, first_name, last_name, date_of_birth, email, address, city, zone, zip, telephone, title, company, www, module_sys_dmail_html, module_sys_dmail_category, comments, disable
invite.fields = username, password, gender, first_name, last_name, date_of_birth, email, address, city, zone, zip, telephone, title, company, www, module_sys_dmail_html, module_sys_dmail_category, comments, disable
create.fields = username, password, gender, first_name, last_name, date_of_birth, email, address, city, zone, zip, telephone, title, company, www, module_sys_dmail_html, module_sys_dmail_category, comments, disable
create.required = username,password,first_name,last_name,email,company
invite.required = username,password,first_name,last_name,email,company
parseValues.newsletter = setEmptyIfAbsent
formName = fe_users_form 
enableEmailOnRefuse = 1                                                          
enableEmailOnApprove = 1  
enableEmailOnDelete = 1
enableEmailOnUpdate = 1
enableEmailOnRegister = 1
enablePreviewRegister = 1 
enablePreviewEdit = 1   
enableAdminNotifyConfirmation = 1 
enableAdminNotifyOnApprove = 1 
enableAdminNotifyOnRefuse = 1 
enableAdminNotifyOnRegister = 1
enableAdminNotifyOnUpdate = 1 
enableAdminNotifyOnDelete = 1 
enableEmailAttachment = 0 
enableEmailConfirmation = 1  
enableHTMLMail = 1  
userGroupAfterConfirmation = 4   
userGroupUponRegistration = 3    
enableAutoLoginOnConfirmation = 0 
autoLoginRedirect_url =  
useEmailAsUsername = 0 
authcodeFields = uid 
codeLength = 8 
addAttachment = 0 
parseValues.newsletter = setEmptyIfAbsent
HTMLMailCSS = EXT:sr_feuser_register/pi1/tx_srfeuserregister_htmlmail.css  
_CSS_DEFAULT_STYLE = @import url("fileadmin/main/example.css")

create.evalValues {
       email = uniqueLocal, email
       usergroup = unsetEmpty, 3
 } 



evalErrors.email {
  uniqueLocal = Anscheinend sind Sie bereits mit dieser Email-Adresse registriert.
  email = Das ist keine valide Email-Adresse.
  atLeast = Ihr Benutzername muß mindestens aus %s Buchstaben bestehen!
  twice = Sie müssen Ihr Passwort zweimal identisch eingeben!
  
 } 


#
# Zuweisung der Gruppe für neue User und Verhindern des Überschreibens der Usergroup beim Editieren der Benutzerdaten
#

create.usergroupOverride = 3
create.overrideValues.usergroup = 3

}       

plugin.tx_newloginbox_pi1 {
	detailsPage = 
	email_from = xxx@xxx.de
	email_fromName = testsite
	replyTo = xxx@xxx.de
	tableParams_details = border="0"
	
	// Allowed Referrer-Redirect-Domains:
	domains =
}

                                                                    
 
#
# Konfiguration des Plugins-Feadmin
#

#plugin.feadmin.fe_users.templateFile = fileadmin/_/feadmin/fe_admin_fe_users.htm

plugin.feadmin.fe_users.templateFile = typo3/ext/feuser_admin/pi/fe_admin_fe_users.tmpl
plugin.feadmin.fe_users.pid = 155

 
#
#Festlegung der Fehlermeldungen
#

plugin.feadmin.fe_users.evalErrors.email.email = Die Email-Adresse ist ungültig. Sie muß ein @ und eine Domain enthalten!
plugin.feadmin.fe_users.evalErrors.username.uniqueLocal = Diesen Benutzernamen gibt es leider schon. Bitte wählen Sie einen anderen!
plugin.feadmin.fe_users.evalErrors.username.atLeast = Ihr Benutzername muß mindestens aus %s Buchstaben bestehen!
plugin.feadmin.fe_users.evalErrors.password.twice = Sie müssen Ihr Passwort zweimal identisch eingeben!
plugin.feadmin.fe_users.evalErrors.password.atLeast = Ihr Passwort muß mindestens aus %s Buchstaben bestehen!
plugin.feadmin.fe_users.evalErrors_uniqueLocal_email = Unter dieser E-Mail-Adresse haben wir schon einen Benutzer registriert. Haben Sie vielleicht Ihr Passwort vergessen?

#
# Zuweisung der Gruppe für neue User und Verhindern des Überschreibens der Usergroup beim Editieren der Benutzerdaten
#

plugin.feadmin.fe_users.create.usergroupOverride = 3
plugin.feadmin.fe_users.create.evalValues.usergroup = 3
plugin.feadmin.fe_users.create.overrideValues.usergroup = 3
plugin.feadmin.fe_users.edit.evalValues.usergroup = unsetEmpty

Vieleicht könnt Ihr ja hier noch einen kleinen Fehler ausfindig machen welcher zu diesem Pkt. führt.

martina_47 ·

Ich nehme an du meinst diese Switch-Schleife

Ausschnitt:

case 'check':
	// <ries van="" twisk="" added="" support="" for="" multiple="" checkboxes="">
	if (is_array($colConfig['items'])) {
	$colContent = '<ul class="tx-srfeuserregister-multiple-checked-values">';
		foreach ($colConfig['items'] AS $key => $value) {
		  $checked = ($dataArray[$colName] & (1 << $key)) ? 'checked' : '';
		  $colContent .= $checked ? '<li>' . $this->getLLFromString($colConfig['items'][$key][0]) . '</li>' : '';
	}
								$colContent .= '</ul>';
// </ries van twisk added support for multiple checkboxes>
	} else {
	$colContent = $dataArray[$colName] ? 'checked' : 'not checked';
	}
break;
dfluess ·

Ja, sieht so aus :-)
Wenn Du Bescheid weisst, dann baue das doch einfach um (wenn Du sowieso nur eine Kategorie brauchst)

martina_47 ·

und hier noch der Quellcode der Seite selbst

<p><ul class="tx-srfeuserregister-multiple-checkboxes"><li><input type="checkbox" name="FE[fe_users][module_sys_dmail_category][]" value="0" checked/><label>aktuell</label></li><li><input type="checkbox" name="FE[fe_users][module_sys_dmail_category][]" value="1" /><label></label></li><li><input type="checkbox" name="FE[fe_users][module_sys_dmail_category][]" value="2" /><label></label></li><li><input type="checkbox" name="FE[fe_users][module_sys_dmail_category][]" value="3" /><label></label></li><li><input type="checkbox" name="FE[fe_users][module_sys_dmail_category][]" value="4" /><label></label></li><li><input type="checkbox" name="FE[fe_users][module_sys_dmail_category][]" value="5" /><label></label></li><li><input type="checkbox" name="FE[fe_users][module_sys_dmail_category][]" value="6" /><label></label></li><li><input type="checkbox" name="FE[fe_users][module_sys_dmail_category][]" value="7" /><label></label></li><li><input type="checkbox" name="FE[fe_users][module_sys_dmail_category][]" value="8" /><label></label></li><li><input type="checkbox" name="FE[fe_users][module_sys_dmail_category][]" value="9" /><label></label></li></ul></p>
martina_47 ·

klar, gut Idee. Einfach umbauen.

Habe nun aus Zeile 1822

$colContent .= '<li><input type="checkbox" name="FE['.$this->theTable.']['.$colName.'][]" value="'.$key.'" '.$checked.'/><label>'.$this->getLLFromString($colConfig['items'][$key][0]).'</label></li>';

einfach ein

$colContent .= '<li><input type="checkbox" name="FE['.$this->theTable.']['.$colName.'][]" value="1" '.$checked.'/><label>'.$this->getLLFromString($colConfig['items'][$key][0]).'</label></li>';

gemacht und es funktioniert. Es ist zwar nicht im Namen des Erfinders aber es hat geklappt. 😃

Ich danke Euch recht herzlich.

😃 😃 😃 😃

Gruß
Martina

martina_47 ·

Guten morgen allerseits,

habe mir schon gedacht, dass nun andere Probleme auftauchen. 😢

Wenn ich eine Testperson registriere und die Checkbox Newsletter auswähle, geht die registrierung auch noch erfolgreich durch.

Wenn ich mich aber nach der Freischaltung einwähle und in das profil des Users wechsle wird steht die Newsletter-Checkbox nicht aktiv.

In der Datenbank wiederrum ist in der Tabelle feuser nun in der Spalte "module_sys_dmail_category" nun mit einer 2 versehen.

Das Newsletter selbst besitzt aber eine 1

Hat jemand einen Tip wie ich das noch erfolgreich regeln kann?

Gruß
Martina

dfluess ·

Hallo Martina,

also das ganze geht jetzt wahrscheinlich in Flickschusterei über, zumal das auch nicht updatefähig wäre.

Am besten, Du beschäftigst Dich noch mal mit der ersten Lösung. Denn das funktioniert eigentlich ohne Probleme. Im Zweifelsfall die Extension komplett vom Server löschen und neu installieren.

Richte einfach auf einer anderen Site ein neues Template und ein schlankes TS-Setup ein (Nur mit den nötigsten Einstellungen), füge das Formular hinzu und teste noch mal. Das MUSS funktionieren!

D.

martina_47 ·

Hallo dfluess,

das wird wohl das beste sein #paralyzed#

Obwohl ich von anfang an eigentlich alles richtig gemacht haben musste. Bis auf den Punkt das ich es nicht auskoomentierte sondern löschte.

Ich hoffe das es nicht mit einer anderen Ext ein Konflik bestand und das letztendlich der Grund war.

Gruß
Martina