# # XML_node.objet # # This object is an XML node representation # # /- name (string) # xml_node --- attributes (array) # \- children (array) or value (string) class xml_node { public $name; public $attributes = array(); public $children = array(); public $value = ""; public function xml_node($name,$attributes,$children=array(),$value="") { $this->name = $name; if (is_array($attributes)) { $this->attributes = $attributes; } $this->children = $children; $this->value = $value; } } # # xml_tree class # # This object parses an XML stream and offers a tree composed by xml_nodes # class xml_tree { private $xml_stream; public $current_node; protected $root_node; private $index; private $value; public function xml_tree() { $this->root_node = new xml_node("__ROOT_NODE",array()); $this->current_node = $this->root_node; } public function add_tree($xml_stream) { # Managing the parser $this->xml_stream = $xml_stream; $xml_parser = xml_parser_create(); xml_parser_set_option($xml_parser,XML_OPTION_CASE_FOLDING,0); xml_parser_set_option($xml_parser,XML_OPTION_SKIP_WHITE,1); if (!xml_parse_into_struct($xml_parser,$this->xml_stream,$this->value,$this->index)) { xml_parser_free($xml_parser); die("XML Parse error"); } xml_parser_free($xml_parser); # Now, $this->value and $this->index are informed, we can use the get_node methode. $tab_result = $this->get_node(0,count($this->value) - 1); $this->root_node->children[] = $tab_result[0]; $this->current_node = $this->root_node; } protected function get_node($index_start,$index_stop) { #echo "
\n"; #echo "GET-NODE($index_start,$index_stop)
\n"; # What we are going to return is an array of xml_nodes $return_tab = array(); # depth is only here to check if everything is all right $tab_node = $this->value[$index_start]; $depth = $tab_node["level"]-1; # Now we have to be sure we do not forget a single node for ($index = $index_start;$index <= $index_stop;$index++) { #echo "\$index = $index
"; # get the current node $tab_node = $this->value[$index]; # what type of node is it ? switch($tab_node["type"]) { case "complete" : # Depth integrity check if ($tab_node["level"] != $depth+1) { die("ERREUR # contrainte d'intégrité au noeud complet $index, niveau $depth + 1 au lieu de ".$tab_node["level"]); } #echo "Noeud complet trouvé position $index TAG ".$tab_node["tag"]."
\n"; # Easy one, no children to manage, only a value... $return_tab[] = new xml_node($tab_node["tag"],$tab_node["attributes"],"",$tab_node["value"]); break; case "open" : # Depth integrity check if ($tab_node["level"] != $depth +1 ) { die("ERREUR # contrainte d'intégrité au noeud ouvert $index, niveau $depth au lieu de ".$tab_node["level"]); } # Open tag, we re-use this methode to return its children # Where is the correspondong close tag ? $node_index = $this->index[$tab_node["tag"]]; $flipped_node_index = array_flip($node_index); #echo "This ".$tab_node["tag"]." is at coords ".$flipped_node_index[$index]."
"; $i=1; do { $next_index = $node_index[$flipped_node_index[$index] + $i++]; $next_tag=$this->value[$next_index]; } while ($next_tag["level"]!=$tab_node["level"]); #echo "Ouverture de noeud détectée pos $index TAG ".$tab_node["tag"]."
\n   Parcours jusqu au $next_index
\n"; # good, we can now instanciate our node $return_tab[] = new xml_node($tab_node["tag"],$tab_node["attributes"],$this->get_node($index+1,$next_index),""); # As we called the get_node methode, we are sure that nodes have been parsed to the corresponding close tag $index = $next_index; break; case "close" : # Depth integrity check if ($tab_node["level"] != $depth ){ die("ERREUR # contrainte d'intégrité au noeud fermé $index, niveau $depth au lieu de ".$tab_node["level"]); } #echo "Fermeture de noeud detectée pos $index TAG ".$tab_node["tag"]."

