本文整理汇总了PHP中make_substitutions函数的典型用法代码示例。如果您正苦于以下问题:PHP make_substitutions函数的具体用法?PHP make_substitutions怎么用?PHP make_substitutions使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了make_substitutions函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: makeSubstitution
/**
* Make substitution
*
* @param $object Adherent Object
* @return string Value of input text string with substitutions done
*/
function makeSubstitution($object)
{
global $conf, $langs;
$text = $this->body;
$birthday = dol_print_date($object->naiss, 'day');
$msgishtml = 0;
if (dol_textishtml($text, 1)) {
$msgishtml = 1;
}
$infos = '';
// Specific for Photo
$photoName = $object->photo;
$photoType = $object->_attachments->{$photoName}->content_type;
$photoBase64 = $object->getFileBase64($object->photo);
$photo = '<img src="data:' . $PhotoType . ';base64,' . $photoBase64 . '"/>';
// Substitutions
$substitutionarray = array('__DOL_MAIN_URL_ROOT__' => DOL_MAIN_URL_ROOT, '__ID__' => $msgishtml ? dol_htmlentitiesbr($object->login) : $object->login, '__CIVILITE__' => $object->getCivilityLabel($msgishtml ? 0 : 1), '__FIRSTNAME__' => $msgishtml ? dol_htmlentitiesbr($object->Firstname) : $object->Firstname, '__LASTNAME__' => $msgishtml ? dol_htmlentitiesbr($object->Lastname) : $object->Lastname, '__FULLNAME__' => $msgishtml ? dol_htmlentitiesbr($object->getFullName($langs)) : $object->getFullName($langs), '__COMPANY__' => $msgishtml ? dol_htmlentitiesbr($object->societe) : $object->societe, '__ADDRESS__' => $msgishtml ? dol_htmlentitiesbr($object->address) : $object->address, '__ZIP__' => $msgishtml ? dol_htmlentitiesbr($object->zip) : $object->zip, '__TOWN__' => $msgishtml ? dol_htmlentitiesbr($object->town) : $object->town, '__COUNTRY__' => $msgishtml ? dol_htmlentitiesbr($object->country) : $object->country, '__EMAIL__' => $msgishtml ? dol_htmlentitiesbr($object->email) : $object->email, '__NAISS__' => $msgishtml ? dol_htmlentitiesbr($birthday) : $birthday, '__PHOTO__' => $photo, '__LOGIN__' => $msgishtml ? dol_htmlentitiesbr($object->login) : $object->login, '__PASSWORD__' => $msgishtml ? dol_htmlentitiesbr($object->pass) : $object->pass, '__STATUS__' => $object->getLibStatus(), '__INFOS__' => $msgishtml ? dol_htmlentitiesbr($infos) : $infos, '__PRENOM__' => $msgishtml ? dol_htmlentitiesbr($object->Firstname) : $object->Firstname, '__NOM__' => $msgishtml ? dol_htmlentitiesbr($object->Lastname) : $object->Lastname, '__SOCIETE__' => $msgishtml ? dol_htmlentitiesbr($object->societe) : $object->societe, '__ADRESSE__' => $msgishtml ? dol_htmlentitiesbr($object->address) : $object->address, '__CP__' => $msgishtml ? dol_htmlentitiesbr($object->zip) : $object->zip, '__VILLE__' => $msgishtml ? dol_htmlentitiesbr($object->town) : $object->town, '__PAYS__' => $msgishtml ? dol_htmlentitiesbr($object->country) : $object->country);
complete_substitutions_array($substitutionarray, $langs);
$this->body = make_substitutions($text, $substitutionarray);
return 1;
}
示例2: complete_substitutions_array
$error++;
}
if (empty($smsfrom) || !str_replace('+', '', $smsfrom)) {
$message = '<div class="error">' . $langs->trans("ErrorFieldRequired", $langs->transnoentities("SmsFrom")) . '</div>';
$action = 'test';
$error++;
}
if (empty($sendto) || !str_replace('+', '', $sendto)) {
$message = '<div class="error">' . $langs->trans("ErrorFieldRequired", $langs->transnoentities("SmsTo")) . '</div>';
$action = 'test';
$error++;
}
if (!$error) {
// Make substitutions into message
complete_substitutions_array($substitutionarrayfortest, $langs);
$body = make_substitutions($body, $substitutionarrayfortest);
require_once DOL_DOCUMENT_ROOT . "/core/class/CSMSFile.class.php";
$smsfile = new CSMSFile($sendto, $smsfrom, $body, $deliveryreceipt, $deferred, $priority, $class);
// This define OvhSms->login, pass, session and account
$result = $smsfile->sendfile();
// This send SMS
if ($result) {
$message = '<div class="ok">' . $langs->trans("SmsSuccessfulySent", $smsfrom, $sendto) . '</div>';
} else {
$message = '<div class="error">' . $langs->trans("ResultKo") . '<br>' . $smsfile->error . ' ' . $result . '</div>';
}
$action = '';
}
}
/*
* View
示例3: show_form
//.........这里部分代码省略.........
}
} catch (Exception $e) {
dol_print_error('', 'Error to get list of senders: ' . $e->getMessage());
}
} else {
dol_syslog("Warning: The SMS sending method has not been defined into MAIN_SMS_SENDMODE", LOG_WARNING);
$resultsender[0]->number = $this->fromsms;
}
if (is_array($resultsender) && count($resultsender) > 0) {
print '<select name="fromsms" id="valid" class="flat">';
foreach ($resultsender as $obj) {
print '<option value="' . $obj->number . '">' . $obj->number . '</option>';
}
print '</select>';
} else {
print '<span class="error">' . $langs->trans("SmsNoPossibleRecipientFound") . '</span>';
}
print '</td>';
print "</tr>\n";
}
}
// To
if ($this->withto || is_array($this->withto)) {
print '<tr><td width="180">';
//$moretext=$langs->trans("YouCanUseCommaSeparatorForSeveralRecipients");
$moretext = '';
print $form->textwithpicto($langs->trans("SmsTo"), $moretext);
print '</td><td>';
if ($this->withtoreadonly) {
print !is_array($this->withto) && !is_numeric($this->withto) ? $this->withto : "";
} else {
print "<input size=\"16\" id=\"sendto\" name=\"sendto\" value=\"" . (!is_array($this->withto) && $this->withto != '1' ? isset($_REQUEST["sendto"]) ? $_REQUEST["sendto"] : $this->withto : "+") . "\">";
if (!empty($this->withtosocid) && $this->withtosocid > 0) {
$liste = array();
foreach ($soc->thirdparty_and_contact_phone_array() as $key => $value) {
$liste[$key] = $value;
}
print " " . $langs->trans("or") . " ";
//var_dump($_REQUEST);exit;
print $form->selectarray("receiver", $liste, GETPOST("receiver"), 1);
}
print ' ' . $langs->trans("SmsInfoNumero");
}
print "</td></tr>\n";
}
// Message
if ($this->withbody) {
$defaultmessage = '';
if ($this->param["models"] == 'body') {
$defaultmessage = $this->withbody;
}
$defaultmessage = make_substitutions($defaultmessage, $this->substit, $langs);
if (isset($_POST["message"])) {
$defaultmessage = $_POST["message"];
}
$defaultmessage = str_replace('\\n', "\n", $defaultmessage);
print "<tr>";
print "<td width=\"180\" valign=\"top\">" . $langs->trans("SmsText") . "</td>";
print "<td>";
if ($this->withbodyreadonly) {
print nl2br($defaultmessage);
print '<input type="hidden" name="message" value="' . $defaultmessage . '">';
} else {
print '<textarea cols="40" name="message" id="message" rows="4" onkeyup="limitChars(this, 160, \'charlimitinfo\')">' . $defaultmessage . '</textarea>';
print '<div id="charlimitinfo">' . $langs->trans("SmsInfoCharRemain") . ': <span id="charlimitinfospan">' . (160 - dol_strlen($defaultmessage)) . '</span></div></td>';
}
print "</td></tr>\n";
}
print '
<tr>
<td>' . $langs->trans("DelayBeforeSending") . ':</td>
<td> <input name="deferred" id="deferred" size="4" value="0"></td></tr>
<tr><td>' . $langs->trans("Priority") . ' :</td><td>
<select name="priority" id="valid" class="flat">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3" selected="selected">3</option>
</select></td></tr>
<tr><td>' . $langs->trans("Type") . ' :</td><td>
<select name="class" id="valid" class="flat">
<option value="0">Flash</option>
<option value="1" selected="selected">Standard</option>
<option value="2">SIM</option>
<option value="3">ToolKit</option>
</select></td></tr>';
print '<tr><td align="center" colspan="2"><center>';
print "<input class=\"button\" type=\"submit\" name=\"sendmail\" value=\"" . $langs->trans("SendSms") . "\"";
print ">";
if ($this->withcancel) {
print " ";
print "<input class=\"button\" type=\"submit\" name=\"cancel\" value=\"" . $langs->trans("Cancel") . "\">";
}
print "</center></td></tr>\n";
print "</table>\n";
print "</form>\n";
print "<!-- Fin form SMS -->\n";
}
示例4: get_exdir
$upload_dir = $conf->mailing->dir_output . "/" . get_exdir($object->id, 2, 0, 1);
$object->sendto = $_POST["sendto"];
if (!$object->sendto) {
$mesg = '<div class="error">' . $langs->trans("ErrorFieldRequired", $langs->trans("MailTo")) . '</div>';
$error++;
}
if (!$error) {
// Le message est-il en html
$msgishtml = -1;
// Inconnu par defaut
if (preg_match('/[\\s\\t]*<html>/i', $object->body)) {
$msgishtml = 1;
}
// Pratique les substitutions sur le sujet et message
$tmpsujet = make_substitutions($object->sujet, $object->substitutionarrayfortest);
$tmpbody = make_substitutions($object->body, $object->substitutionarrayfortest);
$arr_file = array();
$arr_mime = array();
$arr_name = array();
$arr_css = array();
// Ajout CSS
if (!empty($object->bgcolor)) {
$arr_css['bgcolor'] = (preg_match('/^#/', $object->bgcolor) ? '' : '#') . $object->bgcolor;
}
if (!empty($object->bgimage)) {
$arr_css['bgimage'] = $object->bgimage;
}
// Attached files
$listofpaths = dol_dir_list($upload_dir, 'all', 0, '', '', 'name', SORT_ASC, 0);
if (count($listofpaths)) {
foreach ($listofpaths as $key => $val) {
示例5: _sendByMail
function _sendByMail(&$db, &$conf, &$user, &$langs, &$facture, &$societe, $label)
{
$filename_list = array();
$mimetype_list = array();
$mimefilename_list = array();
$ref = dol_sanitizeFileName($facture->ref);
$fileparams = dol_most_recent_file($conf->facture->dir_output . '/' . $ref, preg_quote($ref, '/') . '([^\\-])+');
$file = $fileparams['fullname'];
// Build document if it not exists
if (!$file || !is_readable($file)) {
$result = $facture->generateDocument($facture->modelpdf, $langs, 0, 0, 0);
if ($result <= 0) {
$error = 1;
return $error;
}
}
$label = !empty($conf->global->SENDINVOICETOADHERENT_SUBJECT) ? $conf->global->SENDINVOICETOADHERENT_SUBJECT : $label;
$substitutionarray = array('__NAME__' => $societe->name, '__REF__' => $facture->ref);
$message = $conf->global->SENDINVOICETOADHERENT_MESSAGE;
$message = make_substitutions($message, $substitutionarray);
$fileparams = dol_most_recent_file($conf->facture->dir_output . '/' . $ref, preg_quote($ref, '/') . '([^\\-])+');
$file = $fileparams['fullname'];
$filename = basename($file);
$mimefile = dol_mimetype($file);
$filename_list[] = $file;
$mimetype_list[] = $mimefile;
$mimefilename_list[] = $filename;
$CMail = new CMailFile($label, $societe->email, $conf->global->MAIN_MAIL_EMAIL_FROM, $message, $filename_list, $mimetype_list, $mimefilename_list, '', '', '', '', $errors_to = $conf->global->MAIN_MAIL_ERRORS_TO);
// Send mail
return $CMail->sendfile();
}
开发者ID:ATM-Consulting,项目名称:dolibarr_module_sendinvoicetoadherent,代码行数:31,代码来源:sendinvoicetoadherent.php
示例6: preg_replace
}
//echo "[".$html."]";
// post-processing cleanup
$html = preg_replace('!<p>[\\s\\h\\v]*</p>!u', '', $html);
if ($links == 'remove') {
$html = preg_replace('!</?a[^>]*>!', '', $html);
}
//echo "[". $html ."]";
// get text sample for language detection
$text_sample = strip_tags(substr($html, 0, 500));
if (!$valid_key) {
$html = make_substitutions($options->message_to_prepend) . $html;
$html .= make_substitutions($options->message_to_append);
} else {
$html = make_substitutions($options->message_to_prepend_with_key) . $html;
$html .= make_substitutions($options->message_to_append_with_key);
}
}
}
/*
if ($format == 'atom') {
$newitem->addElement('content', $html);
$newitem->setDate((int)$item->get_date('U'));
if ($author = $item->get_author()) {
$newitem->addElement('author', array('name'=>$author->get_name()));
}
} else {
*/
if ($valid_key && isset($_GET['pubsub'])) {
// used only on fivefilters.org at the moment
$newitem->addElement('guid', 'http://fivefilters.org/content-only/redirect.php?url=' . urlencode($item->get_permalink()), array('isPermaLink' => 'false'));
示例7: make_substitutions
$textfooter = make_substitutions($conf->global->ADHERENT_CARD_FOOTER_TEXT, $substitutionarray);
$textright = make_substitutions($conf->global->ADHERENT_CARD_TEXT_RIGHT, $substitutionarray);
if (is_numeric($foruserid) || $foruserlogin) {
for ($j = 0; $j < 100; $j++) {
$arrayofmembers[] = array('textleft' => $textleft, 'textheader' => $textheader, 'textfooter' => $textfooter, 'textright' => $textright, 'id' => $objp->rowid, 'photo' => $objp->photo);
}
} else {
$arrayofmembers[] = array('textleft' => $textleft, 'textheader' => $textheader, 'textfooter' => $textfooter, 'textright' => $textright, 'id' => $objp->rowid, 'photo' => $objp->photo);
}
}
// For labels
if ($mode == 'label') {
if (empty($conf->global->ADHERENT_ETIQUETTE_TEXT)) {
$conf->global->ADHERENT_ETIQUETTE_TEXT = "%FULLNAME%\n%ADDRESS%\n%ZIP% %TOWN%\n%COUNTRY%";
}
$textleft = make_substitutions($conf->global->ADHERENT_ETIQUETTE_TEXT, $substitutionarray);
$textheader = '';
$textfooter = '';
$textright = '';
$arrayofmembers[] = array('textleft' => $textleft, 'textheader' => $textheader, 'textfooter' => $textfooter, 'textright' => $textright, 'id' => $objp->rowid, 'photo' => $objp->photo);
}
$i++;
}
// Build and output PDF
if (empty($mode) || $mode == 'card' || $mode == 'cardlogin') {
if (!count($arrayofmembers)) {
$mesg = $langs->trans("ErrorRecordNotFound");
}
if (empty($model) || $model == '-1') {
$mesg = $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("DescADHERENT_CARD_TYPE"));
}
示例8: array
//convert to TCPDF compatible encoding types
$is2d = $module->is2d;
}
}
if (!$error) {
// List of values to scan for a replacement
$substitutionarray = array('%LOGIN%' => $user->login, '%COMPANY%' => $mysoc->name, '%ADDRESS%' => $mysoc->address, '%ZIP%' => $mysoc->zip, '%TOWN%' => $mysoc->town, '%COUNTRY%' => $mysoc->country, '%COUNTRY_CODE%' => $mysoc->country_code, '%EMAIL%' => $mysoc->email, '%YEAR%' => $year, '%MONTH%' => $month, '%DAY%' => $day, '%DOL_MAIN_URL_ROOT%' => DOL_MAIN_URL_ROOT, '%SERVER%' => "http://" . $_SERVER["SERVER_NAME"] . "/");
complete_substitutions_array($substitutionarray, $langs);
// For labels
if ($mode == 'label') {
$txtforsticker = "%PHOTO%";
// Photo will be barcode image, %BARCODE% posible when using TCPDF generator
$textleft = make_substitutions(empty($conf->global->BARCODE_LABEL_LEFT_TEXT) ? $txtforsticker : $conf->global->BARCODE_LABEL_LEFT_TEXT, $substitutionarray);
$textheader = make_substitutions(empty($conf->global->BARCODE_LABEL_HEADER_TEXT) ? '' : $conf->global->BARCODE_LABEL_HEADER_TEXT, $substitutionarray);
$textfooter = make_substitutions(empty($conf->global->BARCODE_LABEL_FOOTER_TEXT) ? '' : $conf->global->BARCODE_LABEL_FOOTER_TEXT, $substitutionarray);
$textright = make_substitutions(empty($conf->global->BARCODE_LABEL_RIGHT_TEXT) ? '' : $conf->global->BARCODE_LABEL_RIGHT_TEXT, $substitutionarray);
$forceimgscalewidth = empty($conf->global->BARCODE_FORCEIMGSCALEWIDTH) ? 1 : $conf->global->BARCODE_FORCEIMGSCALEWIDTH;
$forceimgscaleheight = empty($conf->global->BARCODE_FORCEIMGSCALEHEIGHT) ? 1 : $conf->global->BARCODE_FORCEIMGSCALEHEIGHT;
for ($i = 0; $i < $numberofsticker; $i++) {
$arrayofrecords[] = array('textleft' => $textleft, 'textheader' => $textheader, 'textfooter' => $textfooter, 'textright' => $textright, 'code' => $code, 'encoding' => $encoding, 'is2d' => $is2d, 'photo' => $barcodeimage);
}
}
$i++;
$mesg = '';
// Build and output PDF
if ($mode == 'label') {
if (!count($arrayofrecords)) {
$mesg = $langs->trans("ErrorRecordNotFound");
}
if (empty($modellabel) || $modellabel == '-1') {
$mesg = $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("DescADHERENT_ETIQUETTE_TYPE"));
示例9: pdf_pagefoot
/**
* Show footer of page for PDF generation
*
* @param PDF &$pdf The PDF factory
* @param Translate $outputlangs Object lang for output
* @param string $paramfreetext Constant name of free text
* @param Societe $fromcompany Object company
* @param int $marge_basse Margin bottom
* @param int $marge_gauche Margin left
* @param int $page_hauteur Page height
* @param Object $object Object shown in PDF
* @param int $showdetails Show company details
* @return void
*/
function pdf_pagefoot(&$pdf, $outputlangs, $paramfreetext, $fromcompany, $marge_basse, $marge_gauche, $page_hauteur, $object, $showdetails = 0)
{
global $conf, $user;
$outputlangs->load("dict");
$line = '';
// Line of free text
if (!empty($conf->global->{$paramfreetext})) {
// Make substitution
$substitutionarray = array('__FROM_NAME__' => $fromcompany->nom, '__FROM_EMAIL__' => $fromcompany->email, '__TOTAL_TTC__' => $object->total_ttc, '__TOTAL_HT__' => $object->total_ht, '__TOTAL_VAT__' => $object->total_vat);
complete_substitutions_array($substitutionarray, $outputlangs, $object);
$newfreetext = make_substitutions($conf->global->{$paramfreetext}, $substitutionarray);
$line .= $outputlangs->convToOutputCharset($newfreetext);
}
// First line of company infos
if ($showdetails) {
$line1 = "";
// Company name
if ($fromcompany->name) {
$line1 .= ($line1 ? " - " : "") . $outputlangs->transnoentities("RegisteredOffice") . ": " . $fromcompany->name;
}
// Address
if ($fromcompany->address) {
$line1 .= ($line1 ? " - " : "") . $fromcompany->address;
}
// Zip code
if ($fromcompany->zip) {
$line1 .= ($line1 ? " - " : "") . $fromcompany->zip;
}
// Town
if ($fromcompany->town) {
$line1 .= ($line1 ? " " : "") . $fromcompany->town;
}
// Phone
if ($fromcompany->phone) {
$line1 .= ($line1 ? " - " : "") . $outputlangs->transnoentities("Phone") . ": " . $fromcompany->phone;
}
// Fax
if ($fromcompany->fax) {
$line1 .= ($line1 ? " - " : "") . $outputlangs->transnoentities("Fax") . ": " . $fromcompany->fax;
}
$line2 = "";
// URL
if ($fromcompany->url) {
$line2 .= ($line2 ? " - " : "") . $fromcompany->url;
}
// Email
if ($fromcompany->email) {
$line2 .= ($line2 ? " - " : "") . $fromcompany->email;
}
}
// Line 3 of company infos
$line3 = "";
// Juridical status
if ($fromcompany->forme_juridique_code) {
$line3 .= ($line3 ? " - " : "") . $outputlangs->convToOutputCharset(getFormeJuridiqueLabel($fromcompany->forme_juridique_code));
}
// Capital
if ($fromcompany->capital) {
$line3 .= ($line3 ? " - " : "") . $outputlangs->transnoentities("CapitalOf", $fromcompany->capital) . " " . $outputlangs->transnoentities("Currency" . $conf->currency);
}
// Prof Id 1
if ($fromcompany->idprof1 && ($fromcompany->country_code != 'FR' || !$fromcompany->idprof2)) {
$field = $outputlangs->transcountrynoentities("ProfId1", $fromcompany->country_code);
if (preg_match('/\\((.*)\\)/i', $field, $reg)) {
$field = $reg[1];
}
$line3 .= ($line3 ? " - " : "") . $field . ": " . $outputlangs->convToOutputCharset($fromcompany->idprof1);
}
// Prof Id 2
if ($fromcompany->idprof2) {
$field = $outputlangs->transcountrynoentities("ProfId2", $fromcompany->country_code);
if (preg_match('/\\((.*)\\)/i', $field, $reg)) {
$field = $reg[1];
}
$line3 .= ($line3 ? " - " : "") . $field . ": " . $outputlangs->convToOutputCharset($fromcompany->idprof2);
}
// Line 4 of company infos
$line4 = "";
// Prof Id 3
if ($fromcompany->idprof3) {
$field = $outputlangs->transcountrynoentities("ProfId3", $fromcompany->country_code);
if (preg_match('/\\((.*)\\)/i', $field, $reg)) {
$field = $reg[1];
}
$line4 .= ($line4 ? " - " : "") . $field . ": " . $outputlangs->convToOutputCharset($fromcompany->idprof3);
}
//.........这里部分代码省略.........
示例10: array
$mil->sendto = $_POST["sendto"];
if (! $mil->sendto)
{
$message='<div class="error">'.$langs->trans("ErrorFieldRequired",$langs->trans("MailTo")).'</div>';
$error++;
}
if (! $error)
{
// Le message est-il en html
$msgishtml=-1; // Inconnu par defaut
if (preg_match('/[\s\t]*<html>/i',$message)) $msgishtml=1;
// Pratique les substitutions sur le sujet et message
$mil->sujet=make_substitutions($mil->sujet,$substitutionarrayfortest,$langs);
$mil->body=make_substitutions($mil->body,$substitutionarrayfortest,$langs);
$arr_file = array();
$arr_mime = array();
$arr_name = array();
$arr_css = array();
// Ajout CSS
if (!empty($mil->bgcolor)) $arr_css['bgcolor'] = (preg_match('/^#/',$mil->bgcolor)?'':'#').$mil->bgcolor;
if (!empty($mil->bgimage)) $arr_css['bgimage'] = $mil->bgimage;
// Attached files
$listofpaths=dol_dir_list($upload_dir,'all',0,'','','name',SORT_ASC,0);
if (sizeof($listofpaths))
{
foreach($listofpaths as $key => $val)
示例11: get_form
//.........这里部分代码省略.........
$out .= "</td></tr>\n";
}
// Ask delivery receipt
if (!empty($this->withdeliveryreceipt)) {
$out .= '<tr><td width="180">' . $langs->trans("DeliveryReceipt") . '</td><td>';
if (!empty($this->withdeliveryreceiptreadonly)) {
$out .= yn($this->withdeliveryreceipt);
} else {
$defaultvaluefordeliveryreceipt = 0;
if (!empty($conf->global->MAIL_FORCE_DELIVERY_RECEIPT_PROPAL) && !empty($this->param['models']) && $this->param['models'] == 'propal_send') {
$defaultvaluefordeliveryreceipt = 1;
}
if (!empty($conf->global->MAIL_FORCE_DELIVERY_RECEIPT_ASKPRICESUPPLIER) && !empty($this->param['models']) && $this->param['models'] == 'askpricesupplier_send') {
$defaultvaluefordeliveryreceipt = 1;
}
if (!empty($conf->global->MAIL_FORCE_DELIVERY_RECEIPT_ORDER) && !empty($this->param['models']) && $this->param['models'] == 'order_send') {
$defaultvaluefordeliveryreceipt = 1;
}
if (!empty($conf->global->MAIL_FORCE_DELIVERY_RECEIPT_INVOICE) && !empty($this->param['models']) && $this->param['models'] == 'facture_send') {
$defaultvaluefordeliveryreceipt = 1;
}
$out .= $form->selectyesno('deliveryreceipt', isset($_POST["deliveryreceipt"]) ? $_POST["deliveryreceipt"] : $defaultvaluefordeliveryreceipt, 1);
}
$out .= "</td></tr>\n";
}
// Topic
if (!empty($this->withtopic)) {
$defaulttopic = "";
if (count($arraydefaultmessage) > 0 && $arraydefaultmessage['topic']) {
$defaulttopic = $arraydefaultmessage['topic'];
} elseif (!is_numeric($this->withtopic)) {
$defaulttopic = $this->withtopic;
}
$defaulttopic = make_substitutions($defaulttopic, $this->substit);
$out .= '<tr>';
$out .= '<td width="180">' . $langs->trans("MailTopic") . '</td>';
$out .= '<td>';
if ($this->withtopicreadonly) {
$out .= $defaulttopic;
$out .= '<input type="hidden" size="60" id="subject" name="subject" value="' . $defaulttopic . '" />';
} else {
$out .= '<input type="text" size="60" id="subject" name="subject" value="' . (isset($_POST["subject"]) && !$_POST['modelselected'] ? $_POST["subject"] : ($defaulttopic ? $defaulttopic : '')) . '" />';
}
$out .= "</td></tr>\n";
}
// Attached files
if (!empty($this->withfile)) {
$out .= '<tr>';
$out .= '<td width="180">' . $langs->trans("MailFile") . '</td>';
$out .= '<td>';
if (is_numeric($this->withfile)) {
// TODO Trick to have param removedfile containing nb of image to delete. But this does not works without javascript
$out .= '<input type="hidden" class="removedfilehidden" name="removedfile" value="">' . "\n";
$out .= '<script type="text/javascript" language="javascript">';
$out .= 'jQuery(document).ready(function () {';
$out .= ' jQuery(".removedfile").click(function() {';
$out .= ' jQuery(".removedfilehidden").val(jQuery(this).val());';
$out .= ' });';
$out .= '})';
$out .= '</script>' . "\n";
if (count($listofpaths)) {
foreach ($listofpaths as $key => $val) {
$out .= '<div id="attachfile_' . $key . '">';
$out .= img_mime($listofnames[$key]) . ' ' . $listofnames[$key];
if (!$this->withfilereadonly) {
$out .= ' <input type="image" style="border: 0px;" src="' . DOL_URL_ROOT . '/theme/' . $conf->theme . '/img/delete.png" value="' . ($key + 1) . '" class="removedfile" id="removedfile_' . $key . '" name="removedfile_' . $key . '" />';
示例12: sendOrderByMail
/**
*
* @param unknown $object
*/
static function sendOrderByMail(&$object)
{
global $conf, $langs, $user, $db;
if (empty($object->thirdparty)) {
$object->fetch_thirdparty();
}
$sendto = $object->thirdparty->email;
$sendtocc = '';
$from = empty($user->email) ? $conf->global->MAIN_MAIL_EMAIL_FROM : $user->email;
$id = $object->id;
$_POST['receiver'] = '-1';
$_POST['frommail'] = $_POST['replytomail'] = $from;
$_POST['fromname'] = $_POST['replytoname'] = $user->getFullName($langs);
dol_include_once('/core/class/html.formmail.class.php');
$formmail = new Formmail($db);
$outputlangs = clone $langs;
$id_template = (int) $conf->global->GRAPEFRUIT_SEND_BILL_BY_MAIL_ON_VALIDATE_MODEL;
$formmail->fetchAllEMailTemplate('facture_send', $user, $outputlangs);
foreach ($formmail->lines_model as &$model) {
if ($model->id == $id_template) {
break;
}
}
if (empty($model)) {
setEventMessage($langs->trans('ModelRequire'), 'errors');
}
// Make substitution
$substit['__REF__'] = $object->ref;
$substit['__SIGNATURE__'] = $user->signature;
$substit['__REFCLIENT__'] = $object->ref_client;
$substit['__THIRDPARTY_NAME__'] = $object->thirdparty->name;
$substit['__PROJECT_REF__'] = is_object($object->projet) ? $object->projet->ref : '';
$substit['__PROJECT_NAME__'] = is_object($object->projet) ? $object->projet->title : '';
$substit['__PERSONALIZED__'] = '';
$substit['__CONTACTCIVNAME__'] = '';
// Find the good contact adress
$custcontact = '';
$contactarr = array();
$contactarr = $object->liste_contact(-1, 'external');
if (is_array($contactarr) && count($contactarr) > 0) {
foreach ($contactarr as $contact) {
dol_syslog(get_class($this) . '::' . __METHOD__ . ' lib=' . $contact['libelle']);
dol_syslog(get_class($this) . '::' . __METHOD__ . ' trans=' . $langs->trans('TypeContact_commande_external_BILLING'));
if ($contact['libelle'] == $langs->trans('TypeContact_commande_external_BILLING')) {
require_once DOL_DOCUMENT_ROOT . '/contact/class/contact.class.php';
$contactstatic = new Contact($db);
$contactstatic->fetch($contact['id']);
$custcontact = $contactstatic->getFullName($langs, 1);
dol_syslog(get_class($this) . '::' . __METHOD__ . ' email=' . $contactstatic->email);
}
}
if (!empty($custcontact)) {
$substit['__CONTACTCIVNAME__'] = $custcontact;
}
if (!empty($contactstatic->email)) {
$sendto = $contactstatic->email;
}
}
$topic = make_substitutions($model->topic, $substit);
$message = make_substitutions($model->content, $substit);
$_POST['message'] = $message;
$_POST['subject'] = $topic;
require_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php';
// Add attached files
$fileparams = dol_most_recent_file($conf->commande->dir_output . '/' . $object->ref, preg_quote($object->ref, '/') . '[^\\-]+');
if (is_array($fileparams) && array_key_exists('fullname', $fileparams) && !empty($fileparams['fullname'])) {
$_SESSION["listofpaths"] = $fileparams['fullname'];
$_SESSION["listofnames"] = basename($fileparams['fullname']);
$_SESSION["listofmimes"] = dol_mimetype($fileparams['fullname']);
} else {
// generate invoice
$result = $object->generateDocument($object->modelpdf, $outputlangs, 0, 0, 0);
if ($result <= 0) {
$this->error = $object->error;
}
$fileparams = dol_most_recent_file($conf->commande->dir_output . '/' . $object->ref, preg_quote($object->ref, '/') . '[^\\-]+');
if (is_array($fileparams) && array_key_exists('fullname', $fileparams) && !empty($fileparams['fullname'])) {
$_SESSION["listofpaths"] = $fileparams['fullname'];
$_SESSION["listofnames"] = basename($fileparams['fullname']);
$_SESSION["listofmimes"] = dol_mimetype($fileparams['fullname']);
}
}
$action = 'send';
$actiontypecode = 'AC_FAC';
$trigger_name = 'BILL_SENTBYMAIL';
$paramname = 'id';
$mode = 'emailfrominvoice';
if (!empty($sendto)) {
require_once __DIR__ . '/../tpl/actions_sendmails.inc.php';
}
}
示例13: write_file
/**
* Function to build a document on disk using the generic odt module.
*
* @param Facture $object Object source to build document
* @param Translate $outputlangs Lang output object
* @param string $srctemplatepath Full path of source filename for generator using a template file
* @return int 1 if OK, <=0 if KO
*/
function write_file($object, $outputlangs, $srctemplatepath)
{
global $user, $langs, $conf, $mysoc;
if (empty($srctemplatepath)) {
dol_syslog("doc_generic_odt::write_file parameter srctemplatepath empty", LOG_WARNING);
return -1;
}
if (!is_object($outputlangs)) {
$outputlangs = $langs;
}
$sav_charset_output = $outputlangs->charset_output;
$outputlangs->charset_output = 'UTF-8';
$outputlangs->load("main");
$outputlangs->load("dict");
$outputlangs->load("companies");
$outputlangs->load("bills");
if ($conf->facture->dir_output) {
// If $object is id instead of object
if (!is_object($object)) {
$id = $object;
$object = new Facture($this->db);
$result = $object->fetch($id);
if ($result < 0) {
dol_print_error($this->db, $object->error);
return -1;
}
}
$dir = $conf->facture->dir_output;
$objectref = dol_sanitizeFileName($object->ref);
if (!preg_match('/specimen/i', $objectref)) {
$dir .= "/" . $objectref;
}
$file = $dir . "/" . $objectref . ".odt";
if (!file_exists($dir)) {
if (dol_mkdir($dir) < 0) {
$this->error = $langs->transnoentities("ErrorCanNotCreateDir", $dir);
return -1;
}
}
if (file_exists($dir)) {
//print "srctemplatepath=".$srctemplatepath;exit; // Src filename
$newfile = basename($srctemplatepath);
$newfiletmp = preg_replace('/\\.odt/i', '', $newfile);
$newfiletmp = preg_replace('/template_/i', '', $newfiletmp);
$newfiletmp = preg_replace('/modele_/i', '', $newfiletmp);
$newfiletmp = $objectref . '_' . $newfiletmp;
//$file=$dir.'/'.$newfiletmp.'.'.dol_print_date(dol_now(),'%Y%m%d%H%M%S').'.odt';
$file = $dir . '/' . $newfiletmp . '.odt';
//print "newdir=".$dir;
//print "newfile=".$newfile;
//print "file=".$file;
//print "conf->societe->dir_temp=".$conf->societe->dir_temp;
dol_mkdir($conf->facture->dir_temp);
// If BILLING contact defined on invoice, we use it
$usecontact = false;
$arrayidcontact = $object->getIdContact('external', 'BILLING');
if (count($arrayidcontact) > 0) {
$usecontact = true;
$result = $object->fetch_contact($arrayidcontact[0]);
}
// Recipient name
if (!empty($usecontact)) {
// On peut utiliser le nom de la societe du contact
if ($conf->global->MAIN_USE_COMPANY_NAME_OF_CONTACT) {
$socobject = $object->contact;
} else {
$socobject = $object->client;
}
} else {
$socobject = $object->client;
}
// Make substitution
$substitutionarray = array('__FROM_NAME__' => $this->emetteur->nom, '__FROM_EMAIL__' => $this->emetteur->email, '__TOTAL_TTC__' => $object->total_ttc, '__TOTAL_HT__' => $object->total_ht, '__TOTAL_VAT__' => $object->total_vat);
complete_substitutions_array($substitutionarray, $langs, $object);
// Line of free text
$newfreetext = '';
$paramfreetext = 'FACTURE_FREE_TEXT';
if (!empty($conf->global->{$paramfreetext})) {
$newfreetext = make_substitutions($conf->global->{$paramfreetext}, $substitutionarray);
}
// Open and load template
require_once ODTPHP_PATH . 'odf.php';
$odfHandler = new odf($srctemplatepath, array('PATH_TO_TMP' => $conf->facture->dir_temp, 'ZIP_PROXY' => 'PclZipProxy', 'DELIMITER_LEFT' => '{', 'DELIMITER_RIGHT' => '}'));
// After construction $odfHandler->contentXml contains content and
// [!-- BEGIN row.lines --]*[!-- END row.lines --] has been replaced by
// [!-- BEGIN lines --]*[!-- END lines --]
//print html_entity_decode($odfHandler->__toString());
//print exit;
// Make substitutions into odt of freetext
try {
$odfHandler->setVars('free_text', $newfreetext, true, 'UTF-8');
} catch (OdfException $e) {
//.........这里部分代码省略.........
示例14: complete_head_from_modules
/**
* Complete or removed entries into a head array (used to build tabs) with value added by external modules.
* Such values are declared into $conf->modules_parts['tab'].
*
* @param Conf $conf Object conf
* @param Translate $langs Object langs
* @param object|null $object Object object
* @param array $head Object head
* @param int $h New position to fill
* @param string $type Value for object where objectvalue can be
* 'thirdparty' to add a tab in third party view
* 'intervention' to add a tab in intervention view
* 'supplier_order' to add a tab in supplier order view
* 'supplier_invoice' to add a tab in supplier invoice view
* 'invoice' to add a tab in customer invoice view
* 'order' to add a tab in customer order view
* 'product' to add a tab in product view
* 'propal' to add a tab in propal view
* 'user' to add a tab in user view
* 'group' to add a tab in group view
* 'member' to add a tab in fundation member view
* 'categories_x' to add a tab in category view ('x': type of category (0=product, 1=supplier, 2=customer, 3=member)
* 'ecm' to add a tab for another ecm view
* @param string $mode 'add' to complete head, 'remove' to remove entries
* @return void
*/
function complete_head_from_modules($conf, $langs, $object, &$head, &$h, $type, $mode = 'add')
{
if (isset($conf->modules_parts['tabs'][$type]) && is_array($conf->modules_parts['tabs'][$type])) {
foreach ($conf->modules_parts['tabs'][$type] as $value) {
$values = explode(':', $value);
if ($mode == 'add' && !preg_match('/^\\-/', $values[1])) {
if (count($values) == 6) {
if ($values[0] != $type) {
continue;
}
if (verifCond($values[4])) {
if ($values[3]) {
$langs->load($values[3]);
}
if (preg_match('/SUBSTITUTION_([^_]+)/i', $values[2], $reg)) {
$substitutionarray = array();
complete_substitutions_array($substitutionarray, $langs, $object);
$label = make_substitutions($reg[1], $substitutionarray);
} else {
$label = $langs->trans($values[2]);
}
$head[$h][0] = dol_buildpath(preg_replace('/__ID__/i', is_object($object) && !empty($object->id) ? $object->id : '', $values[5]), 1);
$head[$h][1] = $label;
$head[$h][2] = str_replace('+', '', $values[1]);
$h++;
}
} else {
if (count($values) == 5) {
if ($values[0] != $type) {
continue;
}
if ($values[3]) {
$langs->load($values[3]);
}
if (preg_match('/SUBSTITUTION_([^_]+)/i', $values[2], $reg)) {
$substitutionarray = array();
complete_substitutions_array($substitutionarray, $langs, $object);
$label = make_substitutions($reg[1], $substitutionarray);
} else {
$label = $langs->trans($values[2]);
}
$head[$h][0] = dol_buildpath(preg_replace('/__ID__/i', is_object($object) && !empty($object->id) ? $object->id : '', $values[4]), 1);
$head[$h][1] = $label;
$head[$h][2] = str_replace('+', '', $values[1]);
$h++;
}
}
} else {
if ($mode == 'remove' && preg_match('/^\\-/', $values[1])) {
if ($values[0] != $type) {
continue;
}
$tabname = str_replace('-', '', $values[1]);
foreach ($head as $key => $val) {
$condition = !empty($values[3]) ? verifCond($values[3]) : 1;
if ($head[$key][2] == $tabname && $condition) {
unset($head[$key]);
break;
}
}
}
}
}
}
}
示例15: setEventMessage
$error++;
setEventMessage('Failed to generate image file of barcode for code=' . $code . ' encoding=' . $encoding . ' file=' . basename($barcodeimage), 'errors');
}
} else {
$error++;
setEventMessage("Error, encoding " . $encoding . " is not supported by encoder " . $generator . '. You must choose another barcode type or install a barcode generation engine that support ' . $encoding, 'errors');
}
}
if (!$error) {
// List of values to scan for a replacement
$substitutionarray = array('%LOGIN%' => $user->login, '%COMPANY%' => $mysoc->name, '%ADDRESS%' => $mysoc->address, '%ZIP%' => $mysoc->zip, '%TOWN%' => $mysoc->town, '%COUNTRY%' => $mysoc->country, '%COUNTRY_CODE%' => $mysoc->country_code, '%EMAIL%' => $mysoc->email, '%YEAR%' => $year, '%MONTH%' => $month, '%DAY%' => $day, '%DOL_MAIN_URL_ROOT%' => DOL_MAIN_URL_ROOT, '%SERVER%' => "http://" . $_SERVER["SERVER_NAME"] . "/");
complete_substitutions_array($substitutionarray, $langs);
// For labels
if ($mode == 'label') {
$txtforsticker = "%PHOTO%";
$textleft = make_substitutions($txtforsticker, $substitutionarray);
$textheader = '';
$textfooter = '';
$textright = '';
$forceimgscalewidth = empty($conf->global->BARCODE_FORCEIMGSCALEWIDTH) ? 1 : $conf->global->BARCODE_FORCEIMGSCALEWIDTH;
$forceimgscaleheight = empty($conf->global->BARCODE_FORCEIMGSCALEHEIGHT) ? 1 : $conf->global->BARCODE_FORCEIMGSCALEHEIGHT;
for ($i = 0; $i < $numberofsticker; $i++) {
$arrayofmembers[] = array('textleft' => $textleft, 'textheader' => $textheader, 'textfooter' => $textfooter, 'textright' => $textright, 'photo' => $barcodeimage);
}
}
$i++;
$mesg = '';
// Build and output PDF
if ($mode == 'label') {
if (!count($arrayofmembers)) {
$mesg = $langs->trans("ErrorRecordNotFound");