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
|
return ProjectHelper::formatFunder($project-> funder) . " > " . (($project -> acronym == NULL) ? ((strlen($project -> title) > OpenAireViewClaim3 :: MAX_TITLE) ? (substr($project -> title, 0, OpenAireViewClaim3 :: MAX_TITLE - strlen('...')) . '...') : $project -> title) : $project -> acronym) .
|
14
|
'<div style="display: none;">
|
15
|
<div id="' . $project -> id. '" class="tooltip">' . ProjectHelper :: formatProject($project, $itemId) .'</div>
|
16
|
</div>';
|
17
|
}
|
18
|
// Format a project.
|
19
|
// $project the project to format
|
20
|
// $itemId the item ID to use for internal links
|
21
|
// return a string containing the full HTML for the project or an empty string if any errors occur
|
22
|
public static function formatProject($project, $itemId) {
|
23
|
if (($project == NULL) || (($project -> acronym == NULL) && ($project -> title == NULL)))
|
24
|
return '';
|
25
|
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&Itemid=' . $itemId . '&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>';
|
26
|
}
|
27
|
|
28
|
public static function formatFunder($funder){
|
29
|
switch ($funder){
|
30
|
case "FP7":
|
31
|
return "Eur. Com.";
|
32
|
break;
|
33
|
case "WT":
|
34
|
return "Wel. Trust";
|
35
|
break;
|
36
|
}
|
37
|
}
|
38
|
|
39
|
public static function _formatData($project, $itemId) {
|
40
|
if ($project == NULL)
|
41
|
return '';
|
42
|
$years = ProjectHelper :: _formatYears($project -> startYear, $project -> endYear);
|
43
|
$organizations = ProjectHelper :: _formatOrganizations($project -> organizations, $itemId);
|
44
|
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>');
|
45
|
}
|
46
|
|
47
|
public static function _formatYears($startYear, $endYear) {
|
48
|
return (($startYear == NULL) && ($endYear == NULL)) ? '' : ('<span class="year">(' . $startYear . ((($startYear == NULL) || ($endYear == NULL)) ? '' : ' - ') . $endYear . ')</span>');
|
49
|
}
|
50
|
|
51
|
public static function _formatOrganizations($organizations, $itemId) {
|
52
|
$organizations = ($organizations == NULL) ? NULL : array_filter(array_map(function ($organization) use ($itemId) {return ProjectHelper :: _formatOrganization($organization, $itemId);}, $organizations));
|
53
|
return ($organizations == NULL) ? '' : (implode(', ' , array_slice($organizations, 0, ProjectHelper :: MAX_ORGANIZATIONS)) . ((count($organizations) > ProjectHelper :: MAX_ORGANIZATIONS) ? ',...' : ''));
|
54
|
}
|
55
|
|
56
|
public static function _formatOrganization($organization, $itemId) {
|
57
|
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&Itemid=' . $itemId . '&organizationId=' . $organization -> id) . '">')) . (($organization -> shortName == NULL) ? $organization -> name : $organization -> shortName) . (($organization -> id == NULL) ? '' : '</a>') . '</span>');
|
58
|
}
|
59
|
}
|
60
|
|