query('SELECT fid FROM {aggregator_feed} WHERE title = :title', [':title' => $title])->fetchCol(); if (empty($fid)) { $feed = \Drupal::entityTypeManager()->getStorage('aggregator_feed')->create([ 'uuid' => \Drupal::service('uuid')->generate(), 'title' => $title, 'url' => 'https://uwaterloo.ca/web-resources/news/news.xml', 'created' => time(), ]); $feed->save(); } // Make sure the theme is installed. \Drupal::service('theme_installer')->install(['uw_theme_admin']); // Set it as the admin theme. $config = \Drupal::service('config.factory')->getEditable('system.theme'); $config->set('admin', 'uw_theme_admin')->save(); // Remove default "contact" form. \Drupal::entityTypeManager()->getStorage('webform')->load('contact')->delete(); } /** * Implements hook_uninstall(). */ function uw_sites_all_uninstall() { // phpcs:disable DrupalPractice.CodeAnalysis.VariableAnalysis.UnusedVariable $transaction = \Drupal::database()->startTransaction(); $title = "Web-resources news"; $database = \Drupal::database(); $fid = $database->query('SELECT fid FROM {aggregator_feed} WHERE title = :title', [':title' => $title])->fetchCol(); if (!empty($fid)) { $query = $database->delete('aggregator_feed'); $query->condition('fid', $fid); $query->execute(); $query = $database->delete('aggregator_item'); $query->condition('fid', $fid); $query->execute(); } } /** * Implements hook_update_N(). */ /** * Enables OFIS module. */ function uw_sites_all_update_8101(&$sandbox) { \Drupal::service('module_installer')->install(['uw_ws_ofis']); } /** * Enables UW CKEditor Plugins module. */ function uw_sites_all_update_8102(&$sandbox) { \Drupal::service('module_installer')->install(['uw_ckeditor_plugins']); } /** * Protect all Webforms with Honeypot. */ function uw_sites_all_update_8103() { $config = \Drupal::service('config.factory')->getEditable('webform.settings'); $config->set('third_party_settings.honeypot.honeypot', TRUE)->save(); } /** * Enable Override Node Options module and assigns permissions to roles. */ function uw_sites_all_update_8104() { \Drupal::service('module_installer')->install(['override_node_options']); // List of permissions needed to be applied to roles. $permissions = [ 'enter uw_ct_blog revision log entry', 'enter uw_ct_catalog_item revision log entry', 'enter uw_ct_contact revision log entry', 'enter uw_ct_event revision log entry', 'enter uw_ct_news_item revision log entry', 'enter uw_ct_profile revision log entry', 'enter uw_ct_web_page revision log entry', 'override uw_ct_blog promote to front page option', 'override uw_ct_blog published option', 'override uw_ct_blog revision option', 'override uw_ct_blog sticky option', 'override uw_ct_catalog_item published option', 'override uw_ct_catalog_item revision option', 'override uw_ct_contact published option', 'override uw_ct_contact revision option', 'override uw_ct_event promote to front page option', 'override uw_ct_event published option', 'override uw_ct_event revision option', 'override uw_ct_event sticky option', 'override uw_ct_news_item promote to front page option', 'override uw_ct_news_item published option', 'override uw_ct_news_item revision option', 'override uw_ct_news_item sticky option', 'override uw_ct_profile published option', 'override uw_ct_profile revision option', 'override uw_ct_web_page published option', 'override uw_ct_web_page revision option', ]; // Roles that require updated permissions. $role_ids = [ 'uw_role_site_manager', 'uw_role_content_editor', 'uw_role_content_author', ]; $roles = Role::loadMultiple($role_ids); // Grant all all roles. foreach ($permissions as $permission) { $roles['uw_role_site_manager']->grantPermission($permission); $roles['uw_role_content_editor']->grantPermission($permission); $roles['uw_role_content_author']->grantPermission($permission); } // Save role with new permissions. $roles['uw_role_site_manager']->save(); $roles['uw_role_content_editor']->save(); $roles['uw_role_content_author']->save(); } /** * Enables Quick Node Clone module. */ function uw_sites_all_update_8105(&$sandbox) { \Drupal::service('module_installer')->install(['quick_node_clone']); }