Subversion Repositories Applications.wikini

Rev

Rev 64 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 64 Rev 67
Line 35... Line 35...
35
		$this->wiki = Registre::get('wikiApi');
35
		$this->wiki = Registre::get('wikiApi');
36
		$requete = 'SELECT * FROM '.$this->wiki->GetConfigValue('table_prefix').'pages WHERE latest = "Y" '.
36
		$requete = 'SELECT * FROM '.$this->wiki->GetConfigValue('table_prefix').'pages WHERE latest = "Y" '.
37
				'AND tag = "AccesProjet" ';
37
				'AND tag = "AccesProjet" ';
Line 38... Line 38...
38
				
38
				
39
		$page_sentiers = $this->wiki->LoadSingle($requete);
-
 
-
 
39
		$page_sentiers = $this->wiki->LoadSingle($requete);
-
 
40
		// Attention les wiki sont en iso Argh%#[{!?
-
 
41
		// Il faut convertir car sinon certains sentiers ne matcheront pas à leur propriétaire
40
		
42
		$page_sentiers['body'] = mb_convert_encoding($page_sentiers['body'], Config::get('encodage_appli'), Config::get('encodage_wiki'));
-
 
43
		preg_match_all("|\[\[([^\]\]]*)\]\]|", $page_sentiers['body'], $sentiers, PREG_PATTERN_ORDER);
-
 
44
		
41
		preg_match_all("|\[\[([^\]\]]*)\]\]|", $page_sentiers['body'], $sentiers, PREG_PATTERN_ORDER);
45
		// Seule une partie du tableau contenant les noms des sentiers nous interesse
Line 42... Line 46...
42
		$sentiers = $sentiers[1];
46
		$sentiers = $sentiers[1];
Line 43... Line -...
43
		
-
 
44
		echo "Nombre de sentiers à migrer : ".count($sentiers)."\n";
47
		
45
		
-
 
Line 46... Line 48...
46
		$sentiers_a_inserer = array();
48
		echo "Nombre de sentiers à migrer : ".count($sentiers)."\n";
47
		$valeurs_sentiers_a_inserer = array();
49
		
48
		$fiches_a_associer = array();
50
		$valeurs_sentiers_a_inserer = array();
Line 49... Line 51...
49
		
51
		
50
		$proprietaires_sentiers = array();
52
		$proprietaires_sentiers = array();
51
		// Chargement du fichier contenant les propriétaires à associer aux sentiers
53
		// Chargement du fichier contenant les propriétaires à associer aux sentiers
-
 
54
		$fichier = file(realpath(dirname(__FILE__)).'/proprietaires_sentiers.csv');
52
		$fichier = file(realpath(dirname(__FILE__)).'proprietaires_sentiers.csv');
55
		
53
		
56
		foreach ($fichier as $ligne) {
54
		foreach ($fichier as $ligne) {
57
			$data = str_getcsv($ligne);
Line 55... Line 58...
55
			$data = str_getcsv($ligne);
58
			if($data[2] != "") {
-
 
59
				// on associe un titre de sentier à un email (la clé est le titre de sentier)
56
			if($data[2] != "") {
60
				$proprietaires_sentiers[trim($data[0])] = trim($data[2]);
57
				$proprietaires_sentiers[trim($data[0])] = trim($data[2]);
-
 
58
			}		
61
			}		
Line 59... Line 62...
59
		}
62
		}
Line 60... Line 63...
60
		
63
		
Line 77... Line 80...
77
		$requete_insertion = 'INSERT INTO '.$this->wiki->GetConfigValue('table_prefix').'triples '.
80
		$requete_insertion = 'INSERT INTO '.$this->wiki->GetConfigValue('table_prefix').'triples '.
78
					'(resource, property, value) VALUES ';
81
					'(resource, property, value) VALUES ';
Line 79... Line 82...
79
		
82
		
Line 80... Line 83...
80
		foreach($sentiers as $sentier) {
83
		foreach($sentiers as $sentier) {
-
 
84
			
-
 
85
			list($tag, $titre) = explode(' ', $sentier, 2);
Line 81... Line 86...
81
			
86
			// Reconversion dans l'encodage du wiki pour l'insertion
82
			list($tag, $titre) = explode(' ', $sentier, 2);
87
			$titre_encode_wiki = mb_convert_encoding($titre, Config::get('encodage_wiki'), Config::get('encodage_appli'));
Line 83... Line 88...
83
			
88
			
84
			$requete = 'SELECT * FROM '.$this->wiki->GetConfigValue('table_prefix').'pages WHERE latest = "Y" '.
89
			$requete = 'SELECT * FROM '.$this->wiki->GetConfigValue('table_prefix').'pages WHERE latest = "Y" '.
85
					'AND tag = "'.$tag.'" ';
-
 
86
			
90
					'AND tag = "'.$tag.'" ';
-
 
91
			
Line 87... Line -...
87
			$infos_sentier = $this->wiki->LoadSingle($requete);
-
 
88
			
-
 
89
			$titre = trim($titre);
92
			$infos_sentier = $this->wiki->LoadSingle($requete);
90
			$proprietaire = !empty($infos_proprietaires_a_sentier[$titre]) ? $infos_proprietaires_a_sentier[$titre] : "AssociationTelaBotanica";
-
 
91
			
-
 
92
			$sentiers_a_inserer[] = array(
-
 
93
										'resource' => $titre,
93
		
94
										'property' => 'smartFlore.sentiers',
-
 
95
										'value' => $proprietaire
94
			$proprietaire = !empty($infos_proprietaires_a_sentier[$titre]) ? $infos_proprietaires_a_sentier[$titre] : "AssociationTelaBotanica";
Line 96... Line 95...
96
									);
95
			$valeurs_sentiers_a_inserer[] = "('".addslashes(trim($titre_encode_wiki))."', 'smartFlore.sentiers', '".$proprietaire."')";
97
			
96
			
98
			$valeurs_sentiers_a_inserer[] = "('".addslashes(trim($titre))."', 'smartFlore.sentiers', '".$proprietaire."')";
-
 
99
			
-
 
100
			preg_match_all("|\[\[(SmartFlore[^(?:nt)]*nt[0-9]*)|", $infos_sentier['body'], $fiches_du_sentier, PREG_PATTERN_ORDER);
-
 
101
			
-
 
102
			if(!empty($fiches_du_sentier[0])) {
-
 
103
				foreach($fiches_du_sentier[1] as $fiche_du_sentier) {
-
 
104
					$fiches_a_associer[] = array(
97
			// Recherche de toutes les fiches contenues dans le sentier (normalement sous forme de liens vers des fiches de type 
105
							'resource' => $fiche_du_sentier,
98
			// SmartFloreYYYntZZZ où YYY est un code de référentiel et ZZZ un numéro taxonomique)
106
							'property' => 'smartFlore.sentiers.fiche',
99
			preg_match_all("|\[\[(SmartFlore[^(?:nt)]*nt[0-9]*)|", $infos_sentier['body'], $fiches_du_sentier, PREG_PATTERN_ORDER);
107
							'value' => $titre
100
			
Line 108... Line 101...
108
					);
101
			if(!empty($fiches_du_sentier[0])) {