From 633ea8da1060b62c173c6e78efdb6303cd204d6d Mon Sep 17 00:00:00 2001
From: jgaimard <jgaimard@git-test.afi-sa.fr>
Date: Thu, 4 Apr 2013 15:25:46 +0000
Subject: [PATCH] Ecoute docs sonores casa

---
 library/Class/AdminVar.php   |  3 ++-
 library/Class/Indexation.php |  2 +-
 library/Class/Notice.php     | 28 ++++++++++++++++++++--------
 3 files changed, 23 insertions(+), 10 deletions(-)

diff --git a/library/Class/AdminVar.php b/library/Class/AdminVar.php
index cdc48693b23..593448b3ad1 100644
--- a/library/Class/AdminVar.php
+++ b/library/Class/AdminVar.php
@@ -66,7 +66,8 @@ class Class_AdminVar extends Storm_Model_Abstract {
 		'CSS_EDITOR',
 		'CMS_FORMULAIRES',
 		'MENU_BOITE',
-		'INTERDIRE_MODIF_FICHE_ABONNE'
+		'INTERDIRE_MODIF_FICHE_ABONNE',
+		'ROOT_URL_ECOUTE'
 	);
 
 
diff --git a/library/Class/Indexation.php b/library/Class/Indexation.php
index 0294992ab64..17949d1ee1e 100644
--- a/library/Class/Indexation.php
+++ b/library/Class/Indexation.php
@@ -35,7 +35,7 @@ class Class_Indexation
 	{
 		// Lire formes rejetées
 		$this->articles=array("L'","LE ","LA ","LES ","UN ","UNE ");
-		$this->inclu=array("AN","AS","OR","U2","AI","LU","XO","DO","RE","MI","FA","SI","AC","DC","XX","B","C","D","E","F","G","H","I","J","K","M","N","P","Q","R","S","T","V","W","X","Y","Z","L","YU","UT","LI","OC","PI","ZU","WU","TO","OZ","ZZ");
+		$this->inclu=array("AN","AS","OR","U2","AI","LU","XO","DO","RE","MI","FA","SI","AC","DC","XX","B","C","D","E","F","G","H","I","J","K","M","N","P","Q","R","S","T","V","W","X","Y","Z","L","YU","UT","LI","OC","PI","ZU","WU","TO","OZ","ZZ","XX");
 		$this->exclu = array("LES","DES","MES","TES","ENTRE","CHEZ","SES","LEUR","MON","ENTRE","POUR","ELLE","ILS","COMME","DANS","EUX","CEUX","MAIS","MEME","SANS",
 		"TOME","VERS","VOUS","CECI","CES","ETC","PARCE","QUE","QUEL","QUELLE","QUELS","QUELLES","PAS","QUI","QUOI","VOS","AFIN","CECI","CELA","LUI","PAR","PUIS","SOI");
 		
diff --git a/library/Class/Notice.php b/library/Class/Notice.php
index 7efab580c63..414dee6093a 100644
--- a/library/Class/Notice.php
+++ b/library/Class/Notice.php
@@ -803,15 +803,25 @@ class Class_Notice extends Storm_Model_Abstract {
 // ----------------------------------------------------------------
 	public function getMorceaux()
 	{
-		// detecter gam
-		$data=$this->get_subfield('801', 'b');
-		foreach($data as $champ)
+		// detecter url_ecoute en 464$3
+		$data=$this->get_subfield('464', '3');
+		
+		if(count($data)>0)
+		{
+			$this->root_url_ecoute=Class_AdminVar::get('ROOT_URL_ECOUTE');
+		}
+		else
 		{
-			if(strtoupper($champ)== "GAM")
+			// detecter gam
+			$data=$this->get_subfield('801', 'b');
+			foreach($data as $champ)
 			{
-				$ret=$this->getMorceauxGam();
-				$ret['source']="GAM Annecy";
-				return $ret;
+				if(strtoupper($champ)== "GAM")
+				{
+					$ret=$this->getMorceauxGam();
+					$ret['source']="GAM Annecy";
+					return $ret;
+				}
 			}
 		}
 		
@@ -844,7 +854,7 @@ class Class_Notice extends Storm_Model_Abstract {
 		foreach($data as $champs)
 		{
 			$champ=$this->decoupe_bloc_champ($champs);
-			$titre=$auteur_nom=$auteur_prenom=$duree=$volume='';
+			$titre=$auteur_nom=$auteur_prenom=$duree=$volume=$url_ecoute='';
 			foreach($champ as $sous_champ)
 			{
 				switch($sous_champ['code'])
@@ -854,6 +864,7 @@ class Class_Notice extends Storm_Model_Abstract {
 					case 'a' : $auteur_nom=$sous_champ['valeur']; break;
 					case 'b' : $auteur_prenom=$sous_champ['valeur']; break;
 					case 'v' : $volume=$sous_champ['valeur']; break;
+					case '3' : $url_ecoute=$this->root_url_ecoute.$sous_champ['valeur']; break;
 				}
 			}
 			if(!$titre) continue;
@@ -865,6 +876,7 @@ class Class_Notice extends Storm_Model_Abstract {
 			$ret['nb_resultats']=$piste;
 			if($volume > $ret['nombre_volumes']) $ret['nombre_volumes']=$volume;
 			$ret["morceaux"][$volume][$piste]['titre']=$titre;
+			if($url_ecoute) $ret["morceaux"][$volume][$piste]["url_ecoute"]=$url_ecoute;
 		}
 		return $ret;
 	}
-- 
GitLab