ILIAS  trunk Revision v11.0_alpha-1744-gb0451eebef4
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
ILIAS\Repository\Provider\RepositoryOpenGraphExposer Class Reference
+ Inheritance diagram for ILIAS\Repository\Provider\RepositoryOpenGraphExposer:
+ Collaboration diagram for ILIAS\Repository\Provider\RepositoryOpenGraphExposer:

Public Member Functions

 __construct (\ILIAS\DI\Container $dic)
 
 isInterestedInContexts ()
 
 getContentModification (CalledContexts $screen_context_stack)
 
- Public Member Functions inherited from ILIAS\GlobalScreen\Scope\Layout\Provider\AbstractModificationProvider
 __construct (Container $dic)
 
 getContentModification (CalledContexts $screen_context_stack)
 
 getLogoModification (CalledContexts $screen_context_stack)
 
 getResponsiveLogoModification (CalledContexts $screen_context_stack)
 
 getMainBarModification (CalledContexts $screen_context_stack)
 
 getMetaBarModification (CalledContexts $screen_context_stack)
 
 getBreadCrumbsModification (CalledContexts $screen_context_stack)
 
 getFooterModification (CalledContexts $screen_context_stack)
 
 getPageBuilderDecorator (CalledContexts $screen_context_stack)
 
 getTitleModification (CalledContexts $screen_context_stack)
 
 getShortTitleModification (CalledContexts $screen_context_stack)
 
 getViewTitleModification (CalledContexts $screen_context_stack)
 
- Public Member Functions inherited from ILIAS\GlobalScreen\Provider\AbstractProvider
 __construct (protected Container $dic)
 
 getFullyQualifiedClassName ()
 
 getProviderNameForPresentation ()
 

Protected Member Functions

 getObjectOfContext (ScreenContext $context)
 
 getDefaultImage ()
 
 getLanguageCodesFromLOM (int $object_id, string $object_type)
 
 ensureRepoContext (CalledContexts $screen_context_stack)
 
 getPresentationImage (\ilObject $object)
 
- Protected Member Functions inherited from ILIAS\GlobalScreen\Provider\AbstractProvider
 globalScreen ()
 

Private Member Functions

 exposeObjectOpenGraphMetaData (\ilObject $object)
 
 exposeDefaultOpenGraphMetaData ()
 

Private Attributes

LOMServices $lom_services
 
bool $fetch_tile_image = false
 

Additional Inherited Members

- Protected Attributes inherited from ILIAS\GlobalScreen\Scope\Layout\Provider\AbstractModificationProvider
ContextCollection $context_collection
 
DataFactory $data
 
ModificationFactory $factory
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ILIAS\Repository\Provider\RepositoryOpenGraphExposer::__construct ( \ILIAS\DI\Container  $dic)

Definition at line 43 of file RepositoryOpenGraphExposer.php.

References ILIAS\GlobalScreen\Provider\__construct().

44  {
45  $this->lom_services = $dic->learningObjectMetadata();
47  }
__construct(Container $dic, ilPlugin $plugin)
$dic
Definition: result.php:31
+ Here is the call graph for this function:

Member Function Documentation

◆ ensureRepoContext()

ILIAS\Repository\Provider\RepositoryOpenGraphExposer::ensureRepoContext ( CalledContexts  $screen_context_stack)
protected

Definition at line 166 of file RepositoryOpenGraphExposer.php.

References ILIAS\GlobalScreen\ScreenContext\Stack\ContextCollection\hasMatch(), and ILIAS\GlobalScreen\ScreenContext\Stack\ContextCollection\repository().

Referenced by ILIAS\Repository\Provider\RepositoryOpenGraphExposer\getContentModification().

