- CONTENIDO 4.6.23 -
Ich habe ein Empfänger-Plugin (recipients) für einen Kunden geschrieben in dem eine Personalisierteausgabe der Anrede erstellt wird mit den Feldern: Geschlecht und Vorname. (Nach-)Name existiert ja schon.
Als Wandet variable habe ich "geschlecht", "vorname" und zusätzlich "brief_anrede". Und bei den Get-Funktionen Komuliertedaten aus
Geschlecht + Vorname + Name = brief_anrede
Im Testnewsletter an mich ist alles OK.
Im Blockversand bei 1 Mail pro Block ist alles gut.
Mache ich 50 Mails pro Block steht in der ersten mail alles was soll
aber in der zweiten Mail die Daten von der ersten Mail
und in der dritten die Daten auch aus der ersten Mail
...
ich möchte dem Kunden aber nicht zumuten das er 6300 Mails in sekunden-Takt verschicken muss.
Hat jemand ne Lösung oder Post?
Richtig cool wäre ne vollständige Datei
Ich denke das es in der Datei 'class.newsletter.jobs.php' in Zeile um 404-427 steht aber ich finde es nicht.
Newsletter-Blöcken fehlerhaftes auslesen von Plugin-Date
Newsletter-Blöcken fehlerhaftes auslesen von Plugin-Date
Zuletzt geändert von OliverL am Fr 10. Okt 2008, 21:28, insgesamt 2-mal geändert.
Code: Alles auswählen
<?php
/*****************************************
* File : $RCSfile: company.php,v $
* Project : Contenido
* Descr : Navision-Plugin
* Modified : $Date: 2008/02/01 00:00:00 $
*
* teammedia GmbH, www.teammedia.net
*
* $Id: company.php,v 1. 2008/02/01 00:00:00 oliver.lohkemper Exp $
******************************************/
function recipients_company_canonicalVariables() {
return array( "company_ad_code" => str_replace("ä","ae", i18n("company_ad_code", "recipients_company") ),
"company_ad_signatur" => str_replace("ä","ae", i18n("company_ad_sig", "recipients_company") ),
"company_anrede" => i18n("company_anrede", "recipients_company"),
"company_vorname" => i18n("company_vorname", "recipients_company"),
"company_anrede_code" => i18n("company_anrede_code", "recipients_company"),
"company_paperhead" => i18n("company_paperhead", "recipients_company")
);
}
function recipients_company_getvalue( $field ) {
global $recipient;
$access = array( 'company_ad_code', 'company_anrede', 'company_vorname', 'company_anrede_code' );
if ( in_array($field, $access) ) {
return $recipient->getProperty( $field, "recipient" );
}
elseif( $field == 'company_paperhead' ) {
$anrede_code = $recipient->getProperty( 'company_anrede_code', "recipient" );
$anrede = $recipient->getProperty( 'company_anrede', "recipient" );
$vorname = $recipient->getProperty( 'company_vorname', "recipient" );
$name = $recipient->get("name");
switch ($anrede_code) {
case 1:
if(strtolower($anrede) == 'frau' and $name ) $output = 'Sehr geehrte Frau '.$name.',';
elseif(strtolower($anrede) == 'herr' and $name ) $output = 'Sehr geehrter Herr '.$name.',';
else $output = 'Sehr geehrte Damen und Herren,';
break;
case 4:
if( $vorname ) $output = 'Hallo '.$vorname.',';
elseif( $anrede and $name ) $output = 'Hallo '.$anrede.' '.$name.',';
else $output = 'Hallo,';
break;
case 7:
$output = ( $anrede and $name ? 'Hallo '.$anrede.' '.$name.',' : 'Sehr geehrte Damen und Herren,' );
break;
}
return $output;
}
elseif( $field == 'company_ad_signatur' ) {
global $cfgClient, $client;
if( file_exists($cfgClient[$client]['upl']['path'].'newsletter/verkaeufer.txt') ) {
$ad_daten = file($cfgClient[$client]['upl']['path'].'newsletter/verkaeufer.txt');
$ad_code = $recipient->getProperty( $field, "recipient" );
foreach( $ad_daten as $value ) {
$kuerzel = strtok($value, ";");
if( $ad_code == $kuerzel ) $output = str_replace(";", "\n", substr($value, strlen($kuerzel)+1) );
}
}
else {
return 'Datei existiert nicht!<br>'.$cfgClient[$client]['upl']['frontendpath'].'newsletter/verkaeufer.txt';
}
}
}
function recipients_company_getHTMLValue( $field ) {
global $recipient;
$access = array( 'company_ad_code', 'company_anrede', 'company_vorname', 'company_anrede_code' );
if ( in_array($field, $access) ) return $recipient->getProperty( $field, "recipient" );
elseif( $field == 'company_paperhead' ) {
$anrede_code = $recipient->getProperty( 'company_anrede_code', "recipient" );
$anrede = $recipient->getProperty( 'company_anrede', "recipient" );
$vorname = $recipient->getProperty( 'company_vorname', "recipient" );
$name = $recipient->get("name");
switch ($anrede_code) {
case 1:
if(strtolower($anrede) == 'frau' and $name ) $output = 'Sehr geehrte Frau '.htmlentities($name).',';
elseif(strtolower($anrede) == 'herr' and $name ) $output = 'Sehr geehrter Herr '.htmlentities($name).',';
else $output = 'Sehr geehrte Damen und Herren,';
break;
case 4:
if( $vorname ) $output = 'Hallo '.htmlentities($vorname).',';
elseif( $anrede and $name ) $output = 'Hallo '.htmlentities($anrede).' '.htmlentities($name).',';
else $output = 'Hallo,';
break;
case 7:
if( $anrede and $name ) $output = 'Hallo '.htmlentities($anrede).' '.htmlentities($name).',';
else $output = 'Sehr geehrte Damen und Herren,';
break;
}
return $output;
}
elseif( $field == 'company_ad_signatur' ) {
global $cfgClient, $client;
if( file_exists($cfgClient[$client]['upl']['path'].'newsletter/verkaeufer.txt') ) {
$ad_daten = file($cfgClient[$client]['upl']['path'].'newsletter/verkaeufer.txt');
$ad_code = $recipient->getProperty( 'company_ad_code', "recipient" );
foreach( $ad_daten as $value ) {
$kuerzel = strtok($value, ";");
if( $ad_code == $kuerzel ) {
$output = nl2br(htmlentities(str_replace(";", "\n", substr($value, strlen($kuerzel)+1))));
}
}
if( !$output ) {
$ad_code = "000";
foreach( $ad_daten as $value ) {
$kuerzel = strtok($value, ";");
if( $ad_code == $kuerzel ) {
$output = nl2br(htmlentities(str_replace(";", "\n", substr($value, strlen($kuerzel)+1))));
}
}
}
return $output;
}
else {
return 'Datei existiert nicht!<br>'.$cfgClient[$client]['upl']['frontendpath'].'newsletter/verkaeufer.txt';
}
}
}
function recipients_company_wantedVariables() {
return array( 'company_ad_code', 'company_ad_signatur', 'company_anrede', 'company_vorname', 'company_anrede_code', 'company_paperhead' );
}
function recipients_company_store( $variables ) {
global $recipient;
global $oRecipient;
if( is_object( $recipient ) ) { // Edit
$recipient->setProperty('company_ad_code', "recipient", $variables['company_ad_code']);
$recipient->setProperty('company_anrede', "recipient", $variables['company_anrede']);
$recipient->setProperty('company_vorname', "recipient", $variables['company_vorname']);
$recipient->setProperty('company_anrede_code', "recipient", $variables['company_anrede_code']);
}
elseif( is_object( $oRecipient ) ) { // Data-Import
$klasse_1 = array('w-offiz','m-offiz');
$klasse_4 = array('m-du', 'w-du');
if( 'w' == strtolower(substr($variables['company_anrede'],0,1 )) )
$variables['company_anrede'] = 'Frau';
elseif( 'm' == strtolower(substr($variables['company_anrede'],0,1 )) )
$variables['company_anrede'] = 'Herr';
else
$variables['company_anrede'] = '';
$oRecipient->setProperty('company_ad_code', "recipient", $variables['company_ad_code']);
$oRecipient->setProperty('company_anrede', "recipient", $variables['company_anrede']);
$oRecipient->setProperty('company_vorname', "recipient", $variables['company_vorname']);
if( in_array( $variables['company_anrede_code'], $klasse_1 ) AND !$variables['company_anrede_code'] )
$oRecipient->setProperty('company_anrede_code', "recipient", "1");
elseif( in_array( $variables['company_anrede_code'], $klasse_4 ) AND !$variables['company_anrede_code'] )
$oRecipient->setProperty('company_anrede_code', "recipient", "4");
elseif( !$variables['company_anrede_code'] )
$oRecipient->setProperty('company_anrede_code', "recipient", "7");
else
$oRecipient->setProperty('company_anrede_code', "recipient", $variables['company_anrede_code'] );
}
return true;
}
function recipients_company_getTitle() {
return i18n("Companydata", "frontendusers_company");
}
function recipients_company_display() {
global $recipient;
$data['company_ad_code'] = $recipient->getProperty("company_ad_code", "recipient");
$data['company_anrede'] = $recipient->getProperty("company_anrede", "recipient");
$data['company_vorname'] = $recipient->getProperty("company_vorname", "recipient");
$data['company_anrede_code'] = $recipient->getProperty("company_anrede_code", "recipient");
if( !$data['company_anrede_code'] ) $data['company_anrede_code'] = 7;
$company_ad_code = new cHTMLTextbox("company_ad_code", $data['company_ad_code'],13);
$company_vorname = new cHTMLTextbox("company_vorname", $data['company_vorname'], 40);
$output = '<table width="100%" border="0" cellspacing="0" cellpadding="0">';
$output.= '<tr>';
$output.= '<td>'.(i18n("company_anrede", "recipients_company")).'<br>';
$output.= '<select name="company_anrede" style="width: 100%;">';
$output.= ' <option value="Herr"'.($data['company_anrede'] == 'Herr' ? ' selected="selected"' : '').'>Herr</option>';
$output.= ' <option value="Frau"'.($data['company_anrede'] == 'Frau' ? ' selected="selected"' : '').'>Frau</option>';
$output.= ' <option value="" '.($data['company_anrede'] == '' ? ' selected="selected"' : '').'>- keine -</option>';
$output.= '</select>';
$output.= '</td>';
$output.= '<td>'.(i18n("company_anrede_code", "recipients_company")).'<br>';
$output.= '<select name="company_anrede_code" style="width: 100%; text-align: center;">';
$output.= ' <option value="1"'.($data['company_anrede_code'] == 1 ? ' selected="selected"' : '').'>1</option>';
$output.= ' <option value="4"'.($data['company_anrede_code'] == 4 ? ' selected="selected"' : '').'>4</option>';
$output.= ' <option value="7"'.($data['company_anrede_code'] == 7 ? ' selected="selected"' : '').'>7</option>';
$output.= '</select>';
$output.= '</td>';
$output.= '<td>'.(i18n("company_ad_code", "recipients_company")).'<br>'.($company_ad_code->render()).'</td>';
$output.= '</tr>';
$output.= '<tr><td colspan="3">'.(i18n("company_vorname", "recipients_company")).'<br>'.($company_vorname->render()).'</td></tr>';
$output.= '<tr><td colspan="3"><hr></td></tr>';
$output.= '<tr><td colspan="3"><b>'.(i18n("company_paperhead", "recipients_company")).'</b></td></tr>';
$output.= '<tr><td colspan="3">'.(recipients_company_getHTMLValue( 'company_paperhead' )).'</td></tr>';
$output.= '<tr><td colspan="3"><b>'.(htmlentities(i18n("company_ad_sig", "recipients_company") )).'</b></td></tr>';
$output.= '<tr><td colspan="3">'.(recipients_company_getHTMLValue( 'company_ad_signatur' )).'</td></tr>';
$output.= '</table>';
return $output;
}
?>
Zuletzt geändert von OliverL am Mo 17. Mär 2008, 09:41, insgesamt 1-mal geändert.
Die Variablen "company_paperhead" & "company_ad_signatur" werden für den Newsletter verwendet und werden generiert und nicht eingegeben.
Im _store() ist
$recipient für User-Input
$oRecipient für User-Import
(Leider sind diese Objekte/Variablen nicht identisch)
Ist nen bischen dreckig der Code, aber ich muss
- Daten von einem CRM übernehmen
- will nur: exportieren -> hochladen -> fertig!
- Daten prüfen und eintragen soll der User-Importer
- befütterung des Importers mit ca. 8.000 Datensätzen übernimmt ein Script
mfg Oli
Im _store() ist
$recipient für User-Input
$oRecipient für User-Import
(Leider sind diese Objekte/Variablen nicht identisch)
Ist nen bischen dreckig der Code, aber ich muss
- Daten von einem CRM übernehmen
- will nur: exportieren -> hochladen -> fertig!
- Daten prüfen und eintragen soll der User-Importer
- befütterung des Importers mit ca. 8.000 Datensätzen übernimmt ein Script
mfg Oli
Also das:
Du kannst auch in include.recipients_import.php auch nach
einfach ein $recipient = $oRecipient setzen (sofern nicht PHP5, sonst $recipient = $oRecipient.clone() oder so).
Das andere werde ich mal austesten.
In recipients_company_getvalue ist ein Bug: Dort wird zweimal company_ad_signatur abgefragt, der zweite Code wird wohl nie aufgerufen werden...
Gruß
HerrB
ist ein Bug. Es muss $recipient heißen (bzw. sollte man das Objekt als Parameter übergeben... -> Contenido-Weiterentwicklung). Kommt.Im _store() ist
$recipient für User-Input
$oRecipient für User-Import
(Leider sind diese Objekte/Variablen nicht identisch)
Du kannst auch in include.recipients_import.php auch nach
Code: Alles auswählen
// Store all base data
$oRecipient->store();
Das andere werde ich mal austesten.
In recipients_company_getvalue ist ein Bug: Dort wird zweimal company_ad_signatur abgefragt, der zweite Code wird wohl nie aufgerufen werden...
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net