1
|
<?php
|
2
|
|
3
|
defined('_JEXEC') or die('Access denied');
|
4
|
|
5
|
jimport('joomla.methods');
|
6
|
|
7
|
// This helper formats organizations.
|
8
|
abstract class OrganizationHelper {
|
9
|
const MAX_PROJECTS = 15;
|
10
|
|
11
|
// Format an organization.
|
12
|
// $organization the organization to format
|
13
|
// $itemId the item ID to use for internal links
|
14
|
// return a string containing the full HTML for the organization or an empty string if any errors occur
|
15
|
public static function formatOrganization($organization, $itemId) {
|
16
|
if (($organization == NULL) || (($organization -> name == NULL) && ($organization -> shortName == NULL)))
|
17
|
return '';
|
18
|
$projects = OrganizationHelper :: _formatProjects($organization -> projects, $itemId);
|
19
|
return '<div class="srchRow"><h4>' . (($organization -> id == NULL) ? '' : ('<a href="' . JRoute :: _('index.php?option=com_openaire&view=organization&Itemid=' . $itemId . '&organizationId=' . $organization -> id) . '">')) . $organization -> name . ((($organization -> name == NULL) || ($organization -> shortName == NULL)) ? '' : ' ') . (($organization -> shortName == NULL) ? '' : ('(' . $organization -> shortName . ')')) . (($organization -> id == NULL) ? '' : '</a>') . '</h4>' . ((($organization -> country) && ($projects == NULL)) ? '' : ('<div class="biblio">' . (($organization -> country == NULL) ? '' : (JText :: _('COUNTRY_') . ' ' . $organization -> country)) . ((($organization -> country == NULL) || ($projects == NULL)) ? '' : '<br />') . $projects . '</div>')) . '</div>';
|
20
|
}
|
21
|
|
22
|
public static function _formatProjects($projects, $itemId) {
|
23
|
$projects = ($projects == NULL) ? NULL : array_filter(array_map(function ($project) use ($itemId) {return OrganizationHelper :: _formatProject($project, $itemId);}, $projects));
|
24
|
return ($projects == NULL) ? '' : (JText :: _('PROJECTS_') . ' ' . implode(', ', array_slice($projects, 0, OrganizationHelper :: MAX_PROJECTS)) . ((count($projects) > OrganizationHelper :: MAX_PROJECTS) ? ',...' : ''));
|
25
|
}
|
26
|
|
27
|
public static function _formatProject($project, $itemId) {
|
28
|
return (($project -> acronym == NULL) && ($project -> title == NULL)) ? '' : ('<span class="proj">' . (($project -> id == NULL) ? '' : ('<a href="' . JRoute :: _('index.php?option=com_openaire&view=project&Itemid=' . $itemId . '&projectId=' . $project -> id) . '">')) . (($project -> acronym == NULL) ? $project -> title : $project -> acronym) . (($project -> code == NULL) ? '' : (' (' . $project -> code . ')')) . (($project -> id == NULL) ? '' : '</a>') . '</span>');
|
29
|
}
|
30
|
}
|
31
|
|