diff --git a/main/inc/lib/extra_field.lib.php b/main/inc/lib/extra_field.lib.php
index 449a2849f8..a52f97b1cb 100755
--- a/main/inc/lib/extra_field.lib.php
+++ b/main/inc/lib/extra_field.lib.php
@@ -1299,25 +1299,79 @@ class ExtraField extends Model
case self::FIELD_TYPE_TAG:
$variable = $field_details['variable'];
$field_id = $field_details['id'];
+ $separateValue = 0;
+ if (isset($separateExtraMultipleSelect[$field_details['variable']])) {
+ $separateValue = $separateExtraMultipleSelect[$field_details['variable']];
+ }
- $tagsSelect = $form->addSelect(
- "extra_{$field_details['variable']}",
- $field_details['display_text'],
- [],
- ['style' => 'width: 100%;']
- );
+ $selectedOptions = [];
- if ($useTagAsSelect == false) {
+ if ($separateValue > 0) {
+ $em = Database::getManager();
+ $fieldTags = $em
+ ->getRepository('ChamiloCoreBundle:ExtraFieldRelTag')
+ ->findBy(
+ [
+ 'fieldId' => $field_id,
+ 'itemId' => $itemId,
+ ]
+ );
+ // ofaj
+
+ for ($i = 0; $i < $separateValue; $i++) {
+ $tagsSelect = $form->addElement(
+ 'select',
+ 'extra_'.$field_details['variable'].'['.$i.']',
+ $customLabelsExtraMultipleSelect[$field_details['variable']][$i], //$field_details['display_text'],
+ null,
+ ['id' => 'extra_'.$field_details['variable'].'_'.$i]
+ );
+
+ if ($addEmptyOptionSelects) {
+ $tagsSelect->addOption(
+ '',
+ ''
+ );
+ }
+
+ foreach ($fieldTags as $fieldTag) {
+ $tag = $em->find('ChamiloCoreBundle:Tag', $fieldTag->getTagId());
+
+ if (empty($tag)) {
+ continue;
+ }
+
+ $tagsSelect->addOption(
+ $tag->getTag(),
+ $tag->getTag()
+ );
+ }
+ }
+ } else {
+ $tagsSelect = $form->addSelect(
+ "extra_{$field_details['variable']}",
+ $field_details['display_text'],
+ [],
+ ['style' => 'width: 100%;']
+ );
+
+ if ($useTagAsSelect === false) {
$tagsSelect->setAttribute('class', null);
}
- $tagsSelect->setAttribute('id', "extra_{$field_details['variable']}");
+ $tagsSelect->setAttribute(
+ 'id',
+ "extra_{$field_details['variable']}"
+ );
$tagsSelect->setMultiple(true);
$selectedOptions = [];
if ($this->type === 'user') {
// The magic should be here
- $user_tags = UserManager::get_user_tags($itemId, $field_details['id']);
+ $user_tags = UserManager::get_user_tags(
+ $itemId,
+ $field_details['id']
+ );
if (is_array($user_tags) && count($user_tags) > 0) {
foreach ($user_tags as $tag) {
@@ -1326,7 +1380,11 @@ class ExtraField extends Model
}
$tagsSelect->addOption(
$tag['tag'],
- $tag['tag']
+ $tag['tag'],
+ [
+ 'selected' => 'selected',
+ 'class' => 'selected',
+ ]
);
$selectedOptions[] = $tag['tag'];
}
@@ -1334,14 +1392,16 @@ class ExtraField extends Model
$url = api_get_path(WEB_AJAX_PATH).'user_manager.ajax.php';
} else {
$em = Database::getManager();
- $fieldTags = $em
- ->getRepository('ChamiloCoreBundle:ExtraFieldRelTag')
+ $fieldTags = $em->getRepository(
+ 'ChamiloCoreBundle:ExtraFieldRelTag'
+ )
->findBy(
[
'fieldId' => $field_id,
'itemId' => $itemId,
]
);
+
/** @var ExtraFieldRelTag $fieldTag */
foreach ($fieldTags as $fieldTag) {
/** @var Tag $tag */
@@ -1355,14 +1415,27 @@ class ExtraField extends Model
$tag->getTag()
);
$selectedOptions[] = $tag->getTag();
+ }
+
+ if (!empty($extraData) && isset($extraData['extra_'.$field_details['variable']])) {
+ $data = $extraData['extra_'.$field_details['variable']];
+ if (!empty($data)) {
+ foreach ($data as $option) {
+ $tagsSelect->addOption(
+ $option,
+ $option
+ );
+ }
+ }
}
if ($useTagAsSelect) {
- $fieldTags = $em
- ->getRepository('ChamiloCoreBundle:ExtraFieldRelTag')
- ->findBy([
+ $fieldTags = $em->getRepository('ChamiloCoreBundle:ExtraFieldRelTag')
+ ->findBy(
+ [
'fieldId' => $field_id,
- ]);
+ ]
+ );
$tagsAdded = [];
foreach ($fieldTags as $fieldTag) {
$tag = $em->find('ChamiloCoreBundle:Tag', $fieldTag->getTagId());
@@ -1413,6 +1486,8 @@ class ExtraField extends Model
});
";
}
+ }
+
break;
case self::FIELD_TYPE_TIMEZONE:
$form->addElement(
@@ -1793,9 +1868,11 @@ class ExtraField extends Model
if (status == google.maps.GeocoderStatus.OK) {
if (status != google.maps.GeocoderStatus.ZERO_RESULTS) {
map_{$field_details['variable']}.setCenter(results[0].geometry.location);
- if (!address) {
+ //if (!address) {
$('#extra_{$field_details['variable']}').val(results[0].formatted_address);
- }
+ $('#extra_{$field_details['variable']}_coordinates').val(
+ results[0].geometry.location.lat()+','+results[0].geometry.location.lng());
+ //}
var infowindow = new google.maps.InfoWindow({
content: '' + $('#extra_{$field_details['variable']}').val() + '',
size: new google.maps.Size(150, 50)
@@ -1833,7 +1910,7 @@ class ExtraField extends Model
id="geolocalization_extra_'.$field_details['variable'].'"
name="geolocalization_extra_'.$field_details['variable'].'"
type="submit">
- '.get_lang('Geolocalization').'
+ '.get_lang('SearchGeolocalization').'