/trunk/squelettes/metadonnees.tpl.html |
---|
2,7 → 2,13 |
<dl class="label-moyen"> |
<dt>GUID (Permalien)</dt> <dd><a href="<?=$_guid_url_?>"><?=$_guid_?></a></dd> |
<dt>Notes</dt> <dd><?=$_notes_?></dd> |
<dt>Sources</dt> <dd><?=$_source_?></dd> |
<dt>Sources</dt> <dd><?=$_source_?> </dd> |
<?php if($_expert_ != null) { ?> |
<dt>Collection expertisée par </dt> <dd><?=$_expert_; ?> </dd> |
<?php } ?> |
<?php if($_contributeur_ != null) { ?> |
<dt>Fiche saisie par </dt> <dd><?=$_contributeur_; ?> </dd> |
<?php } ?> |
<dt>Modifié par</dt> <dd><?=$_modifier_par_?> (<?=$_modifier_par_courriel_?>)</dd> |
<dt>Date de dernière modification</dt> <dd><?=$_date_modification_?> </dd> |
<dt>État de l'enregistrement</dt> <dd><?=$_etat_?> </dd> |
/trunk/bibliotheque/dao/CollectionDao.php |
---|
17,6 → 17,8 |
const SERVICE_COLLECTION_A_PERSONNE = 'CoelCollectionAPersonne'; |
const SERVICE_COLLECTION_A_PUBLICATION = 'CoelCollectionAPublication'; |
const SERVICE_COLLECTION_A_COMMENTAIRE = 'CoelCollectionACommentaire'; |
const ROLE_EXPERT = '30763'; |
const ROLE_CONTRIBUTEUR = '2134'; |
/** |
* Retourne l'ensemble des information sur une collection. |
69,6 → 71,18 |
return $donnees['collectionsAPersonne']; |
} |
public function getPersonnesLieesExpertes($id_collection) { |
$this->addOrdre('cp_nom'); |
$donnees = $this->getCollectionAPersonne($id_collection, self::ROLE_EXPERT); |
return $donnees['collectionsAPersonne']; |
} |
public function getPersonnesLieesContributrices($id_collection) { |
$this->addOrdre('cp_nom'); |
$donnees = $this->getCollectionAPersonne($id_collection, self::ROLE_CONTRIBUTEUR); |
return $donnees['collectionsAPersonne']; |
} |
/** |
* Retourne le nombre de personnes liées à une collection. |
* |
80,8 → 94,9 |
return $donnees['nbElements']; |
} |
private function getCollectionAPersonne($id_collection) { |
private function getCollectionAPersonne($id_collection, $role = null) { |
$url = $this->url_jrest.self::SERVICE_COLLECTION_A_PERSONNE."/$id_collection"; |
$url .= ($role != null) ? '/'.$role : ''; |
$json = $this->envoyerRequeteConsultation($url); |
$donnees = json_decode($json, true); |
return $donnees; |
99,6 → 114,17 |
} |
/** |
* Retourne l'ensemble des publications liées à une collection. |
* |
* @param integer l'id de la collection. |
* @return array un tableau contenant les informations sur les publications liées à la collection. |
*/ |
public function getPublicationsSourcesLiees($id_collection) { |
$donnees = $this->getCollectionAPublication($id_collection, "1"); |
return $donnees['collectionsAPublication']; |
} |
/** |
* Retourne le nombre de publications liées à une collection. |
* |
* @param integer l'id de la collection. |
109,8 → 135,9 |
return $donnees['nbElements']; |
} |
private function getCollectionAPublication($id_collection) { |
private function getCollectionAPublication($id_collection, $source = null) { |
$url = $this->url_jrest.self::SERVICE_COLLECTION_A_PUBLICATION."/$id_collection"; |
$url .= ($source != null) ? '/'.$source : ''; |
$json = $this->envoyerRequeteConsultation($url); |
$donnees = json_decode($json, true); |
return $donnees; |
/trunk/controleurs/FicheCollection.php |
---|
51,6 → 51,8 |
$this->traiterDonneesCollectionInventaire($this->donnees['info']); |
$this->traiterDonneesCollectionACommentaire($this->donnees['commentaires']); |
$this->postraiterDonnees($this->donnees); |
$this->donnees['info'] = $this->formaterMetaDonneesSpecifiques($this->donnees['info']); |
$this->donnees['metadonnees'] = $this->traiterMetaDonnees($this->donnees['info']); |
// Création des méta-données de la page |
68,6 → 70,29 |
} |
} |
private function formaterMetaDonneesSpecifiques($donnees_info) { |
// TODO: ceci cause trois appels de web services supplémentaires |
// l'idéal serait d'avoir un service qui renvoie tout ça une fois |
// (après l'appel n'est pas très couteux en temps et performance) |
$sources = $this->collectionDao->getPublicationsSourcesLiees($this->donnees['id']); |
$experts = $this->collectionDao->getPersonnesLieesExpertes($this->donnees['id']); |
$contributeurs = $this->collectionDao->getPersonnesLieesContributrices($this->donnees['id']); |
$donnees_info['contributeur'] = $this->formaterTableauMetadonnees($contributeurs, 'cp_fmt_nom_complet'); |
$donnees_info['expert'] = $this->formaterTableauMetadonnees($experts, 'cp_fmt_nom_complet'); |
$donnees_info['cmhl_source'] = $this->formaterTableauMetadonnees($sources, 'cpu_fmt_nom_complet'); |
return $donnees_info; |
} |
private function formaterTableauMetadonnees(&$donnees, $champ_a_extraire) { |
$donnees_fmt = array(); |
foreach($donnees as &$donnee) { |
$donnees_fmt[] = $donnee[$champ_a_extraire]; |
} |
return implode(', ', $donnees_fmt); |
} |
private function creerPaginationPersonnes($id_collection) { |
// Gestion du nombre de résultats |
$donnees_total = $this->collectionDao->getNbrePersonnesLiees($id_collection); |
/trunk/controleurs/Fiche.php |
---|
55,6 → 55,11 |
$meta['_guid_url_'] = $this->obtenirPermalienGuid($donnees['_guid_']); |
$meta['_notes_'] = $donnees['cmhl_notes']; |
$meta['_source_'] = $donnees['cmhl_source']; |
// les deux champs suivants sont spécifique à la collection |
// TODO: si d'autres champs spécifiques s'ajoutent, faire un système |
// générique pour les champs de meta données supplémentaires |
$meta['_expert_'] = isset($donnees['expert']) ? $donnees['expert'] : null; |
$meta['_contributeur_'] = isset($donnees['contributeur']) ? $donnees['contributeur'] : null; |
$meta['_date_modification_'] = $donnees['cmhl_date_modification']; |
$meta['_modifier_par_'] = $this->obtenirNomCompletPersonne($donnees['cmhl_ce_modifier_par']); |
$meta['_modifier_par_courriel_'] = $this->obtenirCourrielsPersonne($donnees['cmhl_ce_modifier_par']); |