<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://berniebernie.fr/mediawiki-1.37.1/index.php?action=history&amp;feed=atom&amp;title=PourSamy</id>
	<title>PourSamy - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://berniebernie.fr/mediawiki-1.37.1/index.php?action=history&amp;feed=atom&amp;title=PourSamy"/>
	<link rel="alternate" type="text/html" href="https://berniebernie.fr/mediawiki-1.37.1/index.php?title=PourSamy&amp;action=history"/>
	<updated>2026-04-29T18:21:05Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://berniebernie.fr/mediawiki-1.37.1/index.php?title=PourSamy&amp;diff=26&amp;oldid=prev</id>
		<title>Bernie: Created page with &quot;&lt;pre&gt; { function myScript(thisObj) {           function myScript_buildUI(thisObj) {                     var myPanel = (thisObj instanceof Panel) ? thisObj : new Window(&quot;palett...&quot;</title>
		<link rel="alternate" type="text/html" href="https://berniebernie.fr/mediawiki-1.37.1/index.php?title=PourSamy&amp;diff=26&amp;oldid=prev"/>
		<updated>2015-05-27T14:45:45Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;lt;pre&amp;gt; { function myScript(thisObj) {           function myScript_buildUI(thisObj) {                     var myPanel = (thisObj instanceof Panel) ? thisObj : new Window(&amp;quot;palett...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
function myScript(thisObj) {&lt;br /&gt;
          function myScript_buildUI(thisObj) {&lt;br /&gt;
                    var myPanel = (thisObj instanceof Panel) ? thisObj : new Window(&amp;quot;palette&amp;quot;, &amp;quot;My Panel Name&amp;quot;, [0, 0, 300, 300]);&lt;br /&gt;
 &lt;br /&gt;
                    res=&amp;quot;group{orientation:&amp;#039;column&amp;#039;, alignment:[&amp;#039;fill&amp;#039;, &amp;#039;fill&amp;#039;], alignChildren:[&amp;#039;fill&amp;#039;, &amp;#039;fill&amp;#039;],\&lt;br /&gt;
                              myButton: Button {text:&amp;#039;Button Name&amp;#039;},\&lt;br /&gt;
                    }&amp;quot;&lt;br /&gt;
                    //Add resource string to panel&lt;br /&gt;
                    myPanel.grp = myPanel.add(res); &lt;br /&gt;
                    //Setup panel sizing and make panel resizable&lt;br /&gt;
                    myPanel.layout.layout(true); &lt;br /&gt;
                    return myPanel;&lt;br /&gt;
          }&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
          var myScriptPal = myScript_buildUI(thisObj);&lt;br /&gt;
            &lt;br /&gt;
 &lt;br /&gt;
          if ((myScriptPal != null) &amp;amp;&amp;amp; (myScriptPal instanceof Window)) {&lt;br /&gt;
                    myScriptPal.center();&lt;br /&gt;
                    myScriptPal.show();&lt;br /&gt;
                                            &lt;br /&gt;
                    button = myScriptPal.children[0].children[0];&lt;br /&gt;
                        button.myParam = &amp;#039;test&amp;#039;;&lt;br /&gt;
                        function teste(e) {&lt;br /&gt;
                            alert(e); // return the event &amp;quot;onMouseClick&amp;quot;&lt;br /&gt;
                            alert(e.target); // return the button object&lt;br /&gt;
                            alert(e.target.myParam); // return myParam&lt;br /&gt;
                            };&lt;br /&gt;
                    //    button.addEventListener (&amp;#039;click&amp;#039;, teste, false);&lt;br /&gt;
                        button.addEventListener (&amp;#039;click&amp;#039;, &amp;quot;addBtn(\&amp;quot;t\&amp;quot;)&amp;quot;, false);&lt;br /&gt;
                    }&lt;br /&gt;
          }&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
          myScript(this);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function addBtn(pan){&lt;br /&gt;
    alert(&amp;quot;plop &amp;quot;+pan);&lt;br /&gt;
    //code to add button&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import os, os.path&lt;br /&gt;
filePath = r&amp;#039;C:/Program Files/Windows NT&amp;#039;&lt;br /&gt;
&lt;br /&gt;
for dirname, dirnames, filenames in os.walk(filePath):&lt;br /&gt;
    print()&lt;br /&gt;
    if not &amp;#039;Accessories&amp;#039; in dirname :&lt;br /&gt;
        print(dirname + &amp;quot;:&amp;quot;)&lt;br /&gt;
        for filename in filenames:&lt;br /&gt;
            print(os.path.join(dirname, filename))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour ton truc de GB voici des tips&lt;br /&gt;
&lt;br /&gt;
Au départ y a:&lt;br /&gt;
Un script python qui lit un dossier (et tt les sous dossiers) pour rechercher certains fichiers, ici les png+jpg&lt;br /&gt;
tel que c&amp;#039;est écrit il se lance qu&amp;#039;une fois et cherche que dans le dossier (et sous dossiers) donné mais check un peu le python c facile a changer&lt;br /&gt;
&lt;br /&gt;
Le truc c&amp;#039;est qu&amp;#039;il met les infos dans un fichier texte qui sera ouvert plus tard par le PHP (en php tu peux faire tt ça mais c crado) j&amp;#039;explique en dessous certains trucs comme le md5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Là je l&amp;#039;ai testé dans maya mais faut surment que t&amp;#039;installe python sur la machine qui va servir de serveur&lt;br /&gt;
==Python==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import os, os.path, shutil, hashlib&lt;br /&gt;
&lt;br /&gt;
dbName = r&amp;#039;text.txt&amp;#039;&lt;br /&gt;
filePath = r&amp;#039;c:/&amp;#039;&lt;br /&gt;
&lt;br /&gt;
def md5Checksum(filePath):&lt;br /&gt;
    fh = open(filePath, &amp;#039;rb&amp;#039;)&lt;br /&gt;
    m = hashlib.md5()&lt;br /&gt;
    while True:&lt;br /&gt;
        data = fh.read(8192)&lt;br /&gt;
        if not data:&lt;br /&gt;
            break&lt;br /&gt;
        m.update(data)&lt;br /&gt;
    return m.hexdigest()&lt;br /&gt;
&lt;br /&gt;
def listImgs(dir):&lt;br /&gt;
    tmpFile = filePath+&amp;quot;temp&amp;quot;+dbName;&lt;br /&gt;
    dbFile = filePath+dbName;&lt;br /&gt;
    fh = open(tmpFile,&amp;#039;w+&amp;#039;)&lt;br /&gt;
    for root, dirs, files in os.walk(dir):&lt;br /&gt;
        for f in files:&lt;br /&gt;
            fullpath = os.path.join(root, f)&lt;br /&gt;
            if f.lower().endswith((&amp;#039;.png&amp;#039;, &amp;#039;.jpg&amp;#039;, &amp;#039;.jpeg&amp;#039;)):&lt;br /&gt;
                size = os.path.getsize(fullpath)&lt;br /&gt;
                time = os.path.getmtime(fullpath)&lt;br /&gt;
                md5 = md5Checksum(fullpath)&lt;br /&gt;
                info = str(fullpath+&amp;quot;?&amp;quot;+str(size)+&amp;quot;?&amp;quot;+str(time)+&amp;quot;?&amp;quot;+md5+&amp;quot;\r\n&amp;quot;) #j&amp;#039;utilise ? pour séparer les morceaux d&amp;#039;info, on le splittera plus tard&lt;br /&gt;
                #print(info)&lt;br /&gt;
                fh.write(info)&lt;br /&gt;
    fh.close()&lt;br /&gt;
    shutil.copyfile(tmpFile,dbFile)&lt;br /&gt;
            &lt;br /&gt;
listImgs(&amp;quot;D:\EtudeDeForme&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ça donne par exemple:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
D:\EtudeDeForme\3d\out\fun14b_02\fun14b_02.0121.png?1041103?1327709147.17?26e3e47759b950ddb7b61afc4cf38bbd&lt;br /&gt;
D:\EtudeDeForme\3d\out\fun14b_02\fun14b_02.0131.png?128?1327710832.05?64acdfb42083a54cd04997557df479e8&lt;br /&gt;
D:\EtudeDeForme\3d\renderData\mentalray\A0.png?4099680?1322526954.36?ab90dd8dff3e7e1e0566b273d9991798&lt;br /&gt;
D:\EtudeDeForme\3d\renderData\mentalray\fun7 01.png?396476?1326169429.13?b8b7757a8b1b98dc00000a874043ed65&lt;br /&gt;
D:\EtudeDeForme\3d\renderData\mentalray\fun7 02.png?439814?1326170169.12?0aa8f05ab89f64750d63ccd2f2e55886&lt;br /&gt;
D:\EtudeDeForme\3d\renderData\mentalray\fun7 03.png?522801?1326170950.91?9da7366d658f43aaf7d00b9b3ac5d08f&lt;br /&gt;
D:\EtudeDeForme\3d\sourceimages\ConcreteNew0028_3_L.jpg?2731840?1326998320.06?bbda4fd269d08ecb72308ecf39751bc1&lt;br /&gt;
D:\EtudeDeForme\3d\sourceimages\ConcreteNew0033_10_L.jpg?3947321?1326998037.02?ffdee3b6039402f2cdfa86332b4adff9&lt;br /&gt;
D:\EtudeDeForme\3d\sourceimages\ConcreteNew0033_1_L.jpg?2088043?1326998324.62?7557848f75e604b6d48cd4dfa990cae3&lt;br /&gt;
D:\EtudeDeForme\3d\sourceimages\ConcreteNew0033_9_L.jpg?1451078?1326998318.01?6fe4f5735bc581ac0ef77387e6d58bb7&lt;br /&gt;
D:\EtudeDeForme\3d\sourceimages\ConcretePlates0003_5_L.jpg?1154237?1327200068.28?896d73b9561002f98a4c9e99d2f8723e&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Donc (1) le chemin (2) la taille en bytes (3) la date de dernière modif -- c un [http://en.wikipedia.org/wiki/Unix_time format spécial] ms bcp utilisé en programmation (4) le [http://fr.wikipedia.org/wiki/Somme_de_contr%C3%B4le checksum] qui permet de vérifier si deux images sont similaires mm si elles ont des noms différents (dans le script python c la fonction &amp;#039;md5Checksum&amp;#039; je l&amp;#039;ai copy paste du net mais ça marche)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tu pourrais rajouter d&amp;#039;autres trucs avec python, et même faire ton système de &amp;#039;logique&amp;#039; (qui check si ya des doublons ici) mais je préfère tout mettre dans une base de donné et le faire après, et pis je connais pas super bien le python&lt;br /&gt;
&lt;br /&gt;
Reste qu&amp;#039;il faut faire en sorte que le script python &amp;#039;boucle&amp;#039;, je pense tu peux rajouter un wait et une loop, à voir, c pas difficile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Php/Mysql==&lt;br /&gt;
Faut que t&amp;#039;installe sur une machine qui sera (de préférence) jamais éteinte un serveur Apache+une DB MySQL, moi j&amp;#039;utilise [http://www.apachefriends.org/fr/xampp-windows.html Xampp] ça marche nickel ya tt dedans.&lt;br /&gt;
PHP et Mysql c deux language différents et c bcp plus tordu que le javascript ou le python mais ya patate de code sur le net donc c facile.&lt;br /&gt;
&lt;br /&gt;
Le truc cool c que des que tu l&amp;#039;as installé et lancé tu peux aller voir localement sur http://localhost ou http://127.0.0.1 et t&amp;#039;as ton serveur web qui tourne! Pour que les autres le voit ils faut qu&amp;#039;ils tapent l&amp;#039;ip:port de la machine sur le réseau. &lt;br /&gt;
&lt;br /&gt;
Sur des windows tu peux éditer/copier sur chaque machine du réseau le fichier HOST &amp;#039;&amp;#039;&amp;#039;C:\Windows\System32\drivers\etc\host&amp;#039;&amp;#039;&amp;#039; pour que quand tu tape &amp;#039;intranet&amp;#039; dans un browser ça dirige sur la machine qui à le serveur, c ce que je faisait à sup.&lt;br /&gt;
&lt;br /&gt;
ça doit ressembler à ça&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
127.0.0.1 localhost&lt;br /&gt;
#&lt;br /&gt;
# plus de trucs si t&amp;#039;as craqué un toshop récemment!&lt;br /&gt;
192.168.0.XX:80 intranet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A moins de configurer bien votre réseau c&amp;#039;est impossible pour qlqun en dehors du réseau de voir l&amp;#039;intranet, et ç&amp;#039;est bien le but.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Php===&lt;br /&gt;
Le php c&amp;#039;est un language qui est interprété par Apache et il recrache du html, mais il peut faire plein de truc. Si tu regarde dans ton installe de xampp/htdocs tu vera index.php c&amp;#039;est le fichier qui est lu par défaut quand tu tape http://localhost ou 127.0.0.1. Si tu l&amp;#039;ouvres tu vera que le contenu à rien à voir avec ce que tu vois qd tu va sur la page, et c&amp;#039;est normal. Je te laisse regarder genre [http://www.siteduzero.com/tutoriel-3-14668-concevez-votre-site-web-avec-php-et-mysql.html le site du zéro PHP+Mysql] pour te familiariser avec le schmilblick mais tu verra en général c&amp;#039;est tjrs comme ça:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
//entre deux bornes tu met ce que tu veux&lt;br /&gt;
$johny = 120;&lt;br /&gt;
echo &amp;quot;&amp;lt;b&amp;gt;prout&amp;quot;.($johny/2).&amp;quot;!&amp;lt;/b&amp;gt;&amp;quot;;&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Tu peux rajouter du html dans la page en dehors des bornes&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
//et remettrte du php&lt;br /&gt;
for($i=0;$i&amp;lt;=20;$i++){&lt;br /&gt;
    echo &amp;quot;OK?&amp;quot;.$i.&amp;quot;&amp;lt;br/&amp;gt;&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ça donne ça:&lt;br /&gt;
&lt;br /&gt;
http://i.imgur.com/7O632.gif&lt;br /&gt;
&lt;br /&gt;
===Mysql===&lt;br /&gt;
C&amp;#039;est là ou on va ranger l&amp;#039;info que le python à pécho. Pour visualiser les tables à la main faut que tu cherche phpMyAdmin (ds le panneau de config &amp;#039;Admin&amp;#039; ou la page d&amp;#039;acceuil de 127.0.0.1 dans la barre de gauche)&lt;br /&gt;
&lt;br /&gt;
Dans l&amp;#039;installation par défaut t&amp;#039;as déja des &amp;#039;databases&amp;#039;, et dedans des tables, et dedans des lignes et des colonnes. C excel en moins utilisable mais surpuissant. NOrmalment t&amp;#039;as le choix de créer une nouvelle database, je l&amp;#039;ai appelé &amp;#039;gb_db&amp;#039; et je l&amp;#039;ai mis en &amp;#039;&amp;#039;&amp;#039;latin1_general_ci&amp;#039;&amp;#039;&amp;#039; c pas super important mais ca vaut mieux pr les accents.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans cette DB j&amp;#039;ai crée un table bidon qui s&amp;#039;appel gb_images, et je pense que tu fera toi même une table quand t&amp;#039;auras bien compris le truc et tu pourra mettre ce que tu veux dedans. J&amp;#039;ai mis 8 &amp;#039;colonnes&amp;#039; pour chaque image, et elles ont chacun des format spéciaux, pour optimiser la vitesse (à ton echelle c pas important mais bon). Check le screenshot:&lt;br /&gt;
&lt;br /&gt;
http://i.imgur.com/PqgZ0.gif&lt;br /&gt;
&lt;br /&gt;
En gros je vais crée pour chaque image des attributs (son nom, son chemin, sa date -- &amp;#039;uid&amp;#039; c une colonne que j&amp;#039;appel unique id c&amp;#039;est un peu le truc par défaut que t&amp;#039;es obligé de faire pour que chaque ligne se différencie). Lis [http://www.destrucsaweb.com/ressources/phpmyannu/goto_71.php cet article] pour en savoir plus. Là normalement ya de la place pour les commentaire, juste le bon nombre de caractère pour le md5 etc... Ici t&amp;#039;aurais pu rajouter une colonne pour le num d&amp;#039;épisode/saison/plan mais bon tant pis je l&amp;#039;ai pas fait (sinon c aussi con que rajouter une colonne &amp;#039;season&amp;#039; avec un &amp;#039;int&amp;#039; à 1 (ou 2 si yaura plus de 9 saisons =) ) et &amp;#039;episodes&amp;#039; avec un &amp;#039;int&amp;#039; a 2 (parcque ya pas plus que 99 episodes) et &amp;#039;shot&amp;#039; avec un varchar à genre 10 - 10 caractères - pq c possible d&amp;#039;avoir des shots bis/ter etc et que tu peux pas prévoir)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Anyhow prend une pause parceque je pense que c&amp;#039;est un peu du brainfuck le mysql mais c con en fait. Là on a fini de rentrer dans le mysql normalement t&amp;#039;as plus besoin de réouvir phpMyAdmin (mais tu le fait qd même pr voir les données)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sample Code==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
mysql_connect(&amp;quot;localhost&amp;quot;, &amp;quot;root&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
mysql_select_db(&amp;quot;cdcol&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
if((isset($_GET[&amp;#039;name&amp;#039;]) &amp;amp;&amp;amp; $_GET[&amp;#039;name&amp;#039;]!=&amp;quot;&amp;quot;) &amp;amp;&amp;amp; (isset($_GET[&amp;#039;title&amp;#039;]) &amp;amp;&amp;amp; $_GET[&amp;#039;title&amp;#039;]!=&amp;quot;&amp;quot;)){&lt;br /&gt;
	$name = $_GET[&amp;#039;name&amp;#039;];&lt;br /&gt;
	$title = $_GET[&amp;#039;title&amp;#039;];&lt;br /&gt;
	echo &amp;quot;Ajout de: &amp;quot;.$name.&amp;quot; &amp;quot;.$title.&amp;quot;&amp;lt;hr&amp;gt;&amp;quot;;&lt;br /&gt;
	$query = &amp;quot;INSERT INTO `cdcol`.`cds` (`titel`, `interpret`, `jahr`, `id`) VALUES (&amp;#039;&amp;quot;.$name.&amp;quot;&amp;#039;, &amp;#039;&amp;quot;.$title.&amp;quot;&amp;#039;, &amp;#039;2012&amp;#039;, NULL)&amp;quot;;&lt;br /&gt;
	$result=mysql_query($query) or die(mysql_error());;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$query = &amp;quot;SELECT * FROM `cds`&amp;quot;;&lt;br /&gt;
$result=mysql_query($query);&lt;br /&gt;
while ($row = mysql_fetch_array($result)) {&lt;br /&gt;
	echo $row[&amp;#039;interpret&amp;#039;].&amp;quot; - &amp;quot;.$row[&amp;#039;titel&amp;#039;].&amp;quot; - &amp;quot;.$row[&amp;#039;jahr&amp;#039;].&amp;quot;&amp;lt;br/&amp;gt;&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;form method=&amp;quot;get&amp;quot; action=&amp;quot;&amp;lt;?php echo $_SERVER[&amp;#039;PHP_SELF&amp;#039;] ?&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
Nom:&amp;lt;input type=&amp;quot;textarea&amp;quot; name=&amp;quot;name&amp;quot;&amp;gt;&lt;br /&gt;
Titre:&amp;lt;input type=&amp;quot;textarea&amp;quot; name=&amp;quot;title&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Ajouter&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
...to be continued...&lt;/div&gt;</summary>
		<author><name>Bernie</name></author>
	</entry>
</feed>