widgets.module in Widgets 6
Same filename and directory in other branches
Implementaion of module hooks for Widgets module.
File
widgets.moduleView source
<?php
/**
* @file
* Implementaion of module hooks for Widgets module.
*/
/**
* Implementation of hook_menu().
*/
function widgets_menu() {
$items = array();
$items['admin/settings/widgets'] = array(
'title' => t('Widgets'),
'description' => t('Settings for Widgets module.'),
'page callback' => 'drupal_get_form',
'page arguments' => array(
'widgets_settings',
),
'access arguments' => array(
'administer site configuration',
),
'file' => 'widgets.admin.inc',
'file path' => drupal_get_path('module', 'widgets'),
);
return $items;
}
/**
* Implementation of hook_form_FORM_ID_alter().
*/
function widgets_form_node_type_form_alter(&$form, $form_state) {
// Get type name.
$type_name = $form['#node_type']->type;
$type_id = str_replace('_', '-', $type_name);
// Get enabled "widget types".
$enabled_types = variable_get('widgets_types', array());
// Only add Widgets settings to node types not marked as "widget types".
if (!$enabled_types[$type_name]) {
module_load_include('inc', 'widgets');
widgets_add_multiselect('edit-widgets-default');
// Get widgets.
$options = widgets_get_widgets();
$form['widgets'] = array(
'#type' => 'fieldset',
'#title' => t('Widgets'),
'#collapsible' => TRUE,
'#collapsed' => FALSE,
);
$form['widgets']['widgets_enabled'] = array(
'#type' => 'checkbox',
'#title' => t('Enable widgets'),
'#default_value' => variable_get("widgets_enabled_{$type_name}", 0),
);
$form['widgets']['widgets_default'] = array(
'#type' => 'select',
'#title' => t('Default widgets'),
'#default_value' => variable_get("widgets_default_{$type_name}", array()),
'#options' => $options,
'#description' => t('Select widgets that should be selected per default for this node type. Drag and drop selected widgets to set the display order.'),
'#multiple' => TRUE,
'#attributes' => array(
'class' => 'multiselect-widget',
),
);
}
}
/**
* Implementation of hook_form_alter().
*/
function widgets_form_alter(&$form, $form_state, $form_id) {
// Widgets node settings.
if (preg_match('/_node_form$/', $form_id) && !$form['#programmed']) {
// Check if widgets are enabled for this node type.
if (variable_get("widgets_enabled_{$form['type']['#value']}", 0)) {
module_load_include('inc', 'widgets');
widgets_add_multiselect('edit-selected-widgets');
// Alter node form.
$form['widgets'] = array(
'#type' => 'fieldset',
'#title' => t('Widgets'),
'#collapsible' => TRUE,
'#collapsed' => FALSE,
);
// Get widgets and selected widgets.
$options = widgets_get_widgets();
$selected = widgets_get_selected($form['nid']['#value']);
$form['widgets']['disable_widgets'] = array(
'#type' => 'checkbox',
'#title' => t('Disable widgets'),
'#default_value' => $form['#node']->disable_widgets,
'#description' => t('Check this option if you dont want any widgets to display on this page.'),
);
$form['widgets']['default_widgets'] = array(
'#type' => 'checkbox',
'#title' => t('Use default widgets'),
'#default_value' => $form['#node']->default_widgets,
'#description' => t('Check this option if you want to use the default widgets as defined for this node type.'),
);
$defaults = variable_get("widgets_default_{$form['type']['#value']}", array());
if (empty($defaults)) {
unset($form['widgets']['default_widgets']['#default_value']);
$form['widgets']['default_widgets']['#disabled'] = TRUE;
$form['widgets']['default_widgets']['#description'] = t('No default widgets have been defined for this node type.');
}
$form['widgets']['selected_widgets'] = array(
'#type' => 'select',
'#title' => t('Available widgets'),
'#default_value' => $selected,
'#options' => $options,
'#description' => t('Select widgets for this node. Drag and drop selected widgets to set the display order.'),
'#multiple' => TRUE,
'#attributes' => array(
'class' => 'multiselect-widget',
),
);
}
}
}
/**
* Implementation of hook_nodeapi().
*/
function widgets_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
// Check if widgets are enabled for node type.
if (!variable_get("widgets_enabled_{$node->type}", 0)) {
return;
}
// Insert/update.
switch ($op) {
case 'insert':
case 'update':
module_load_include('inc', 'widgets');
widgets_write_record($node);
break;
case 'load':
$data = db_fetch_object(db_query('SELECT * FROM {widgets_status} WHERE nid = %d', $node->nid));
$node->disable_widgets = $data->disabled;
$node->default_widgets = $data->use_default;
break;
}
}
/**
* Implementation of hook_block().
*/
function widgets_block($op = 'list', $delta = 0, $edit = array()) {
module_load_include('inc', 'widgets', 'widgets.block');
$function = "widgets_block_{$op}";
if (function_exists($function)) {
return $function($delta, $edit);
}
else {
return widgets_block_view($delta, $edit);
}
}
Functions
Name![]() |
Description |
---|---|
widgets_block | Implementation of hook_block(). |
widgets_form_alter | Implementation of hook_form_alter(). |
widgets_form_node_type_form_alter | Implementation of hook_form_FORM_ID_alter(). |
widgets_menu | Implementation of hook_menu(). |
widgets_nodeapi | Implementation of hook_nodeapi(). |