sr_feuser_registration und Interessensgebiete

  • steffenk steffenk
    Obi-Wan Kenobi
    0 x
    4666 Beiträge
    0 Hilfreiche Beiträge
    08. 03. 2006, 16:05

    Hallo,

    ich hatte mich unverschämterweise in einen Thread geschmuggelt und will dsa jetzt in einem eigenen behandeln.

    Ich muss extern die Interssensgebiete bearbeiten und check die Zusammenhänge nicht.
    Es geht um die Checkboxen unter "Receive news on any of these subjects?"

    Schau ich in die DB so ist wohl in der feusers ein Feld "module_sys_dmail_category" in dem wohl gespeichert wird, welche man ankreuzt, aber ich erkenne nicht wie, im Source der Ext habe ich es nicht entdecken können.
    In dem Feld werden auch nur integers eingetragen (808,13 etc)

    Wer kann das entschleiern ?


  • 1
  • dfluess dfluess
    Jedi-General
    0 x
    1293 Beiträge
    1 Hilfreiche Beiträge
    08. 03. 2006, 16:26

    Hallo wieder :-)

    also die Extension schreibt die Kategorie in das Feld module_sys_dmail_category der Tabelle fe_users. Das gleichnamige Feld in der tt_address wird nach dem gleichem Prinzip für das Adressmodul verwendet.

    Und das so scheinbar sinnlose integers eingetragen werden hat den Sinn, da ja auch mehrere Kategorien gleichzeitig ausgewählt werden können. Anders wäre das nicht zu lösen.

    Du kannst ja mal testen, welche Zahl zu den verschiedenen Kombinationen eingetragen wird. Die Kombination der ausgewählten Checkboxen entscheidet über den Zahlenwert.

    D

  • just2b just2b
    TYPO3-Yoda
    0 x
    18741 Beiträge
    2 Hilfreiche Beiträge
    08. 03. 2006, 16:31

    [quote="dfluess"]
    Du kannst ja mal testen, welche Zahl zu den verschiedenen Kombinationen eingetragen wird. Die Kombination der ausgewählten Checkboxen entscheidet über den Zahlenwert.[/quote]
    Und so geht das dann in PHP zum Auslesen

    1. // Checkboxen auslesen
    2. $anzahl = 5; #Anzahl Checkboxen
    3. $k = 1;
    4. $Features = $row['verkehrallg'];
    5. for ($m=0; $m < $anzahl; $m++) {
    6. if ($Features & $k) {
    7. $boxArr[$m]=1;
    8. } else {
    9. $boxArr[$m]=0;
    10. }
    11. $k *= 2;
    12. }

    Ergebnis in $boxArr

    lg georg

  • steffenk steffenk
    Obi-Wan Kenobi
    0 x
    4666 Beiträge
    0 Hilfreiche Beiträge
    08. 03. 2006, 16:43

    Dank Euch schonmal.

    Wir kommen der ganzen Sache schon näher.
    Allerdings check ich überhaupt nicht, wo diese 10 Subjects herkommen, wo sie benannt werden etc.
    Ich will das auch noch erweitern, d.h. dynamisch Interessensgebiete hinzufügen, und dazu bräuchte ich den Ansatz.
    Ich habe die locallang.php durchforstet, ist nicht drin.
    Ich habe die Ext abgesucht, nicht gefunden.
    Ich habe die Tabellen der DB durchforstet, nicht gefunden.

    Entweder habe ich Knöpfe auf den Augen oder Typo3 telefoniert mit zuHause ...

    Eine Idee ?

  • dfluess dfluess
    Jedi-General
    0 x
    1293 Beiträge
    1 Hilfreiche Beiträge
    08. 03. 2006, 17:03

    Also die Bezeichnungen setzt Du in der locallang_db.php und die Anzahl der Kategorien in der ext_tables.php im pi-Verzeichnis.
    Willst du weniger, dann musst Du diese EINZELN! Auskommentieren, denn im Array funktioniert /**/ nicht!
    Willst Du mehr Kategorien, dann musst Du eben welche hinzufügen. Auch in der locallang_db.php und in der anderen ext_tables.php nicht vergessen.

    Die Anzahl der Kategorien wird in der Classe mit einer Schleife aus der ext_tables.php ausgelesen.

    D.

  • steffenk steffenk
    Obi-Wan Kenobi
    0 x
    4666 Beiträge
    0 Hilfreiche Beiträge
    08. 03. 2006, 17:16

    ah vielen Dank D. - dann werde ich wohl in der Klasse selbst das modifizieren müssen, ich brauche unbedingt ein Array.

    Da Du die Stelle gefunden hast, hast Du eine ungefähre Zeilennummer für mich ? :)

  • dfluess dfluess
    Jedi-General
    0 x
    1293 Beiträge
    1 Hilfreiche Beiträge
    08. 03. 2006, 17:23

    dann werde ich wohl in der Klasse selbst das modifizieren müssen, ich brauche unbedingt ein Array.

    Das Array kannst Du doch behalten!
    Ich meinte, wenn Du einige Kategorien nicht brauchst, dann mit // vor jeder Zeile und nicht mehrere zugleich mit /**/

    Es bleibt sonst alles wie es ist.
    In der Classe müsste das etwa ab Zeile 2025 zu finden sein.

    D.

  • steffenk steffenk
    Obi-Wan Kenobi
    0 x
    4666 Beiträge
    0 Hilfreiche Beiträge
    09. 03. 2006, 00:23

    vielen Dank, damit komm ich klar. Ich hab die Anforderung, das die Interessensgebiete aus einer anderen Tabelle kommen - da muss ich eh die Logik ändern und auch das Feld auf Text umstellen. Ich hatte das nur nicht gefunden, aber jetzt weiss ich Bescheid ;)

  • 1