Fix: Correct link to forum in help center

This commit is contained in:
Laurent Destailleur 2009-05-11 16:26:54 +00:00
parent a8543dcb34
commit 215ac8fa30
6 changed files with 378 additions and 546 deletions

View File

@ -175,8 +175,8 @@ OfficialWebSiteFr = lloc web oficial francòfon
OfficialWikiFr = Wiki francòfon OfficialWikiFr = Wiki francòfon
OfficialWiki = Wiki Dolibarr OfficialWiki = Wiki Dolibarr
OfficialDemo = Demo en línia Dolibarr OfficialDemo = Demo en línia Dolibarr
ForDocumentationSeeWiki = Per a la documentació d'usuari, desenvolupador o Preguntes Freqüents (FAQ), consulteu el wiki Dolibarr: <br><b><a href=\"%s\" target=\"_blank\">%s</a></b> ForDocumentationSeeWiki = Per a la documentació d'usuari, desenvolupador o Preguntes Freqüents (FAQ), consulteu el wiki Dolibarr: <br><b><a href="%s" target="_blank">%s</a></b>
ForAnswersSeeForum = Per altres qüestions o realitzar les seves pròpies consultes, pot utilitzar el fòrum Dolibarr: <br><b><a href=\"%s\" target=\"_blank\">%s</a></b> ForAnswersSeeForum = Per altres qüestions o realitzar les seves pròpies consultes, pot utilitzar el fòrum Dolibarr: <br><b><a href="%s" target="_blank">%s</a></b>
HelpCenterDesc1 = Aquesta aplicació, independent de Dolibarr, us permet ajudar a obtenir un servei de suport de Dolibarr. HelpCenterDesc1 = Aquesta aplicació, independent de Dolibarr, us permet ajudar a obtenir un servei de suport de Dolibarr.
HelpCenterDesc2 = Alguns d'aquests serveis només estan disponibles en <b>anglès</b>. HelpCenterDesc2 = Alguns d'aquests serveis només estan disponibles en <b>anglès</b>.
CurrentTopMenuHandler = Gestor de menú superior CurrentTopMenuHandler = Gestor de menú superior

View File

@ -175,8 +175,8 @@ OfficialWebSiteFr = sitio web oficial habla francesa
OfficialWikiFr = Wiki habla francesa OfficialWikiFr = Wiki habla francesa
OfficialWiki = Wiki Dolibarr OfficialWiki = Wiki Dolibarr
OfficialDemo = Demo en línea Dolibarr OfficialDemo = Demo en línea Dolibarr
ForDocumentationSeeWiki = Para la documentación de usuario, desarrollador o Preguntas Frecuentes (FAQ), consulte el wiki Dolibarr: <br><b><a href=\"%s\" target=\"_blank\">%s</a></b> ForDocumentationSeeWiki = Para la documentación de usuario, desarrollador o Preguntas Frecuentes (FAQ), consulte el wiki Dolibarr: <br><b><a href="%s" target="_blank">%s</a></b>
ForAnswersSeeForum = Para otras cuestiones o realizar sus propias consultas, puede utilizar el foro Dolibarr: <br><b><a href=\"%s\" target=\"_blank\">%s</a></b> ForAnswersSeeForum = Para otras cuestiones o realizar sus propias consultas, puede utilizar el foro Dolibarr: <br><b><a href="%s" target="_blank">%s</a></b>
HelpCenterDesc1 = Esta aplicación, independiente de Dolibarr, le permite ayudarle a obtener un servicio de soporte de Dolibarr. HelpCenterDesc1 = Esta aplicación, independiente de Dolibarr, le permite ayudarle a obtener un servicio de soporte de Dolibarr.
HelpCenterDesc2 = Algunos de estos servicios sólo están disponibles en <b>inglés</b>. HelpCenterDesc2 = Algunos de estos servicios sólo están disponibles en <b>inglés</b>.
CurrentTopMenuHandler = Gestor de menú superior CurrentTopMenuHandler = Gestor de menú superior

View File

@ -172,8 +172,8 @@ OfficialWebSiteFr=sitio web oficial falado/escrito em francês
OfficialWikiFr=Wiki falado/escrito em francês OfficialWikiFr=Wiki falado/escrito em francês
OfficialWiki=Wiki ERP OfficialWiki=Wiki ERP
OfficialDemo=Demo em linha ERP OfficialDemo=Demo em linha ERP
ForDocumentationSeeWiki=Para a documentação de utilizador, programador ou Perguntas Frecuentes (FAQ), consulte o wiki do ERP: <br><b><a href=\"%s\" target=\"_blank\">%s</a></b> ForDocumentationSeeWiki=Para a documentação de utilizador, programador ou Perguntas Frecuentes (FAQ), consulte o wiki do ERP: <br><b><a href="%s" target="_blank">%s</a></b>
ForAnswersSeeForum=Para outras questões ou realizar as suas prórpias consultas, pode utilizar o forum do ERP: <br><b><a href=\"%s\" target=\"_blank\">%s</a></b> ForAnswersSeeForum=Para outras questões ou realizar as suas prórpias consultas, pode utilizar o forum do ERP: <br><b><a href="%s" target="_blank">%s</a></b>
HelpCenterDesc1=Esta área permite ajuda-lo a obter um serviço de suporte do ERP. HelpCenterDesc1=Esta área permite ajuda-lo a obter um serviço de suporte do ERP.
HelpCenterDesc2=Alguns destes serviços só estão disponiveis em <b>inglés</b>. HelpCenterDesc2=Alguns destes serviços só estão disponiveis em <b>inglés</b>.
CurrentTopMenuHandler=Gestor de menu superior CurrentTopMenuHandler=Gestor de menu superior

View File

