class ModalPageHelperService in Modal 4.0.x
Same name and namespace in other branches
- 4.1.x src/Service/ModalPageHelperService.php \Drupal\modal_page\Service\ModalPageHelperService
Modal Page Helper Service Class.
Hierarchy
- class \Drupal\modal_page\Service\ModalPageHelperService uses StringTranslationTrait
Expanded class hierarchy of ModalPageHelperService
1 file declares its use of ModalPageHelperService
- ModalAjaxController.php in src/
Controller/ ModalAjaxController.php
1 string reference to 'ModalPageHelperService'
1 service uses ModalPageHelperService
File
- src/
Service/ ModalPageHelperService.php, line 14
Namespace
Drupal\modal_page\ServiceView source
class ModalPageHelperService {
use StringTranslationTrait;
/**
* The language manager.
*
* @var \Drupal\Core\Language\LanguageManagerInterface
*/
protected $languageManager;
/**
* The user current.
*
* @var \Drupal\Core\Session\AccountProxyInterface
*/
protected $loggedUser;
/**
* The entity type manager.
*
* @var \Drupal\Core\Entity\EntityTypeManagerInterface
*/
protected $entityTypeManager;
/**
* Construct.
*/
public function __construct(LanguageManagerInterface $languageManager, AccountProxyInterface $loggedUser, EntityTypeManagerInterface $entityManager) {
$this->languageManager = $languageManager;
$this->loggedUser = $loggedUser;
$this->entityTypeManager = $entityManager;
}
/**
* Method to verify if User Has Access on Modal.
*/
public function verifyIfUserHasAccessOnModal($modal) {
$modalIsPublic = $this
->verifyIfModalIsAvailableForEveryone($modal);
// If Modal is Public return TRUE.
if ($modalIsPublic) {
return TRUE;
}
$user = $this->entityTypeManager
->getStorage('user')
->load($this->loggedUser
->id());
$modalRoles = $modal
->getRoles();
foreach ($modalRoles as $role) {
$userHasRole = $user
->hasRole($role);
// If user has role return TRUE.
if ($userHasRole) {
return TRUE;
}
}
return FALSE;
}
/**
* Method to verify if Modal is available for everyone.
*/
public function verifyIfModalIsAvailableForEveryone($modal) {
$roles = $modal
->getRoles();
if (empty(array_filter($roles))) {
return TRUE;
}
return FALSE;
}
/**
* Method to Get Modal Options.
*/
public function getModalOptions($modal) {
$modalOptions = [
'id' => $modal
->id(),
'auto_open' => $modal
->getAutoOpen(),
'open_modal_on_element_click' => $modal
->getOpenModalOnElementClick(),
];
$modalOptions = Json::encode($modalOptions);
return $modalOptions;
}
/**
* Method with Entity Presave.
*/
public function entityPresave(&$entity) {
// Default value only for Modals.
if (empty($entity
->bundle()) || $entity
->bundle() != 'modal') {
return;
}
// Set Default value for Label.
if ($entity
->getLabel() === NULL) {
// Get Default Label.
$defaultLabel = (string) $this
->t('Modal generated at timestamp: @timestamp@', [
'@timestamp@' => time(),
]);
// Set Label.
$entity
->setLabel($defaultLabel);
// Display Title as false.
$entity
->setDisplayTitle(FALSE);
}
// Default value for Display Title.
if ($entity
->getDisplayTitle() === NULL) {
$entity
->setDisplayTitle(TRUE);
}
// Default value for Modal Type.
if ($entity
->getType() === NULL) {
$entity
->setType('page');
}
// Default value for Pages.
if ($entity
->getPages() === NULL) {
$entity
->setPages('');
}
// Default value for auto-open.
if ($entity
->getAutoOpen() === NULL) {
$entity
->setAutoOpen(TRUE);
}
// Default value for Modal Header.
if ($entity
->getEnableModalHeader() === NULL) {
$entity
->setEnableModalHeader(TRUE);
}
// Default value for Button X.
if ($entity
->getDisplayButtonXclose() === NULL) {
$entity
->setDisplayButtonXclose(TRUE);
}
// Default value on Top Right Button Label.
if ($entity
->getTopRightButtonLabel() === NULL) {
$entity
->setTopRightButtonLabel('x');
}
// Default value for Horizontal Line Header.
if ($entity
->getInsertHorizontalLineHeader() === NULL) {
$entity
->setInsertHorizontalLineHeader(TRUE);
}
// Default value for Horizontal line.
if ($entity
->getInsertHorizontalLineFooter() === NULL) {
$entity
->setInsertHorizontalLineFooter(TRUE);
}
// Default value for Modal.
if ($entity
->getEnableModalFooter() === NULL) {
$entity
->setEnableModalFooter(TRUE);
}
// Default value on Enable Right Button.
if ($entity
->getEnableRightButton() === NULL) {
$entity
->setEnableRightButton(TRUE);
}
// Default value OK Label Button.
if ($entity
->getOkLabelButton() === NULL) {
$entity
->setOkLabelButton((string) $this
->t('OK'));
}
// Default value Show Option.
if ($entity
->getEnableDontShowAgainOption() === NULL) {
$entity
->setEnableDontShowAgainOption(TRUE);
}
// Default value for Don't Show Again Label.
if ($entity
->getDontShowAgainLabel() === NULL) {
$entity
->setDontShowAgainLabel((string) $this
->t("Don't show again"));
}
// Default value for Get Modal size.
if ($entity
->getModalSize() === NULL) {
$entity
->setModalSize('modal-md');
}
// Default value for Modal Esc Key.
if ($entity
->getCloseModalEscKey() === NULL) {
$entity
->setCloseModalEscKey(TRUE);
}
// Default value for Modal Outside.
if ($entity
->getCloseModalClickingOutside() === NULL) {
$entity
->setCloseModalClickingOutside(TRUE);
}
// Default value Published.
if ($entity
->getPublished() === NULL) {
$entity
->setPublished(TRUE);
}
// Default value for Roles.
if ($entity
->getRoles() === NULL) {
$entity
->setRoles([]);
}
// Default value for Languages to Show.
if ($entity
->getLanguagesToShow() === NULL) {
$entity
->setLanguagesToShow([]);
}
// Default value for Languages to Show.
if ($entity
->getModalClass() === NULL) {
$entity
->setModalClass('');
}
// Default value for Enable Left Button.
if ($entity
->getEnableLeftButton() === NULL) {
$entity
->setEnableLeftButton(FALSE);
}
// Default value for Left Label Button.
if ($entity
->getLeftLabelButton() === NULL) {
$entity
->setLeftLabelButton($this
->t('Dismiss'));
}
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ModalPageHelperService:: |
protected | property | The entity type manager. | |
ModalPageHelperService:: |
protected | property | The language manager. | |
ModalPageHelperService:: |
protected | property | The user current. | |
ModalPageHelperService:: |
public | function | Method with Entity Presave. | |
ModalPageHelperService:: |
public | function | Method to Get Modal Options. | |
ModalPageHelperService:: |
public | function | Method to verify if Modal is available for everyone. | |
ModalPageHelperService:: |
public | function | Method to verify if User Has Access on Modal. | |
ModalPageHelperService:: |
public | function | Construct. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 4 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |