code snipset de la V1 | |
GreG | 24-Apr-2006/20:32:30+2:00 |
De: Philippe Objet: Support au developpement de ce forum Greg, Pour mémoriser le user, tu peux peux être utiliser les fonctions de gestion des cookies qui sont dans Magic!, dont le code est ci-dessous, à adapter. setcookie: function [ name value /expire datefin /path chemin /domain domaine /secure ] [ c str ] [ str: make string! "" value: to-string value forall value [ append str either find m-table first value [ first value ] [ rejoin [ "%" to-string skip tail (to-hex to-integer first value) -2 ] ] ] c: copy join "Set-Cookie:" [ name "=" str ";" ] if expire [ c: join c [ "expires=" datefin ";" ] ] if path [ c: join c [ "path=" chemin ";" ] ] if domain [ c: join c [ "domain=" domaine ";" ] ] if secure [ c: join c [ " secure" ] ] append m-header/http-options (join c "^/") ] getcookie: function [ name ] [ data ] [ if error? try [ data: parse (select system/options/cgi/other-headers "HTTP_COOKIE") "=;" return dehex select data name ] [ return none ] ] De: reboltof Objet: Snipset pour activer les liens web? Un petit hack rapide, permettant de convertir les url (commencant par "http://") en liens cliquables: rebol [] msg: {Je pense qu'il serait bien d'avoir un bout de code a inserer dans ce forum afin d'afficher les URL web en tant que lien. Par exemple: www.digicamsoft.com/cgi-bin/bbimap.cgi http://www.digicamsoft.com/cgi-bin/bbimap.cgi devraient s'afficher en lien HTML clickables. http://developer.mozilla.org/en/docs/XULRunner Avis aux volontaires!} space: make bitset! #{ 0026000001000000000000000000000000000000000000000000000000000000 } sp?: [any space] msg2: copy msg ;<= nécessaire pour éviter les références circulaire dues à l'utilisation de 'change parse msg2 [ any [ to "http://" copy url [to #"^/" | to sp?] (change/part find msg url rejoin [{<a href="} url {">} url {</a>}] length? url) ] to end ] probe msg ; == {Je pense qu'il serait bien d'avoir un bout de code a inserer dans ce forum afin d'afficher les URL web en tant que lien. ; Par exemple: ; www.digicamsoft.com/cgi-bin/bbimap.cgi ; ; <a href="http://www.digicamsoft.com/cgi-bin/bbimap.cgi">http://www.digicamsoft.com/cgi-bin/bbimap.cgi</a> ; ; devraient s'afficher en lien HTML clickables. ; ; <a href="http://developer.mozilla.org/en/docs/XULRunner">http://developer.mozilla.org/en/docs/XULRunner</a> ; ; Avis aux volontaires!} ask "" De: Philippe Objet: TODO List Dans la partie show-threads du code, la boucle sur les threads (mais idem sur reply), mettre un pick pour alterner les lignes : loc-style: "_ligne1" ; <<<PLG foreach a t [ email: import-email pick mb first a i: enbase form a j: length? to-block form a loc-style: pick ["_ligne1" "_ligne2"] equal? loc-style "_ligne2" ; <<<PLG ;print build-markup {<a class=<%loc-style%> href="bbimap.cgi?msg=<%i%>"><%email/subject%></a><i> (<%j%>)</i><br>} print build-markup {<tr><td class=<%loc-style%><a class="post_sujet" href="bbimap.cgi?msg=<%i%>"><%email/subject%></a><i> (<%j%>)</i></td><td align=right class="ligne2"> last from <%email/user%> at <%email/date%></td></tr>} ; <<<PLG ] close mb -------------------------------- en fait il faut introduire des tables ! voir modéle plus loin. ------------------------------------- et dans la déclaration du style, rajouter les lignes : .ligne1 {padding-left: 10px; padding-right: 7px; margin-left: 15px; background-color:#4E6DA4; color: white; font-family: verdana, arial, sans-serif, helvetica; } .ligne2 {padding-left: 10px; padding-right: 7px; margin-left: 15px; background-color:#519FFF; color: white} .post_sujet {text-decoration: none; color:#FFFFFF; font-size:90%; font-weight: bold;} --------------------------------------------- modifier aussi l'affichage des threads / à la page principale : voir exemple rapide sur http://pl.legoff.free.fr/tmp/bbimap2.html ===Philippe De: Philippe Objet: TODO List pour la fonction de recherche, voici le code de celle utilisée dans le blog de Carl (un rank est augmenté de 4 points si le mot cherché est dans le titre, et de 1 sinon). find-blog: func [blog strs /local rank text][ ; Ranks blog contents during a search: rank: 0 foreach str strs [ if find/any blog/title str [rank: rank + 4] text: blog/text while [text: find/any/tail text str] [rank: rank + 1] ] rank ] et ici la fonction qui charge depuis le répertoire blog-dir les fichiers correspondants à chaque blog, puis sur la liste, fait une boucle de recherche : show-search: func [text /local rank list blog] [ ; Show the results of a blog search, listed by search-hit rank: text: parse text none list: copy [] foreach file load blog-dir [ if blog: load-blog file [ rank: find-blog blog text if rank > 0 [repend list [rank blog]] ] ] sort/reverse/skip list 2 emit ["The search found " (length? list) / 2 " blogs:<p><blockquote>"] foreach [rank blog] list [emit [blog-line blog <br>]] emit </blockquote> show-page title/search-page ] ===Philippe | |
Login required to Post. |