Envoyé par y.berges
Voir le message
Voici bout à bout les principales méthodes que j'utilise.
Pour l’écriture du fichier c'est :
Code PHP:
$FileInscriptionsUrl = GskiFileHelper::URLFichierTmp();
JFile::write($FileInscriptionsUrl, implode("\n", $infos->fichier_lignes)
Code PHP:
abstract class GskiFileHelper
{
public static function DossierTmp($sdossier = 'gski'){
$dir_dest=JFactory::getConfig()->get('tmp_path');
if(strlen($sdossier)>0){
$dir_dest .= DIRECTORY_SEPARATOR.$sdossier;
}
if(!self::DirInitialize($dir_dest)){
$dir_dest=JFactory::getConfig()->get('tmp_path');
}
return $dir_dest;
}
public static function DirInitialize($dir_dest){
$app = JFactory::getApplication();
if(is_file($dir_dest)){
$app->enqueueMessage(JText::sprintf('COM_GSKIEPREUVE_FOLDER_CREATE_ERROR',$dir_dest), 'error');
return false;
}
if(!is_dir($dir_dest)){
if (JFolder::create($dir_dest,511)){
$data = "<html>\n<body bgcolor="#FFFFFF">\n</body>\n</html>";
JFile::write($dir_dest . DIRECTORY_SEPARATOR . "index.html", $data);
$data = "order deny,allow\ndeny from all\nallow from none\n";
JFile::write($dir_dest . DIRECTORY_SEPARATOR . '.htaccess', $data);
}else{
$app->enqueueMessage(JText::sprintf('COM_GSKIEPREUVE_FOLDER_CREATE_ERROR',$dir_dest), 'error');
return false;
}
}
return true;
}
public static function NomFichierTmp($suffix=''){
$nom = 'gski_tmp_' . JFactory::getUser()->id . '_' . time();
if(strlen($suffix)>0){
if($suffix[0] == '.'){
$nom .= $suffix;
}else{
$nom .= '.'.$suffix;
}
}
return $nom;
}
public static function URLFichierTmp($suffix=''){
$dir_dest=self::DossierTmp();
$nom = self::NomFichierTmp($suffix);
$retour = $dir_dest . DIRECTORY_SEPARATOR . $nom;
return $retour;
}
Code PHP:
// c'est une autre methode d'une autre classe abstraite $FileInscriptionsUrl est passé en paramètre et devient maintenant $urlFile
$mailer = JFactory::getMailer();
if($format=='html'){
$mailer->isHtml(true);
$mailer->Encoding = 'base64';
}
....
$mailer->addRecipient($tabEmails); // tableau avec les adresses mail des destinataires
$mailer->setSubject(GskiStringHelper::tags_chaine_traite($titre, $tagstables, 'text'));
// GskiStringHelper::tags_chaine_traite c'est une fonction qui remplaces des tags par des valeurs de champs dans les templates de mail
$mailer->setBody(GskiStringHelper::tags_chaine_traite($mess, $tagstables, $format));
$mailer->setSender(array($config->get('mailfrom'),$config->get('fromname')));
.....
if($urlFile!=''){
$filename = 'skiffs_concurrents_'.$CLEvenement->codex; // nom du fichier dans le mail
$mailer->addAttachment($urlFile,$filename,'base64','text/plain');
}
$result=$mailer->send();
Code PHP:
if($FileInscriptionsUrl != ''){
JFile::delete($FileInscriptionsUrl);
}
Laisser un commentaire: