1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/emailpoubelle_ynh.git synced 2024-09-03 18:26:29 +02:00

Add files via upload

This commit is contained in:
Krakinou 2018-11-18 15:49:16 +01:00 committed by GitHub
parent e922aeb394
commit 02f12d3c36
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
36 changed files with 1462 additions and 0 deletions

BIN
src/lib/blk.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 944 B

BIN
src/lib/drapaux.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

BIN
src/lib/en.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

486
src/lib/ep_function.php Normal file
View 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.: &quot; 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.: &quot; etc.)
// It preserves any <html> tags in that they are encoded aswell (like &lt;html&gt;)
// 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
View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 914 B

BIN
src/lib/it.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 901 B

BIN
src/lib/status0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 360 B

BIN
src/lib/status3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 358 B

BIN
src/lib/status5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 355 B

BIN
src/lib/sup.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 311 B

22
src/var/aliasdeny.txt Normal file
View 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
View 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
View 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 &amp; 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 &amp; 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>&lt;abbr&gt;</td>
<td>abbreviation</td>
<td>global attributes**</td>
</tr>
<tr>
<td>&lt;area&gt;</td>
<td>in an image map</td>
<td> alt, coords, href, hreflang, media, ping, rel, shape, target, type</td>
</tr>
<tr>
<td>&lt;article&gt;</td>
<td>article/ content</td>
<td>global attributes**</td>
</tr>
<tr>
<td>&lt;aside&gt;</td>
<td>sidebar</td>
<td>global attributes**</td>
</tr>
<tr>
<td>&lt;audio&gt;</td>
<td>sound content</td>
<td>autobuffer, autoplay, controls, loop, src</td>
</tr>
<tr>
<td>&lt;b&gt;</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 &amp; 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 &amp; CSS3 Web Template | owmx.com">Free HTML5 &amp; CSS3 Web Templates</a>.</p>
</footer>
</div>
</html>

197
src/www/index.php Normal file
View 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 &amp; 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 &amp; 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>&lt;abbr&gt;</td>
<td>abbreviation</td>
<td>global attributes**</td>
</tr>
<tr>
<td>&lt;area&gt;</td>
<td>in an image map</td>
<td> alt, coords, href, hreflang, media, ping, rel, shape, target, type</td>
</tr>
<tr>
<td>&lt;article&gt;</td>
<td>article/ content</td>
<td>global attributes**</td>
</tr>
<tr>
<td>&lt;aside&gt;</td>
<td>sidebar</td>
<td>global attributes**</td>
</tr>
<tr>
<td>&lt;audio&gt;</td>
<td>sound content</td>
<td>autobuffer, autoplay, controls, loop, src</td>
</tr>
<tr>
<td>&lt;b&gt;</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 &amp; 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 &amp; CSS3 Web Template | owmx.com">Free HTML5 &amp; CSS3 Web Templates</a>.</p>
</footer>
</div>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

View 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");

Binary file not shown.

After

Width:  |  Height:  |  Size: 270 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View 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/.

View 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;
}