sector-8.x-2.0-alpha4/sector.install
sector.install
<?php
use Drupal\entityqueue\Entity\EntityQueue;
use Drupal\node\Entity\Node;
/**
* @file
* Install, update and uninstall functions for the profilename install profile.
*/
/**
* Implements hook_install().
*
* Perform actions to set up the site for this profile.
*
* @see system_install()
*/
function sector_install() {
//sector_starter
\Drupal::service('theme_installer')->install(['sector_starter']);
\Drupal::service('theme_installer')->install(['seven']);
\Drupal::service('module_installer')->install(['sector_default_content'], FALSE);
\Drupal::configFactory()
->getEditable('system.theme')
->set('default', 'sector_starter')
->set('admin', 'seven')
->save();
// Set default pages.
\Drupal::configFactory()->getEditable('system.site')
->set('page.403', '/node/14')
->set('page.404', '/node/5')
->set('page.front', '/node/10')
->save(TRUE);
// Cleanup functions.
_create_entityqueues();
_create_users();
_generate_alias();
}
/**
* Loads the two entityqueues on the front page and adds the content to them.
*/
function _create_entityqueues() {
// Load entityqueue. Need to load items next.
$queue_storage = \Drupal::entityManager()->getStorage('entity_subqueue');
$informationalQueue = $queue_storage->load('information_tiles');
$promotionalLinksQueue = $queue_storage->load('promotional_links');
$promotionalTilesQueue = $queue_storage->load('promotional_tiles');
$InformationTileEntityIds = array(
'8',
'11',
'4',
);
$promotionalLinksEntityIds = array(
'8',
'6',
'4',
'7',
'11',
'19',
);
$promotionalTilesEntityIds = array(
'23',
'24',
'25',
);
$items = array();
foreach ($InformationTileEntityIds as $id) {
$node_storage = \Drupal::entityManager()->getStorage('node');
$node = $node_storage->load($id);
$items[] = $node;
}
$informationalQueue->set('items', $items);
$informationalQueue->save();
$items = array();
foreach ($promotionalLinksEntityIds as $id) {
$node_storage = \Drupal::entityManager()->getStorage('node');
$node = $node_storage->load($id);
$items[] = $node;
}
$promotionalLinksQueue->set('items', $items);
$promotionalLinksQueue->save();
$items = array();
foreach ($promotionalTilesEntityIds as $id) {
$node_storage = \Drupal::entityManager()->getStorage('node');
$node = $node_storage->load($id);
$items[] = $node;
}
$promotionalTilesQueue->set('items', $items);
$promotionalTilesQueue->save();
}
/**
* Creates the default users.
*
* Passwords are randomly generated.
*/
function _create_users() {
$users = array(
'Content Editor' => 'content_editor',
'Content Administrator' => 'content_administrator',
'Support Agent' => 'administrator',
'Robot',
);
$count = 0;
foreach ($users as $username => $role) {
$language = \Drupal::languageManager()->getCurrentLanguage()->getId();
$user = \Drupal\user\Entity\User::create();
// Randomly generate a 10 character pass.
$randomPassword = user_password(10);
//Mandatory settings
$user->setPassword($randomPassword);
$user->enforceIsNew();
$user->setEmail('noreply+' . $count . '@sparksinteractive.co.nz');
$user->setUsername($username);
if(isset($role)) {
$user->addRole($role);
}
//Optional settings
$user->set("init", 'email');
$user->set("langcode", $language);
$user->set("preferred_langcode", $language);
$user->set("preferred_admin_langcode", $language);
$user->block();
//Save user
$res = $user->save();
$count++;
}
}
/**
* Regenerates all node aliases.
*/
function _generate_alias() {
$nodes = Node::loadMultiple();
foreach ($nodes as $node) {
\Drupal::service('pathauto.generator')->updateEntityAlias($node, 'insert');
}
}
