Adding verification of the session publication date if date indicated -refs BT#10751

1.10.x
Nicolas Ducoulombier 10 years ago
parent 116b5a6cc1
commit 530d559c8b
  1. 14
      main/inc/lib/sessionmanager.lib.php
  2. 4
      plugin/advanced_subscription/src/HookAdvancedSubscription.php

@ -6057,7 +6057,7 @@ class SessionManager
* @param array $extraFields A list of fields to be scanned and returned * @param array $extraFields A list of fields to be scanned and returned
* @return mixed * @return mixed
*/ */
public static function getShortSessionListAndExtraByCategory($categoryId, $target, $extraFields = null) public static function getShortSessionListAndExtraByCategory($categoryId, $target, $extraFields = null, $publicationDate = null)
{ {
// Init variables // Init variables
$categoryId = (int) $categoryId; $categoryId = (int) $categoryId;
@ -6075,6 +6075,16 @@ class SessionManager
$fieldsArray[] = Database::escape_string($field); $fieldsArray[] = Database::escape_string($field);
} }
$extraFieldType = \Chamilo\CoreBundle\Entity\ExtraField::SESSION_FIELD_TYPE; $extraFieldType = \Chamilo\CoreBundle\Entity\ExtraField::SESSION_FIELD_TYPE;
if (isset ($publicationDate)) {
$publicationDateString = $publicationDate->format('Y-m-d H:i:s');
$wherePublication = " AND id NOT IN (
SELECT sfv.item_id FROM $joinTable
WHERE
sf.extra_field_type = $extraFieldType AND
((sf.variable = 'publication_start_date' AND sfv.value > '$publicationDateString' and sfv.value != '') OR
(sf.variable = 'publication_end_date' AND sfv.value < '$publicationDateString' and sfv.value != ''))
)";
}
// Get the session list from session category and target // Get the session list from session category and target
$sessionList = Database::select( $sessionList = Database::select(
'id, name, access_start_date, access_end_date', 'id, name, access_start_date, access_end_date',
@ -6088,7 +6098,7 @@ class SessionManager
sfv.item_id = session.id AND sfv.item_id = session.id AND
sf.variable = 'target' AND sf.variable = 'target' AND
sfv.value = ? sfv.value = ?
)" => array($categoryId, $target), ) $wherePublication" => array($categoryId, $target),
), ),
) )
); );

@ -450,10 +450,12 @@ class HookAdvancedSubscription extends HookObserver implements
'vacancies', 'vacancies',
'schedule', 'schedule',
); );
$datePub = new DateTime();
$sessionList = SessionManager::getShortSessionListAndExtraByCategory( $sessionList = SessionManager::getShortSessionListAndExtraByCategory(
$sessionCategoryId, $sessionCategoryId,
$params['target'], $params['target'],
$fields $fields,
$datePub
); );
return $sessionList; return $sessionList;

Loading…
Cancel
Save