default_profile_tasks
profiles/default/default.profile, строка 91
- Версии
- 6
default_profile_tasks(&$task, $url)
Perform any final installation tasks for this profile.
The installer goes through the profile-select -> locale-select -> requirements -> database -> profile-install-batch -> locale-initial-batch -> configure -> locale-remaining-batch -> finished -> done tasks, in this order, if you don't implement this function in your profile.
If this function is implemented, you can have any number of
custom tasks to perform after 'configure'
, implementing a state
machine here to walk the user through those tasks. First time,
this function gets called with $task
set to 'profile'
, and you
can advance to further tasks by setting $task
to your tasks'
identifiers, used as array keys in the hook_profile_task_list()
above. You must avoid the reserved tasks listed in
install_reserved_tasks()
. If you implement your custom tasks,
this function will get called in every HTTP request (for form
processing, printing your information screens and so on) until
you advance to the 'profile-finished'
task, with which you
hand control back to the installer. Each custom page you
return needs to provide a way to continue, such as a form
submission or a link. You should also set custom page titles.
You should define the list of custom tasks you implement by
returning an array of them in hook_profile_task_list()
, as these
show up in the list of tasks on the installer user interface.
Remember that the user will be able to reload the pages multiple
times, so you might want to use variable_set()
and variable_get()
to remember your data and control further processing, if $task
is insufficient. Should a profile want to display a form here,
it can; the form should set '#redirect'
to FALSE
, and rely on
an action in the submit handler, such as variable_set()
, to
detect submission and proceed to further tasks. See the configuration
form handling code in install_tasks()
for an example.
Important: Any temporary variables should be removed using
variable_del()
before advancing to the 'profile-finished'
phase.
Параметры
$task
The current $task
of the install system. When hook_profile_tasks()
is first called, this is 'profile'
.
$url
Complete URL to be used for a link or form action on a custom page,
if providing any, to allow the user to proceed with the installation.
Возвращаемое значение
An optional HTML string to display to the user. Only used if you
modify the $task
, otherwise discarded.
Код
<?php
function default_profile_tasks(&$task, $url) {
// Insert default user-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('Page'),
'module' => 'node',
'description' => st("A <em>page</em>, similar in form to a <em>story</em>, is a simple method for creating and displaying information that rarely changes, such as an \"About us\" section of a website. By default, a <em>page</em> entry does not allow visitor comments and is not featured on the site's initial home page."),
'custom' => TRUE,
'modified' => TRUE,
'locked' => FALSE,
'help' => '',
'min_word_count' => '',
),
array(
'type' => 'story',
'name' => st('Story'),
'module' => 'node',
'description' => st("A <em>story</em>, similar in form to a <em>page</em>, is ideal for creating and displaying content that informs or engages website visitors. Press releases, site announcements, and informal blog-like entries may all be created with a <em>story</em> entry. By default, a <em>story</em> entry is automatically featured on the site's initial home page, and provides the ability to post comments."),
'custom' => TRUE,
'modified' => TRUE,
'locked' => FALSE,
'help' => '',
'min_word_count' => '',
),
);
foreach ($types as $type) {
$type = (object) _node_type_set_defaults($type);
node_type_save($type);
}
// Default page to not be promoted and have comments disabled.
variable_set('node_options_page', array('status'));
variable_set('comment_page', COMMENT_NODE_DISABLED);
// Don't display date and author information for page nodes by default.
$theme_settings = variable_get('theme_settings', array());
$theme_settings['toggle_node_info_page'] = FALSE;
variable_set('theme_settings', $theme_settings);
// Update the menu router information.
menu_rebuild();
}
?>
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии