266 $this->providers[] = $provider;
275 foreach ($this as $provider) {
276 if ($provider->getId() != $providerId) {
293 $conditions[] =
$DIC->database()->in(
'id', $this->
getIdsFilter(),
false,
'integer');
301 $conditions[] =
"availability = " .
$DIC->database()->quote(
310 $conditions[] =
"global = " .
$DIC->database()->quote(1,
'integer');
313 $conditions[] =
"global = " .
$DIC->database()->quote(0,
'integer');
324 $conditions[] =
$DIC->database()->like(
'title',
'text',
"%{$this->getTitleFilter()}%");
332 $conditions[] =
$DIC->database()->like(
'keywords',
'text',
"%{$this->getKeywordFilter()}%");
340 $conditions[] =
"external_provider = " .
$DIC->database()->quote((
int) $this->
getIsExternalFilter(),
'integer');
348 if (!count($conditions)) {
352 return implode(
"\n\t\t\tAND ", $conditions);
359 FROM lti_ext_provider
360 WHERE {$this->getWhereExpression()}
372 while ($row =
$DIC->database()->fetchAssoc(
$res)) {
374 $provider->assignFromDbRow($row);
375 $this->
add($provider);
384 SELECT 'untrashed' query, oset.provider_id, COUNT(oset.obj_id) cnt
385 FROM lti_consumer_settings oset
386 INNER JOIN object_reference oref
387 ON oref.obj_id = oset.obj_id
388 AND oref.deleted IS NULL
389 GROUP BY oset.provider_id
393 SELECT 'trashed' query, oset.provider_id, COUNT(oset.obj_id) cnt
394 FROM lti_consumer_settings oset
395 INNER JOIN object_reference oref
396 ON oref.obj_id = oset.obj_id
397 AND oref.deleted IS NOT NULL
398 GROUP BY oset.provider_id
401 while ($row =
$DIC->database()->fetchAssoc(
$res)) {
402 if ($row[
'query'] ==
'untrashed') {
403 $this->usagesUntrashed[ $row[
'provider_id'] ] = (int) $row[
'cnt'];
404 } elseif ($row[
'query'] ==
'trashed') {
405 $this->usagesTrashed[ $row[
'provider_id'] ] = (int) $row[
'cnt'];
425 return isset($this->usagesUntrashed[$providerId]) && $this->usagesUntrashed[$providerId];
434 return isset($this->usagesTrashed[$providerId]) && $this->usagesTrashed[$providerId];
444 $tableData = array();
446 foreach ($this as $provider) {
449 $tblRow[
'id'] = $provider->getId();
450 $tblRow[
'title'] = $provider->getTitle();
451 $tblRow[
'description'] = $provider->getDescription();
452 $tblRow[
'category'] = $provider->getCategory();
453 $tblRow[
'keywords'] = $provider->getKeywordsArray();
454 $tblRow[
'outcome'] = $provider->getHasOutcome();
455 $tblRow[
'external'] = $provider->isExternalProvider();
456 $tblRow[
'provider_key_customizable'] = $provider->isProviderKeyCustomizable();
457 $tblRow[
'availability'] = $provider->getAvailability();
458 $tblRow[
'creator'] = $provider->getCreator();
459 $tblRow[
'accepted_by'] = $provider->getAcceptedBy();
461 if ($provider->getProviderIcon()->exists()) {
462 $tblRow[
'icon'] = $provider->getProviderIcon()->getAbsoluteFilePath();
465 $tblRow[
'usages_untrashed'] = 0;
466 if (isset($this->usagesUntrashed[$provider->getId()])) {
467 $tblRow[
'usages_untrashed'] = $this->usagesUntrashed[$provider->getId()];
470 $tblRow[
'usages_trashed'] = 0;
471 if (isset($this->usagesTrashed[$provider->getId()])) {
472 $tblRow[
'usages_trashed'] = $this->usagesTrashed[$provider->getId()];
475 $tableData[] = $tblRow;
486 if (!(
bool) $tableRow[
'usages_trashed'] && !(
bool) $tableRow[
'usages_untrashed']) {
489 foreach ($this->
loadUsedBy($tableRow[
'id']) as $usedByObjId => $usedByData) {
490 $tableData[
$i] = $tableRow;
491 $tableData[
$i][
'usedByObjId'] = $usedByObjId;
492 $tableData[
$i][
'usedByRefId'] = $usedByData[
'ref_id'];
493 $tableData[
$i][
'usedByTitle'] = $usedByData[
'title'];
494 $tableData[
$i][
'usedByIsTrashed'] = $usedByData[
'trashed'];
506 $pId =
$DIC->database()->quote($providerId,
'integer');
508 "SELECT oset.obj_id AS obj_id, oref.ref_id AS ref_id, oref.deleted as trashed, odata.title AS title" .
509 " FROM lti_consumer_settings oset, object_reference oref, object_data odata" .
510 " WHERE oset.provider_id = " . $pId .
511 " AND oref.obj_id = oset.obj_id" .
512 " AND odata.obj_id = oset.obj_id"
514 while ($row =
$DIC->database()->fetchAssoc(
$res)) {
515 $retArr[$row[
'obj_id']] = [
516 'ref_id' => $row[
'ref_id'],
517 'title' => $row[
'title'],
518 'trashed' =>
null !== $row[
'trashed'] ?
true : false
526 return current($this->providers);
530 return next($this->providers);
534 return key($this->providers);
538 return key($this->providers) !==
null;
542 return reset($this->providers);
An exception for terminatinating execution or to throw for unit testing.
return true
Flag indicating whether or not HTTP headers will be sent when outputting captcha image/audio.
setScopeFilter($scopeFilter)
setAvailabilityFilter(string $availabilityFilter)
getIsProviderKeyCustomizableFilter()
setTitleFilter(string $titleFilter)
setKeywordFilter(string $keywordFilter)
setIdsFilter(array $idsFilter)
setCategoryFilter(string $categoryFilter)
setIsProviderKeyCustomizableFilter($isProviderKeyCustomizableFilter)
setCreatorFilter($creatorFilter)
setHasOutcomeFilter($hasOutcomeFilter)
setProviders(array $providers)
$isProviderKeyCustomizableFilter
add(ilLTIConsumeProvider $provider)
hasUsages(int $providerId)
setIsExternalFilter($isExternalFilter)
hasTrashedUsages(int $providerId)
hasUntrashedUsages(int $providerId)
const AVAILABILITY_CREATE
const AVAILABILITY_EXISTING
foreach($_POST as $key=> $value) $res