Add files via upload
BIN
src/lib/blk.png
Normal file
After Width: | Height: | Size: 944 B |
BIN
src/lib/drapaux.gif
Normal file
After Width: | Height: | Size: 35 KiB |
BIN
src/lib/en.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
486
src/lib/ep_function.php
Normal file
|
@ -0,0 +1,486 @@
|
|||
<?php
|
||||
|
||||
//////////////////
|
||||
// Function
|
||||
//////////////////
|
||||
|
||||
// Status explication :
|
||||
// 0=not verified - 3=disable - 5=active
|
||||
|
||||
|
||||
// Verification des emails
|
||||
function VerifMXemail($email) {
|
||||
if (CHECKMX) {
|
||||
$domaine=explode('@', $email);
|
||||
$r = new Net_DNS2_Resolver(array('nameservers' => array(NS1, NS2)));
|
||||
try {
|
||||
$result = $r->query($domaine[1], 'MX');
|
||||
} catch(Net_DNS2_Exception $e) {
|
||||
return false;
|
||||
}
|
||||
if ($result->answer) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// postmap command
|
||||
function UpdateVirtualDB() {
|
||||
global $dbco;
|
||||
try {
|
||||
$selectcmd = $dbco->prepare("SELECT status, alias, email
|
||||
FROM ".DBTABLEPREFIX."alias
|
||||
WHERE status > 0
|
||||
ORDER BY alias ASC");
|
||||
$selectcmd->execute();
|
||||
} catch ( PDOException $e ) {
|
||||
echo "DB error : ", $e->getMessage();
|
||||
die();
|
||||
}
|
||||
$file_content=null;
|
||||
while($alias_db = $selectcmd->fetch()) {
|
||||
if ($alias_db['status'] == 5) {
|
||||
$file_content .= $alias_db['alias'].' '.$alias_db['email']."\n";
|
||||
} else if ($alias_db['status'] == 3) {
|
||||
$file_content .= $alias_db['alias']." devnull\n";
|
||||
}
|
||||
}
|
||||
$alias_file=fopen(FICHIERALIAS,'w');
|
||||
fputs($alias_file, $file_content);
|
||||
fclose($alias_file);
|
||||
exec(BIN_POSTMAP.' '.FICHIERALIAS,$output,$return);
|
||||
}
|
||||
|
||||
// add new alias
|
||||
function AjouterAlias($status, $alias,$email, $life, $comment) {
|
||||
global $dbco;
|
||||
$dateCreat=date('Y-m-d H:i:s');
|
||||
if ($life == 0) {
|
||||
$dateExpir=NULL;
|
||||
} else {
|
||||
$dateExpir=date('Y-m-d H:i:s', time()+$life);
|
||||
}
|
||||
try {
|
||||
$insertcmd = $dbco->prepare("INSERT INTO ".DBTABLEPREFIX."alias (status, alias, email, dateCreat, dateExpir, comment)
|
||||
VALUES (:status, :alias, :email, :dateCreat, :dateExpir, :comment)");
|
||||
$insertcmd->bindParam('status', $status, PDO::PARAM_INT);
|
||||
$insertcmd->bindParam('alias', $alias, PDO::PARAM_STR);
|
||||
$insertcmd->bindParam('email', $email, PDO::PARAM_STR);
|
||||
$insertcmd->bindParam('dateCreat', $dateCreat, PDO::PARAM_STR);
|
||||
$insertcmd->bindParam('dateExpir', $dateExpir, PDO::PARAM_STR);
|
||||
$insertcmd->bindParam('comment', $comment, PDO::PARAM_STR);
|
||||
$insertcmd->execute();
|
||||
} catch ( PDOException $e ) {
|
||||
echo "DB error : ", $e->getMessage();
|
||||
die();
|
||||
}
|
||||
UpdateVirtualDB();
|
||||
return $dbco->lastInsertId();
|
||||
}
|
||||
|
||||
// delete email
|
||||
function DeleteEmail($email) {
|
||||
global $dbco;
|
||||
if ($dbco->query("SELECT COUNT(*) FROM ".DBTABLEPREFIX."alias WHERE email = '".$email."'")->fetchColumn() != 0) {
|
||||
try {
|
||||
$deletecmd = $dbco->prepare("DELETE FROM ".DBTABLEPREFIX."alias WHERE email = :email");
|
||||
$deletecmd->bindParam('email', $email, PDO::PARAM_STR);
|
||||
$deletecmd->execute();
|
||||
echo '<div class="highlight-3"><b>'.$email.'</b> '._('has been deleted with all these aliases').'.</div>';
|
||||
} catch ( PDOException $e ) {
|
||||
echo "DB error : ", $e->getMessage();
|
||||
die();
|
||||
}
|
||||
} else {
|
||||
echo '<div class="highlight-1">'._('Erreur').' : <b>'.$email.'</b> '._('has not been deleted').'.</div>';
|
||||
}
|
||||
UpdateVirtualDB();
|
||||
}
|
||||
|
||||
function AddBlacklistEmail($email) {
|
||||
$contenu = '/^'.$email.'$/';
|
||||
$fichier = fopen(BLACKLIST, 'a');
|
||||
fwrite($fichier, $contenu."\n");
|
||||
fclose($fichier);
|
||||
echo '<div class="highlight-3">La mention '.$contenu.' a été ajouté au fichier de blackliste '.BLACKLIST.'</div>';
|
||||
}
|
||||
// delete alias
|
||||
function DeleteAlias($id, $alias_full) {
|
||||
global $dbco;
|
||||
if ($dbco->query("SELECT COUNT(*) FROM ".DBTABLEPREFIX."alias WHERE alias = '".$alias_full."' AND id = ".$id)->fetchColumn() != 0) {
|
||||
try {
|
||||
$deletecmd = $dbco->prepare("DELETE FROM ".DBTABLEPREFIX."alias WHERE id = :id AND alias = :alias_full");
|
||||
$deletecmd->bindParam('id', $id, PDO::PARAM_INT);
|
||||
$deletecmd->bindParam('alias_full', $alias_full, PDO::PARAM_STR);
|
||||
$deletecmd->execute();
|
||||
echo '<div class="highlight-3"><b>'.$alias_full.'</b> '._('has been deleted').'</div>';
|
||||
} catch ( PDOException $e ) {
|
||||
echo "DB error : ", $e->getMessage();
|
||||
die();
|
||||
}
|
||||
} else {
|
||||
echo '<div class="highlight-1">'._('Error: email trash unknown').'</div>';
|
||||
}
|
||||
UpdateVirtualDB();
|
||||
}
|
||||
|
||||
// enable alias
|
||||
function EnableAlias($id, $alias_full, $email) {
|
||||
global $dbco;
|
||||
if ($id == null) {
|
||||
$selectcmd = $dbco->prepare("SELECT id,status FROM ".DBTABLEPREFIX."alias WHERE email = :email AND alias = :alias_full");
|
||||
$selectcmd->bindParam('email', $email, PDO::PARAM_STR);
|
||||
} else {
|
||||
$selectcmd = $dbco->prepare("SELECT id,status FROM ".DBTABLEPREFIX."alias WHERE id = :id AND alias = :alias_full");
|
||||
$selectcmd->bindParam('id', $id, PDO::PARAM_INT);
|
||||
}
|
||||
$selectcmd->bindParam('alias_full', $alias_full, PDO::PARAM_STR);
|
||||
$selectcmd->execute();
|
||||
$alias_fetch = $selectcmd->fetch();
|
||||
if (! $alias_fetch) {
|
||||
echo '<div class="highlight-1">'._('Error: Can not find this trash email').'</div>';
|
||||
} else if ($alias_fetch['status'] == 3) {
|
||||
UpdateStatusAlias($alias_fetch['id'], $alias_full, 5);
|
||||
echo '<div class="highlight-3">'._('The reception on').' <b>'.$alias_full.'</b> '._('is active again').'.</div>';
|
||||
} else if ($alias_fetch['status'] == 5) {
|
||||
echo '<div class="highlight-2">'._('The reception on').' <b>'.$alias_full.'</b> '._('is already active').'.</div>';
|
||||
} else if ($alias_fetch['status'] == 0) {
|
||||
echo '<div class="highlight-1">'._('The reception on').' <b>'.$alias_full.'</b '._('has not been confirmed by email').'.</div>';
|
||||
} else {
|
||||
echo '<div class="highlight-1">'._('Error: unknown status').'</div>';
|
||||
}
|
||||
UpdateVirtualDB();
|
||||
}
|
||||
|
||||
// disable alias
|
||||
function DisableAlias($id, $alias_full, $email) {
|
||||
global $dbco;
|
||||
if ($id == null) {
|
||||
$selectcmd = $dbco->prepare("SELECT id,status FROM ".DBTABLEPREFIX."alias WHERE email = :email AND alias = :alias_full");
|
||||
$selectcmd->bindParam('email', $email, PDO::PARAM_STR);
|
||||
} else {
|
||||
$selectcmd = $dbco->prepare("SELECT id,status FROM ".DBTABLEPREFIX."alias WHERE id = :id AND alias = :alias_full");
|
||||
$selectcmd->bindParam('id', $id, PDO::PARAM_INT);
|
||||
}
|
||||
$selectcmd->bindParam('alias_full', $alias_full, PDO::PARAM_STR);
|
||||
$selectcmd->execute();
|
||||
$alias_fetch = $selectcmd->fetch();
|
||||
if (! $alias_fetch) {
|
||||
echo '<div class="highlight-1">'._('Error: Can not find this trash email').'</div>';
|
||||
} else if ($alias_fetch['status'] == 5) {
|
||||
UpdateStatusAlias($alias_fetch['id'], $alias_full, 3);
|
||||
echo '<div class="highlight-3">'._('The reception on').' <b>'.$alias_full.'</b> '._('is now suspended').'.</div>';
|
||||
} else if ($alias_fetch['status'] == 3) {
|
||||
echo '<div class="highlight-2">'._('The reception on').' <b>'.$alias_full.'</b> '._('is already suspended').'.</div>';
|
||||
} else if ($alias_fetch['status'] == 0) {
|
||||
echo '<div class="highlight-1">'._('The reception on').' <b>'.$alias_full.'</b> '._('can not be suspended because it has not been activated yet').'.</div>';
|
||||
} else {
|
||||
echo '<div class="highlight-1">'._('Error: unknown status').'</div>';
|
||||
}
|
||||
UpdateVirtualDB();
|
||||
}
|
||||
|
||||
// update alias status
|
||||
function UpdateStatusAlias($id, $alias_full, $status) {
|
||||
global $dbco;
|
||||
try {
|
||||
$updatecmd = $dbco->prepare("UPDATE ".DBTABLEPREFIX."alias SET status = $status WHERE id = :id AND alias = :alias_full");
|
||||
$updatecmd->bindParam('id', $id, PDO::PARAM_INT);
|
||||
$updatecmd->bindParam('alias_full', $alias_full, PDO::PARAM_STR);
|
||||
$updatecmd->execute();
|
||||
} catch ( PDOException $e ) {
|
||||
echo "DB error : ", $e->getMessage();
|
||||
die();
|
||||
}
|
||||
UpdateVirtualDB();
|
||||
}
|
||||
|
||||
// parse file for blacklist and aliasdeny
|
||||
function parseFileRegex($file, $chaine) {
|
||||
$return=false;
|
||||
$handle = fopen($file, 'r');
|
||||
while (!feof($handle)) {
|
||||
$buffer = fgets($handle);
|
||||
$buffer = str_replace("\n", "", $buffer);
|
||||
if ($buffer) {
|
||||
if (!preg_match('/^(#|$|;)/', $buffer) && preg_match($buffer, $chaine)) {
|
||||
$return=true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
fclose($handle);
|
||||
return $return;
|
||||
}
|
||||
|
||||
// check blacklistemail
|
||||
function BlacklistEmail($email) {
|
||||
if (defined('BLACKLIST')) {
|
||||
return parseFileRegex(BLACKLIST, $email);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// check aliasdeny
|
||||
function AliasDeny($alias) {
|
||||
if (defined('ALIASDENY')) {
|
||||
return parseFileRegex(ALIASDENY, $alias);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// list alias
|
||||
function ListeAlias($email) {
|
||||
global $dbco;
|
||||
try {
|
||||
$selectcmd = $dbco->prepare("SELECT id, status, alias, dateCreat, dateExpir, comment
|
||||
FROM ".DBTABLEPREFIX."alias
|
||||
WHERE email = :email AND status > 0
|
||||
ORDER BY status DESC");
|
||||
$selectcmd->bindParam('email', $email, PDO::PARAM_STR);
|
||||
$selectcmd->execute();
|
||||
} catch ( PDOException $e ) {
|
||||
echo "DB error : ", $e->getMessage();
|
||||
die();
|
||||
}
|
||||
$nb_alias=0;
|
||||
$nb_alias_disable=0;
|
||||
$message= "## "._('List trash email activate')." : \n\n";
|
||||
while($alias_db = $selectcmd->fetch()) {
|
||||
if ($alias_db['status'] == 3 && $nb_alias_disable == 0) {
|
||||
$message.= "## "._('List trash email disable')." : \n\n";
|
||||
}
|
||||
$message.=" * ".$alias_db['alias']." "._('Create ')." ".$alias_db['dateCreat'];
|
||||
if ($alias_db['dateExpir']) {
|
||||
$message.=" "._('and expires on')." ".$alias_db['dateExpir'];
|
||||
}
|
||||
$message.="\n";
|
||||
if ($alias_db['comment']) {
|
||||
$message.="\t"._('Comment :')." ".$alias_db['comment']."\n";
|
||||
}
|
||||
if ($alias_db['status'] == 5) {
|
||||
$message.="\t"._('Disable :')." ".urlGen('disable',$alias_db['id'],$alias_db['alias'])."\n";
|
||||
$nb_alias++;
|
||||
} else {
|
||||
$message.="\t"._('Activate :')." ".urlGen('enable',$alias_db['id'],$alias_db['alias'])."\n";
|
||||
$nb_alias_disable++;
|
||||
}
|
||||
$message.="\t"._('Delete :')." ".urlGen('delete',$alias_db['id'],$alias_db['alias'])."\n\n";
|
||||
}
|
||||
$nb_alias_total = $nb_alias + $nb_alias_disable;
|
||||
if ($nb_alias_total == 0) {
|
||||
return false;
|
||||
} else {
|
||||
SendEmail($email,_('List trash email'),$message);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
function SendEmail($recipient, $sujet, $message) {
|
||||
$header = "From: ".EMAILFROM."\n";
|
||||
$header.= "MIME-Version: 1.0\n";
|
||||
/*
|
||||
if (preg_match('#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#', $recipient)) {
|
||||
$header = str_replace("\n", "\r\n", $header);
|
||||
$message = str_replace("\n", "\r\n", $header);
|
||||
}
|
||||
*/
|
||||
$message="Bonjour,\n\n".$message."\n\n".
|
||||
mail($recipient,EMAILTAGSUJET.' '.$sujet,$message,$header);
|
||||
}
|
||||
|
||||
function urlGen($act,$id,$alias_full) {
|
||||
$idUrl=base64_encode($id.';'.$alias_full);
|
||||
if (URLREWRITE_START && URLREWRITE_MIDDLE && URLREWRITE_END) {
|
||||
return URLREWRITE_START.$act.URLREWRITE_MIDDLE.$idUrl.URLREWRITE_END;
|
||||
} else {
|
||||
return URLPAGE."?act=".$act."&value=".$idUrl;
|
||||
}
|
||||
}
|
||||
function urlUnGen($get_value) {
|
||||
$explode_get_value = explode(';', base64_decode($get_value));
|
||||
$return['id']=$explode_get_value[0];
|
||||
$return['alias_full']=$explode_get_value[1];
|
||||
return $return;
|
||||
}
|
||||
|
||||
// Source http://css-tricks.com/serious-form-security/
|
||||
function StripCleanToHtml($s){
|
||||
// Restores the added slashes (ie.: " I\'m John " for security in output, and escapes them in htmlentities(ie.: " etc.)
|
||||
// Also strips any <html> tags it may encouter
|
||||
// Use: Anything that shouldn't contain html (pretty much everything that is not a textarea)
|
||||
return htmlentities(trim(strip_tags(stripslashes($s))), ENT_NOQUOTES, "UTF-8");
|
||||
}
|
||||
function CleanToHtml($s){
|
||||
// Restores the added slashes (ie.: " I\'m John " for security in output, and escapes them in htmlentities(ie.: " etc.)
|
||||
// It preserves any <html> tags in that they are encoded aswell (like <html>)
|
||||
// As an extra security, if people would try to inject tags that would become tags after stripping away bad characters,
|
||||
// we do still strip tags but only after htmlentities, so any genuine code examples will stay
|
||||
// Use: For input fields that may contain html, like a textarea
|
||||
return strip_tags(htmlentities(trim(stripslashes($s))), ENT_NOQUOTES, "UTF-8");
|
||||
}
|
||||
|
||||
//////////////////
|
||||
// Admin function
|
||||
//////////////////
|
||||
|
||||
function CheckUpdate() {
|
||||
if (CHECKUPDATE) {
|
||||
if (! is_file(DATA.'/checkupdate') || filemtime(DATA.'/checkupdate') + CHECKUPDATE < time()) {
|
||||
$ep_get_version = @file_get_contents('http://poubelle.zici.fr/ep_checkupdate');
|
||||
$ep_version_file=fopen(DATA.'/checkupdate','w');
|
||||
fputs($ep_version_file, $ep_get_version);
|
||||
fclose($ep_version_file);
|
||||
if (DEBUG) { echo 'ep_checkupdate_downloaded : '.file_get_contents(DATA.'/checkupdate').'\n'; }
|
||||
}
|
||||
$file_current_version = trim(file_get_contents(DATA.'/checkupdate'));
|
||||
if ($file_current_version != '' && $file_current_version != VERSION) {
|
||||
return '<p>Upgrade note: Your version is in '.VERSION.' while the current version is in '.$file_current_version.'</p>';
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function LifeExpire() {
|
||||
global $dbco;
|
||||
try {
|
||||
$deletecmd = $dbco->prepare("DELETE FROM ".DBTABLEPREFIX."alias WHERE dateExpir IS NOT NULL AND dateExpir < '".date('Y-m-d H:i:s')."'");
|
||||
$deletecmd->execute();
|
||||
} catch ( PDOException $e ) {
|
||||
echo "DB error : ", $e->getMessage();
|
||||
die();
|
||||
}
|
||||
}
|
||||
|
||||
// Vérifie que le domaine de l'alias est bien dans la configuration
|
||||
function domainePresent($postDom) {
|
||||
$domains = explode(';', DOMAIN);
|
||||
$return=true;
|
||||
if (count($domains) == 1) {
|
||||
if (!preg_match('#'.$postDom.'#',DOMAIN)) {
|
||||
$return=false;
|
||||
}
|
||||
} else {
|
||||
foreach ($domains as $one_domain) {
|
||||
if (!preg_match('#'.$postDom.'#',$one_domain)) {
|
||||
$return=false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
// Vérifie que l'email n'est pas un alias avec un domain "poubelle" (éviter boucle forward)
|
||||
function emailIsAlias($postemail) {
|
||||
$domains = explode(';', DOMAIN);
|
||||
$return=false;
|
||||
if (count($domains) == 1) {
|
||||
if (preg_match('#'.DOMAIN.'$#',$postemail)) {
|
||||
$return=true;
|
||||
}
|
||||
} else {
|
||||
foreach ($domains as $one_domain) {
|
||||
if (preg_match('#'.$one_domain.'$#',$postemail)) {
|
||||
$return=true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
|
||||
|
||||
function get_ip() {
|
||||
// IP si internet partagé
|
||||
if (isset($_SERVER['HTTP_CLIENT_IP'])) {
|
||||
return $_SERVER['HTTP_CLIENT_IP'];
|
||||
}
|
||||
// IP derrière un proxy
|
||||
elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
|
||||
return $_SERVER['HTTP_X_FORWARDED_FOR'];
|
||||
}
|
||||
// Sinon : IP normale
|
||||
else {
|
||||
return (isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '');
|
||||
}
|
||||
}
|
||||
|
||||
// Fonction langues :
|
||||
function languesSwitch() {
|
||||
echo '<script>
|
||||
function langSwitch(lang) {
|
||||
document.getElementById(\'langSwitch\').value = lang;
|
||||
document.getElementById(\'fromLangueSwitch\').submit();
|
||||
}
|
||||
</script>
|
||||
<div class="eplangswitch" style="float: right">
|
||||
<form id="fromLangueSwitch" action="#" method="post">
|
||||
<input type="hidden" name="langSwitch" value="" id="langSwitch" />
|
||||
<img alt="fr" src="'.URLINC.'/fr.png" onclick="langSwitch(\'fr\');" />
|
||||
<img alt="it" src="'.URLINC.'/it.png" onclick="langSwitch(\'it\');" />
|
||||
<img alt="en" src="'.URLINC.'/en.png" onclick="langSwitch(\'en\');" />
|
||||
</form>
|
||||
</div>';
|
||||
}
|
||||
|
||||
function lang2locale($langue) {
|
||||
global $langueEtLocalDispo;
|
||||
if ($langueEtLocalDispo[$langue] != '') {
|
||||
return $langueEtLocalDispo[$langue];
|
||||
} else {
|
||||
// par défaut
|
||||
return 'en_US';
|
||||
}
|
||||
}
|
||||
function locale2lang($localeRecherche) {
|
||||
global $langueEtLocalDispo;
|
||||
foreach($langueEtLocalDispo as $code=>$locale) {
|
||||
if ($locale == $localeRecherche) {
|
||||
return $code;
|
||||
break;
|
||||
}
|
||||
}
|
||||
// par défaut
|
||||
return 'en';
|
||||
}
|
||||
|
||||
// Ajoute la langue à une URL qui n'en a pas
|
||||
function addLang2url($lang) {
|
||||
global $_SERVER;
|
||||
$URIexplode=explode('?', $_SERVER['REQUEST_URI']);
|
||||
if ($URIexplode[1] != '') {
|
||||
return $URIexplode[0].$URIexplode[1].'&langue='.$lang;
|
||||
} else {
|
||||
return $URIexplode[0].'?langue='.$lang;
|
||||
}
|
||||
}
|
||||
function replaceLang2url($lang) {
|
||||
global $_SERVER;
|
||||
$URIexplode=explode('?', $_SERVER['REQUEST_URI']);
|
||||
$debutUrl=substr($URIexplode[0], 0, -langCountChar($URIexplode[0]));
|
||||
if ($URIexplode[1] != '') {
|
||||
return $debutUrl.$lang.'?'.$URIexplode[1];
|
||||
} else {
|
||||
return $debutUrl.$lang;
|
||||
}
|
||||
}
|
||||
function langCountChar($url) {
|
||||
// $url reçu c'est l'URL avant la query : ?machin=1
|
||||
if (preg_match('#/sr-Cyrl-ME$#',$url)) {
|
||||
return 10;
|
||||
} elseif (preg_match('#/[a-z]{2}-[A-Z]{2}$#',$url)) {
|
||||
return 5;
|
||||
} elseif (preg_match('#/[a-z]{3}-[A-Z]{2}$#',$url)) {
|
||||
return 6;
|
||||
} elseif (preg_match('#/[a-z]{3}$#',$url)) {
|
||||
return 3;
|
||||
} elseif (preg_match('#/[a-z]{2}$#',$url)) {
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
?>
|
67
src/lib/ep_header.php
Normal file
|
@ -0,0 +1,67 @@
|
|||
<?php
|
||||
$country = @geoip_country_code_by_name(get_ip());
|
||||
|
||||
$HTTP_ACCEPT_LANGUAGE=$_SERVER['HTTP_ACCEPT_LANGUAGE'];
|
||||
$lang_from_http_accept = explode(',', $HTTP_ACCEPT_LANGUAGE);
|
||||
$lang = $lang_from_http_accept[0];
|
||||
|
||||
// Dans les URL on utilisera les codes langues https://support.crowdin.com/api/language-codes/
|
||||
// On a une fonction pour retrouve le local à partir (et vis et versa)
|
||||
|
||||
// CODE LOCALE (locale -a)
|
||||
$langueEtLocalDispo=array(
|
||||
'fr' => 'fr_FR',
|
||||
'en' => 'en_US',
|
||||
'it' => 'it_IT',
|
||||
);
|
||||
|
||||
|
||||
// Détection et redirection (langue toujours)
|
||||
if (isset($_POST['langSwitch'])) {
|
||||
$locale = lang2locale($_POST['langSwitch']);
|
||||
$localeshort=locale2lang($locale);
|
||||
if ($_COOKIE['langue'] != $localeshort) {
|
||||
setcookie("langue",$localeshort,strtotime( '+1 year' ));
|
||||
}
|
||||
} elseif (isset($_COOKIE['langue'])) {
|
||||
$locale = lang2locale($_COOKIE['langue']);
|
||||
$lang=locale2lang($locale);
|
||||
//header('Location: '.addLang2url($lang));
|
||||
} else {
|
||||
$HTTP_ACCEPT_LANGUAGE=$_SERVER['HTTP_ACCEPT_LANGUAGE'];
|
||||
//echo $HTTP_ACCEPT_LANGUAGE.'<br />';
|
||||
$lang_from_http_accept = explode(',', $HTTP_ACCEPT_LANGUAGE);
|
||||
//echo $lang_from_http_accept[0].'<br />';
|
||||
$locale = lang2locale($lang_from_http_accept[0]);
|
||||
if (substr($locale,0,2) != substr($lang_from_http_accept[0],0,2)) {
|
||||
//echo "Non trouvé, 2ème tentative";
|
||||
$lang_from_http_accept = explode('-', $lang_from_http_accept[0]);
|
||||
//echo $lang_from_http_accept[0].'<br />';
|
||||
$locale = lang2locale($lang_from_http_accept[0]);
|
||||
}
|
||||
//echo $locale.'<br />';
|
||||
$lang = locale2lang($locale);
|
||||
//echo $lang.'<br />';
|
||||
}
|
||||
|
||||
// Définition de la langue :
|
||||
$results=putenv("LC_ALL=$locale.utf8");
|
||||
if (!$results) {
|
||||
exit ('putenv failed');
|
||||
}
|
||||
$results=putenv("LC_LANG=$locale.utf8");
|
||||
if (!$results) {
|
||||
exit ('putenv failed');
|
||||
}
|
||||
$results=putenv("LC_LANGUAGE=$locale.utf8");
|
||||
if (!$results) {
|
||||
exit ('putenv failed');
|
||||
}
|
||||
$results=setlocale(LC_ALL, "$locale.utf8");
|
||||
if (!$results) {
|
||||
exit ('setlocale failed: locale function is not available on this platform, or the given local does not exist in this environment');
|
||||
}
|
||||
bindtextdomain("messages", LANG);
|
||||
textdomain("messages");
|
||||
|
||||
?>
|
BIN
src/lib/fr.png
Normal file
After Width: | Height: | Size: 914 B |
BIN
src/lib/it.png
Normal file
After Width: | Height: | Size: 901 B |
BIN
src/lib/status0.png
Normal file
After Width: | Height: | Size: 360 B |
BIN
src/lib/status3.png
Normal file
After Width: | Height: | Size: 358 B |
BIN
src/lib/status5.png
Normal file
After Width: | Height: | Size: 355 B |
BIN
src/lib/sup.png
Normal file
After Width: | Height: | Size: 311 B |
22
src/var/aliasdeny.txt
Normal file
|
@ -0,0 +1,22 @@
|
|||
/^root$/
|
||||
/^mail$/
|
||||
/^email$/
|
||||
/^test$/
|
||||
/^toto$/
|
||||
/^www-data$/
|
||||
/^www-owne$/
|
||||
/^manager$/
|
||||
/^admin$/
|
||||
/postmaster/
|
||||
/^MAILER-DAEMON$/
|
||||
/^abuse$/
|
||||
/^spam$/
|
||||
/^backup$/
|
||||
/^list$/
|
||||
/^nobody$/
|
||||
/^vmail$/
|
||||
/^mysql$/
|
||||
/^web$/
|
||||
/^git$/
|
||||
/^mail$/
|
||||
/^[1-9]+$/
|
7
src/var/blacklist.txt
Normal file
|
@ -0,0 +1,7 @@
|
|||
/^exemple@exemple.com$/
|
||||
/.pl$/
|
||||
/^exemple[1-9]+@toto.fr$/
|
||||
/@yopmail.com$/
|
||||
/^harou/
|
||||
/@gmx.com$/
|
||||
/^sportnet/
|
197
src/www/admin.php
Normal file
|
@ -0,0 +1,197 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<title>emailPoubelle Admin - Template-exemple</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="description" content="">
|
||||
<meta name="robots" content="index,follow,noarchive">
|
||||
<link rel="stylesheet" href="template-exemple/style.css">
|
||||
<!--[if IE]><script src="template-exemple/html5-ie.js"></script><![endif]-->
|
||||
</head>
|
||||
<body>
|
||||
<!--[if lte IE 6]>
|
||||
<div class="alert-ie6" style="padding: 1em; background: #900; font-size: 1.1em; color: #fff;">
|
||||
<p><strong>Attention ! </strong> Votre navigateur (Internet Explorer 6 ou 7) présente de sérieuses lacunes en terme de sécurité et de performances, dues à son obsolescence (il date de 2001).<br />En conséquence, ce site sera consultable mais de manière moins optimale qu'avec un navigateur récent (<a href="http://www.browserforthebetter.com/download.html" style="color: #fff;">Internet Explorer 8</a>, <a href="http://www.mozilla-europe.org/fr/firefox/" style="color: #fff;">Firefox 3</a>, <a href="http://www.google.com/chrome?hl=fr" style="color: #fff;">Chrome</a>, <a href="http://www.apple.com/fr/safari/download/" style="color: #fff;">Safari</a>,...)</p>
|
||||
</div>
|
||||
<![endif]-->
|
||||
<div id="a">
|
||||
<header>
|
||||
<a href="/" title="Startseite"><strong>OWMX-2</strong> HTML5 & CSS3</a>
|
||||
</header>
|
||||
<div id="b">
|
||||
<article>
|
||||
<h1><?= _('Emails trash free') ?> - <?= _('Admin space') ?></h1>
|
||||
<p><?= _('Generate trash emails without lifetime constraint') ?>. </p>
|
||||
<?php
|
||||
// Intégration dans votre site :
|
||||
if (file_exists('../conf.php')) {
|
||||
include('../conf.php');
|
||||
} else {
|
||||
include('../conf-dist.php');
|
||||
}
|
||||
include('../emailPoubelleAdmin.php');
|
||||
?>
|
||||
<h3>Let the Show Begin - Pre and Code</h3>
|
||||
<p>This is how it looks if you use <code>pre</code> and <code>code</code> together, for example to highlight and nicely markup a piece of code:</p>
|
||||
<pre><code>pre {<br /> font-size : 12px;<br /> background : #F0F0F0;<br />}</code></pre>
|
||||
<h3>Example Blockquote</h3>
|
||||
<p>If you want to quote somebody, you can use this perfectly semantic example for a blockquote:</p>
|
||||
<cite>Jonas Jacek</cite>
|
||||
<blockquote cite="http://www.rield.com/">
|
||||
During my years in the Internet Marketing business I have seen and done many things I never thought would be of interest to me or anyone else.
|
||||
</blockquote>
|
||||
<h3>Examples Alerts, Notice & Confirmation</h3>
|
||||
<p>These sample styles for alerts and notices are useful if you want to use the template in content management systems.</p>
|
||||
<p class="highlight-1"><strong>Alert:</strong> This is how an alert looks like.</p>
|
||||
<p class="highlight-2"><strong>Notice:</strong> This is how a notice looks like.</p>
|
||||
<p class="highlight-3"><strong>Confirmation:</strong> This is how a confirmation looks like.</p>
|
||||
<h3>Example Table</h3>
|
||||
<p>The following is the design for a table. The style is simple and user-friendly. Some of the effects were made with CSS3.</p>
|
||||
<table>
|
||||
<caption>Mini HTML5 Reference Guide</caption>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Tag</th>
|
||||
<th>Info</th>
|
||||
<th>Attributes</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><abbr></td>
|
||||
<td>abbreviation</td>
|
||||
<td>global attributes**</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><area></td>
|
||||
<td>in an image map</td>
|
||||
<td> alt, coords, href, hreflang, media, ping, rel, shape, target, type</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><article></td>
|
||||
<td>article/ content</td>
|
||||
<td>global attributes**</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><aside></td>
|
||||
<td>sidebar</td>
|
||||
<td>global attributes**</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><audio></td>
|
||||
<td>sound content</td>
|
||||
<td>autobuffer, autoplay, controls, loop, src</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b></td>
|
||||
<td>bold text</td>
|
||||
<td>global attributes**</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3>Example hCalendar</h3>
|
||||
<p>The following is a definition list in combination with the hCalendar microformat. </p>
|
||||
<dl class="vevent">
|
||||
<dt class="dtstart"><abbr title="2010-11-18" class="dtstart">11-18-2010</abbr></dt>
|
||||
<dd class="summary">Conference Name</dd>
|
||||
<dd><a href="#" class="url">http://www.conference-website.com/</a></dd>
|
||||
<dd class="description">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nec eleifend diam. Fusce lobortis odio ac sem scelerisque sed iaculis purus ornare.</dd>
|
||||
</dl>
|
||||
<h3>Example Video</h3>
|
||||
<p>You can put your Video-Files here...</p>
|
||||
<video src="movie.ogg" controls>your browser does not support the video tag</video>
|
||||
<h3>Example Audio</h3>
|
||||
<p>You can put your Audio-Files here...</p>
|
||||
<audio src="file.ogg" controls>your browser does not support the audio tag</audio>
|
||||
<h3>Example Lists</h3>
|
||||
<p>Two different kinds of lists were styled: Ordered lists (ol) and unordered (ul) lists.</p>
|
||||
<ol>
|
||||
<li>This is</li>
|
||||
<li>The Ordered</li>
|
||||
<li>Listing</li>
|
||||
</ol>
|
||||
<ul>
|
||||
<li>This is</li>
|
||||
<li>The Unordered</li>
|
||||
<li>Listing</li>
|
||||
</ul>
|
||||
<h3>Example Form</h3>
|
||||
<p>This is how a form will look like in this template.</p>
|
||||
<form action="#">
|
||||
<label>Name</label>
|
||||
<input name="#" type="text" value="Your Name">
|
||||
<label>Email</label>
|
||||
<input name="#" type="text" value="Your Email">
|
||||
<label>Your Comments</label>
|
||||
<textarea>This is a Comment...</textarea>
|
||||
<br>
|
||||
<input class="button" type="submit">
|
||||
</form>
|
||||
<section class="meta">
|
||||
<p>Author: <a href="http://www.jabz.info/contact/jonas-jared-jacek/">Jonas Jacek</a> | Date: 2010-01-21 | Comments: <a href="#">7</a></p>
|
||||
<p>Tags: <a href="#" rel="tag">quisquam</a>, <a href="#" rel="tag">Tags</a>, <a href="#" rel="tag">dolorem</a> <a href="#" rel="tag">Tags</a>, <a href="#" rel="tag">Tags</a></p>
|
||||
</section>
|
||||
</article>
|
||||
<aside>
|
||||
<h4>Search</h4>
|
||||
<form action="#" class="s">
|
||||
<input name="search" type="text" value="Type term and hit enter...">
|
||||
</form>
|
||||
<h4>About the Author</h4>
|
||||
<div id="c">
|
||||
<img src="template-exemple/jonas-jacek.png" alt="Jonas Jacek">
|
||||
<p>Hi, my name is <a href="http://www.jabz.info/contact/jonas-jared-jacek/">Jonas Jacek</a>.<br> Welcome to my new HTML5 / CSS3 blog.</p>
|
||||
<p>I am a web designer, web developer and Internet marketing enthusiast.</p>
|
||||
<p>I strongly believe in open-source software and open standards.</p>
|
||||
</div>
|
||||
<nav>
|
||||
<h4>Navigation</h4>
|
||||
<ul>
|
||||
<li><a href="#">Lorem</a></li>
|
||||
<li><a href="#">Ipsum</a></li>
|
||||
<li class="active"><a href="#">Dolor Sit</a>
|
||||
<ul>
|
||||
<li><a href="#">Amet</a></li>
|
||||
<li><a href="#">Amet</a></li>
|
||||
</ul>
|
||||
|
||||
</li>
|
||||
<li><a href="#">Downloads</a></li>
|
||||
<li><a href="#">Contact</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
<h4>Example Gallery</h4>
|
||||
<ul class="gallery">
|
||||
<li><a href="index.html"><img src="template-exemple/img1.png"/></a></li>
|
||||
<li><a href="index.html"><img src="template-exemple/img2.png"/></a></li>
|
||||
<li><a href="index.html"><img src="template-exemple/img3.png"/></a></li>
|
||||
</ul>
|
||||
<ul class="gallery">
|
||||
<li><a href="index.html"><img src="template-exemple/img4.png"/></a></li>
|
||||
<li><a href="index.html"><img src="template-exemple/img5.png"/></a></li>
|
||||
<li><a href="index.html"><img src="template-exemple/img6.png"/></a></li>
|
||||
</ul>
|
||||
<h4>AdSpace</h4>
|
||||
<div class="adspace">
|
||||
<a href="http://www.jabz.biz/" rel="me"><img src="template-exemple/jabz-logo.png" alt="Jabz Internet Marketing GmbH" title="Jabz Internet Marketing GmbH"/></a>
|
||||
</div>
|
||||
<h4>Example Blogroll</h4>
|
||||
<ul>
|
||||
<li><a href="http://www.jabz.biz/">Jabz Internet Marketing GmbH</a></li>
|
||||
<li><a href="http://www.jabz.info/contact/jonas-jared-jacek/">Jonas Jacek</a></li>
|
||||
<li><a href="http://www.w3.org/">World Wide Web Consortium</a></li>
|
||||
<li><a href="http://www.getfirefox.com/">Firefox Web Browser</a></li>
|
||||
</ul>
|
||||
<h4>Example Tag Cloud</h4>
|
||||
<ul id="tagcloud">
|
||||
<li class="tagcloudsize-1"><a href="#">Lorem</a></li>
|
||||
<li class="tagcloudsize-2"><a href="#">Ipsum</a></li>
|
||||
<li class="tagcloudsize-3"><a href="#">Dolor</a></li>
|
||||
<li class="tagcloudsize-2"><a href="#">Sit Amet</a></li>
|
||||
<li class="tagcloudsize-1"><a href="#">Consectetur</a></li>
|
||||
</ul>
|
||||
</aside>
|
||||
</div>
|
||||
<footer>
|
||||
<p>Template Design & Markup by <a href="http://www.jabz.info/contact/jonas-jared-jacek/" title="Profile of Jonas Jacek">Jonas Jacek</a> for <a href="http://www.owmx.com/" title="Free HTML5 & CSS3 Web Template | owmx.com">Free HTML5 & CSS3 Web Templates</a>.</p>
|
||||
</footer>
|
||||
</div>
|
||||
</html>
|
197
src/www/index.php
Normal file
|
@ -0,0 +1,197 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<title>emailPoubelle - Template-exemple</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="description" content="">
|
||||
<meta name="robots" content="index,follow,noarchive">
|
||||
<link rel="stylesheet" href="template-exemple/style.css">
|
||||
<!--[if IE]><script src="template-exemple/html5-ie.js"></script><![endif]-->
|
||||
</head>
|
||||
<body>
|
||||
<!--[if lte IE 6]>
|
||||
<div class="alert-ie6" style="padding: 1em; background: #900; font-size: 1.1em; color: #fff;">
|
||||
<p><strong>Attention ! </strong> Votre navigateur (Internet Explorer 6 ou 7) présente de sérieuses lacunes en terme de sécurité et de performances, dues à son obsolescence (il date de 2001).<br />En conséquence, ce site sera consultable mais de manière moins optimale qu'avec un navigateur récent (<a href="http://www.browserforthebetter.com/download.html" style="color: #fff;">Internet Explorer 8</a>, <a href="http://www.mozilla-europe.org/fr/firefox/" style="color: #fff;">Firefox 3</a>, <a href="http://www.google.com/chrome?hl=fr" style="color: #fff;">Chrome</a>, <a href="http://www.apple.com/fr/safari/download/" style="color: #fff;">Safari</a>,...)</p>
|
||||
</div>
|
||||
<![endif]-->
|
||||
<div id="a">
|
||||
<header>
|
||||
<a href="/" title="Startseite"><strong>OWMX-2</strong> HTML5 & CSS3</a>
|
||||
</header>
|
||||
<div id="b">
|
||||
<article>
|
||||
<h1><?= _('Emails trash free') ?></h1>
|
||||
<p><?= _('Generate trash emails without lifetime constraint') ?>. </p>
|
||||
<?php
|
||||
// Intégration dans votre site :
|
||||
if (file_exists('../conf.php')) {
|
||||
include('../conf.php');
|
||||
} else {
|
||||
include('../conf-dist.php');
|
||||
}
|
||||
include('../emailPoubelle.php');
|
||||
?>
|
||||
<h3>Let the Show Begin - Pre and Code</h3>
|
||||
<p>This is how it looks if you use <code>pre</code> and <code>code</code> together, for example to highlight and nicely markup a piece of code:</p>
|
||||
<pre><code>pre {<br /> font-size : 12px;<br /> background : #F0F0F0;<br />}</code></pre>
|
||||
<h3>Example Blockquote</h3>
|
||||
<p>If you want to quote somebody, you can use this perfectly semantic example for a blockquote:</p>
|
||||
<cite>Jonas Jacek</cite>
|
||||
<blockquote cite="http://www.rield.com/">
|
||||
During my years in the Internet Marketing business I have seen and done many things I never thought would be of interest to me or anyone else.
|
||||
</blockquote>
|
||||
<h3>Examples Alerts, Notice & Confirmation</h3>
|
||||
<p>These sample styles for alerts and notices are useful if you want to use the template in content management systems.</p>
|
||||
<p class="highlight-1"><strong>Alert:</strong> This is how an alert looks like.</p>
|
||||
<p class="highlight-2"><strong>Notice:</strong> This is how a notice looks like.</p>
|
||||
<p class="highlight-3"><strong>Confirmation:</strong> This is how a confirmation looks like.</p>
|
||||
<h3>Example Table</h3>
|
||||
<p>The following is the design for a table. The style is simple and user-friendly. Some of the effects were made with CSS3.</p>
|
||||
<table>
|
||||
<caption>Mini HTML5 Reference Guide</caption>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Tag</th>
|
||||
<th>Info</th>
|
||||
<th>Attributes</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><abbr></td>
|
||||
<td>abbreviation</td>
|
||||
<td>global attributes**</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><area></td>
|
||||
<td>in an image map</td>
|
||||
<td> alt, coords, href, hreflang, media, ping, rel, shape, target, type</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><article></td>
|
||||
<td>article/ content</td>
|
||||
<td>global attributes**</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><aside></td>
|
||||
<td>sidebar</td>
|
||||
<td>global attributes**</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><audio></td>
|
||||
<td>sound content</td>
|
||||
<td>autobuffer, autoplay, controls, loop, src</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b></td>
|
||||
<td>bold text</td>
|
||||
<td>global attributes**</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3>Example hCalendar</h3>
|
||||
<p>The following is a definition list in combination with the hCalendar microformat. </p>
|
||||
<dl class="vevent">
|
||||
<dt class="dtstart"><abbr title="2010-11-18" class="dtstart">11-18-2010</abbr></dt>
|
||||
<dd class="summary">Conference Name</dd>
|
||||
<dd><a href="#" class="url">http://www.conference-website.com/</a></dd>
|
||||
<dd class="description">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nec eleifend diam. Fusce lobortis odio ac sem scelerisque sed iaculis purus ornare.</dd>
|
||||
</dl>
|
||||
<h3>Example Video</h3>
|
||||
<p>You can put your Video-Files here...</p>
|
||||
<video src="movie.ogg" controls>your browser does not support the video tag</video>
|
||||
<h3>Example Audio</h3>
|
||||
<p>You can put your Audio-Files here...</p>
|
||||
<audio src="file.ogg" controls>your browser does not support the audio tag</audio>
|
||||
<h3>Example Lists</h3>
|
||||
<p>Two different kinds of lists were styled: Ordered lists (ol) and unordered (ul) lists.</p>
|
||||
<ol>
|
||||
<li>This is</li>
|
||||
<li>The Ordered</li>
|
||||
<li>Listing</li>
|
||||
</ol>
|
||||
<ul>
|
||||
<li>This is</li>
|
||||
<li>The Unordered</li>
|
||||
<li>Listing</li>
|
||||
</ul>
|
||||
<h3>Example Form</h3>
|
||||
<p>This is how a form will look like in this template.</p>
|
||||
<form action="#">
|
||||
<label>Name</label>
|
||||
<input name="#" type="text" value="Your Name">
|
||||
<label>Email</label>
|
||||
<input name="#" type="text" value="Your Email">
|
||||
<label>Your Comments</label>
|
||||
<textarea>This is a Comment...</textarea>
|
||||
<br>
|
||||
<input class="button" type="submit">
|
||||
</form>
|
||||
<section class="meta">
|
||||
<p>Author: <a href="http://www.jabz.info/contact/jonas-jared-jacek/">Jonas Jacek</a> | Date: 2010-01-21 | Comments: <a href="#">7</a></p>
|
||||
<p>Tags: <a href="#" rel="tag">quisquam</a>, <a href="#" rel="tag">Tags</a>, <a href="#" rel="tag">dolorem</a> <a href="#" rel="tag">Tags</a>, <a href="#" rel="tag">Tags</a></p>
|
||||
</section>
|
||||
</article>
|
||||
<aside>
|
||||
<h4>Search</h4>
|
||||
<form action="#" class="s">
|
||||
<input name="search" type="text" value="Type term and hit enter...">
|
||||
</form>
|
||||
<h4>About the Author</h4>
|
||||
<div id="c">
|
||||
<img src="template-exemple/jonas-jacek.png" alt="Jonas Jacek">
|
||||
<p>Hi, my name is <a href="http://www.jabz.info/contact/jonas-jared-jacek/">Jonas Jacek</a>.<br> Welcome to my new HTML5 / CSS3 blog.</p>
|
||||
<p>I am a web designer, web developer and Internet marketing enthusiast.</p>
|
||||
<p>I strongly believe in open-source software and open standards.</p>
|
||||
</div>
|
||||
<nav>
|
||||
<h4>Navigation</h4>
|
||||
<ul>
|
||||
<li><a href="#">Lorem</a></li>
|
||||
<li><a href="#">Ipsum</a></li>
|
||||
<li class="active"><a href="#">Dolor Sit</a>
|
||||
<ul>
|
||||
<li><a href="#">Amet</a></li>
|
||||
<li><a href="#">Amet</a></li>
|
||||
</ul>
|
||||
|
||||
</li>
|
||||
<li><a href="#">Downloads</a></li>
|
||||
<li><a href="#">Contact</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
<h4>Example Gallery</h4>
|
||||
<ul class="gallery">
|
||||
<li><a href="index.html"><img src="template-exemple/img1.png"/></a></li>
|
||||
<li><a href="index.html"><img src="template-exemple/img2.png"/></a></li>
|
||||
<li><a href="index.html"><img src="template-exemple/img3.png"/></a></li>
|
||||
</ul>
|
||||
<ul class="gallery">
|
||||
<li><a href="index.html"><img src="template-exemple/img4.png"/></a></li>
|
||||
<li><a href="index.html"><img src="template-exemple/img5.png"/></a></li>
|
||||
<li><a href="index.html"><img src="template-exemple/img6.png"/></a></li>
|
||||
</ul>
|
||||
<h4>AdSpace</h4>
|
||||
<div class="adspace">
|
||||
<a href="http://www.jabz.biz/" rel="me"><img src="template-exemple/jabz-logo.png" alt="Jabz Internet Marketing GmbH" title="Jabz Internet Marketing GmbH"/></a>
|
||||
</div>
|
||||
<h4>Example Blogroll</h4>
|
||||
<ul>
|
||||
<li><a href="http://www.jabz.biz/">Jabz Internet Marketing GmbH</a></li>
|
||||
<li><a href="http://www.jabz.info/contact/jonas-jared-jacek/">Jonas Jacek</a></li>
|
||||
<li><a href="http://www.w3.org/">World Wide Web Consortium</a></li>
|
||||
<li><a href="http://www.getfirefox.com/">Firefox Web Browser</a></li>
|
||||
</ul>
|
||||
<h4>Example Tag Cloud</h4>
|
||||
<ul id="tagcloud">
|
||||
<li class="tagcloudsize-1"><a href="#">Lorem</a></li>
|
||||
<li class="tagcloudsize-2"><a href="#">Ipsum</a></li>
|
||||
<li class="tagcloudsize-3"><a href="#">Dolor</a></li>
|
||||
<li class="tagcloudsize-2"><a href="#">Sit Amet</a></li>
|
||||
<li class="tagcloudsize-1"><a href="#">Consectetur</a></li>
|
||||
</ul>
|
||||
</aside>
|
||||
</div>
|
||||
<footer>
|
||||
<p>Template Design & Markup by <a href="http://www.jabz.info/contact/jonas-jared-jacek/" title="Profile of Jonas Jacek">Jonas Jacek</a> for <a href="http://www.owmx.com/" title="Free HTML5 & CSS3 Web Template | owmx.com">Free HTML5 & CSS3 Web Templates</a>.</p>
|
||||
</footer>
|
||||
</div>
|
||||
</html>
|
BIN
src/www/template-exemple/ai1.png
Normal file
After Width: | Height: | Size: 116 B |
BIN
src/www/template-exemple/ai2.png
Normal file
After Width: | Height: | Size: 116 B |
BIN
src/www/template-exemple/ai3.png
Normal file
After Width: | Height: | Size: 196 B |
BIN
src/www/template-exemple/ai4.png
Normal file
After Width: | Height: | Size: 195 B |
BIN
src/www/template-exemple/ai5.png
Normal file
After Width: | Height: | Size: 183 B |
BIN
src/www/template-exemple/ai6.png
Normal file
After Width: | Height: | Size: 136 B |
BIN
src/www/template-exemple/ai7.png
Normal file
After Width: | Height: | Size: 137 B |
BIN
src/www/template-exemple/ai8.png
Normal file
After Width: | Height: | Size: 137 B |
BIN
src/www/template-exemple/hd.jpg
Normal file
After Width: | Height: | Size: 67 KiB |
10
src/www/template-exemple/html5-ie.js
Normal file
|
@ -0,0 +1,10 @@
|
|||
document.createElement("header");
|
||||
document.createElement("footer");
|
||||
document.createElement("section");
|
||||
document.createElement("aside");
|
||||
document.createElement("nav");
|
||||
document.createElement("article");
|
||||
document.createElement("figure");
|
||||
document.createElement("figcaption");
|
||||
document.createElement("hgroup");
|
||||
document.createElement("time");
|
BIN
src/www/template-exemple/image-1.png
Normal file
After Width: | Height: | Size: 270 B |
BIN
src/www/template-exemple/img1.png
Normal file
After Width: | Height: | Size: 8.1 KiB |
BIN
src/www/template-exemple/img2.png
Normal file
After Width: | Height: | Size: 7.5 KiB |
BIN
src/www/template-exemple/img3.png
Normal file
After Width: | Height: | Size: 8.2 KiB |
BIN
src/www/template-exemple/img4.png
Normal file
After Width: | Height: | Size: 5.5 KiB |
BIN
src/www/template-exemple/img5.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
BIN
src/www/template-exemple/img6.png
Normal file
After Width: | Height: | Size: 8.3 KiB |
BIN
src/www/template-exemple/jabz-logo.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
src/www/template-exemple/jonas-jacek.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
34
src/www/template-exemple/readme.txt
Normal file
|
@ -0,0 +1,34 @@
|
|||
####################################################
|
||||
# License #
|
||||
####################################################
|
||||
|
||||
This W3C-compliant, CSS-based website template has a
|
||||
Creative Commons Attribution-Share Alike 3.0
|
||||
Unported License.
|
||||
>> http://creativecommons.org/licenses/by-sa/3.0/
|
||||
|
||||
|
||||
####################################################
|
||||
# What You Can Do #
|
||||
####################################################
|
||||
|
||||
Feel free to remix, copy, distribute and transmit
|
||||
this template. All I ask is that you keep the
|
||||
footer links in the template intact. Also, if you
|
||||
alter, transform, or build upon this work, you
|
||||
may distribute the resulting work only under the
|
||||
same, similar or a compatible license.
|
||||
|
||||
|
||||
####################################################
|
||||
# Feedback & Action #
|
||||
####################################################
|
||||
|
||||
I'd love to get your feedback on the template.
|
||||
Please contact me with your critics, ideas, etc.
|
||||
>> http://www.jabz.info/contact/jonas-jared-jacek/
|
||||
|
||||
If you like to contribute your remix, I will be
|
||||
more than happy to put your version on owmx.com
|
||||
and credit you in http://www.owmx.com/credits/.
|
||||
|
442
src/www/template-exemple/style.css
Normal file
|
@ -0,0 +1,442 @@
|
|||
/*==================================================
|
||||
Template: OWMX-2
|
||||
Resource: http://www.owmx.com/
|
||||
Version: 1.0
|
||||
Date: 2010-09-13
|
||||
Editor: Jonas Jacek
|
||||
License: CC Attribution-Share Alike 3.0 Unported
|
||||
==================================================*/
|
||||
|
||||
/* Reset */
|
||||
header, footer, article, nav, section, aside, time, hgroup {
|
||||
display : block;
|
||||
}
|
||||
html, body, header, footer, article, nav, section, aside, time, h1, h2, h3, p, a, ul, li, dl, dd, dt, table, thead, tfoot, tbody, th, tr, td {
|
||||
border : 0;
|
||||
font : 12px/22px Verdana, sans-serif;
|
||||
margin : 0;
|
||||
outline : 0;
|
||||
padding : 0;
|
||||
}
|
||||
|
||||
/* BASICS */
|
||||
BODY {
|
||||
background : #FFF;
|
||||
border-top : 5px solid #FFF;
|
||||
color : #444;
|
||||
}
|
||||
|
||||
A {
|
||||
color : #0A647C;
|
||||
text-decoration : none;
|
||||
}
|
||||
A:HOVER {
|
||||
color : #DB0202;
|
||||
}
|
||||
|
||||
H1, H3, H4, H5, H6 {
|
||||
background : url(./ai4.png) no-repeat 0 7px;
|
||||
border-bottom : 1px dotted #B5B3A9;
|
||||
color : #333;
|
||||
font-weight : bold;
|
||||
margin : 0 0 10px;
|
||||
padding : 0 0 0 25px;
|
||||
}
|
||||
H1 {
|
||||
background : url(./ai4.png) no-repeat 0 6px;
|
||||
font-size : 15px;
|
||||
}
|
||||
H2 {
|
||||
font-size : 14px;
|
||||
margin : 0 0 20px 0;
|
||||
}
|
||||
H3 {
|
||||
background : url(./ai5.png) no-repeat 0 7px;
|
||||
}
|
||||
H3, H4, H5, H6 {
|
||||
font-size : 13px;
|
||||
}
|
||||
|
||||
SUP {
|
||||
top : -4px;
|
||||
}
|
||||
|
||||
/* Header */
|
||||
header {
|
||||
-moz-border-radius : 4px;
|
||||
-webkit-border-radius : 4px;
|
||||
background : #006699 url(./hd.jpg) no-repeat top left;
|
||||
margin : 0 0 10px 0;
|
||||
padding : 10px 10px;
|
||||
position : relative;
|
||||
}
|
||||
header a {
|
||||
color : #FFF;
|
||||
font-size : 16px;
|
||||
}
|
||||
header a:hover {
|
||||
color : #FFF;
|
||||
}
|
||||
|
||||
/* Article */
|
||||
article {
|
||||
border-left : 1px dotted #666;
|
||||
float : right;
|
||||
height : auto;
|
||||
padding : 0 0 0 20px;
|
||||
width : 560px;
|
||||
}
|
||||
article p {
|
||||
margin : 0 0 20px 0;
|
||||
}
|
||||
article img {
|
||||
float : left;
|
||||
margin : 6px 10px 0 0;
|
||||
}
|
||||
|
||||
/* Highlighted Paragraphs */
|
||||
.highlight-1, .highlight-2, .highlight-3 {
|
||||
-moz-border-radius : 4px;
|
||||
-webkit-border-radius : 4px;
|
||||
padding : 5px 10px;
|
||||
}
|
||||
.highlight-1 {
|
||||
background : #FFCCCC;
|
||||
border : 1px dotted #FF9966;
|
||||
}
|
||||
.highlight-2 {
|
||||
background : #FFFF99;
|
||||
border : 1px dotted #FFCC33;
|
||||
}
|
||||
.highlight-3 {
|
||||
background : #CCFF99;
|
||||
border : 1px dotted #CCCC33;
|
||||
}
|
||||
|
||||
/* Citations & Quotes */
|
||||
cite {
|
||||
border-left: 2px solid #006699;
|
||||
color : #666;
|
||||
font-size : 10px;
|
||||
font-style : normal;
|
||||
font-weight : bold;
|
||||
margin : 0;
|
||||
padding : 5px 10px;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
border-left: 2px solid #006699;
|
||||
color : #666;
|
||||
margin : 0 0 20px 0;
|
||||
padding : 5px 10px;
|
||||
}
|
||||
|
||||
/* Pre & Code */
|
||||
pre {
|
||||
color : #333;
|
||||
font-size : 10px;
|
||||
line-height : 15px; /*--Height of each line of code--*/
|
||||
overflow : hidden; /*--If the Code exceeds the width, put "auto" and scrolling is available--*/
|
||||
overflow-Y : hidden; /*--Hides vertical scroll created by IE--*/
|
||||
}
|
||||
pre code {
|
||||
background : #EEE;
|
||||
border-left : 2px solid #006699;
|
||||
margin : 0 0 10px 0;
|
||||
padding : 5px;
|
||||
display : block;
|
||||
}
|
||||
|
||||
/* Table */
|
||||
table {
|
||||
border-collapse : collapse;
|
||||
text-align:left;
|
||||
margin : 0 0 20px 0;
|
||||
}
|
||||
caption {
|
||||
-moz-border-radius : 4px;
|
||||
-webkit-border-radius : 4px;
|
||||
background : #006699;
|
||||
color : #FFF;
|
||||
font-weight : bold;
|
||||
}
|
||||
tr:nth-child(odd) {
|
||||
background : #FFF;
|
||||
}
|
||||
tr:nth-child(even) {
|
||||
background : #DDD;
|
||||
}
|
||||
tr:hover td {
|
||||
color : #006699;
|
||||
}
|
||||
td, th {
|
||||
min-width : 120px;
|
||||
padding : 0 5px;
|
||||
vertical-align:top;
|
||||
}
|
||||
th {
|
||||
background : #FFF;
|
||||
border-bottom : 2px solid #006699;
|
||||
color : #666;
|
||||
font-size : 10px;
|
||||
font-weight : bold;
|
||||
}
|
||||
td {
|
||||
border-bottom : 1px solid #CCC;
|
||||
font-size : 10px;
|
||||
}
|
||||
|
||||
/* Calendar */
|
||||
dl.vevent {
|
||||
margin : -20px 0 20px 0;
|
||||
padding : 0;
|
||||
}
|
||||
.vevent dt {
|
||||
font-size : 10px;
|
||||
position : relative;
|
||||
left : 0;
|
||||
top : 22px;
|
||||
font-weight : bold;
|
||||
}
|
||||
.vevent dd
|
||||
{
|
||||
border-left : 2px solid #006699;
|
||||
font-size : 11px;
|
||||
margin : 0 0 0 80px;
|
||||
padding : 0 0 0 10px;
|
||||
}
|
||||
dd.summary {
|
||||
font-weight : bold;
|
||||
}
|
||||
.vevent a {
|
||||
font-size : 11px;
|
||||
}
|
||||
|
||||
/* Forms */
|
||||
article form {
|
||||
-moz-border-radius: 4px;
|
||||
-webkit-border-radius: 4px;
|
||||
background : #DDD;
|
||||
margin : 0 0 20px;
|
||||
padding : 10px;
|
||||
}
|
||||
article label {
|
||||
color : #666;
|
||||
display : block;
|
||||
font-size : 10px;
|
||||
font-weight : bold;
|
||||
margin : 0 0 0 2px;
|
||||
}
|
||||
article input, article textarea {
|
||||
-moz-border-radius: 4px;
|
||||
-webkit-border-radius: 4px;
|
||||
border : 1px solid #CCC;
|
||||
font-size : 11px;
|
||||
padding : 4px 5px;
|
||||
/*width : 458px;*/
|
||||
}
|
||||
article input {
|
||||
margin : 0 0 10px;
|
||||
}
|
||||
article input.button, .btn {
|
||||
background: #999;
|
||||
border : 1px solid #888;
|
||||
color: #FFF;
|
||||
cursor : pointer;
|
||||
font-weight : bold;
|
||||
margin : 10px 0 0 0;
|
||||
text-shadow : 0 -1px 1px rgba(0,0,0,0.25);
|
||||
width : 25%;
|
||||
}
|
||||
article input.button:disabled, .btn{
|
||||
color: #888;
|
||||
}
|
||||
article textarea {
|
||||
height : 100px;
|
||||
}
|
||||
|
||||
/* Lists */
|
||||
article ul, aside ul {
|
||||
list-style : none;
|
||||
margin : 0 0 20px 0;
|
||||
}
|
||||
article ul {
|
||||
margin : 0 0 20px 23px;
|
||||
}
|
||||
article ul li {
|
||||
background : url(./ai2.png) no-repeat 0 8px;
|
||||
padding : 0 0 0 17px;
|
||||
}
|
||||
|
||||
/* Sidebar */
|
||||
aside {
|
||||
float : left;
|
||||
margin : 0 0 20px 0;
|
||||
width : 200px;
|
||||
}
|
||||
|
||||
/* Search Box */
|
||||
.s {
|
||||
-moz-border-radius : 4px;
|
||||
-webkit-border-radius : 4px;
|
||||
margin : 0 0 20px 0;
|
||||
padding : 10px;
|
||||
width : 179px;
|
||||
}
|
||||
.s input {
|
||||
-moz-border-radius: 4px;
|
||||
-webkit-border-radius: 4px;
|
||||
border : 1px solid #CCC;
|
||||
color : #999;
|
||||
font-size : 11px;
|
||||
padding : 4px 5px;
|
||||
width : 168px;
|
||||
}
|
||||
|
||||
/* Navigation & Menu */
|
||||
nav ul {
|
||||
list-style : none;
|
||||
}
|
||||
nav li {
|
||||
background : url(./ai1.png) no-repeat 0 8px;
|
||||
padding : 0 0 0 15px;
|
||||
}
|
||||
nav li ul, aside li ul li ul {
|
||||
margin : 0;
|
||||
}
|
||||
nav li li a {
|
||||
font-size : 11px;
|
||||
}
|
||||
nav li li li a {
|
||||
font-size : 10px;
|
||||
}
|
||||
nav li li li, aside li.active li li {
|
||||
background : url(./ai8.png) no-repeat 0 10px;
|
||||
}
|
||||
nav li.active, aside li.active li {
|
||||
background : url(./ai2.png) no-repeat 0 8px;
|
||||
}
|
||||
|
||||
/* Gallery */
|
||||
.gallery {
|
||||
list-style : none;
|
||||
margin : 0 0 10px;
|
||||
}
|
||||
.gallery li {
|
||||
display: inline;
|
||||
margin : 0 15px 0 0;
|
||||
}
|
||||
.gallery a img {
|
||||
border : 1px solid #999;
|
||||
height : 50px;
|
||||
opacity: 0.8;
|
||||
padding : 1px;
|
||||
width : 50px;
|
||||
}
|
||||
.gallery li:last-child {
|
||||
margin : 0 0 10px 0;
|
||||
}
|
||||
.gallery a img:hover{
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
/* Ad Space */
|
||||
.adspace {
|
||||
-moz-border-radius : 4px;
|
||||
-webkit-border-radius : 4px;
|
||||
-moz-box-shadow : 0 2px 2px rgba(0,0,0,0.3);
|
||||
-webkit-box-shadow : 0 2px 2px rgba(0,0,0,0.3);
|
||||
background : #EEE;
|
||||
height : 100%;
|
||||
margin : 0 0 20px 0;
|
||||
padding : 5px 10px;
|
||||
text-align : center;
|
||||
width : 178px;
|
||||
}
|
||||
.adspace a img {
|
||||
border : none;
|
||||
}
|
||||
|
||||
/* Tag Cloud */
|
||||
#tagcloud {
|
||||
overflow : hidden;
|
||||
width : 200px;
|
||||
}
|
||||
#tagcloud li {
|
||||
display : inline;
|
||||
margin : 0 10px 0 0;
|
||||
}
|
||||
.tagcloudsize-1 a {
|
||||
font-size : 14px;
|
||||
}
|
||||
.tagcloudsize-2 a {
|
||||
font-size : 16px;
|
||||
}
|
||||
.tagcloudsize-3 a {
|
||||
font-size : 18px;
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
footer {
|
||||
border-top : 1px dotted #B5B3A9;
|
||||
clear : both;
|
||||
margin : 20px 0;
|
||||
}
|
||||
footer a, footer p {
|
||||
color : #666;
|
||||
display : inline;
|
||||
font-size : 10px;
|
||||
}
|
||||
|
||||
/* Wrappers */
|
||||
#a, #b {
|
||||
margin : 0 auto;
|
||||
position : relative;
|
||||
}
|
||||
#a {
|
||||
width : 800px;
|
||||
}
|
||||
#b {
|
||||
overflow : hidden;
|
||||
}
|
||||
|
||||
/* Shadow-Boxes*/
|
||||
#c, .meta, .s {
|
||||
-moz-border-radius : 4px;
|
||||
-webkit-border-radius : 4px;
|
||||
-moz-box-shadow : 0 2px 2px rgba(0,0,0,0.3);
|
||||
-webkit-box-shadow : 0 2px 2px rgba(0,0,0,0.3);
|
||||
background : #EEE;
|
||||
}
|
||||
#c {
|
||||
background : #EEE;
|
||||
margin : 0 0 20px 0;
|
||||
padding : 5px 10px;
|
||||
width : 178px;
|
||||
}
|
||||
#c p, #c a {
|
||||
font-size : 11px;
|
||||
line-height : 15px;
|
||||
}
|
||||
#c p {
|
||||
margin : 0 0 10px 0;
|
||||
}
|
||||
#c img {
|
||||
float : left;
|
||||
margin : 4px 10px 2px 0;
|
||||
}
|
||||
.meta {
|
||||
margin : 20px 0 3px;
|
||||
padding : 2px 5px;
|
||||
}
|
||||
.meta p, .meta a {
|
||||
font-size : 10px;
|
||||
margin : 0;
|
||||
}
|
||||
|
||||
.open {
|
||||
color : #CCC;
|
||||
}
|
||||
.close {
|
||||
color : #0A647C;
|
||||
}
|