sharemessage-8.x-1.x-dev/sharemessage.install
sharemessage.install
<?php
/**
* @file
* Update function for the Share Message module.
*/
use Drupal\Core\Session\AccountInterface;
/**
* Update override default settings and set the AddThis plugin.
*/
function sharemessage_update_8001() {
$config_factory = \Drupal::configFactory();
foreach ($config_factory->listAll('sharemessage.sharemessage') as $name) {
$config = $config_factory->getEditable($name);
$override_default_settings = $config->get('override_default_settings');
$config->clear('override_default_settings');
$config->set('settings.override_default_settings', $override_default_settings);
$config->set('plugin', 'addthis');
$config->save();
}
$config_factory->rename('sharemessage.settings', 'sharemessage.addthis');
}
/**
* Migrate 'message_enforcement' settings to new configuration.
*/
function sharemessage_update_8002() {
$config_factory = \Drupal::configFactory();
$addthis_config = $config_factory->getEditable('sharemessage.addthis');
$sharemessage_config = $config_factory->getEditable('sharemessage.settings');
$message_enforcement = $addthis_config->get('message_enforcement');
$addthis_config->clear('message_enforcement');
$sharemessage_config->set('message_enforcement', $message_enforcement);
$addthis_config->save();
$sharemessage_config->save();
}
/**
* Implements hook_install().
*/
function sharemessage_install() {
user_role_grant_permissions(AccountInterface::ANONYMOUS_ROLE, ['view sharemessages']);
user_role_grant_permissions(AccountInterface::AUTHENTICATED_ROLE, ['view sharemessages']);
}
/**
* Implements hook_requirements().
*/
function sharemessage_requirements($phase) {
$requirements = [];
if ($phase == 'runtime') {
$library_discovery = \Drupal::service('library.discovery');
$library = $library_discovery->getLibraryByName('sharemessage', 'socialshareprivacy');
$has_social_share = FALSE;
if (isset($library['library path'])) {
$has_social_share = is_file(ltrim($library['library path'], '/') . '/jquery.socialshareprivacy.min.js');
};
$storage = \Drupal::entityTypeManager()->getStorage('sharemessage');
$in_use = (int) $storage->getQuery()
->condition('plugin', 'socialshareprivacy')
->accessCheck(FALSE)
->count()
->execute();
$requirements['socialshareprivacy_library'] = [
'title' => t('Share message'),
'value' => t('Installed correctly'),
'description' => t('Share message module has been installed correctly.'),
];
if (!$has_social_share) {
if ($in_use) {
$requirements['socialshareprivacy_library']['value'] = t('Dependencies not found');
$requirements['socialshareprivacy_library']['severity'] = REQUIREMENT_ERROR;
$requirements['socialshareprivacy_library']['description'] = t('The <a href=":url">Social Share Privacy library</a> should be installed in <strong>/libraries/socialshareprivacy</strong>. The directory must contain jquery.socialshareprivacy.min.js and stylesheets/jquery.socialshareprivacy.min.css', [':url' => 'http://panzi.github.io/SocialSharePrivacy/']);
}
else {
$requirements['socialshareprivacy_library']['value'] = t('Social Share Privacy plugin');
$requirements['socialshareprivacy_library']['severity'] = REQUIREMENT_INFO;
$requirements['socialshareprivacy_library']['description'] = t('Share message adds the Social Share Privacy plugin, please visit <a href=":url">this page</a> for download instructions and place the library in <strong>/libraries/socialshareprivacy</strong>. The directory must contain jquery.socialshareprivacy.min.js and stylesheets/jquery.socialshareprivacy.min.css.', [':url' => 'http://panzi.github.io/SocialSharePrivacy/']);
}
}
}
return $requirements;
}
/**
* @} End of "addtogroup updates-8.0.0-beta".
*/
