Hallo zusammen
ik bin's mal wieder :)
Aufgrund der Tatsache, dass ich durch diese Version im typo3conf eine enorm große deprecation_xxx.log erhalte habe ich mich ein wenig mit den veralteten Funktionen auseinander gesetzt.
Hier die einfachen Lösungen:
fix t3lib_div::GParrayMerged();
Code:file: class.tx_commerce_attributeeditor.php line: 83 - $getPostedit=t3lib_div::GParrayMerged('edit'); + $getPostedit=t3lib_div::_GPmerged('edit'); file: lib/class.tx_commerce_navigation line: 127 - $this->gpVars = t3lib_div::GParrayMerged('tx_commerce_pi1'); + $this->gpVars = t3lib_div::_GPmerged('tx_commerce_pi1'); file: lib/class.tx_commerce_navigation line: 951 - $this->gpVars = t3lib_div::GParrayMerged('tx_commerce_pi1'); + $this->gpVars = t3lib_div::_GPmerged('tx_commerce_pi1');
fix t3lib_BEfunc::getSetUpdateSignal
fix tslib_cObj->checkEmail()Code:file: hooks/class.tx_commerce_cmhooks.php line: 152 - t3lib_BEfunc::getSetUpdateSignal('updatePageTree'); + t3lib_BEfunc::setUpdateSignal('updatePageTree'); file: hooks/class.tx_commerce_dmhooks.php line: 1162 - t3lib_BEfunc::getSetUpdateSignal('updatePageTree'); + t3lib_BEfunc::setUpdateSignal('updatePageTree'); file: lib/class._tx_commerce_db_list.php line: 454 - t3lib_BEfunc::getSetUpdateSignal('updatePageTree'); + t3lib_BEfunc::setUpdateSignal('updatePageTree'); mod_cce/tx_commerce_cce_db.php line: 411 - t3lib_BEfunc::getSetUpdateSignal('updatePageTree'); + t3lib_BEfunc::setUpdateSignal('updatePageTree');
Das ganze hab ich auch schon zum "forge" geschickt zur review.Code:file: pi3/class.tx_commerce_pi3.php line: 1966 - if ($userMail != '' && $this->cObj->checkEmail($userMail)) { + if ($userMail != '' && t3lib_div::validEmail($userMail)) {
http://forge.typo3.org/issues/14035
Allerdings tritt dann immer noch ein Fehler mit der veralteten Classe t3lib_div::makeInstance('t3lib_htmlmail'); auf.
Da diese in typo3 4.6 entfernt wird sollte diese umgeschrieben werden.
Diese Classe wird in commerce in der Datei lib/class.tx_commerce_div.php aufgerufen.
Dort wird das "Emailing" der Commerce Extension verarbeitet (Admin und User Mail).
So nun hab ich mich hingesetzt und die Funktion sendMail()
neu geschrieben um den Swiftmailer zu verwenden.
t3lib_div::makeInstance('t3lib_mail_Message');
Und hier kommt IHR ins spiel!
Da ich etwas unsicher bin ob ich da alles richtig gemacht habe, bzgl Sicherheit, sauberer Code etc., wünscht ich mir das mal jemand drüber schaut der davon Ahnung hat.
Also prinzipiell scheint alles ohne Probleme zu funktionieren - aber wir kennen das ja - funktionieren heißt noch lange nicht "richtig Funktionieren".
Wenn die Funktion so in Ordnung wäre und keiner Verbesserungsvorschläge oder ähnliches hat ,würde ich diese so auch im "t3 Forge" melden. In der Hoffnung auf eine neue gefixte SVN Version.
PHP-Code:function sendMail($mailconf) {
$mailconf['recipient'] = tx_commerce_div::validEmailList($mailconf['recipient']);
if ($mailconf['recipient']) {
$hookObjectsArr = array();
if (is_array ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['commerce/lib/class.tx_commerce_div.php']['sendMail'])) {
foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['commerce/lib/class.tx_commerce_div.php']['sendMail'] as $classRef) {
$hookObjectsArr[] = &t3lib_div::getUserObj($classRef);
}
}
if ($mailconf['additionalData']) {
$additionalData = $mailconf['additionalData'];
}
foreach($hookObjectsArr as $hookObj) {
/**
* @depricated: This Hook is depricated
*/
if (method_exists($hookObj, 'preProcessHtmlMail')) {
$mail=$hookObj->preProcessHtmlMail($mailconf);
}
/**
* this is the current hook
*/
if (method_exists($hookObj, 'preProcessMail')) {
$hookObj->preProcessMail($mailconf,$additionalData);
}
}
foreach($hookObjectsArr as $hookObj) {
if (method_exists($hookObj, 'ownMailRendering')) {
$this->hookObjectsArr = $hookObjectsArr;
return $hookObj->ownMailRendering($mailconf,$additionalData,$this);
}
}
$mail = t3lib_div::makeInstance('t3lib_mail_Message');
$namefrom = $mailconf['fromName'];
$namefrom = $mailconf['fromName'];
$emailfrom = tx_commerce_div::validEmailList($mailconf['fromEmail']);
$mail->setFrom(array($emailfrom => $namefrom));
$emailto = tx_commerce_div::validEmailList($mailconf['recipient']);
$mail->setTo(array($emailto => $emailto));
$parts = explode('<title>|</title>', $mailconf['html']['content'], 3);
if (trim($parts[1])) {
$subject = strip_tags(trim($parts[1]));
}elseif( $mailconf['plain']['subject']){
$subject = $mailconf['plain']['subject'];
}else{
$subject = $mailconf['alternateSubject'];
}
$mail->setSubject($subject);
$htmlcontent = $mailconf['html']['content']:
$plaincontent = $mailconf['plain']['content'];
if($mailconf['html']['useHtml'] == '1'){
$mail->setBody($htmlcontent, 'text/html');
}else{
$mail->addPart($plaincontent, 'text/plain');
}
if (is_array($mailconf['attach'])) {
foreach($mailconf['attach'] as $file) {
if ($file && file_exists($file)) {
$mail->attach(Swift_Attachment::fromPath($file));
}
}
}
foreach($hookObjectsArr as $hookObj) {
if (method_exists($hookObj, 'postProcessMail')) {
$mail=$hookObj->postProcessMail($mail,$mailconf,$additionalData);
}
}
$mail->send();
return true;
}
return false;
}
Ich hoffe jemand kann mir helfen.
Viele Grüße
Daniel
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Lesezeichen