code snipset de la V1
GreG24-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.


Powered by RebelBB and REBOL 2.7.8.4.2