123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434 |
- <?php
- /**
- * @file
- * Install, update and uninstall functions for the standard installation profile.
- */
- /**
- * Implements hook_install().
- *
- * Perform actions to set up the site for this profile.
- *
- * @see system_install()
- */
- function standard_install() {
- // Add text formats.
- $filtered_html_format = array(
- 'format' => 'filtered_html',
- 'name' => 'Filtered HTML',
- 'weight' => 0,
- 'filters' => array(
- // URL filter.
- 'filter_url' => array(
- 'weight' => 0,
- 'status' => 1,
- ),
- // HTML filter.
- 'filter_html' => array(
- 'weight' => 1,
- 'status' => 1,
- ),
- // Line break filter.
- 'filter_autop' => array(
- 'weight' => 2,
- 'status' => 1,
- ),
- // HTML corrector filter.
- 'filter_htmlcorrector' => array(
- 'weight' => 10,
- 'status' => 1,
- ),
- ),
- );
- $filtered_html_format = (object) $filtered_html_format;
- filter_format_save($filtered_html_format);
- $full_html_format = array(
- 'format' => 'full_html',
- 'name' => 'Full HTML',
- 'weight' => 1,
- 'filters' => array(
- // URL filter.
- 'filter_url' => array(
- 'weight' => 0,
- 'status' => 1,
- ),
- // Line break filter.
- 'filter_autop' => array(
- 'weight' => 1,
- 'status' => 1,
- ),
- // HTML corrector filter.
- 'filter_htmlcorrector' => array(
- 'weight' => 10,
- 'status' => 1,
- ),
- ),
- );
- $full_html_format = (object) $full_html_format;
- filter_format_save($full_html_format);
- // Enable some standard blocks.
- $default_theme = variable_get('theme_default', 'bartik');
- $admin_theme = 'seven';
- $blocks = array(
- array(
- 'module' => 'system',
- 'delta' => 'main',
- 'theme' => $default_theme,
- 'status' => 1,
- 'weight' => 0,
- 'region' => 'content',
- 'pages' => '',
- 'cache' => -1,
- ),
- array(
- 'module' => 'search',
- 'delta' => 'form',
- 'theme' => $default_theme,
- 'status' => 1,
- 'weight' => -1,
- 'region' => 'sidebar_first',
- 'pages' => '',
- 'cache' => -1,
- ),
- array(
- 'module' => 'node',
- 'delta' => 'recent',
- 'theme' => $admin_theme,
- 'status' => 1,
- 'weight' => 10,
- 'region' => 'dashboard_main',
- 'pages' => '',
- 'cache' => -1,
- ),
- array(
- 'module' => 'user',
- 'delta' => 'login',
- 'theme' => $default_theme,
- 'status' => 1,
- 'weight' => 0,
- 'region' => 'sidebar_first',
- 'pages' => '',
- 'cache' => -1,
- ),
- array(
- 'module' => 'system',
- 'delta' => 'navigation',
- 'theme' => $default_theme,
- 'status' => 1,
- 'weight' => 0,
- 'region' => 'sidebar_first',
- 'pages' => '',
- 'cache' => -1,
- ),
- array(
- 'module' => 'system',
- 'delta' => 'powered-by',
- 'theme' => $default_theme,
- 'status' => 1,
- 'weight' => 10,
- 'region' => 'footer',
- 'pages' => '',
- 'cache' => -1,
- ),
- array(
- 'module' => 'system',
- 'delta' => 'help',
- 'theme' => $default_theme,
- 'status' => 1,
- 'weight' => 0,
- 'region' => 'help',
- 'pages' => '',
- 'cache' => -1,
- ),
- array(
- 'module' => 'system',
- 'delta' => 'main',
- 'theme' => $admin_theme,
- 'status' => 1,
- 'weight' => 0,
- 'region' => 'content',
- 'pages' => '',
- 'cache' => -1,
- ),
- array(
- 'module' => 'system',
- 'delta' => 'help',
- 'theme' => $admin_theme,
- 'status' => 1,
- 'weight' => 0,
- 'region' => 'help',
- 'pages' => '',
- 'cache' => -1,
- ),
- array(
- 'module' => 'user',
- 'delta' => 'login',
- 'theme' => $admin_theme,
- 'status' => 1,
- 'weight' => 10,
- 'region' => 'content',
- 'pages' => '',
- 'cache' => -1,
- ),
- array(
- 'module' => 'user',
- 'delta' => 'new',
- 'theme' => $admin_theme,
- 'status' => 1,
- 'weight' => 0,
- 'region' => 'dashboard_sidebar',
- 'pages' => '',
- 'cache' => -1,
- ),
- array(
- 'module' => 'search',
- 'delta' => 'form',
- 'theme' => $admin_theme,
- 'status' => 1,
- 'weight' => -10,
- 'region' => 'dashboard_sidebar',
- 'pages' => '',
- 'cache' => -1,
- ),
- );
- $query = db_insert('block')->fields(array('module', 'delta', 'theme', 'status', 'weight', 'region', 'pages', 'cache'));
- foreach ($blocks as $block) {
- $query->values($block);
- }
- $query->execute();
- // Insert default pre-defined node types into the database. For a complete
- // list of available node type attributes, refer to the node type API
- // documentation at: http://api.drupal.org/api/HEAD/function/hook_node_info.
- $types = array(
- array(
- 'type' => 'page',
- 'name' => st('Basic page'),
- 'base' => 'node_content',
- 'description' => st("Use <em>basic pages</em> for your static content, such as an 'About us' page."),
- 'custom' => 1,
- 'modified' => 1,
- 'locked' => 0,
- ),
- array(
- 'type' => 'article',
- 'name' => st('Article'),
- 'base' => 'node_content',
- 'description' => st('Use <em>articles</em> for time-sensitive content like news, press releases or blog posts.'),
- 'custom' => 1,
- 'modified' => 1,
- 'locked' => 0,
- ),
- );
- foreach ($types as $type) {
- $type = node_type_set_defaults($type);
- node_type_save($type);
- node_add_body_field($type);
- }
- // Insert default pre-defined RDF mapping into the database.
- $rdf_mappings = array(
- array(
- 'type' => 'node',
- 'bundle' => 'page',
- 'mapping' => array(
- 'rdftype' => array('foaf:Document'),
- ),
- ),
- array(
- 'type' => 'node',
- 'bundle' => 'article',
- 'mapping' => array(
- 'field_image' => array(
- 'predicates' => array('og:image', 'rdfs:seeAlso'),
- 'type' => 'rel',
- ),
- 'field_tags' => array(
- 'predicates' => array('dc:subject'),
- 'type' => 'rel',
- ),
- ),
- ),
- );
- foreach ($rdf_mappings as $rdf_mapping) {
- rdf_mapping_save($rdf_mapping);
- }
- // Default "Basic page" to not be promoted and have comments disabled.
- variable_set('node_options_page', array('status'));
- variable_set('comment_page', COMMENT_NODE_HIDDEN);
- // Don't display date and author information for "Basic page" nodes by default.
- variable_set('node_submitted_page', FALSE);
- // Enable user picture support and set the default to a square thumbnail option.
- variable_set('user_pictures', '1');
- variable_set('user_picture_dimensions', '1024x1024');
- variable_set('user_picture_file_size', '800');
- variable_set('user_picture_style', 'thumbnail');
- // Allow visitor account creation with administrative approval.
- variable_set('user_register', USER_REGISTER_VISITORS_ADMINISTRATIVE_APPROVAL);
- // Create a default vocabulary named "Tags", enabled for the 'article' content type.
- $description = st('Use tags to group articles on similar topics into categories.');
- $help = st('Enter a comma-separated list of words to describe your content.');
- $vocabulary = (object) array(
- 'name' => st('Tags'),
- 'description' => $description,
- 'machine_name' => 'tags',
- 'help' => $help,
- );
- taxonomy_vocabulary_save($vocabulary);
- $field = array(
- 'field_name' => 'field_' . $vocabulary->machine_name,
- 'type' => 'taxonomy_term_reference',
- // Set cardinality to unlimited for tagging.
- 'cardinality' => FIELD_CARDINALITY_UNLIMITED,
- 'settings' => array(
- 'allowed_values' => array(
- array(
- 'vocabulary' => $vocabulary->machine_name,
- 'parent' => 0,
- ),
- ),
- ),
- );
- field_create_field($field);
- $instance = array(
- 'field_name' => 'field_' . $vocabulary->machine_name,
- 'entity_type' => 'node',
- 'label' => 'Tags',
- 'bundle' => 'article',
- 'description' => $vocabulary->help,
- 'widget' => array(
- 'type' => 'taxonomy_autocomplete',
- 'weight' => -4,
- ),
- 'display' => array(
- 'default' => array(
- 'type' => 'taxonomy_term_reference_link',
- 'weight' => 10,
- ),
- 'teaser' => array(
- 'type' => 'taxonomy_term_reference_link',
- 'weight' => 10,
- ),
- ),
- );
- field_create_instance($instance);
- // Create an image field named "Image", enabled for the 'article' content type.
- // Many of the following values will be defaulted, they're included here as an illustrative examples.
- // See http://api.drupal.org/api/function/field_create_field/7
- $field = array(
- 'field_name' => 'field_image',
- 'type' => 'image',
- 'cardinality' => 1,
- 'locked' => FALSE,
- 'indexes' => array('fid' => array('fid')),
- 'settings' => array(
- 'uri_scheme' => 'public',
- 'default_image' => FALSE,
- ),
- 'storage' => array(
- 'type' => 'field_sql_storage',
- 'settings' => array(),
- ),
- );
- field_create_field($field);
- // Many of the following values will be defaulted, they're included here as an illustrative examples.
- // See http://api.drupal.org/api/function/field_create_instance/7
- $instance = array(
- 'field_name' => 'field_image',
- 'entity_type' => 'node',
- 'label' => 'Image',
- 'bundle' => 'article',
- 'description' => st('Upload an image to go with this article.'),
- 'required' => FALSE,
- 'settings' => array(
- 'file_directory' => 'field/image',
- 'file_extensions' => 'png gif jpg jpeg',
- 'max_filesize' => '',
- 'max_resolution' => '',
- 'min_resolution' => '',
- 'alt_field' => TRUE,
- 'title_field' => '',
- ),
- 'widget' => array(
- 'type' => 'image_image',
- 'settings' => array(
- 'progress_indicator' => 'throbber',
- 'preview_image_style' => 'thumbnail',
- ),
- 'weight' => -1,
- ),
- 'display' => array(
- 'default' => array(
- 'label' => 'hidden',
- 'type' => 'image',
- 'settings' => array('image_style' => 'large', 'image_link' => ''),
- 'weight' => -1,
- ),
- 'teaser' => array(
- 'label' => 'hidden',
- 'type' => 'image',
- 'settings' => array('image_style' => 'medium', 'image_link' => 'content'),
- 'weight' => -1,
- ),
- ),
- );
- field_create_instance($instance);
- // Enable default permissions for system roles.
- $filtered_html_permission = filter_permission_name($filtered_html_format);
- user_role_grant_permissions(DRUPAL_ANONYMOUS_RID, array('access content', 'access comments', $filtered_html_permission));
- user_role_grant_permissions(DRUPAL_AUTHENTICATED_RID, array('access content', 'access comments', 'post comments', 'skip comment approval', $filtered_html_permission));
- // Create a default role for site administrators, with all available permissions assigned.
- $admin_role = new stdClass();
- $admin_role->name = 'administrator';
- $admin_role->weight = 2;
- user_role_save($admin_role);
- user_role_grant_permissions($admin_role->rid, array_keys(module_invoke_all('permission')));
- // Set this as the administrator role.
- variable_set('user_admin_role', $admin_role->rid);
- // Assign user 1 the "administrator" role.
- db_insert('users_roles')
- ->fields(array('uid' => 1, 'rid' => $admin_role->rid))
- ->execute();
- // Create a Home link in the main menu.
- $item = array(
- 'link_title' => st('Home'),
- 'link_path' => '<front>',
- 'menu_name' => 'main-menu',
- );
- menu_link_save($item);
- // Update the menu router information.
- menu_rebuild();
- // Enable the admin theme.
- db_update('system')
- ->fields(array('status' => 1))
- ->condition('type', 'theme')
- ->condition('name', 'seven')
- ->execute();
- variable_set('admin_theme', 'seven');
- variable_set('node_admin_theme', '1');
- }
|