\n"; # This ugly thing is useless because reaching a close tag means that $index==$index_stop but who knows ? =) # it will be skipped soon $index = $index_stop; break; default: die("Erreur de type de TAG non déterminé :'".$tab_node["type"]."'"); } } # We are out ... returns the array with collected children... return ($return_tab); } # this function browse the xml tree and set the current node to the selected node public function give_node($path) { if ($path[0]=="/") { $current_node=$this->root_node; $path=substr($path,1); #echo "ABSOLUTE PATH GIVEN=$path
"; } else { $current_node = $this->current_node; } #echo "PATH GIVEN=$path
"; $tab_path = split("/",$path); foreach ($tab_path as $node_expr) { #echo "STUDYING EXPR='$node_expr'
"; $node = $current_node; $expr_tab = split("\?",$node_expr); $node_name = $expr_tab[0]; $attr_tab = 0; if (count($expr_tab)>1) { ##echo "TROUVE AU MOINS UNE CONDITION SUR LES ATTRIBUTS...
"; $attr_expr_tab=split(",",$expr_tab[1]); $attr_tab=array(); foreach($attr_expr_tab as $attr_expr) { $attr_split_expr=split("=",$attr_expr); $attr_tab[$attr_split_expr[0]]=$attr_split_expr[1]; } } $last=0; foreach ($node->children as $children) { #echo "COMPARING WITH '$children->name'
"; if ($children->name == $node_name) { ##echo "TROUVE NOEUD CORRESPONDANT $node_name
"; if (is_array($attr_tab)) { $node_attributes = $children->attributes; foreach ($attr_tab as $key=>$value) { if ($node_attributes[$key] == $value) { #echo "ATTRIBUTE & CHANGE CURRENT NODE TO ".$children->name."
"; $current_node = $children; $last = 1; } } } else { ##echo "CHILD=".$children->name."
"; #echo "CHANGE CURRENT NODE TO ".$children->name."
"; $current_node = $children; $last=1; } } if ($last) { break; } } if (!$last) { #echo "PATH ERROR $node_name
"; #die("MMmmmh It seems that this file is not a DIA XML format...sorry..."); return 0; } } return $current_node; } public function browse_tree($path) { $node = $this->give_node($path); if (is_object($node)) { $this->current_node = $node; return 1; } return 0; } # this method dumps an html representation of the xml tree public function xml_show($node = "",$level=0,$last=0) { if ($node=="") { $node=$this->root_node; } if (!is_object($node)) { die("ERROR : node is not an object"); } $line=""; for($i=1;$i<=$level;$i++) { if ((i==$level-1) and ($last)) { $line.="      "; } else { $line.="     |"; } if ($i==$level) { $line.="`-"; } } $line.=$node->name; #echo $line; $line.="".count($node->children).""; if (count($node->children)==1) { $line.=" (".$node->value.")
\n"; echo "$line"; } else { $line.="
\n"; echo "$line"; $i=1; foreach($node->children as $children) { if ($i==count($node->children)) { $this->xml_show($children,$level+1,1); } else { $this->xml_show($children,$level+1); } $i++; } } } #END_CLASS } 10ème Festival européen de la photo de nu - Artefact Photographie
 

Outils

Delicious Sauvegarder sur Delicious

Facebook Partager sur Facebook

Digg Envoyer sur Digg

Technorati Ajouter Ă  Technorati

StumbleUpon Ajouter Ă  StumbleUpon

ActualitĂ©s Vous ĂŞtes ici :   Accueil   >   Actus   >   ActualitĂ©s

10ème Festival européen de la photo de nu

10/05/10 - 19:16 - Le FEPN fĂŞte ses 10 ans

Le festival européen de la photo de nu fête, en ce mois de mai, ses 10 ans. Il nous présente 24 visions d'artistes sur le thème du nu, dans 25 expositions, en couleur et noir et blanc. Le festival se déroule dans la ville emblématique de la photographie : Arles ; ainsi que dans la commune voisine : Les Baux-de-Provence. Pour ce 10ème anniversaire, Edouard de PAZZI sera l'invité d'honneur avec l'exposition de deux séries intitulées : "Anatomies" et "Vanités". Jacques Renoir quant à lui sera l'invité des Baux avec l'exposition de sa série : "Mise à nue". A noter l'exposition de Lili Renée, la lauréate du prix BMW sur le thème : "Séduction". Le festival européen de la photo de nu proposera également des stages sur la photographie de nu, des animations ainsi que des rencontres avec les artistes. Cette fête de l'image dédiée au corps se déroulera du 7 au 16 mai 2010.

Les rendez-vous immanquables du festival

  • Vernissage Arles

  • Vendredi 07 mai - 19h00 
Palais de l'Archevêché / Espace Van Gogh / Chapelle Sainte Anne

  • Vernissage les Baux de Provence

  • Samedi 08 mai - 19h00
 La Citerne / Ilot Post Tenebras Lux / Salles de Manville

  • Rencontres d'Artistes

  • Mercredi 12 mai - 19h00
 Galerie 8 - Rue de la Calade - Arles

  • La Soirée

  • Jeudi 13 mai -20h00
 Projection - Conférence sur la vie et les oeu vres d'Auguste Reno / 
Espace Baume - Val d'enfer - Les Baux de Provence

  • Rencontres d'Artistes

  • Vendredi 14 mai - 19H00 
Hôtel du Musée - rue Réattu - Arles

  • Tables Rondes et Nocturne

  • Samedi 15 mai - 19H00 
Hôtellerie de la Reine Jeanne - Les Baux de Provence

Les expositions

  • Arles - Palais de l’Archevêché - place de la République

  • Edouard de’Pazzi : " Anatomies " 
 
    Vincent Toulotte : " Douleurs et caresse des sens " 
 
    Thierry Valencin : " Les courbes de l’instant "
    Ricardo Figueira : " A la poursuite du désir "
    Lili Renée : " Séduction "

  • Arles - Espace Van Gogh - place Wilson

  • Collectif Luna-Cie : " Métamorphoses " 
 
    Greg Eleze : " Metamorphae, acte I et II " 
 
    Adeline Curioz : " A Flore de Peau " 
 
    Julie Lecomte 
 Clémence Nguyen Quy : " Distorsion " 
 
    Paul Von Borax : " Les Sauvages Blanches " 
 
    Takala & Thierry Magniez : " Itinéraire d’une femme libre " 

    Michel Choffray : " Belles de jour "

  • Arles - Chapelle Sainte-Anne - place de la République 
 

  • Gabriel Martinez : " Série Noire "
    Arles - Galerie de l’Hôtel du Musée - rue du Grand Prieuré
    Jean-Michel Goumy : " Le corps flouté en mouvement "
    Franck Musset : " Carré marocain "

  • Arles - Galerie de l’Hôtel de l’Amphithéatre- rue Diderot

  • Morgane Adawi : " Chimères Nocturnes "

  • Arles - Galerie Huit - rue de la Calade

  • Edouard de’Pazzi : " Vanités " 
 
    Elliot Landy : " Love at Sixty "

  • Les Baux de Provence - La Citerne - place de l’Eglise
  •  
    Jacques Renoir : " Mise à nue "

  • Les Baux de Provence - Salle de Manville - Rez de Chaussée de l’Hôtel de Ville
  •  
    Marc Lafon : " Tombées du ciel " 
 
    Panxua Zadilskoa : " Paysage Humain "

  • Les Baux de Provence - Ilôt Post Ténébras Lux - rue Grande 
 

  • Patrice Bouvier : " L’au delà de la peau " 
 
    Igor Gaidai : " Saman "

Les forfaits

Le tarif est de 5 euros pour voir toutes les expositions situées en Arles ou les Baux-de-Provence et 10 euros pour voir les expositions sur les deux sites. Entrée libre toutefois pour certaines expositions.

L'entrée est gratuite pour les Arlésiens, les Baussencs et les étudiants.

Plus d'infos sur le site du festival : fepn-arles.

 

Rédigée par Alex_B le 10/05/10 - 19:16

Source : FEPN Arles

Ecrire un commentaire Voir les commentaires

0 commentaires

Identification

Publicité