Project

General

Profile

1
<?php
2

    
3
defined('_JEXEC') or die('Access denied');
4

    
5
jimport('joomla.application.component.view');
6
jimport('joomla.environment.request');
7
jimport('joomla.log.log');
8
jimport('joomla.methods');
9

    
10
class OpenAireViewChart extends JView {
11
	const MODEL = 'statistics';
12
	const ACCESS_MODE = 'accessMode';
13
	const PROGRAMME = 'programme';
14
	const SCIENTIFIC_AREA = 'scientificArea';
15
	const COUNTRY = 'country';
16
	const INSTITUTION = 'institution';
17
	const LIMIT = 15;
18
	const MAX_ACRONYM = 10;
19
	const ACRONYM_SUFFIX = '...';
20
	const LOG = 'openaire';
21
		
22
	function display($template = NULL) {
23
		$this -> chart = JRequest :: getString('chart', self :: ACCESS_MODE);
24
		$model = $this -> getModel(self :: MODEL);
25
		switch ($this -> chart) {
26
		case self :: ACCESS_MODE:
27
			$this -> publicationsByCategory = $model -> getPublicationsByAccessMode();
28
			break;
29
		case self :: PROGRAMME:
30
			$this -> publicationsByCategory = $model -> getPublicationsByProgramme(self :: LIMIT);
31
			foreach ($this -> publicationsByCategory as $publicationsByCategory) {
32
				if ($publicationsByCategory -> acronym == NULL)
33
					$publicationsByCategory -> acronym = $publicationsByCategory -> name;
34
				if (strlen($publicationsByCategory -> acronym) > self :: MAX_ACRONYM)
35
					$publicationsByCategory -> acronym = substr($publicationsByCategory -> acronym, 0, self :: MAX_ACRONYM - strlen(self :: ACRONYM_SUFFIX)) . self :: ACRONYM_SUFFIX;
36
			}
37
			$this -> chartTitle = JText :: _('PUBLICATIONS_PROJECTS_PER_PROGRAMME');
38
			break;
39
		case self :: SCIENTIFIC_AREA:
40
			$this -> publicationsByCategory = $model -> getPublicationsByScientificArea(self :: LIMIT);
41
			foreach ($this -> publicationsByCategory as $publicationsByCategory) {
42
				if ($publicationsByCategory -> acronym == NULL)
43
					$publicationsByCategory -> acronym = $publicationsByCategory -> name;
44
				if (strlen($publicationsByCategory -> acronym) > self :: MAX_ACRONYM)
45
					$publicationsByCategory -> acronym = substr($publicationsByCategory -> acronym, 0, self :: MAX_ACRONYM - strlen(self :: ACRONYM_SUFFIX)) . self :: ACRONYM_SUFFIX;
46
			}
47
			$this -> chartTitle = JText :: _('PUBLICATIONS_PROJECTS_PER_SCIENTIFIC_AREA');
48
			break;
49
		case self :: COUNTRY:
50
			$this -> publicationsByCategory = $model -> getPublicationsByCountry(self :: LIMIT);
51
			foreach ($this -> publicationsByCategory as $publicationsByCategory) {
52
				if ($publicationsByCategory -> acronym == NULL)
53
					$publicationsByCategory -> acronym = $publicationsByCategory -> name;
54
				if (strlen($publicationsByCategory -> acronym) > self :: MAX_ACRONYM)
55
					$publicationsByCategory -> acronym = substr($publicationsByCategory -> acronym, 0, self :: MAX_ACRONYM - strlen(self :: ACRONYM_SUFFIX)) . self :: ACRONYM_SUFFIX;
56
			}
57
			$this -> chartTitle = JText :: _('PUBLICATIONS_PROJECTS_PER_COUNTRY');
58
			break;
59
		case self :: INSTITUTION:
60
			$this -> publicationsByCategory = $model -> getPublicationsByInstitution(self :: LIMIT);
61
			foreach ($this -> publicationsByCategory as $publicationsByCategory) {
62
				if ($publicationsByCategory -> acronym == NULL)
63
					$publicationsByCategory -> acronym = $publicationsByCategory -> name;
64
				if (strlen($publicationsByCategory -> acronym) > self :: MAX_ACRONYM)
65
					$publicationsByCategory -> acronym = substr($publicationsByCategory -> acronym, 0, self :: MAX_ACRONYM - strlen(self :: ACRONYM_SUFFIX)) . self :: ACRONYM_SUFFIX;
66
			}
67
			$this -> chartTitle = JText :: _('PUBLICATIONS_PROJECTS_PER_INSTITUTION');
68
		}		
69
		if (count($errors = $this -> get('Errors')) > 0) {
70
			JLog :: add('Error viewing chart: ' . implode("\n", $errors), JLog :: ERROR, self :: LOG);
71
			return FALSE;
72
		}
73
		parent :: display($template);
74
	}
75
}
76

    
(2-2/2)