166  : CalledContexts
167  {
168  $collection = new ContextCollection(
169  $this->dic->globalScreen()->tool()->context()->availableContexts()
170  );
171  $collection = $collection->repository();
172 
173  if (!$screen_context_stack->hasMatch($collection)) {
174  $screen_context_stack = $screen_context_stack->repository();
175  }
176  return $screen_context_stack;
177  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ exposeDefaultOpenGraphMetaData()

ILIAS\Repository\Provider\RepositoryOpenGraphExposer::exposeDefaultOpenGraphMetaData ( )
private

Definition at line 108 of file RepositoryOpenGraphExposer.php.

References ILIAS\Repository\Provider\RepositoryOpenGraphExposer\getDefaultImage(), and ILIAS\GlobalScreen\Provider\AbstractProvider\globalScreen().

Referenced by ILIAS\Repository\Provider\RepositoryOpenGraphExposer\getContentModification().

108  : void
109  {
110  $uri = $this->data->uri(ILIAS_HTTP_PATH);
111 
112  $this->globalScreen()->layout()->meta()->addOpenGraphMetaDatum(
113  $this->data->openGraphMetadata()->website(
114  $uri,
115  $this->getDefaultImage(),
116  $this->dic->language()->txt('permission_denied'),
117  $uri->getHost(),
118  )
119  );
120  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ exposeObjectOpenGraphMetaData()

ILIAS\Repository\Provider\RepositoryOpenGraphExposer::exposeObjectOpenGraphMetaData ( \ilObject  $object)
private

Definition at line 77 of file RepositoryOpenGraphExposer.php.

References ilLink\_getStaticLink(), ilObject\getId(), ilObjectTranslation\getInstance(), ILIAS\Repository\Provider\RepositoryOpenGraphExposer\getLanguageCodesFromLOM(), ilObject\getLongDescription(), ILIAS\Repository\Provider\RepositoryOpenGraphExposer\getPresentationImage(), ilObject\getPresentationTitle(), ilObject\getRefId(), ilObject\getType(), and ILIAS\GlobalScreen\Provider\AbstractProvider\globalScreen().

Referenced by ILIAS\Repository\Provider\RepositoryOpenGraphExposer\getContentModification().

77  : void
78  {
79  $object_translation = \ilObjectTranslation::getInstance($object->getId());
80 
81  $additional_locale_count = 0;
82  $additional_locales = [];
83 
84  foreach ($this->getLanguageCodesFromLOM($object->getId(), $object->getType()) as $language_code) {
85  if ($language_code !== $object_translation->getDefaultLanguage()) {
86  $additional_locales[] = $language_code;
87  $additional_locale_count++;
88  }
89  }
90 
91  $uri = $this->data->uri(\ilLink::_getStaticLink($object->getRefId(), $object->getType()));
92 
93  $image = $this->getPresentationImage($object);
94 
95  $this->globalScreen()->layout()->meta()->addOpenGraphMetaDatum(
96  $this->data->openGraphMetadata()->website(
97  $uri,
98  $image,
99  $object->getPresentationTitle(),
100  $uri->getHost(),
101  $object->getLongDescription() . ' ', // we add a space to ensure the description is not cut off
102  $object_translation->getDefaultLanguage(),
103  (1 < $additional_locale_count) ? array_slice($additional_locales, 1) : []
104  )
105  );
106  }
static getInstance(int $obj_id)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getContentModification()

ILIAS\Repository\Provider\RepositoryOpenGraphExposer::getContentModification ( CalledContexts  $screen_context_stack)
Parameters
CalledContexts$screen_context_stack
Returns
ContentModification

Implements ILIAS\GlobalScreen\Scope\Layout\Provider\ModificationProvider.

Definition at line 59 of file RepositoryOpenGraphExposer.php.

References $ref_id, ILIAS\Repository\Provider\RepositoryOpenGraphExposer\ensureRepoContext(), ILIAS\Repository\Provider\RepositoryOpenGraphExposer\exposeDefaultOpenGraphMetaData(), ILIAS\Repository\Provider\RepositoryOpenGraphExposer\exposeObjectOpenGraphMetaData(), ILIAS\Repository\Provider\RepositoryOpenGraphExposer\getObjectOfContext(), and null.

59  : ?ContentModification
60  {
61  $current_context = $this->ensureRepoContext($screen_context_stack)->current();
62  $ref_id = $current_context->getReferenceId()->toInt();
63 
64  if (
65  $ref_id > 0
66  && $this->dic->access()->checkAccess('visible', '', $ref_id)
67  && null !== ($object = $this->getObjectOfContext($current_context))
68  ) {
69  $this->exposeObjectOpenGraphMetaData($object);
70  } else {
72  }
73 
74  return null;
75  }
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
$ref_id
Definition: ltiauth.php:65
+ Here is the call graph for this function:

◆ getDefaultImage()

ILIAS\Repository\Provider\RepositoryOpenGraphExposer::getDefaultImage ( )
protected

Definition at line 137 of file RepositoryOpenGraphExposer.php.

Referenced by ILIAS\Repository\Provider\RepositoryOpenGraphExposer\exposeDefaultOpenGraphMetaData(), and ILIAS\Repository\Provider\RepositoryOpenGraphExposer\getPresentationImage().

137  : OGImage
138  {
139  $image_path_resolver = new \ilImagePathResolver();
140 
141  return $this->data->openGraphMetadata()->image(
142  $this->data->uri(
143  ILIAS_HTTP_PATH . ltrim(
144  $image_path_resolver->resolveImagePath(
145  'logo/Sharing.jpg'
146  ),
147  '.'
148  )
149  ),
150  'image/jpg'
151  );
152  }
+ Here is the caller graph for this function:

◆ getLanguageCodesFromLOM()

ILIAS\Repository\Provider\RepositoryOpenGraphExposer::getLanguageCodesFromLOM ( int  $object_id,
string  $object_type 
)
protected
Returns
string[]

Definition at line 157 of file RepositoryOpenGraphExposer.php.

Referenced by ILIAS\Repository\Provider\RepositoryOpenGraphExposer\exposeObjectOpenGraphMetaData().

157  : \Generator
158  {
159  $languages_path = $this->lom_services->paths()->languages();
160  $reader = $this->lom_services->read($object_id, 0, $object_type, $languages_path);
161  foreach ($reader->allData($languages_path) as $lang_data) {
162  yield $lang_data->value();
163  }
164  }
+ Here is the caller graph for this function:

◆ getObjectOfContext()

ILIAS\Repository\Provider\RepositoryOpenGraphExposer::getObjectOfContext ( ScreenContext  $context)
protected

Definition at line 122 of file RepositoryOpenGraphExposer.php.

References ilObjectFactory\getInstanceByRefId(), ILIAS\GlobalScreen\ScreenContext\ScreenContext\getReferenceId(), ILIAS\GlobalScreen\ScreenContext\ScreenContext\hasReferenceId(), and null.

Referenced by ILIAS\Repository\Provider\RepositoryOpenGraphExposer\getContentModification().

122  : ?\ilObject
123  {
124  if (!$context->hasReferenceId()) {
125  return null;
126  }
127 
128  try {
129  $current_object = \ilObjectFactory::getInstanceByRefId($context->getReferenceId()->toInt());
131  $current_object = null;
132  } finally {
133  return $current_object;
134  }
135  }
$context
Definition: webdav.php:31
Class ilObject Basic functions for all objects.
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
static getInstanceByRefId(int $ref_id, bool $stop_on_error=true)
get an instance of an Ilias object by reference id
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getPresentationImage()

ILIAS\Repository\Provider\RepositoryOpenGraphExposer::getPresentationImage ( \ilObject  $object)
protected

Definition at line 179 of file RepositoryOpenGraphExposer.php.

References Vendor\Package\$e, ILIAS\Repository\Provider\RepositoryOpenGraphExposer\getDefaultImage(), ilObject\getObjectProperties(), and null.

Referenced by ILIAS\Repository\Provider\RepositoryOpenGraphExposer\exposeObjectOpenGraphMetaData().

179  : OGImage
180  {
181  $image_factory = $this->dic->ui()->factory()->image();
182  $image = $this->getDefaultImage();
183  if (!$this->fetch_tile_image) {
184  return $image;
185  }
186  try {
187  // Use the tile image if available
188  $tile_image = $object->getObjectProperties()->getPropertyTileImage()->getTileImage();
189  if ($tile_image !== null && $tile_image->getRid() !== null) {
190  $uri_string = $tile_image->getImage($image_factory)->getAdditionalHighResSources()['960']
191  ?? $tile_image->getImage($image_factory)->getSource();
192 
193  $image = $this->data->openGraphMetadata()->image(
194  $this->data->uri($uri_string),
195  'image/jpg'
196  );
197  }
198  } catch (\Throwable $e) {
199  }
200  return $image;
201  }
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isInterestedInContexts()

ILIAS\Repository\Provider\RepositoryOpenGraphExposer::isInterestedInContexts ( )
Returns
ContextCollection

Implements ILIAS\GlobalScreen\ScreenContext\ScreenContextAwareProvider.

Definition at line 49 of file RepositoryOpenGraphExposer.php.

References ILIAS\GlobalScreen\ScreenContext\Stack\ContextCollection\external().

49  : ContextCollection
50  {
51  // the exposer is interested in any context, BUT the repository context
52  // will be handled differently.
53  return $this->context_collection
54  ->internal()
55  ->external()
56  ->repository();
57  }
+ Here is the call graph for this function:

Field Documentation

◆ $fetch_tile_image

bool ILIAS\Repository\Provider\RepositoryOpenGraphExposer::$fetch_tile_image = false
private

Definition at line 40 of file RepositoryOpenGraphExposer.php.

◆ $lom_services

LOMServices ILIAS\Repository\Provider\RepositoryOpenGraphExposer::$lom_services
private

Definition at line 38 of file RepositoryOpenGraphExposer.php.


The documentation for this class was generated from the following file: