diff --git a/CHANGELOG b/CHANGELOG new file mode 100644 index 0000000..8a89bd5 --- /dev/null +++ b/CHANGELOG @@ -0,0 +1,33 @@ +v 1.5.1 - 22-04-2015 - Pierre Van Glabeke +* nommage widget +* modifs localisation + +v 1.5 - Pierre Van Glabeke +* compatibilité dc2.7 + +v 1.4.1 - Pierre Van Glabeke +* Ajustements settings +* Fin de ligne unix +* complément _define.php + +v 1.4 - Pierre Van Glabeke +* Modifs affichage pour le widget (remplacement paragraphe par une liste) + +v 1.3.1 +* Ajout choix affichage page pour le widget (content only + css) + +v 1.3 +* Ajout choix affichage page pour le widget +* Correction de traduction + +v 1.2 +* Ajout du piochage automatique de la date du blog si non saisie dans le widget +* Ajout @ devant la fonction checkdate pour eviter un warning + +v 1.1 +* Compatibilité dc2.2 +* Localisation +* Intégration corrections proposées sur http://www.myouaibe.com/index.php/post/2007/08/23/Plugin-BlogAnniv-pour-DOTCLEAR-2 + +v 1.0 +* Création \ No newline at end of file diff --git a/README.md b/README.md index aaf0e85..61a695d 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # bloganniv -Décompte du nombre de jours avant et après la date anniversaire du blog +Décompte du nombre de jours avant et après une date donnée Ce plugin permet l'affichage dans la sidebar par le biais du widget de : * une date de naissance (si vide, la date de naissance du blog sera prise en compte), * l'âge en années, -* le nombre de jours restant avant et après l'anniversaire de votre blog. +* le nombre de jours restant avant et après l'anniversaire de la date. diff --git a/_admin.php b/_admin.php new file mode 100644 index 0000000..d1b0c5b --- /dev/null +++ b/_admin.php @@ -0,0 +1,16 @@ +registerModule( + /* Name */ "Blog Anniv", + /* Description*/ "Counting the number of days before and after a particular date", + /* Author */ "Fran6t, Pierre Van Glabeke", + /* Version */ '1.5.1', + /* Properties */ + array( + 'permissions' => 'blogAnniv', + 'type' => 'plugin', + 'dc_min' => '2.7', + 'support' => 'http://www.myouaibe.com/index.php/post/2007/08/23/Plugin-BlogAnniv-pour-DOTCLEAR-2', + 'details' => 'http://plugins.dotaddict.org/dc2/details/bloganniv' + ) +); \ No newline at end of file diff --git a/_public.php b/_public.php new file mode 100644 index 0000000..2ab54e5 --- /dev/null +++ b/_public.php @@ -0,0 +1,138 @@ +tpl->addValue('blogAnniv',array('tplBlogAnniv','blogAnniv')); + +class tplBlogAnniv +{ + + public static function blogAnniv($attr) + { + $output = ''; + + if (isset($attr['text'])) + { + $author = isset($attr['author']) ? ' '.$attr['author'].'' : ''; + + $output = '
'.$attr['text'].$author.'
'; + } + + return $output; + } + + public static function BlogAnnivWidget($w) + { + global $core; + + if ($w->offline) + return; + + // Si nous sommes pas en page accueil et que c'est coché page accueil uniquement on fait rien + + if (($w->homeonly == 1 && $core->url->type != 'default') || + ($w->homeonly == 2 && $core->url->type == 'default')) { + return; + } + + $title = $w->title ? html::escapeHTML($w->title) : __('Subscribe'); + $ftdatecrea = $w->ftdatecrea; + //Si la date est vide nous recherchons la date en base + if (strlen(rtrim($ftdatecrea))==0){ + /////////////////////////////////////////////// + //ACCES BDD + //je récupère la date du blog + require_once dirname(__FILE__).'/class.dc.dateBlog.php'; + + $lc = new dateBlog($GLOBALS['core']->blog); + try { + $Posts = $lc->getdateBlog(); + } + catch (Exception $e) { + return false; + } + foreach($Posts->rows() as $k => $v) + { + $ftdatecrea = html::clean($v['blog_creadt']); + $ftdatecrea = substr($ftdatecrea,0,10); + $ftdatecrea = str_replace("-","/",$ftdatecrea); + list($annee, $mois, $jour) = explode('/', $ftdatecrea); + // On remet la date en forme française + $ftdatecrea=$jour."/".$mois."/".$annee; + #printf($ftdatecrea); + #printf(html::clean($v['blog_id'])); + } + //FIN ACCES BDD + /////////////////////////////////////////////// + } else { + list($jour, $mois, $annee) = explode('/', $ftdatecrea); + } + $nbrejours=0; + $nbreannee=0; + // Test si la date est valide + if(@checkdate($mois,$jour,$annee)){ + // Ok nous pouvons calculer la date anniversaire et le nombre de jours restant avant + + //Extraction des données + list($jour2, $mois2, $annee2) = explode('-', date('d-m-Y')); + + //Calcul des timestamp + $timestamp1 = mktime(0,0,0,$mois,$jour,$annee2); // La date anniversaire cette année + $timestamp2 = mktime(0,0,0,$mois2,$jour2,$annee2); + //Affichage du nombre de jour + + //je regarde si la date anniv n'est pas passé + if (($timestamp2 - $timestamp1)> 0) + { + $timestamp1 = mktime(0,0,0,$mois,$jour,$annee2 + 1); + $nbrejours = round(abs(mktime(0,0,0,$mois2,$jour2,$annee2) - $timestamp1)/86400); + $nbreannee = abs($annee2 - $annee); + } + else { + $nbrejours = abs($timestamp2 - $timestamp1)/86400; + $nbreannee = abs($annee2 - $annee - 1); + } + // abs($timestamp2 - $timestamp1)/(86400*7); //Affichage du nombre de semaine : 3.85 + } else { + $ftdatecrea= '$ftdatecrea date invalide'; + } + $dispyearborn = $dispyear = ""; + // Si je dois afficher la date de naissance + if ($w->dispyearborn) { + $dispyearborn = '
  • '.__('Born:'). + ' '.$ftdatecrea.'
  • '; + } + // Si je dois afficher l'age en année + if ($w->dispyear) { + $dispyear = '
  • '.__('Age:'). + ' '.$nbreannee.' '. + __('year(s)'). + '
  • '; + } + + $res = + ($w->title ? $w->renderTitle(html::escapeHTML($w->title)) : ''). + ''; + + return $w->renderDiv($w->content_only,'bloganniv '.$w->class,'',$res); + + } +} \ No newline at end of file diff --git a/_widgets.php b/_widgets.php new file mode 100644 index 0000000..fdf2a6d --- /dev/null +++ b/_widgets.php @@ -0,0 +1,40 @@ +addBehavior('initWidgets',array('blogAnnivWidgets','initWidgets')); + +class blogAnnivWidgets +{ + public static function initWidgets($w) + { + global $core; + $w->create('blogAnniv',__('Blog Anniv'),array('tplBlogAnniv','BlogAnnivWidget'), + null, + __('Counting the number of days before and after a particular date')); + $w->blogAnniv->setting('title',__('Title :'),''); + $w->blogAnniv->setting('ftdatecrea',__('Born Date (dd/mm/yyyy) or blank:'),''); + $w->blogAnniv->setting('dispyearborn',__('Display Born Date'),1,'check'); + $w->blogAnniv->setting('dispyear',__('Display Year(s) Old'),1,'check'); + $w->blogAnniv->setting('homeonly',__('Display on:'),0,'combo', + array( + __('All pages') => 0, + __('Home page only') => 1, + __('Except on home page') => 2 + ) + ); + $w->blogAnniv->setting('content_only',__('Content only'),0,'check'); + $w->blogAnniv->setting('class',__('CSS class:'),''); + $w->blogAnniv->setting('offline',__('Offline'),0,'check'); + } +} \ No newline at end of file diff --git a/class.dc.dateBlog.php b/class.dc.dateBlog.php new file mode 100644 index 0000000..9df0596 --- /dev/null +++ b/class.dc.dateBlog.php @@ -0,0 +1,41 @@ +blog =& $blog; + $this->con =& $blog->con; + } + + public function getdateBlog() + { + $req = "SELECT blog_creadt,blog_id ". + "FROM ".$this->blog->prefix."blog ". + "WHERE blog_id = '".$this->blog->con->escape($this->blog->id)."' and blog_status = 1"; + try { + $rs = $this->con->select($req); + $rs = $rs->toStatic(); + } catch (Exception $e) { + throw $e; + return null; + } + + return $rs; + + } +} \ No newline at end of file diff --git a/locales/fr/main.po b/locales/fr/main.po new file mode 100644 index 0000000..9680049 --- /dev/null +++ b/locales/fr/main.po @@ -0,0 +1,38 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: \n" +"Last-Translator: brol \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.5.7\n" + +msgid "Counting the number of days before and after a particular date" +msgstr "Décompte du nombre de jours avant et après une date donnée" + +msgid "Born Date (dd/mm/yyyy) or blank:" +msgstr "Date de naissance (jj/mm/aaaa) ou vide :" + +msgid "Display Born Date" +msgstr "Affichage date de naissance" + +msgid "Display Year(s) Old" +msgstr "Affichage âge en année(s)" + +msgid "Born:" +msgstr "Né le :" + +msgid "Age:" +msgstr "Âge :" + +msgid "year(s)" +msgstr "an(s)" + +msgid "Birthday in" +msgstr "Anniversaire dans" + +msgid "day(s)" +msgstr "jour(s)"