Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
domainepublic
dpsite2
Commits
098745fd
Commit
098745fd
authored
Sep 05, 2017
by
Pierre
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
webmail et bureau
parent
f26bec85
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
71 additions
and
269 deletions
+71
-269
squelettes/formulaires/bureau.php
squelettes/formulaires/bureau.php
+5
-17
squelettes/formulaires/webmail.php
squelettes/formulaires/webmail.php
+17
-13
squelettes/mes_fonctions.php
squelettes/mes_fonctions.php
+49
-239
No files found.
squelettes/formulaires/bureau.php
View file @
098745fd
...
...
@@ -28,25 +28,13 @@ function formulaires_bureau_charger_dist(){
}
function
formulaires_bureau_verifier_dist
(){
$erreurs
=
array
();
$bureau
=
_request
(
'bureau'
);
$parse
=
parse_url
(
$bureau
);
if
(
$parse
[
'host'
])
$bureau
=
$parse
[
'host'
];
// juste le nom de dom sans http
// spip_log("bureau ".$bureau,'test'._LOG_AVERTISSEMENT);
$result
=
dns_get_record
(
$bureau
,
DNS_MX
);
if
(
$result
AND
isset
(
$result
[
0
][
'target'
])){
// spip_log("serveur ".$result[0]['target'],'test'._LOG_AVERTISSEMENT);
$serveur
=
$result
[
0
][
'target'
];
if
(
!
match
(
$serveur
,
'.domainepublic.net'
)){
$erreurs
[
'bureau'
]
=
"Ce nom de domaine n'est pas hébergé par domainepublic"
;
}
// SI RAMDAM !!!
if
(
$serveur
==
"mx.domainepublic.net"
)
$serveur
=
"bureau.domainepublic.net"
;
set_request
(
"serveur"
,
"https://"
.
$serveur
);
}
$domaine
=
_request
(
'bureau'
);
$serveur
=
bureau_dp
(
$domaine
);
set_request
(
"serveur"
,
$serveur
);
if
(
!
$serveur
)
$erreurs
[
'bureau'
]
=
"Adresse invalide"
;
else
if
(
!
match
(
$serveur
,
'.domainepublic.net'
))
$erreurs
[
'bureau'
]
=
"Ce nom de domaine n'est pas hébergé par domainepublic"
;
return
$erreurs
;
}
...
...
squelettes/formulaires/webmail.php
View file @
098745fd
...
...
@@ -31,24 +31,28 @@ function formulaires_webmail_verifier_dist(){
$erreurs
=
array
();
$webmail
=
_request
(
'webmail'
);
$serveur
=
explode
(
"@"
,
$webmail
);
// pas de @ ?
// pas de @ ?
= invalide
if
(
!
isset
(
$serveur
[
1
]))
$erreurs
[
'webmail'
]
=
"Adresse invalide"
;
// OK
else
{
// retirer les sous-domaines
preg_match
(
'#[^\.]+[\.]{1}[^\.]+$#'
,
$serveur
[
1
]
,
$matches
);
$serveur
=
$matches
[
0
];
if
(
!
$serveur
){
$erreurs
[
'webmail'
]
=
"Adresse invalide"
;
}
else
{
set_request
(
"serveur"
,
"https://mail."
.
$serveur
.
"?_user="
.
$webmail
);
}
// spip_log("webmail "._request("serveur"),'test'._LOG_AVERTISSEMENT);
$domaine
=
$serveur
[
1
];
// juste le nom de domaine
$serveur
=
webmail_dp
(
$domaine
);
// serveur MX ?
spip_log
(
"domaine "
.
$domaine
,
'test'
.
_LOG_AVERTISSEMENT
);
spip_log
(
"serveur "
.
$serveur
,
'test'
.
_LOG_AVERTISSEMENT
);
if
(
$serveur
!=
"mx.domainepublic.net"
)
set_request
(
"serveur"
,
"https://mail."
.
$domaine
.
"?_user="
.
$webmail
);
else
set_request
(
"serveur"
,
"https://mail.domainepublic.net?_user="
.
$webmail
);
spip_log
(
"serveur mail "
.
_request
(
"serveur"
),
'test'
.
_LOG_AVERTISSEMENT
);
}
// si la fonction php mx_chez_dp ne retourne rien
if
(
!
$serveur
){
$erreurs
[
'webmail'
]
=
"Adresse invalide"
;
}
// CHEZ DP ?
if
(
!
$erreurs
[
'webmail'
]
AND
!
m
x_chez_dp
(
$serveur
)){
$erreurs
[
'webmail'
]
=
"Ce
nom de do
mai
ne
n'est pas hébergé par domainepublic"
;
if
(
!
$erreurs
[
'webmail'
]
AND
!
m
atch
(
$serveur
,
'domainepublic.net'
)){
$erreurs
[
'webmail'
]
=
"Ce
tte adresse e
mai
l
n'est pas hébergé
e
par domainepublic"
;
}
return
$erreurs
;
}
...
...
squelettes/mes_fonctions.php
View file @
098745fd
<?php
/**
* Traduction des textes de SPIP ds une langue
* ex :
* [(#VAL{ma_chaine_de trad}|bilingue{en})]
* Retourne le bureau du nom de domaine fourni
* ex : sites_chez_dp('terre-envue.be');
* retourne 'tumulte.domainepublic.net' - 'grabuge.domainepublic.net' - 'bureau.domainepublic.net' - etc ....
* ex : sites_chez_dp('google.be');
* retourne false
* ex : sites_chez_dp('jkhkdfhsdkjh.be');
* retourne false
*/
function
trad
(
$texte
,
$lang
)
{
$traduire
=
charger_fonction
(
'traduire'
,
'inc'
);
include_spip
(
'inc/lang'
);
$text
=
$traduire
(
$texte
,
$lang
);
//spip_log("text ".$texte,'test'._LOG_AVERTISSEMENT);
return
$text
;
function
bureau_dp
(
$domaine
)
{
$parse
=
parse_url
(
$domaine
);
if
(
$parse
[
'host'
])
$domaine
=
$parse
[
'host'
];
// juste le nom de dom sans http/s ni sous-dom
$result
=
dns_get_record
(
$domaine
,
DNS_A
);
spip_log
(
"bureau "
.
print_r
(
$result
,
1
),
'test'
.
_LOG_AVERTISSEMENT
);
if
(
$result
AND
isset
(
$result
[
0
][
'ip'
])){
spip_log
(
"serveur ip "
.
$result
[
0
][
'ip'
],
'test'
.
_LOG_AVERTISSEMENT
);
// On obtient une IP adress
$serveur
=
$result
[
0
][
'ip'
];
// On obtient le nom de domaine de l'adress IP
$serveur
=
gethostbyaddr
(
$serveur
);
spip_log
(
"serveur name "
.
$serveur
,
'test'
.
_LOG_AVERTISSEMENT
);
// SI RAMDAM !!! $serveur = "collectif2.all2all.org"
if
((
$serveur
==
"collectif2.all2all.org"
))
$serveur
=
"bureau.domainepublic.net"
;
// SINON RAMDAM !!! $serveur = "tumulte.domainepublic.net" ou "grabuge.domainepublic.net" etc ...
if
(
$serveur
)
return
"https://"
.
$serveur
;
}
return
false
;
}
/**
* Traduction des textes de SPIP ds une langue
* ex :
* [(#VAL{ma_chaine_de trad}|bilingue{en})]
* Retourne l'ADRESSE' du client email (roundcube) de $domaine
*
* ex : mx_chez_dp('terre-envue.be')
* renvoie vers 'tumulte.domainepublic.net'
*/
function
mx_chez_dp
(
$domaine
)
{
$bureau
=
_request
(
'bureau'
);
$parse
=
parse_url
(
$domaine
);
if
(
$parse
[
'host'
])
$domaine
=
$parse
[
'host'
];
// juste le nom de dom sans http
// spip_log("bureau ".$bureau,'test'._LOG_AVERTISSEMENT);
function
webmail_dp
(
$domaine
)
{
spip_log
(
"domaine "
.
$domaine
,
'test'
.
_LOG_AVERTISSEMENT
);
$result
=
dns_get_record
(
$domaine
,
DNS_MX
);
spip_log
(
"serveur "
.
print_r
(
$result
,
1
),
'test'
.
_LOG_AVERTISSEMENT
);
if
(
$result
AND
isset
(
$result
[
0
][
'target'
])){
// spip_log("serveur ".$result[0]['target'],'test'._LOG_AVERTISSEMENT);
$serveur
=
$result
[
0
][
'target'
];
if
(
match
(
$serveur
,
'.domainepublic.net'
)){
return
true
;
}
spip_log
(
"MX serveur "
.
$serveur
,
'test'
.
_LOG_AVERTISSEMENT
);
if
(
$serveur
)
return
$serveur
;
}
return
false
;
}
/* dans /home/pit/workspace/dp/plugins/auto/sarkaspipr/v4.4.16/noisettes/article
* description.html
// [<div class="#EDIT{texte} texte">(#TEXTE**|mailman)</div>]
*
function mailman ($texte) {
//$texte = preg_replace('Membre', '', $texte);
//$texte = propre($texte);
$texte = str_replace("Membre",' ',$texte);
spip_log("texte ".$texte,'test'._LOG_AVERTISSEMENT);
$newtext = "";
$tab_texte = explode("\n", $texte);
foreach ($tab_texte as $ligne){
$ligne= rtrim($ligne);
$tab_ligne = explode(" ", $ligne);
// unset_empty_values($tab_ligne);
$dernier = sizeof($tab_ligne)-1;
$newligne = str_replace_last($ligne, $tab_ligne[$dernier],'<'.ltrim($tab_ligne[$dernier]).'>');
spip_log("ltrim ".ltrim($tab_ligne[$dernier]),'test'._LOG_AVERTISSEMENT);
// spip_log("tab_ligne ".$tab_ligne[sizeof($tab_ligne)-1],'test'._LOG_AVERTISSEMENT);
$newtext .= $newligne."<br />";
spip_log("newligne ".$newligne,'test'._LOG_AVERTISSEMENT);
}
return $newtext;
}
function unset_empty_values(&$array) {
foreach ($array as $k => $v) {
if (empty($v) or $v==" ")
unset($array[$k]);
}
}
function str_replace_last($string ,$search , $replace){
if ((($string_len=strlen($string))==0) || (($search_len=strlen($search))==0)) return $string;
$pos=strrpos($string,$search);
if ($pos>0) return substr($string,0,$pos).$replace.substr($string,$pos+$search_len,max(0,$string_len-($pos+$search_len)));
return $string;
}
*/
/*
// traitement principal. avec ce pipeline, le PDF est mis en cache et recalculé "normalement"
function spipdf_html2pdf_ficelle($html){
include_spip('spipdf_fonctions');
// les librairies possibles
$possible_librairies = array(
'mpdf' => array( // gére le float d'image mais pas les captions de tableau
'float' => true,
'caption' => true,
'traite_balise_page' => true
),
'html2pdf' => array( // ne gére pas le float d'image et les captions
'float' => false,
'caption' => true
),
'dompdf' => array( // domPDF beta 0.6 EXPERIMENTAL
'float' => false,
'caption' => true,
'traite_balise_page' => true
),
);
// choix de la classe de génération via la balise <page lib>
if (preg_match('/\<page*.lib_pdf=["|\'](.*)["|\']/iUms', $html, $match_librairie)
&& !empty($match_librairie[1])
&& array_key_exists(strtolower($match_librairie[1]), $possible_librairies)
){
$librairie_pdf = strtolower($match_librairie[1]);
} else {
$librairie_pdf = 'mpdf';
}
// tester si la librairie est dans /lib à la racine du spip ou dans le répertoire du plugin
if (is_dir(_DIR_LIB . $librairie_pdf)){
$dir_librairie_pdf = _DIR_LIB . $librairie_pdf . '/';
} elseif (is_dir(dirname(__FILE__) . '/lib/' . $librairie_pdf)) {
$dir_librairie_pdf = dirname(__FILE__) . '/lib/' . $librairie_pdf . '/';
} else {
die('Impossible de trouver la librairie de génération de PDF ' . $librairie_pdf . '. vérifiez que vous l\'avez bien téléchargée et installée dans /lib');
}
// nettoyer le HTML et gérer les placements d'image en fonction de la librairie utilisée
$html = spipdf_nettoyer_html($html, $possible_librairies[$librairie_pdf]);
// Debug = voir le html sans génération de PDF
if (isset($_GET['debug_spipdf'])){
echo $html;
exit;
}
// du A4 par defaut
$format_page = _SPIPDF_FORMAT;
// traiter la balise page pour les librairies qui ne la comprennent pas
if (!empty($possible_librairies[$librairie_pdf]['traite_balise_page'])){
$html = traite_balise_page($html);
// dans balise_page, on ne récupère que quelques possibilité dont le format
if (!empty($GLOBALS['valeurs_page'])){
if (!empty($GLOBALS['valeurs_page']['format']))
$format_page = $GLOBALS['valeurs_page']['format'];
if (!empty($GLOBALS['valeurs_page']['backtop']))
$backtop = $GLOBALS['valeurs_page']['backtop'];
else
$backtop = _SPIPDF_MARGIN_TOP;
if (!empty($GLOBALS['valeurs_page']['backbottom']))
$backbottom = $GLOBALS['valeurs_page']['backbottom'];
else
$backbottom = _SPIPDF_MARGIN_BOTTOM;
if (!empty($GLOBALS['valeurs_page']['backleft']))
$backleft = $GLOBALS['valeurs_page']['backleft'];
else
$backleft = _SPIPDF_MARGIN_LEFT;
if (!empty($GLOBALS['valeurs_page']['backright']))
$backright = $GLOBALS['valeurs_page']['backright'];
else
$backright = _SPIPDF_MARGIN_RIGHT;
if (!empty($GLOBALS['valeurs_page']['margin_header']))
$margin_header = $GLOBALS['valeurs_page']['margin_header'];
else
$margin_header = _SPIPDF_MARGIN_HEADER;
if (!empty($GLOBALS['valeurs_page']['margin_footer']))
$margin_footer = $GLOBALS['valeurs_page']['margin_footer'];
else
$margin_footer = _SPIPDF_MARGIN_FOOTER;
}
}
if ($librairie_pdf=='mpdf'){ // la librairie mPDF
// si il y a des options dans la balise page
// http://mpdf1.com/manual/index.php?tid=307
// le chemin relatif vers mPDF
define('_MPDF_PATH', $dir_librairie_pdf);
include_once(_MPDF_PATH . 'mpdf.php');
// la classe mPDF
$mpdf = new mPDF(SPIPDF_CHARSET, $format_page, 0, "", $backleft, $backright, $backtop, $backbottom, $margin_header, $margin_footer);
spip_log("GLOBALS ".lire_config('adresse_site'),'test'._LOG_AVERTISSEMENT);
//spip_log("html ".$html,'test'._LOG_AVERTISSEMENT);
//spip_log("mail_inscription ".$tmp_mail_inscription,'test'._LOG_AVERTISSEMENT);
$mpdf->SetHTMLFooter('<table width="100%" style="vertical-align: bottom; font-family: serif; font-size: 8pt;
color: #000000; font-style: italic;"><tr>
<td width="33%"><span style="font-style: italic;">'.lire_config('adresse_site').'</span></td>
<td width="33%" align="center" style="font-style: italic;">{PAGENO}/{nbpg}</td>
<td width="33%" style="text-align: right; ">Trucs & ficelles</td>
</tr></table>');
$mpdf->WriteHTML($html);
$html = $mpdf->Output('', 'S'); // envoyer le code binaire du PDF dans le flux
$echap_special_pdf_chars = true;
} elseif ($librairie_pdf=='dompdf') { // la librairie dompdf beta 0.6 // EXPERIMENTAL
// le chemin relatif vers mPDF
require_once(_DIR_LIB . 'dompdf/dompdf_config.inc.php');
$dompdf = new DOMPDF();
$dompdf->load_html($html, SPIPDF_CHARSET);
$dompdf->set_paper($format_page);
$dompdf->render();
$html = $dompdf->output(); // envoyer le code binaire du PDF dans le flux
$echap_special_pdf_chars = true;
} else { // la librairie HTML2PDF par défaut
// appel de la classe HTML2pdf
require_once($dir_librairie_pdf . 'html2pdf.class.php');
try {
// les paramétres d'orientation et de format son écrasé par ceux défini dans la balise <page> du squelette
$html2pdf = new HTML2PDF('P', $format_page, $flux['args']['contexte']['lang'], SPIPDF_UNICODE, SPIPDF_CHARSET);
// mode debug de HTML2PDF
if (defined('SPIPDF_DEBUG_HTML2PDF')){
$html2pdf->setModeDebug();
}
// police différente selon unicode ou latin
if (SPIPDF_UNICODE){
$police_caractere = 'FreeSans';
} else {
$police_caractere = 'Arial';
}
$html2pdf->setDefaultFont($police_caractere);
$html2pdf->writeHTML($html);
$html = $html2pdf->Output('', true); // envoyer le code binaire du PDF dans le flux
$echap_special_pdf_chars = true;
} catch (HTML2PDF_exception $e) {
echo $e;
}
}
// On échappe les suites de caractères <? pour éviter des erreurs d'évaluation PHP (seront remis en place avec affichage_final)
// l'erreur d'évaluation est liée à la directive short_open_tag=On dans la configuration de PHP
if (!empty($echap_special_pdf_chars)
AND strpos($html, "<" . "?")!==false
){
$html = str_replace("<" . "?", "<\2\2?", $html);
}
return $html;
/**
* Traduction des textes de SPIP ds une langue
* ex :
* [(#VAL{ma_chaine_de trad}|bilingue{en})]
*/
function
trad
(
$texte
,
$lang
)
{
$traduire
=
charger_fonction
(
'traduire'
,
'inc'
);
include_spip
(
'inc/lang'
);
$text
=
$traduire
(
$texte
,
$lang
);
//spip_log("text ".$texte,'test'._LOG_AVERTISSEMENT);
return
$text
;
}
*/
?>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment