itemId = JRequest :: getUInt('Itemid', NULL); $application = JFactory :: getApplication(); $user = JFactory :: getUser(); $claim = $this -> getModel(self :: CLAIM); $search = $this -> getModel(self :: SEARCH); $piwik = $this -> getModel(self :: PIWIK); $locale = JFactory :: getLanguage() -> getTag(); if ($user-> guest) { $application -> redirect(JRoute :: _('index.php?option=com_users&view=login&return=' . base64_encode(JRoute :: _('index.php?option=com_openaire&view=claim4&Itemid=' . $this -> itemId, FALSE)), FALSE)); return TRUE; } if (JRequest :: getString('action') == self :: SUBMIT) { $data = ''; foreach ($claim -> getSelectedPublications() as $publication) { if(JRequest :: getString($this -> escapeHttpParameter($publication -> source . '-' . $publication -> id . '-license'))!=null){ $publication -> license = JRequest :: getString($this -> escapeHttpParameter($publication -> source . '-' . $publication -> id . '-license')); $publication -> embargoEndDate = JRequest :: getString($this -> escapeHttpParameter( 'embargoEndDate-' . $publication -> id )); $claim -> removeSelectedPublication($publication -> source, $publication -> id); $claim -> addSelectedPublication($publication); } $data .= '&source=' . urlencode($publication -> source) . '&id=' . urlencode($publication -> id) . '&license=' . urlencode($publication -> license) . '&embargo=' . urlencode($publication -> embargoEndDate); } foreach ($claim -> getSelectedProjects() as $project) $data .= '&project=' . $project -> id; $data = substr($data, 1); // get rid of the firs ampersand $piwik -> track('claimPublications', $data); $claim -> claimSelectedPublications($user); //empty the cart $claim->emptySelectedProjects(); $claim->emptySelectedConcepts(); $claim->emptySelectedPublications(); $application -> redirect(JRoute :: _('index.php?option=com_openaire&view=claim4'.(($this->itemId!==null)?'&Itemid=' . $this->itemId:''), FALSE)); return TRUE; } JViewLegacy:: loadHelper('PiwikHelper'); PiwikHelper :: logPageView('viewClaims', ''); // $claimedPublications = $claim -> getClaimedPublications($user); $claimedPublications = $claim -> getClaimedDocsByUser($user); if ($claimedPublications === NULL) $this -> claimedPublications = NULL; else { $this -> claimedPublications = array(); foreach ($claimedPublications as $claimedPublication) { $claimed = $claimedPublication; $claimed -> publication = ($claimedPublication -> publication === NULL) ? $search -> getPublication($claimedPublication -> publicationId, $locale) : $claimedPublication -> publication; $this -> claimedPublications[] = $claimed; } usort($this -> claimedPublications, function ($claim1, $claim2) {return $claim1 -> date - $claim2 -> date;}); } if (count($errors = $this -> get('Errors')) > 0) { JLog :: add('Error viewing claim4: ' . implode("\n", $errors), JLog :: ERROR, self :: LOG); return FALSE; } parent :: display($template); } private function escapeHttpParameter($name) { $illegalChars = array(chr(32), chr(46), chr(91), chr(128), chr(129), chr(130), chr(131), chr(132), chr(133), chr(134), chr(135), chr(136), chr(137), chr(138), chr(139), chr(140), chr(141), chr(142), chr(143), chr(144), chr(145), chr(146), chr(147), chr(148), chr(149), chr(150), chr(151), chr(152), chr(153), chr(154), chr(155), chr(156), chr(157), chr(158), chr(159)); return str_replace($illegalChars, array_fill(0, count($illegalChars), '_'), $name); } }