Project

General

Profile

« Previous | Next » 

Revision 32333

com_openaire/site/views/claiminline/view.html.php: fix bug-save multiple claims for projects that have left in session-empty session properly , com_openaire/site/models/claim.php : changes for claim administrator page

View differences:

modules/uoa-joomla/trunk/joomla-2.5.3/com_openaire/site/models/claim.php
364 364
	// $user the user whose claimed publications to retrieve
365 365
	// return an array of publications
366 366
	public function getAllClaimedPublications($from, $to) {
367
		if ($this -> cache -> getCaching()) {
367
		/*if ($this -> cache -> getCaching()) {
368 368
			$cacheId = self :: CLAIMED_PUBLICATIONS_CACHE_ID . '.' . $from . "." . $to;
369 369
			$publications = $this -> cache -> get($cacheId, self :: CACHE_GROUP);
370 370
			if ($publications === FALSE) {
......
372 372
				if ($publications !== NULL)
373 373
					$this -> cache -> store($publications, $cacheId, self :: CACHE_GROUP);
374 374
			}
375
		} else
376
			$publications = $this -> _getAllClaimedPublications($from, $to);
375
		} else*/
376
			$publications = $this -> _getAllClaimedPublicationsExtended($from, $to);
377 377
		return $publications;
378 378
	}
379 379
	
......
559 559
		}
560 560
		return $claimedPublications;
561 561
	}
562
		// Get the publications claimed  
563
 	// return an array of publications or NULL if any errors occur
564
	private function _getAllClaimedPublicationsExtended($from, $to) {
565
		try {
566
			$locale = JFactory :: getLanguage()->getTag();
567
			$claimedPublications = array();
568
			$claimedPublicationsExtended = array();
569
			$time = microtime(TRUE);
570
			$time1 = strtotime(str_replace("/", "-", $from)) * 1000;
571
			$time2 = strtotime(str_replace("/", "-", $to)) * 1000;
572
			$claims = $this->client ->getAllClaimedPublications($time1, $time2);
573
            foreach ($claims as $claim){
574
                $parsedClaim = $this -> parseClaimedPublication($claim);
575
                if ($parsedClaim == null)
576
                    continue;
577
				$claimedPublications[] = $parsedClaim;
578
            }
579
            $resultsToGet = array();
580
            $projectsToGet = array();
581
            $claimedDocuments = array();
582
            foreach ($claimedPublications as $claimedPublication){
583
                if ($claimedPublication -> publication != null and $claimedPublication -> publication -> id != null)
584
                    $claimedDocuments[$claimedPublication->publicationId] = $claimedPublication -> publication;
585
                if ($claimedPublication -> projectId !== null){
586
                    $projectsToGet[] = $claimedPublication -> projectId;
587
                }
588
                if ($claimedPublication -> targetPublicationId !== null){
589
                    $resultsToGet[] = $claimedPublication -> targetPublicationId;
590
                }
591
                if ($claimedPublication -> targetDatasetId !== null){
592
                    $resultsToGet[] = $claimedPublication -> targetDatasetId;
593
                }
594
                if (($claimedPublication -> publication == null || ($claimedPublication -> publication != null and $claimedPublication -> publication -> id == null))){
595
                    $resultsToGet[] = $claimedPublication -> publicationId;   
596
                }
597
                if ($claimedPublication -> publication == null && $claimedPublication -> type == "dataset"){
598
                    $resultsToGet[] = $claimedPublication -> publicationId;   
599
                }
600
            }
601
            $resultsToGet = array_unique($resultsToGet);
602
            $projectsToGet = array_unique($projectsToGet);
603
            $searchModel = new OpenAireModelSearch();
604
            $results = $searchModel->getResults($resultsToGet, $locale);
605
            $projects = $searchModel->getProjects($projectsToGet, $locale);
606
            $keydResults = array();
607
            $keydProjects = array();
608
            foreach ($results as $result)
609
                $keydResults[$result->id] = $result;
610
            foreach ($projects as $project)
611
                $keydProjects[$project->id] = $project;
612
            
613
            foreach ($claimedPublications as $claimedPublication){
614
                        
615
              /*      if ($claimedPublication -> publication == null ||  $claimedPublication -> publication -> id == null){
616
                       //print_r($claimedPublication -> publication -> concepts);
617
                        $claimedPublication -> publication = isset($keydResults[$claimedPublication -> publicationId])?$keydResults[$claimedPublication -> publicationId]:null;                        
618
                    }
619
                */ 
620
            $claimedPublication->targetConceptId=null;
621
                if ($claimedPublication -> publication != null && isset($claimedPublication -> publication -> concepts )){
622
                    $claimedConcepts = array();
623
                    foreach ($claimedPublication -> publication -> concepts as $concept){
624
                        $concept = $this->getConcept($concept);
625
                        $claimedConcept = new stdClass();
626
                        $claimedConcept->id = $concept->id;
627
                        $claimedConcept->title = $concept->path;
628
                        $claimedConcept->date = $claimedPublication->date;
629
                        $claimedConcepts[] = $claimedConcept;
630
                        $claimedPublication->title=$concept->path;
631
                        $claimedPublication->targetConceptId= $concept->id;
632
                    }
633
                    $claimedPublication ->  concepts= $claimedConcepts;
634
                 }
635
                if ($claimedPublication -> targetPublicationId !== null){
636
                    $claimedPublication->title = isset($keydResults[$claimedPublication -> targetPublicationId ])?$keydResults[$claimedPublication -> targetPublicationId ]->title:null;
637
                    if ($claimedPublication->title == null){
638
                        $claimedPublication->title = isset($claimedDocuments[$claimedPublication -> targetDatasetId ])?$claimedDocuments[$claimedPublication -> targetDatasetId ]->title:null;
639
                    }
640
                 }
641
                if ($claimedPublication -> targetDatasetId !== null){
642
                    $claimedPublication->title = isset($keydResults[$claimedPublication -> targetDatasetId ])?$keydResults[$claimedPublication -> targetDatasetId ]->title:null;
643
                    if ($claimedPublication->title == null){
644
                        $claimedPublication->title = isset($claimedDocuments[$claimedPublication -> targetDatasetId ])?$claimedDocuments[$claimedPublication -> targetDatasetId ]->title:null;
645
                    }
646
                 }
647
                if ($claimedPublication -> projectId !== null){
648
                    $claimedPublication->title = isset($keydProjects[$claimedPublication -> projectId ])?$keydProjects[$claimedPublication -> projectId ]->title:null;
649
                    $claimedPublication->acronym = isset($keydProjects[$claimedPublication -> projectId ])?$keydProjects[$claimedPublication -> projectId ]->acronym:null;
650
                  
651
                    }
652
                    if ($claimedPublication -> publication == null ||  $claimedPublication -> publication -> id == null){
653
                       //print_r($claimedPublication -> publication -> concepts);
654
                        $claimedPublication -> publication = isset($keydResults[$claimedPublication -> publicationId])?$keydResults[$claimedPublication -> publicationId]:null;                        
655
                    }
656
            }
657
            JLog :: add('Retrieved ' . count($claimedPublications) . ' claimed publications in ' . (microtime(TRUE) - $time) . ' s', JLog :: INFO, self :: LOG);
658
            return $claimedPublications;
659
		} catch (Exception $e) {
660
			JLog :: add('Error retrieving claimed publications (user: ' . $user -> username . '): ' . $e -> getMessage(), JLog :: ERROR, self :: LOG);
661
			return NULL;
662
		}
663
	}
