Project

General

Profile

1
<?php
2

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

    
5
jimport('joomla.methods');
6

    
7
// This helper formats projects.
8
abstract class ProjectHelper {
9
	const MAX_ORGANIZATIONS = 15;
10

    
11
        // Format a project for select2 selection.
12
	public static function getProjectHtml($project, $itemId) {
13
            mb_internal_encoding('UTF-8');
14
            return ProjectHelper::formatFunder($project-> funder) . JText :: _('FUNDER_SEPARATOR') . (($project -> acronym == NULL) ? ((strlen($project -> title) > OpenAireViewClaim3 :: MAX_TITLE) ? (mb_substr($project -> title, 0, OpenAireViewClaim3 :: MAX_TITLE - strlen('...')) . '...') : $project -> title) : $project -> acronym) .
15
                            '<div style="display: none;">
16
				<div id="' . $project -> id. '" class="tooltip2">' . ProjectHelper :: formatProject($project, $itemId) .'</div>
17
                            </div>';  
18
        }
19
	// Format a project.
20
	// $project the project to format
21
	// $itemId the item ID to use for internal links
22
	// return a string containing the full HTML for the project or an empty string if any errors occur
23
	public static function formatProject($project, $itemId) {
24
		if (($project == NULL) || (($project -> acronym == NULL) && ($project -> title == NULL)))
25
			return '';
26
		return '<div class="srchRow"><h4' . ($project -> sc39 ? (' class="sc39" title="' . JText :: _('SPECIAL_CLAUSE_39') . '"') : '') . '>' . (($project -> id == NULL) ? '' : ('<a ' . 'href="' . JRoute :: _('index.php?option=com_openaire&view=project&projectId=' . $project -> id) . '">')) . $project -> acronym . ((($project -> acronym == NULL) || ($project -> title == NULL)) ? '' : ' - ') . $project -> title . (($project -> code == NULL) ? '' : (' ('. $project -> code . ')')) . (($project -> id == NULL) ? '' : ('</a>')) . '</h4>' . ProjectHelper :: _formatData($project, $itemId) . '</div>';
27
	}
28
	
29
        public static function formatFunder($funder){
30
            switch ($funder){
31
                case "FP7":
32
                    return "Eur. Com.";
33
                break;
34
                case "WT":
35
                    return "Wel. Trust";
36
                break;
37
                 default:
38
                     return $funder;
39
                    
40
            }
41
        }
42
        
43
	public static function _formatData($project, $itemId) {
44
		if ($project == NULL)
45
			return '';
46
		$years = ProjectHelper :: _formatYears($project -> startYear, $project -> endYear);
47
		$organizations = ProjectHelper :: _formatOrganizations($project -> organizations, $itemId);		
48
		return (($project -> funder == NULL) && ($organizations == NULL) && ($years == NULL)) ? '' : ('<div class="biblio">' . $project -> funder . ((($project -> funder == NULL) || ($years == NULL)) ? '' : ' ') . $years . (((($project -> funder == NULL) && ($years == NULL)) || ($organizations == NULL)) ? '' : '<br />') . (($organizations == NULL) ? '' : (JText :: _('PARTICIPANTS_') . ' ' . $organizations)) . '</div>');
49
	}
50
	
51
	public static function _formatYears($startYear, $endYear) {
52
		return (($startYear == NULL) && ($endYear == NULL)) ? '' : ('<span class="year">(' . $startYear . ((($startYear == NULL) || ($endYear == NULL)) ? '' : ' - ') . $endYear . ')</span>');
53
	}
54
	
55
	public static function _formatOrganizations($organizations, $itemId) {
56
		$organizations = ($organizations == NULL) ? NULL : array_filter(array_map(function ($organization) use ($itemId) {return ProjectHelper :: _formatOrganization($organization, $itemId);}, $organizations));
57
		return ($organizations == NULL) ? '' : (implode(', ' , array_slice($organizations, 0, ProjectHelper :: MAX_ORGANIZATIONS)) . ((count($organizations) > ProjectHelper :: MAX_ORGANIZATIONS) ? ',...' : ''));
58
	}
59
	
60
	public static function _formatOrganization($organization, $itemId) {
61
		return (($organization == NULL) || (($organization -> shortName == NULL) && ($organization -> name == NULL))) ? '' : ('<span class="organization">' . (($organization -> id == NULL) ? '' : ('<a href="' . JRoute :: _('index.php?option=com_openaire&view=organization&organizationId=' . $organization -> id) . '">')) . (($organization -> shortName == NULL) ? $organization -> name : $organization -> shortName) . (($organization -> id == NULL) ? '' : '</a>') . '</span>');
62
	}
63
}
64

    
(12-12/15)