@ -54,20 +54,6 @@ class CMailFile
var $smtps; // Contains SMTPs object (if this method is used) var $smtps; // Contains SMTPs object (if this method is used)
var $html;
var $image_boundary;
var $atleastoneimage=0;
var $html_images=array();
var $images_encoded=array();
var $image_types = array('gif' => 'image/gif',
'jpg' => 'image/jpeg',
'jpeg' => 'image/jpeg',
'jpe' => 'image/jpeg',
'bmp' => 'image/bmp',
'png' => 'image/png',
'tif' => 'image/tiff',
'tiff' => 'image/tiff');
/** /**
* \brief CMailFile * \brief CMailFile
@ -99,32 +85,13 @@ class CMailFile
if ($msgishtml == -1) if ($msgishtml == -1)
{ {
$this->msgishtml = 0; $this->msgishtml = 0;
if (dol_textishtml($msg)) $this->msgishtml = 1; if (dol_textishtml($msg,1)) $this->msgishtml = 1;
} }
else else
{ {
$this->msgishtml = $msgishtml; $this->msgishtml = $msgishtml;
} }
// Detect images
if ($this->msgishtml)
{
$this->html = $msg;
$findimg = $this->findHtmlImages($conf->fckeditor->dir_output);
// Define if there is at least one file
if ($findimg)
{
foreach ($this->html_images as $i => $val)
{
if ($this->html_images[$i])
{
$this->atleastoneimage=1;
dol_syslog("CMailFile::CMailfile: html_images[$i]['name']=".$this->html_images[$i]['name'], LOG_DEBUG);
}
}
}
}
// Define if there is at least one file // Define if there is at least one file
foreach ($filename_list as $i => $val) foreach ($filename_list as $i => $val)
{ {
@ -155,7 +122,7 @@ class CMailFile
$text_encoded = ""; $text_encoded = "";
// En-tete dans $smtp_headers // En-tete dans $smtp_headers
$this->subject = utf8_decode($subject); $this->subject = $subject;
$this->addr_from = $from; $this->addr_from = $from;
$this->errors_to = $errors_to; $this->errors_to = $errors_to;
$this->addr_to = $to; $this->addr_to = $to;
@ -165,18 +132,11 @@ class CMailFile
$smtp_headers = $this->write_smtpheaders(); $smtp_headers = $this->write_smtpheaders();
// En-tete suite dans $mime_headers // En-tete suite dans $mime_headers
if ($this->atleastonefile || $this->atleastoneimage) if ($this->atleastonefile)
{ {
$mime_headers = $this->write_mimeheaders($filename_list, $mimefilename_list); $mime_headers = $this->write_mimeheaders($filename_list, $mimefilename_list);
} }
// On encode les images
if ($this->atleastoneimage)
{
$images_encoded = $this->write_images($this->images_encoded);
$msg = $this->html;
}
// Corps message dans $text_body // Corps message dans $text_body
$text_body = $this->write_body($msg, $filename_list); $text_body = $this->write_body($msg, $filename_list);
@ -188,7 +148,7 @@ class CMailFile
// On defini $this->headers et $this->message // On defini $this->headers et $this->message
$this->headers = $smtp_headers . $mime_headers; $this->headers = $smtp_headers . $mime_headers;
$this->message = $text_body . $images_encoded . $text_encoded; $this->message = $text_body . $text_encoded;
// On nettoie le header pour qu'il ne se termine pas par un retour chariot. // On nettoie le header pour qu'il ne se termine pas par un retour chariot.
// Ceci evite aussi les lignes vides en fin qui peuvent etre interpretees // Ceci evite aussi les lignes vides en fin qui peuvent etre interpretees
@ -454,22 +414,17 @@ class CMailFile
if (isset($this->deliveryreceipt) && $this->deliveryreceipt == 1) $out .= "Disposition-Notification-To: ".getValidAddress($this->addr_from,2).$this->eol; if (isset($this->deliveryreceipt) && $this->deliveryreceipt == 1) $out .= "Disposition-Notification-To: ".getValidAddress($this->addr_from,2).$this->eol;
//$out .= "X-Priority: 3".$this->eol; //$out .= "X-Priority: 3".$this->eol;
$out.= "X-Mailer: Dolibarr version " . DOL_VERSION ." (using php mail)".$this->eol; $out .= "X-Mailer: Dolibarr version " . DOL_VERSION ." (using php mail)".$this->eol;
$out.= "MIME-Version: 1.0".$this->eol; $out .= "MIME-Version: 1.0".$this->eol;
if ($this->atleastoneimage) if ($this->msgishtml)
{ {
if (! $this->atleastonefile) $out.= "Content-Type: multipart/related; boundary=\"".$this->mime_boundary."\"".$this->eol; if (! $this->atleastonefile) $out.= "Content-Type: text/html; charset=".$conf->file->character_set_client.$this->eol;
$out.= "Content-Transfer-Encoding: 8bit".$this->eol;
}
else if ($this->msgishtml)
{
if (! $this->atleastonefile) $out.= "Content-Type: text/html; boundary=\"".$this->mime_boundary."\"".$this->eol;
$out.= "Content-Transfer-Encoding: 8bit".$this->eol; $out.= "Content-Transfer-Encoding: 8bit".$this->eol;
} }
else else
{ {
if (! $this->atleastonefile) $out.= "Content-Type: text/plain; boundary=\"".$this->mime_boundary."\"".$this->eol; if (! $this->atleastonefile) $out.= "Content-Type: text/plain; charset=".$conf->file->character_set_client.$this->eol;
$out.= "Content-Transfer-Encoding: 8bit".$this->eol; $out.= "Content-Transfer-Encoding: 8bit".$this->eol;
} }
@ -487,24 +442,19 @@ class CMailFile
{ {
$mimedone=0; $mimedone=0;
$out = ""; $out = "";
if ($filename_list)
{
for ($i = 0; $i < count($filename_list); $i++) for ($i = 0; $i < count($filename_list); $i++)
{ {
if ($filename_list[$i]) if ($filename_list[$i])
{ {
if (! $mimedone) if (! $mimedone)
{ {
$out.= "Content-Type: multipart/mixed; boundary=\"".$this->mime_boundary."\"".$this->eol; $out.= "Content-Type: multipart/related; boundary=\"".$this->mime_boundary."\"".$this->eol;
$mimedone=1; $mimedone=1;
} }
if ($mimefilename_list[$i]) $filename_list[$i] = $mimefilename_list[$i]; if ($mimefilename_list[$i]) $filename_list[$i] = $mimefilename_list[$i];
$out.= "X-attachments: $filename_list[$i]".$this->eol; $out.= "X-attachments: $filename_list[$i]".$this->eol;
} }
} }
}
//$out.= $this->eol; //$out.= $this->eol;
dol_syslog("CMailFile::write_mimeheaders mime_header=\n".$out, LOG_DEBUG); dol_syslog("CMailFile::write_mimeheaders mime_header=\n".$out, LOG_DEBUG);
return $out; return $out;
@ -521,16 +471,15 @@ class CMailFile
$out=''; $out='';
if ($this->atleastonefile || $this->atleastoneimage) if ($this->atleastonefile)
{
if ($this->msgishtml)
{ {
$out.= "--" . $this->mime_boundary . $this->eol; $out.= "--" . $this->mime_boundary . $this->eol;
if ($this->msgishtml)
{
$out.= "Content-Type: text/html; charset=".$conf->file->character_set_client.$this->eol; $out.= "Content-Type: text/html; charset=".$conf->file->character_set_client.$this->eol;
} }
else else
{ {
$out.= "--" . $this->mime_boundary . $this->eol;
$out.= "Content-Type: text/plain; charset=".$conf->file->character_set_client.$this->eol; $out.= "Content-Type: text/plain; charset=".$conf->file->character_set_client.$this->eol;
} }
$out.= $this->eol; $out.= $this->eol;
@ -544,17 +493,12 @@ class CMailFile
if (! $htmlalreadyinmsg) $out .= "<html><head><title></title></head><body>"; if (! $htmlalreadyinmsg) $out .= "<html><head><title></title></head><body>";
$out.= $msgtext; $out.= $msgtext;
if (! $htmlalreadyinmsg) $out .= "</body></html>"; if (! $htmlalreadyinmsg) $out .= "</body></html>";
if ($this->atleastonefile || $this->atleastoneimage)
{
$out.= $this->eol . "--" . $this->mime_boundary . $this->eol;
}
} }
else else
{ {
$out.= $msgtext; $out.= $msgtext;
$out.= $this->eol . "--" . $this->mime_boundary . $this->eol;
} }
$out.= $this->eol;
return $out; return $out;
} }
@ -587,7 +531,7 @@ class CMailFile
$out.= $this->eol; $out.= $this->eol;
$out.= $encoded; $out.= $encoded;
$out.= $this->eol; $out.= $this->eol;
//$out.= $this->eol; // $out.= $this->eol;
} }
else else
{ {
@ -597,8 +541,7 @@ class CMailFile
} }
// Fin de tous les attachements // Fin de tous les attachements
$out.= "--" . $this->mime_boundary . "--" . $this->eol; $out = $out . "--" . $this->mime_boundary . "--" . $this->eol;
return $out; return $out;
} }
@ -668,117 +611,6 @@ class CMailFile
return $_retVal; return $_retVal;
} }
/**
\brief Recherche la presence d'images dans le message html
\param images_dir Emplacement des images
\return int >0 if OK, <0 if KO
*/
function findHtmlImages($images_dir)
{
// Build the list of image extensions
$extensions = array_keys($this->image_types);
preg_match_all('/(?:"|\')([^"\']+\.('.implode('|', $extensions).'))(?:"|\')/Ui', $this->html, $matches);
if ($matches)
{
$i=0;
foreach ($matches[1] as $full)
{
eregi('file=([A-Za-z0-9_\-\/]+[.]?[A-Za-z0-9]+)?$',$full,$regs);
$img = $regs[1];
if (file_exists($images_dir.'/'.$img))
{
// Image path
$src = preg_quote($full);
// Image name
$this->html_images[$i]["name"] = $img;
// Content type
$ext = preg_replace('#^.*\.(\w{3,4})$#e', 'strtolower("$1")', $img);
$this->html_images[$i]["content_type"] = $this->image_types[$ext];
// cid
$this->html_images[$i]["cid"] = md5(uniqid(time()));
$this->html = preg_replace("#src=\"$src\"|src='$src'#", "src=\"cid:".$this->html_images[$i]["cid"]."\"", $this->html);
}
$i++;
}
if (!empty($this->html_images))
{
// If duplicate images are embedded, they may show up as attachments, so remove them.
//$html_images = array_unique($this->html_images);
//sort($html_images);
$i=0;
foreach ($this->html_images as $img)
{
if ($image = file_get_contents($images_dir.'/'.$img["name"]))
{
$this->images_encoded[$i]['name'] = $img["name"];
$this->images_encoded[$i]['content_type'] = $img["content_type"];
$this->images_encoded[$i]['cid'] = $img["cid"];
// Encodage de l'image
$this->images_encoded[$i]["image_encoded"] = chunk_split(base64_encode($image), 68, $this->eol);
}
$i++;
}
}
else
{
return -1;
}
return 1;
}
else
{
return 0;
}
}
/**
\brief Permet d'attacher une image
\param images_list Tableau
\return out Chaine images encodees
*/
function write_images($images_list)
{
$out = '';
if ($images_list)
{
foreach ($images_list as $img)
{
dol_syslog("CMailFile::write_images: i=$i");
$out.= "--" . $this->mime_boundary . $this->eol;
$out.= "Content-Type: " . $img["content_type"] . "; name=\"".$img["name"]."\"".$this->eol;
$out.= "Content-Transfer-Encoding: base64".$this->eol;
$out.= "Content-Disposition: inline; filename=\"".$img["name"]."\"".$this->eol;
$out.= "Content-ID: <".$img["cid"].">".$this->eol;
$out.= $this->eol;
$out.= $img["image_encoded"];
$out.= $this->eol;
}
}
else
{
return 0;
}
// Fin de tous les attachements
$out.= "--" . $this->mime_boundary . "--" . $this->eol;
return $out;
}
} }
@ -802,7 +634,7 @@ function getValidAddress($adresses,$format)
{ {
if (eregi('^(.*)<(.*)>$',trim($val),$regs)) if (eregi('^(.*)<(.*)>$',trim($val),$regs))
{ {
$name = trim(utf8_decode($regs[1])); $name = trim($regs[1]);
$email = trim($regs[2]); $email = trim($regs[2]);
} }
else else

View File

@ -71,8 +71,8 @@ print '<table class="nocellnopadd"><tr><td align="center" valign="top">';
print img_picto_common('','who.png'); print img_picto_common('','who.png');
print '</td></tr><tr><td align="center">'; print '</td></tr><tr><td align="center">';
$urlwiki='http://wiki.dolibarr.org'; $urlwiki='http://wiki.dolibarr.org';
if ($langs->defaultlang == 'fr_FR') $urlwiki='http://wiki.dolibarr.org/index.php/Accueil'; if (eregi('fr',$langs->defaultlang)) $urlwiki='http://wiki.dolibarr.org/index.php/Accueil';
if ($langs->defaultlang == 'es_ES') $urlwiki='http://wiki.dolibarr.org/index.php/Portada'; if (eregi('es',$langs->defaultlang)) $urlwiki='http://wiki.dolibarr.org/index.php/Portada';
print '<br>'.$langs->trans("ForDocumentationSeeWiki",$urlwiki,$urlwiki); print '<br>'.$langs->trans("ForDocumentationSeeWiki",$urlwiki,$urlwiki);
print '<br>'; print '<br>';
print '<br>'.$langs->trans("ForAnswersSeeForum",'http://www.dolibarr.org/forum/','http://www.dolibarr.org/forum/').'<br>'; print '<br>'.$langs->trans("ForAnswersSeeForum",'http://www.dolibarr.org/forum/','http://www.dolibarr.org/forum/').'<br>';

View File

@ -152,7 +152,7 @@ class Translate {
{ {
//dol_syslog("Translate::setPhpLang ".$this->defaultlang,LOG_DEBUG); //dol_syslog("Translate::setPhpLang ".$this->defaultlang,LOG_DEBUG);
return; return;
/* /*
$code_lang_tiret=ereg_replace('_','-',$this->defaultlang); $code_lang_tiret=ereg_replace('_','-',$this->defaultlang);
//print 'code_lang_tiret='.$code_lang_tiret; //print 'code_lang_tiret='.$code_lang_tiret;
setlocale(LC_ALL, $this->defaultlang); // Some OS (Windows) need local with _ setlocale(LC_ALL, $this->defaultlang); // Some OS (Windows) need local with _
@ -166,7 +166,7 @@ class Translate {
$res_lc_monetary=setlocale(LC_MONETARY, MAIN_FORCE_SETLOCALE_LC_MONETARY.'UTF-8', MAIN_FORCE_SETLOCALE_LC_MONETARY); $res_lc_monetary=setlocale(LC_MONETARY, MAIN_FORCE_SETLOCALE_LC_MONETARY.'UTF-8', MAIN_FORCE_SETLOCALE_LC_MONETARY);
//print 'x'.$res_lc_all; //print 'x'.$res_lc_all;
return 1; return 1;
*/ */
} }