DokuWiki

It's better when it's simple

User Tools

Site Tools


plugin:favoris

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
plugin:favoris [2009-03-04 09:51] 145.242.11.3plugin:favoris [2023-10-30 23:12] (current) Klap-in
Line 1: Line 1:
 ====== favoris Plugin ====== ====== favoris Plugin ======
- 
-~~NOCACHE~~ 
  
 ---- plugin ---- ---- plugin ----
-description: Affiche les liens vers vos pages favorites (les plus visitees) et vous permet de les gerer / Displays your favorite pages (most visitedand let you set them up+description: Displays your favorite pages (most visited) and let you set them up (fr: Affiche les liens vers vos pages favorites (les plus visitees) et vous permet de les gerer)
 author     : Etienne M. author     : Etienne M.
 email      : emauvaisfr@yahoo.fr email      : emauvaisfr@yahoo.fr
 type       : action, syntax type       : action, syntax
 lastupdate : 2009-03-04 lastupdate : 2009-03-04
-compatible : 2008-05-05+compatible : Rincewind, Angua
 depends    :  depends    : 
 conflicts  : conflicts  :
 similar    : similar    :
-tags       : pagefavoriteliensouvent, utilisé, utilisée, visite, link, often, used +tags       : usersbookmarknavigationlisting
-----+
  
-^ Download | [[http://membres.lycos.fr/emauvais/dokuwiki/favoris.tar.gz]]|+downloadurl: http://emauvaisfr.free.fr/dokuwiki/favoris.tar.gz 
 +bugtracker : 
 +sourcerepo : 
 +donationurl: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=79ZVTRTJ52DDY&lc=FR&item_name=Plugin%20dokuwiki%20%28Etienne%20M%2e%29&currency_code=EUR&bn=PP%2dDonationsBF%3abtn_donate_SM%2egif%3aNonHosted 
 +----
  
 ===== Description ===== ===== Description =====
 +
   * syntax: displays the list of your recent and favorite pages   * syntax: displays the list of your recent and favorite pages
   * action: handle the favorite tracking cookies each time you visit a page   * action: handle the favorite tracking cookies each time you visit a page
Line 26: Line 28:
  
 ===== Usage ===== ===== Usage =====
 +
   * Add ''<nowiki>~~FAVORIS~~</nowiki>'' to insert your favorites list on a page (in your personal sidebar, for example)   * Add ''<nowiki>~~FAVORIS~~</nowiki>'' to insert your favorites list on a page (in your personal sidebar, for example)
   * Double-click to make the controls appear (or don't move the mouse for 2 seconds over the favorites area)   * Double-click to make the controls appear (or don't move the mouse for 2 seconds over the favorites area)
Line 47: Line 50:
  
 ===== Version history ===== ===== Version history =====
 +
   * 2008-09-24: first one!   * 2008-09-24: first one!
   * 2008-09-25: corrects a warning (''Missing argument 1 for Doku_Renderer_xhtml::listitem_open()''). Thanks to Bertrand.   * 2008-09-25: corrects a warning (''Missing argument 1 for Doku_Renderer_xhtml::listitem_open()''). Thanks to Bertrand.
Line 55: Line 59:
  
 ===== Discussion ===== ===== Discussion =====
 +
   * Tell me...   * Tell me...
     * One of the best plugin on my opinion! May I suggest "Pages récemment visitées" comme texte au lieu de "Pages récentes"? Si j'ai bien compris le fonctionnement, il s'agit des pages les plus récemment visitées et pas des pages les plus récemment créées?      * One of the best plugin on my opinion! May I suggest "Pages récemment visitées" comme texte au lieu de "Pages récentes"? Si j'ai bien compris le fonctionnement, il s'agit des pages les plus récemment visitées et pas des pages les plus récemment créées? 
       * <del>This will be corrected in a coming soon new version</del>This has been corrected with version 2009-03-04. Thank you for your message.       * <del>This will be corrected in a coming soon new version</del>This has been corrected with version 2009-03-04. Thank you for your message.
 +
 +==== Patch to show page titles ====
 +
 +Nice plugin!  From the code it appears favoris will use the [[plugin:pagelist]] if installed to generate titles for listed pages.  But if it's not installed it just displays page filenames.  It can be problematic when many pages have the same filename (such as ''start'' pages in namespaces).  I hacked ''plugins/favoris/syntax.php'' to generate titles from headings even without [[plugin:pagelist]] by replacing
 +<file php syntax.php (old)>
 + function donneLien($page, $title="") {
 +      if (!plugin_isdisabled('pagelist')) $pagelist = plugin_load('helper', 'pagelist');
 +
 +      if (!$pagelist) {
 +        $titrePage=explode(":",$page);
 +        $titrePage=$titrePage[sizeof($titrePage)-1];
 +        $titrePage=str_replace('_',' ',$titrePage);
 +      }
 +      else {
 +        $pagelist->page['id']=$page;
 +        $pagelist->page['exists'] = 1;
 +        $pagelist->_meta=NULL;
 +        $titrePage = $pagelist->_getMeta('title');
 +        if (!$titrePage) $titrePage = str_replace('_', ' ', noNS($page));
 +        $titrePage = hsc($titrePage);
 +     }
 +     if (@file_exists(fullpath(wikiFN($page)))) return "<a href='doku.php?id=".$page."' class='wikilink1' style='font-weight: lighter;' title='$page".$title."'>$titrePage</a>";
 +     else return "<a href='doku.php?id=".$page."' class='wikilink2' style='font-weight: lighter;' title='$page".$title."' rel='nofollow'>$titrePage</a>";
 +   }
 +
 +</file>
 +with
 +<file php syntax.php (new)>
 + function donneLien($page, $title="") {
 +      $titrePage=p_get_first_heading($page);
 +      if (!$titrePage) {
 +
 +      if (!plugin_isdisabled('pagelist')) $pagelist = plugin_load('helper', 'pagelist');
 +
 +      if (!$pagelist) {
 +        $titrePage=explode(":",$page);
 +        $titrePage=$titrePage[sizeof($titrePage)-1];
 +        $titrePage=str_replace('_',' ',$titrePage);
 +      }
 +      else {
 +        $pagelist->page['id']=$page;
 +        $pagelist->page['exists'] = 1;
 +        $pagelist->_meta=NULL;
 +        $titrePage = $pagelist->_getMeta('title');
 +        if (!$titrePage) $titrePage = str_replace('_', ' ', noNS($page));
 +        $titrePage = hsc($titrePage);
 +     }
 +     }
 +     if (@file_exists(fullpath(wikiFN($page)))) return "<a href='doku.php?id=".$page."' class='wikilink1' style='font-weight: lighter;' title='$page".$title."'>$titrePage</a>";
 +     else return "<a href='doku.php?id=".$page."' class='wikilink2' style='font-weight: lighter;' title='$page".$title."' rel='nofollow'>$titrePage</a>";
 +   }
 +
 +</file>
 +
 +==== German Translate ====
 +<file php lang.php>
 + <?php
 +$lang['fav_description'     = "Zeigt Ihre Lieblings-Seiten (meist besucht)";
 +$lang['fav_desact'          = "Favoriten-Erkennung ist deaktiviert.";
 +$lang['fav_activer'         = "Zum aktivieren hier klicken";
 +$lang['fav_cookies'         = "(Diese Erkennung ist cookie gesteuert)";
 +$lang['fav_visites'         = "Besuch(e)";
 +$lang['fav_reset'           = "Besuchszahl dieser Seite zurücksetzen";
 +$lang['fav_exclure'         = "Diese Seite von den Favoriten ausschließen.";
 +$lang['fav_voircacher'      = "Anzeigen/verstecken ausgeschlossener Seiten u. Konfiguration";
 +$lang['fav_inclure'         = "Diese Seite zu den Favoriten hinzufügen";
 +$lang['fav_rafraichir'      = "Atkualisieren (aktuelle Seite neu laden)";
 +$lang['fav_confirmation'    = "Möchten Sie die Favoriten-Erkennung wirklich deaktivieren?\\n(Ihre Favoriten-Liste wird gelöscht)";
 +$lang['fav_desactiver'      = "Deaktiviert Favoriten-Erkennung";
 +$lang['fav_pasencore'       = "Im Moment haben Sie noch keine Favoriten. Kontrollieren Sie ob Ihr Browser Cookies erlaubt oder warten Sie noch etwas.";
 +$lang['fav_flotter'         = "Um das Konfigurationsfenster zu öffnen doppelklicken Sie, oder bewegen Sie die Maus für 2 Sekunden nicht.";
 +$lang['fav_confResetAll'    = "Alle Besuchszahlen zurücksetzen?";
 +$lang['fav_resetall'        = "Setzt alle Besuchszahlen zurück";
 +$lang['fav_prec'            = "Kürzlich besucht";
 +$lang['fav_pfav'            = "Favoriten";
 +$lang['fav_config'          = "Konfiguration";
 +$lang['fav_afficher'        = "Zeige";
 +$lang['fav_conf_prec'       = "Kürzlich besuchte Seite(n)";
 +$lang['fav_conf_pfav'       = "Favoriten";
 +$lang['fav_sauver'          = "Speichern";
 +
 +$lang['fav_snapnotfound'   = "Snap helper nicht gefunden!";
 +$lang['fav_pbsnap'         = "<b>SNAP:</b> Problem while snapping ";
 +$lang['fav_mosaique'       = "My favorites mosaic";
 +
 +</file>
 +
 +==== 400 Bad Request error ====
 +
 +Thanks for this excellent plugin!  I've been using it for a couple years now.  Today I created several deeply nested page (about 100 character long namespace strings) and after saving one, I couldn't access my wiki!  I just got a "400 Bad Request - request header or cookie too large" error, regardless of which page I tried to load.  When I deleted (only) the Favoris cookies I could access the site again.  I guess that Favoris is overfilling the cookies and causing problems?  If so, is it possible to insert an "overflow" check to prevent the error?  I'm running the latest Favoris (2009-03-04) on Weatherwax and my browser is Firefox 24.  Thanks! --- [[user>rikblok|Rik Blok]] //2013/10/21 03:35//
 +
 +==== Patch for a wiki farm setup ====
 +
 +<code diff>
 +--- action.php.ORIG 2009-03-03 17:25:05.000000000 +0100
 ++++ action.php 2016-03-15 11:22:42.419287081 +0100
 +@@ -42,6 +42,8 @@
 +     function _update_cookie(&$event, $param) {
 +         global $INFO;
 + 
 ++ $cookieDir = empty($conf['cookiedir']) ? DOKU_REL : $conf['cookiedir'];
 ++
 +         if($event->data == 'snapfavoris') {
 +           $event->preventDefault();
 +         }
 +@@ -55,7 +57,7 @@
 +           //Si on ne souhaite pas suivre les favoris
 +           if ($fav['off']==1) {
 +             //On efface les eventuels cookies existants (sauf off)
 +-            foreach ($_COOKIE['favoris'] as $page => $cpt) if ($page != "off") setCookie("favoris[$page]", "", time()-3600, '/');
 ++            foreach ($_COOKIE['favoris'] as $page => $cpt) if ($page != "off") setCookie("favoris[$page]", "", time()-3600, $cookieDir, '', ($conf['securecookie'] && is_ssl()));
 +             return;
 +           }
 +           
 +@@ -64,7 +66,7 @@
 +             //On efface tous les cookies (y compris off)
 +             foreach ($_COOKIE['favoris'] as $page => $cpt) {
 +               list($cpt, $date)=explode(";",$cpt);
 +-              if ($cpt != "-1") setCookie("favoris[$page]", "", time()-3600, '/');
 ++              if ($cpt != "-1") setCookie("favoris[$page]", "", time()-3600, $cookieDir, '', ($conf['securecookie'] && is_ssl()));
 +             }
 +             return;
 +           }
 +@@ -82,7 +84,7 @@
 +         else $cpt=1;
 + 
 +         //On positionne le cookie
 +-        setCookie("favoris[".$INFO['id']."]","$cpt;".time(), time()+60*60*24*7, '/');
 ++ setCookie("favoris[".$INFO['id']."]","$cpt;".time(), time()+60*60*24*7, $cookieDir, '', ($conf['securecookie'] && is_ssl()));
 +     }
 +</code>
 +
plugin/favoris.1236156706.txt.gz · Last modified: 2009-10-06 09:56 (external edit)

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki