itemId = JRequest :: getUInt('Itemid', NULL); /* if (JFactory :: getUser() -> guest) { //JFactory :: getApplication() -> redirect(JRoute :: _('index.php?option=com_users&view=login&Itemid=' . $this -> itemId . '&return=' . base64_encode(JRoute :: _('index.php?option=com_openaire&view=claim1&Itemid=' . $this -> itemId, FALSE)), FALSE)); return TRUE; } */ $claimModel = $this->getModel(self :: CLAIM_MODEL); $searchModel = $this->getModel(self :: SEARCH_MODEL); $application = JFactory :: getApplication(); $this->source = JRequest :: getString('source', self :: OPENAIRE); $this->keyword = JRequest :: getString('keyword'); $this->type = JRequest :: getString('keyword'); $this->claiminline = JRequest :: getString('claiminline', 'false'); $this->targetType = JRequest :: getString('targetType', 'both'); $this->activeId = JRequest :: getString('activeId'); $this->sourceType = JRequest :: getString('sourceType'); $this->page = JRequest :: getUInt('page', self :: PAGE); $this->size = JRequest :: getUInt('size', self :: SIZE); $this->showCartTooltip = JRequest :: getString('showCartTooltip'); $this->showCartTooltip = ($this->showCartTooltip == 'true'); $locale = JFactory :: getLanguage()->getTag(); $publicationId = JRequest :: getString('publicationId'); $publicationSource = JRequest :: getString('publicationSource'); $projectId = JRequest :: getString('projectId'); $conceptId = JRequest :: getString('conceptId'); $this->formatCart = JRequest :: getString('formatCart', 'false'); if ($this->keyword != NULL) { $this->results = new JObject(); $this->pagesFormat = new JObject(); switch ($this->source) { case self :: OPENAIRE: $this->results = $searchModel->searchPublications($this->keyword, FALSE, FALSE, FALSE, FALSE, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, $this->page, $this->size, $locale,NULL); $this->pagesFormat = format_pages($this->results, $this->size, $this->page, self :: MAX_PAGES); break; case self :: DOI: $this->results = $claimModel->searchDOI($this->keyword, $this->page, $this->size); $this->pagesFormat = format_pages($this->results, $this->size, $this->page, self :: MAX_PAGES); break; case self :: ORCID: $this->results = $claimModel->searchORCID($this->keyword, $this->page, $this->size); $this->pagesFormat = format_pages($this->results, $this->size, $this->page, self :: MAX_PAGES); break; case self :: DATACITE: $this->results = $claimModel->searchDataCite($this->keyword, $this->page, $this->size); $this->pagesFormat = format_pages($this->results, $this->size, $this->page, self :: MAX_PAGES); break; } } switch (JRequest :: getString('action')) { case self :: ADD_PUBLICATION: if (($publicationId != NULL) && ($this->results != NULL)) { if (isset($this->results->totalPublications) && ($this->results->totalPublications != 0)) { foreach ($this->results->publications as $publication) { if ($publication->id == $publicationId) { $publication->claim_type = "publication"; $publication->source = $this->source; $claimModel->addSelectedPublication($publication, ($this->claiminline === 'true' ? OpenAireModelClaim::CLAIMINLINE2.$this->activeId : OpenAireModelClaim::CLAIM)); $this->formatCart = 'true'; } } } else if (isset($this->results->totalDatasets) && ($this->results->totalDatasets != 0)) { foreach ($this->results->datasets as $dataset) { if ($dataset->id == $publicationId) { $dataset->claim_type = "dataset"; $dataset->source = $this->source; $claimModel->addSelectedPublication($dataset, ($this->claiminline === 'true' ? OpenAireModelClaim::CLAIMINLINE2.$this->activeId : OpenAireModelClaim::CLAIM)); $this->formatCart = 'true'; } } } } break; case self :: REMOVE_PUBLICATION: $claimModel->removeSelectedPublication($publicationSource, $publicationId, ($this->claiminline === 'true' ? OpenAireModelClaim::CLAIMINLINE2.$this->activeId : OpenAireModelClaim::CLAIM)); $this->formatCart = 'true'; break; case self :: REMOVE_PROJECT: $claimModel->removeSelectedProject($projectId, ($this->claiminline === 'true' ? OpenAireModelClaim::CLAIMINLINE2.$this->activeId : OpenAireModelClaim::CLAIM)); $this->formatCart = 'true'; break; case self :: REMOVE_CONCEPT: $claimModel->removeSelectedConcept($conceptId, ($this->claiminline === 'true' ? OpenAireModelClaim::CLAIMINLINE2.$this->activeId : OpenAireModelClaim::CLAIM)); $this->formatCart = 'true'; break; } if ($this->formatCart === 'true') { $this->selectedProjects = $claimModel->getSelectedProjects(($this->claiminline === 'true' ? OpenAireModelClaim::CLAIMINLINE2.$this->activeId : OpenAireModelClaim::CLAIM)); $this->selectedConcepts = $claimModel->getSelectedConcepts(($this->claiminline === 'true' ? OpenAireModelClaim::CLAIMINLINE2.$this->activeId : OpenAireModelClaim::CLAIM)); $this->selectedPublications = $claimModel->getSelectedPublications(($this->claiminline === 'true' ? OpenAireModelClaim::CLAIMINLINE2.$this->activeId : OpenAireModelClaim::CLAIM)); } if (count($errors = $this->get('Errors')) > 0) { JLog :: add('Error viewing claim2: ' . implode("\n", $errors), JLog :: ERROR, self :: LOG); return FALSE; } parent :: display($template); } } function format_pages($results, $size, $page, $maxPages) { $pages = new JObject(); $pages->page = $page; $pages->totalPages = ($results == NULL) ? NULL : ceil((isset($results->publications) ? $results->totalPublications : $results->totalDatasets) / $size); if ($pages->totalPages == NULL) $pages->totalPages = 1; $pages->pagingStart = $page; $pages->pagingEnd = $page; while (($pages->pagingEnd - $pages->pagingStart < $maxPages - 1) && (($pages->pagingStart != 1) || ($pages->pagingEnd != $pages->totalPages))) { if ($pages->pagingStart > 1) $pages->pagingStart --; if ($pages->pagingEnd < $pages->totalPages) $pages->pagingEnd++; } return $pages; }