| 
				
			 | 
			
			
				@@ -10,17 +10,18 @@ use Symfony\Component\Console\Output\OutputInterface; 
			 | 
		
	
		
			
			| 
				10
			 | 
			
				10
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				11
			 | 
			
				11
			 | 
			
			
				 use Muzich\CoreBundle\Managers\ElementManager; 
			 | 
		
	
		
			
			| 
				12
			 | 
			
				12
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				13
			 | 
			
				
			 | 
			
			
				-class RefreshEmbedsCommand extends ContainerAwareCommand 
			 | 
		
	
		
			
			| 
				
			 | 
			
				13
			 | 
			
			
				+class ElementRefreshCommand extends ContainerAwareCommand 
			 | 
		
	
		
			
			| 
				14
			 | 
			
				14
			 | 
			
			
				 { 
			 | 
		
	
		
			
			| 
				15
			 | 
			
				15
			 | 
			
			
				   protected function configure() 
			 | 
		
	
		
			
			| 
				16
			 | 
			
				16
			 | 
			
			
				   { 
			 | 
		
	
		
			
			| 
				17
			 | 
			
				17
			 | 
			
			
				     $this 
			 | 
		
	
		
			
			| 
				18
			 | 
			
				
			 | 
			
			
				-      ->setName('elementengine:refresh-embeds') 
			 | 
		
	
		
			
			| 
				19
			 | 
			
				
			 | 
			
			
				-      ->setDescription('Actualise les embeds') 
			 | 
		
	
		
			
			| 
				
			 | 
			
				18
			 | 
			
			
				+      ->setName('elementengine:refresh') 
			 | 
		
	
		
			
			| 
				
			 | 
			
				19
			 | 
			
			
				+      ->setDescription('Actualise les éléments avec les API externes') 
			 | 
		
	
		
			
			| 
				20
			 | 
			
				20
			 | 
			
			
				       // Dans l'avenir on pourra préciser: 
			 | 
		
	
		
			
			| 
				21
			 | 
			
				21
			 | 
			
			
				       // - le type 
			 | 
		
	
		
			
			| 
				22
			 | 
			
				22
			 | 
			
			
				       // - l'élément 
			 | 
		
	
		
			
			| 
				23
			 | 
			
				23
			 | 
			
			
				       ->addOption('sites', null, InputOption::VALUE_REQUIRED, 'Liste exhaustive des site a traiter') 
			 | 
		
	
		
			
			| 
				
			 | 
			
				24
			 | 
			
			
				+//      ->addOption('section', null, InputOption::VALUE_REQUIRED, 'Sections a mettre a jours (all, embed, data, )', 'all') 
			 | 
		
	
		
			
			| 
				24
			 | 
			
				25
			 | 
			
			
				 //      ->addArgument('sites', InputArgument::OPTIONAL, 'Liste exhaustive des site a traiter') 
			 | 
		
	
		
			
			| 
				25
			 | 
			
				26
			 | 
			
			
				 //      ->addOption('yell', null, InputOption::VALUE_NONE, 'If set, the task will yell in uppercase letters') 
			 | 
		
	
		
			
			| 
				26
			 | 
			
				27
			 | 
			
			
				     ; 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -32,15 +33,19 @@ class RefreshEmbedsCommand extends ContainerAwareCommand 
			 | 
		
	
		
			
			| 
				32
			 | 
			
				33
			 | 
			
			
				     $em = $doctrine->getEntityManager(); 
			 | 
		
	
		
			
			| 
				33
			 | 
			
				34
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				34
			 | 
			
				35
			 | 
			
			
				     $output->writeln('#'); 
			 | 
		
	
		
			
			| 
				35
			 | 
			
				
			 | 
			
			
				-    $output->writeln('## Script de mise a jour des code embeds ##'); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				36
			 | 
			
			
				+    $output->writeln('## Script de mise a jour des éléments ##'); 
			 | 
		
	
		
			
			| 
				36
			 | 
			
				37
			 | 
			
			
				     $output->writeln('#'); 
			 | 
		
	
		
			
			| 
				37
			 | 
			
				38
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				38
			 | 
			
				39
			 | 
			
			
				     $filter_sites = array(); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				40
			 | 
			
			
				+    $sql_like = ""; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				41
			 | 
			
			
				+    $sql_like_parameters = array(); 
			 | 
		
	
		
			
			| 
				39
			 | 
			
				42
			 | 
			
			
				     if (($sites = $input->getOption('sites'))) 
			 | 
		
	
		
			
			| 
				40
			 | 
			
				43
			 | 
			
			
				     { 
			 | 
		
	
		
			
			| 
				41
			 | 
			
				44
			 | 
			
			
				       foreach (explode(',', $sites) as $site) 
			 | 
		
	
		
			
			| 
				42
			 | 
			
				45
			 | 
			
			
				       { 
			 | 
		
	
		
			
			| 
				43
			 | 
			
				46
			 | 
			
			
				         $filter_sites[] = trim($site); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				47
			 | 
			
			
				+        $sql_like .= " OR e.url LIKE :site".trim(str_replace('.', '', $site)); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				48
			 | 
			
			
				+        $sql_like_parameters['site'.trim(str_replace('.', '', $site))] = '%'.$site.'%'; 
			 | 
		
	
		
			
			| 
				44
			 | 
			
				49
			 | 
			
			
				       } 
			 | 
		
	
		
			
			| 
				45
			 | 
			
				50
			 | 
			
			
				     } 
			 | 
		
	
		
			
			| 
				46
			 | 
			
				51
			 | 
			
			
				      
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -50,8 +55,8 @@ class RefreshEmbedsCommand extends ContainerAwareCommand 
			 | 
		
	
		
			
			| 
				50
			 | 
			
				55
			 | 
			
			
				     { 
			 | 
		
	
		
			
			| 
				51
			 | 
			
				56
			 | 
			
			
				       $elements = $em->createQuery( 
			 | 
		
	
		
			
			| 
				52
			 | 
			
				57
			 | 
			
			
				         "SELECT e FROM MuzichCoreBundle:Element e " 
			 | 
		
	
		
			
			| 
				53
			 | 
			
				
			 | 
			
			
				-        . " WHERE e.type IN (:types)" 
			 | 
		
	
		
			
			| 
				54
			 | 
			
				
			 | 
			
			
				-      )->setParameter('types', $filter_sites) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				58
			 | 
			
			
				+        . " WHERE e.type IN (:types) $sql_like" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				59
			 | 
			
			
				+      )->setParameters(array_merge(array('types' => $filter_sites), $sql_like_parameters)) 
			 | 
		
	
		
			
			| 
				55
			 | 
			
				60
			 | 
			
			
				        ->getResult()       
			 | 
		
	
		
			
			| 
				56
			 | 
			
				61
			 | 
			
			
				       ; 
			 | 
		
	
		
			
			| 
				57
			 | 
			
				62
			 | 
			
			
				       $output->writeln('<comment>Utilisation de filtre par site ('.$input->getOption('sites').')</comment>'); 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -68,6 +73,7 @@ class RefreshEmbedsCommand extends ContainerAwareCommand 
			 | 
		
	
		
			
			| 
				68
			 | 
			
				73
			 | 
			
			
				     { 
			 | 
		
	
		
			
			| 
				69
			 | 
			
				74
			 | 
			
			
				       $output->writeln('<info>Prise en charge de "'.$element->getUrl().'" ...</info>'); 
			 | 
		
	
		
			
			| 
				70
			 | 
			
				75
			 | 
			
			
				       $factory = new ElementManager($element, $em, $this->getContainer()); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				76
			 | 
			
			
				+      $factory->determineType(); 
			 | 
		
	
		
			
			| 
				71
			 | 
			
				77
			 | 
			
			
				       $factory->proceedExtraFields(); 
			 | 
		
	
		
			
			| 
				72
			 | 
			
				78
			 | 
			
			
				       $em->persist($element); 
			 | 
		
	
		
			
			| 
				73
			 | 
			
				79
			 | 
			
			
				     } 
			 |