Lors des expériences, il est apparut qu’il était assez facile de diffuser des programmes, dans notre cas des pages web en php, comme des objets à part entière.
Il faut deux choses.
La première c’est qu’il faut une page web de bootstrap (marche pied). C’est cette page qui va déterminer si il existe une page à afficher dans les objets, et la lancer. La page en question doit être un dérivé (lien F) de l’objet « nebule/objet/entite/webaccess/firstofall », et être de mime-type « application/x-php ».
Et il faut que le programme en question puisse se mettre à jour. Ce peut être fait en suivant les liens de mise à jour d’objet (lien U) du programme en question. On peut aussi suivre les nouveaux liens de l’objet « nebule/objet/entite/webaccess/firstofall » d’une autre entité. Ne reste plus qu’à téléchager le nouvel objet et mettre à jour sont propre objet « nebule/objet/entite/webaccess/firstofall ».
Exemple de page de bootstrap, la page index.php des entités :
<? /* Bootstrap page web sur nebule Licence GNU GPL Projet nebule - www.nebule.org - Stephane DENDIEVEL */ $hashmimetype = hash("sha256", "mime-type"); $hashphptype = hash("sha256", "application/x-php"); $hashfirstdesc = hash("sha256", "nebule/objet/entite/webaccess/firstofall"); $hashfirst = ""; if (file_exists("$hashfirstdesc/l")) { $lines = file("$hashfirstdesc/l"); Â foreach ( $lines as $line_num => $line ) Â { $i = 1; Â Â Â $count = substr_count(rtrim($line), "-"); Â Â Â $loopelem = strtok(rtrim($line), "-"); Â Â Â while ($loopelem !== false) Â Â Â { if ( $i == 5 ) { $hashsrc = $loopelem; } Â Â Â Â Â if ( $i == 6 ) { $hashdst = $loopelem; } Â Â Â Â Â $i += 1; Â Â Â Â Â $loopelem = strtok("-"); Â Â Â } Â Â Â if (file_exists("$hashdst/l")) Â Â Â { $lines2 = file("$hashdst/l"); Â Â Â Â Â foreach ( $lines2 as $line_num2 => $line2 ) Â Â Â Â Â { $j = 1; Â Â Â Â Â Â Â $count2 = substr_count(rtrim($line2), "-"); Â Â Â Â Â Â Â $loopelem2 = strtok(rtrim($line2), "-"); Â Â Â Â Â Â Â while ($loopelem2 !== false) Â Â Â Â Â Â Â { if ( $j == 5 ) { $hashcsrc = $loopelem2; } Â Â Â Â Â Â Â Â Â if ( $j == 6 ) { $hashcdst = $loopelem2; } Â Â Â Â Â Â Â Â Â if ( $j == 7 ) { $hashcmet = $loopelem2; } Â Â Â Â Â Â Â Â Â $j += 1; Â Â Â Â Â Â Â Â Â $loopelem2 = strtok("-"); Â Â Â Â Â Â Â } Â Â Â Â Â Â Â if ( ( $hashsrc == $hashfirstdesc ) && ( $hashdst != "" ) && ( $hashcdst == $hashphptype )Â && ( $hashcmet == $hashmimetype ) ) { $hashfirst = $hashdst; Â } Â Â Â Â Â } Â Â Â } Â } } if ( $hashfirst != "" && file_exists("$hashfirst/o") ) { include("$hashfirst/o"); } else { ?> <html> Â <head> Â <meta http-equiv="content-type" content="text/html; charset=utf-8" /> Â <title>nebule</title> Â </head> Â <body bgcolor="#454545" text="#ababab" style="font: normal 15px monospace;"> Â <center> Â <br /><br /><br /> Â <img src="nebule_256_ababab.png" alt="nebule" border=0 /> Â <br /><br /> Â | nebule | Â <br /><br /> Â <img src="CC_BY-SA.png" alt="(CC) BY-SA" border=0 /><br /> Â <font size=1>nebule.org 2012</font> Â </center> Â </body> </html> <? } ?>