562 664
	// Search for a publication DOI.
563 665
	// $doi the publication DOI to search for
564 666
	// return a result (object) containing publications and total
......
937 1039
	private function parseClaimedPublication($claim) {
938 1040
		$claimedPublication = new JObject();
939 1041
		$claimedPublication -> date = $claim -> date;
1042
		$claimedPublication -> claimType=$claim -> type;
940 1043
		$document = new DOMDocument();
941 1044
		$document -> recover = TRUE;
942 1045
		if ($document -> loadXML(trim($claim -> xml)) == FALSE)
modules/uoa-joomla/trunk/joomla-2.5.3/com_openaire/site/views/article/tmpl/default.php
158 158
								<div class="inferred_section">
159 159
								<!-- NMI tooltip must be nicer. Do something -->
160 160
								<!--<a title="<?php echo(JText :: _('INFERRED_SUBJECTS_TOOLTIP')); ?>" class="inferred-popup"><span class="tooltip-info"><?php echo(JText :: _('INFERRED_SUBJECTS_')); ?></span></a> 
161
								<?php echo(implode(', ', $subjects_inferred)); ?>
161
								<?php //echo(implode(', ', $subjects_inferred)); ?>
162 162
								-->
163 163
								<?php
164 164
									foreach($subjects_inferred as $taxonomy => $taxonomySubjects){
modules/uoa-joomla/trunk/joomla-2.5.3/com_openaire/site/views/claiminline/view.html.php
50 50
                
51 51
                if ($projectIds !== FALSE){
52 52
                    $projectIds = explode(",", $projectIds);
53
                    $claimModel->emptySelectedProjects();
53
                    $claimModel->emptySelectedProjects(OpenAireModelClaim::CLAIMINLINE. $this -> publicationId);
54 54
                    foreach ($projectIds as $projectId) {
55 55
                        $project = $searchModel->getProject($projectId, $locale);
56 56
                        if ($project != NULL) {
......
63 63
                if ($conceptIds !== FALSE) {
64 64
                    //var_dump($conceptIds);
65 65
                    //exit;
66
                    $claimModel->emptySelectedConcepts();
66
                    $claimModel->emptySelectedConcepts(OpenAireModelClaim::CLAIMINLINE. $this -> publicationId);
67 67
                    foreach ($conceptIds as $i => $conceptId) {
68 68
                        $concept = $claimModel->getConcept($conceptId);
69 69
                       

Also available in: Unified diff