[Frage] sr_feuser_register TEXTAREA und htmlArea RTE [Gelöst] TYPO3-Version: -

  • ironpfu ironpfu
    R2-D2
    0 x
    99 Beiträge
    1 Hilfreiche Beiträge
    09. 04. 2014, 09:55

    Hallo zusammen,

    ich habe zwei Fragen welche mich schon seit einem Monat quälen:

    • Gibt es allgemeine Probleme mit der SR_FEUSER_REGISTER (3.1.2) unter Typo3 6.2 ?
    • Ist es möglich die Extension SR_FEUSER_REGISTER (3.1.2) um ein TEXTAREA zu erweitern und im FE den htmlArea RTE einzusetzten?

    Ich versuche seit geraumer Zeit die Extension SR_FEUSER_REGISTER (3.1.2) mit einer eigenen Extension zu erweitern (Wie in der Dokumentation beschrieben und schon 100-mal erfolgreich umgesetzt). Die neue Extension in Kickstarter erstellt. In der Datei ext_tables.php den Hook gesetzt:

    1. t3lib_div::loadTCA('fe_users');
    2. t3lib_extMgm::addTCAcolumns('fe_users',$tempColumns,1);
    3. t3lib_extMgm::addToAllTCAtypes('fe_users','tx_oebs_description;;;richtext[]:rte_transform[mode=ts_css|imgpath=uploads/tx_oebs/rte/];1-1-1,tx_oebs_cv');

    Die Erweiterung funktioniert (Felder sind im BE sichtbar)...
    Nun das erste Problem:
    Das Feld wird in der Registrierung zwar angezeigt, wird aber nicht an die DB übermittelt:
    1. <!-- ###SUB_INCLUDED_FIELD_tx_oebs_description### -->
    2. <dt>
    3. <label for="tx-srfeuserregister-pi1-tx_oebs_description">###LABEL_TX_OEBS_DESCRIPTION###</label>
    4. <span class="tx-srfeuserregister-pi1-required">###REQUIRED_TX_OEBS_DESCRIPTION###</span>
    5. </dt>
    6. <dd>
    7. <!-- ###SUB_ERROR_FIELD_tx_oebs_description### -->
    8. <p class="tx-srfeuserregister-pi1-error">###EVAL_ERROR_FIELD_tx_oebs_description###</p>
    9. <!-- ###SUB_ERROR_FIELD_tx_oebs_description### -->
    10. <!-- ###SUB_REQUIRED_FIELD_tx_oebs_description### -->
    11. <p class="tx-srfeuserregister-pi1-error">###MISSING_TX_OEBS_DESCRIPTION###</p>
    12. <!-- ###SUB_REQUIRED_FIELD_tx_oebs_description### -->
    13. ###TCA_INPUT_tx_oebs_description###
    14. </dd>
    15. <!-- ###SUB_INCLUDED_FIELD_tx_oebs_description### -->

    Im TS ist natürlich auch alles eingetragen:
    1. plugin.tx_srfeuserregister_pi1.formFields = ..., tx_oebs_cv,tx_oebs_description
    2. plugin.tx_srfeuserregister_pi1.create.evalValues.tx_oebs_description=text
    3. plugin.tx_srfeuserregister_pi1.parseValues.tx_oebs_description=trim

    Ich verstehe einfach nicht wo der Fehler liegt....
    Ich habe inzwischen versucht ein einfaches INPUT Feld zu erstellen, da ich zuerst dachte, dass es möglicherweise an dem TEXTAREA liegt, aber auch dieses wird nicht an die DB übertragen....

    Zweite Frage:
    Ich möchte die Registrierung (TEXTAREA) mit dem RTE ausstatten. Mit der folgenden Anleitung habe ich es zumindest geschafft in einer FE_PlugIn Extension den RTE anzuzeigen bzw. mit Daten aus der FE Tabelle zu füttern.
    [url]http://www.sk-typo3.de/RTE-im-Frontend-benutzen.285.0.html[/url]

    Leider scheitere ich die Daten wieder in die DB zurück zu spielen bzw. die in die SR_FEUSER_REGISTER (3.1.2) einzubauen.

    1. //require_once(PATH_tslib . 'class.tslib_pibase.php');
    2. require_once(t3lib_extMgm::extPath('rtehtmlarea').'pi2/class.tx_rtehtmlarea_pi2.php'); //RTE
    3.  
    4. /**
    5.  * Plugin 'OEBS Profile' for the 'oebs' extension.
    6.  *
    7.  * @author Pfusterschmied Jürgen <juergen.pfusterschmied@sbg.ac.at>
    8.  * @package TYPO3
    9.  * @subpackage tx_oebs
    10.  */
    11. class tx_oebs_pi1 extends tslib_pibase {
    12. public $prefixId = 'tx_oebs_pi1'; // Same as class name
    13. public $scriptRelPath = 'pi1/class.tx_oebs_pi1.php'; // Path to this script relative to the extension dir.
    14. public $extKey = 'oebs'; // The extension key.
    15. public $pi_checkCHash = TRUE;
    16.  
    17. /* RTE vars */
    18. var $RTEObj;
    19. var $docLarge = 0;
    20. var $RTEcounter = 0;
    21. var $formName;
    22. // Initial JavaScript to be printed before the form
    23. // (should be in head, but cannot due to IE6 timing bug)
    24. var $additionalJS_initial = '';
    25. // Additional JavaScript to be printed before the form
    26. // (works in Mozilla/Firefox when included in head, but not in IE6)
    27. var $additionalJS_pre = array();
    28. // Additional JavaScript to be printed after the form
    29. var $additionalJS_post = array();
    30. // Additional JavaScript to be executed on submit
    31. var $additionalJS_submit = array();
    32. var $PA = array(
    33. 'itemFormElName' => '',
    34. 'itemFormElValue' => '',
    35. );
    36. var $specConf = array(
    37. 'rte_transform' => array(
    38. 'parameters' => array('mode' => 'ts_css')
    39. )
    40. );
    41. var $thisConfig = array();
    42. var $RTEtypeVal = 'text';
    43. var $thePidValue;
    44.  
    45.  
    46. /**
    47. * The main method of the Plugin.
    48. *
    49. * @param string $content The Plugin content
    50. * @param array $conf The Plugin configuration
    51. * @return string The content that is displayed on the website
    52. */
    53. public function main($content, array $conf) {
    54. $this->conf = $conf;
    55. $this->pi_setPiVarDefaults();
    56. $this->pi_loadLL();
    57. //$this->prefixId = 'tx_oebs';
    58. $tableFEUser .=$_GLOBALS['TSFE']->fe_user->user['uid'];
    59.  
    60. $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*','fe_users', 'uid='.$GLOBALS['TSFE']->fe_user->user['uid']);
    61. while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
    62. //$tableFEUser .= $row['username'].'<br/>'.$this->pi_RTEcssText($row['tx_oebs_description']);
    63.  
    64.  
    65. //RTE Config
    66. if(!$this->RTEObj) $this->RTEObj = t3lib_div::makeInstance('tx_rtehtmlarea_pi2');
    67. if($this->RTEObj->isAvailable()) {
    68. $this->RTEcounter++;
    69. $this->table = 'fe_users';
    70. $this->field = 'tx_oebs_description';
    71. $this->formName = 'tx_oebs_form';
    72. $this->PA['itemFormElName'] = 'fe_users[tx_oebs_description]';
    73. $this->PA['itemFormElValue'] = $row['tx_oebs_description'];
    74. $this->thisConfig['showButtons'] = ' bold, italic,underline,left,orderedlist,unorderedlist, formatblock';
    75. $this->thisConfig['hideButtons '] = 'chMode, about, findreplace, textindicator, blockstyle,
    76. blockstylelabel, insertcharacter, table, toggleborders, tableproperties,
    77. rowproperties, rowinsertabove, rowinsertunder, rowdelete, rowsplit,
    78. columninsertbefore, columninsertafter, columndelete, columninsert,
    79. cellproperties, cellinsertbefore, cellinsertafter, celldelete, cellsplit,
    80. cellmerge';
    81.  
    82. $this->thisConfig['buttons.']['formatblock.']['removeItems']= 'address, article, aside, div, footer, header, nav, p, h4, h5, h6, pre, blockquote, section';
    83.  
    84. $this->thePidValue = $GLOBALS['TSFE']->id;
    85. $RTEItem = $this->RTEObj->drawRTE(
    86. $this,
    87. 'fe_users',
    88. 'tx_oebs_description',
    89. $row=array(),
    90. $this->PA,
    91. $this->specConf,
    92. $this->thisConfig,
    93. $this->RTEtypeVal,
    94. '',
    95. $this->thePidValue
    96. );
    97. $sims['###ADDITIONALJS_PRE###'] = $this->additionalJS_initial.'
    98. <script type="text/javascript">'. implode(chr(10), $this->additionalJS_pre).'
    99. </script>';
    100. $sims['###ADDITIONALJS_POST###'] = '
    101. <script type="text/javascript">'. implode(chr(10), $this->additionalJS_post).'
    102. </script>';
    103. $sims['###ADDITIONALJS_SUBMIT###'] = implode(';', $this->additionalJS_submit);
    104.  
    105. }
    106.  
    107. }
    108.  
    109.  
    110.  
    111. $content='
    112. <h3>Beschreibung bearbeiten</h3>'.$sims['###ADDITIONALJS_PRE###'].'
    113. <form name="rtetestform" action="'.$this->pi_getPageLink($GLOBALS['TSFE']->id).'" method="POST" onsubmit="'.$sims['###ADDITIONALJS_SUBMIT###'].'">
    114. <input type="hidden" name="no_cache" value="1">
    115. '.$tableFEUser.'
    116. '.$RTEItem.'
    117. <input type="submit" name="tx_oebs_submit_button" value="Änderungen Speichern">
    118. </form>'.$sims['###ADDITIONALJS_POST###'] .'
    119.  
    120. ';
    121.  
    122. // Safe RTE Data
    123. // if(isset($_POST['tx_oebs_submit_button']))
    124. // {
    125. if($this->RTEObj->isAvailable()) {
    126. //$pageTSConfig = $GLOBALS['TSFE']->getPagesTSconfig();
    127. //$RTEsetup = $pageTSConfig['RTE.'];
    128. $this->thisConfig = $RTEsetup['default.'];
    129. $this->thisConfig = $this->thisConfig['FE.'];
    130. $dataArray['tx_oebs_description'] = $this->RTEObj->transformContent(
    131. 'db',
    132. $dataArray['tx_oebs_description'],
    133. 'fe_users',
    134. 'tx_oebs_description',
    135. $dataArray,
    136. $this->specConf,
    137. $this->thisConfig,
    138. '',
    139. $this->thePidValue
    140. );
    141. }
    142. //$update = $GLOBALS['TYPO3_DB']->exec_UPDATEquery('fe_users', 'uid = '.$GLOBALS['TSFE']->fe_user->user['uid'],$dataArray['tx_oebs_description']);
    143. echo('<pre>');
    144. print_r($dataArray);
    145. echo('<br/><br/><br/>');
    146. //print_r($_POST);
    147. echo('</pre>');
    148. // }
    149.  
    150.  
    151. return $this->pi_wrapInBaseClass($content);
    152.  
    153. }
    154. }
    155.  
    156.  
    157.  
    158. if (defined('TYPO3_MODE') && isset($GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['XCLASS']['ext/oebs/pi1/class.tx_oebs_pi1.php'])) {
    159. include_once($GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['XCLASS']['ext/oebs/pi1/class.tx_oebs_pi1.php']);
    160. }

    Hat dies schon jemand gemacht bzw. gibt es dafür eine schöne alternative Lösung? Ich bin nach langer Suche noch nicht fündig geworden....

  • webdeveloper webdevelo...
    Jedi-Ratsmitglied
    0 x
    862 Beiträge
    0 Hilfreiche Beiträge
    29. 05. 2014, 21:16 - Lösung

    Hallo ironpfu,

    hast du deine eigenen Fragen zwischenzeitlich beantworten können?
    Aktuell habe ich nach einem Update von 4.5 auf 6.2 inkl. Extension-Updates dasselbe Problem – die Daten werden weder in der Session, noch in der DB gespeichert und ein Blick in den Quelltext verrät zumindest, dass der name der eigenen input-Felder nicht gesetzt ist, was das Problem an sich dann nachvollziehbar macht.

    Ich gehe der Sache mal weiter auf den Grund, vllt. hast du aber ja schon eine Lösung für dieses Problem.

    Viele Grüße
    Alex

    // Edit
    Im Forge gibt es dazu diesen Patch, funktioniert einwandfrei:
    http://forge.typo3.org/issues/58964


  • 1
  • ironpfu ironpfu
    R2-D2
    0 x
    99 Beiträge
    1 Hilfreiche Beiträge
    10. 04. 2014, 11:26

    Hallo,

    ich fange nun an meine Fragen selbst zu beantworten...

    Zu meiner ersten Frage:
    [b]Gibt es allgemeine Probleme mit der SR_FEUSER_REGISTER (3.1.2) unter Typo3 6.2 ?[/b]
    Anscheinend JA....
    Habe alles unter Typo3 6.1.3 konfiguriert und siehe da die erweiterten Felder werden inkl. Label angezeigt und auch korrekt validiert und an die DB übertragen...
    Es scheint also ein Problem mit Typo3 6.2 zu sein....

    Meine 2. Frage beantworte ich mir hoffentlich in kürze ... :-)
    Bis bald

  • webdeveloper webdevelo...
    Jedi-Ratsmitglied
    0 x
    862 Beiträge
    0 Hilfreiche Beiträge
    29. 05. 2014, 21:16

    Hallo ironpfu,

    hast du deine eigenen Fragen zwischenzeitlich beantworten können?
    Aktuell habe ich nach einem Update von 4.5 auf 6.2 inkl. Extension-Updates dasselbe Problem – die Daten werden weder in der Session, noch in der DB gespeichert und ein Blick in den Quelltext verrät zumindest, dass der name der eigenen input-Felder nicht gesetzt ist, was das Problem an sich dann nachvollziehbar macht.

    Ich gehe der Sache mal weiter auf den Grund, vllt. hast du aber ja schon eine Lösung für dieses Problem.

    Viele Grüße
    Alex

    // Edit
    Im Forge gibt es dazu diesen Patch, funktioniert einwandfrei:
    http://forge.typo3.org/issues/58964

  • 1