Changeset 49313 in spip-zone
- Timestamp:
- Jul 4, 2011, 12:10:13 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
_core_/plugins/urls_etendues/urls/arbo.php
r45405 r49313 410 410 411 411 if (strlen($url_propre) AND !preg_match(',^[^/]*[.]php,',$url_propre)){ 412 $ types_parents = array();412 $parents_vus = array(); 413 413 414 414 // recuperer tous les objets de larbo xxx/article/yyy/mot/zzzz 415 // on parcourt les segments de gauche a droite 416 // pour pouvoir contextualiser un segment par son parent 415 417 $url_arbo = explode('/',$url_propre); 416 418 while (count($url_arbo)>0){ 417 $url_propre = array_pop($url_arbo); 418 if (count($url_arbo)) 419 $type = array_pop($url_arbo); 420 else 421 $type=null; 419 $type=null; 420 if (count($url_arbo)>1) 421 $type = array_shift($url_arbo); 422 $url_propre = array_shift($url_arbo); 422 423 // Compatibilite avec les anciens marqueurs d'URL propres 423 424 // Tester l'entree telle quelle (avec 'url_libre' des sites ont pu avoir des entrees avec marqueurs dans la table spip_urls) 424 425 if (is_null($type) 425 426 OR !$row=sql_fetsel('id_objet, type, date', 'spip_urls',array('url='.sql_quote("$type/$url_propre")))) { 426 if (!is_null($type)) 427 array_push($url_arbo,$type); 427 if (!is_null($type)){ 428 array_unshift($url_arbo,$url_propre); 429 $url_propre = $type; 430 } 428 431 $row = sql_fetsel('id_objet, type, date', 'spip_urls',array('url='.sql_quote($url_propre))); 429 432 } … … 432 435 $col_id = id_table_objet($type); 433 436 434 // n'affecter que la premiere fois un parent de type id_rubrique 435 if (!isset($contexte[$col_id])) 436 $contexte[$col_id] = $row['id_objet']; 437 437 // le plus a droite l'emporte pour des objets presents plusieurs fois dans l'url (ie rubrique) 438 $contexte[$col_id] = $row['id_objet']; 439 440 $type_parent = ''; 441 if ($p = url_arbo_parent($type)) 442 $type_parent=end($p); 443 // l'entite la plus a droite l'emporte, si le type de son parent a ete vu 444 // sinon c'est un segment contextuel supplementaire a ignorer 445 // ex : rub1/article/art1/mot1 : il faut ignorer le mot1, la vrai url est celle de l'article 438 446 if (!$entite 439 OR !in_array($type,$types_parents))447 OR isset($parents_vus[$type_parent])) 440 448 $entite = $type; 441 442 if ($p = url_arbo_parent($type))443 $types_parents[]=end($p);449 450 // on note le dernier parent vu de chaque type 451 $parents_vus[$type] = $col_id; 444 452 } 445 453 else {
Note: See TracChangeset
for help on using the changeset viewer.