system.inc in SignatureField 6
System module integration.
File
modules/system.incView source
<?php
/**
* @file
* System module integration.
*/
/**
* Implements hook_theme()
*/
function signaturefield_theme() {
$items = array();
$items['signaturefield'] = array(
'arguments' => array(
'element' => NULL,
),
'template' => 'templates/signaturefield',
);
$items['signaturefield_display'] = array(
'arguments' => array(
'element' => NULL,
),
);
drupal_alter('signaturefield_theme', $items);
return $items;
}
/**
* Implements hook_form_alter()
*/
function signaturefield_form_alter(&$form, &$form_state, $form_id) {
drupal_alter('signaturefield_form_alter', &$form, &$form_state, $form_id);
}
/**
* Implements hook_elements()
*/
function signaturefield_elements() {
$type = array();
$type['signaturefield'] = array(
'#input' => TRUE,
'#after_build' => array(
'signaturefield_after_build',
),
'#height' => 55,
'#width' => 200,
'#color' => '#000',
'#lineTop' => 35,
);
return $type;
}
function form_type_signaturefield_value($element, $edit = FALSE) {
if (!empty($edit)) {
// If previous value exists delete original image
if (!empty($element['#default_value'])) {
$values = unserialize($element['#default_value']);
@unlink($values['filepath']);
}
return signaturefield_json_to_image($element, $edit);
}
return $edit;
}
/**
*
*/
function signaturefield_after_build($element, $form_state) {
$libpath = libraries_get_path('signature-pad');
$modpath = drupal_get_path('module', 'signaturefield');
drupal_set_html_head("<!--[if gte IE 7]><script type='text/javascript' src='{$libpath}/assets/excanvas-r71.min.js'></script><![endif]-->\n <!--[if IE 6]><script type='text/javascript' src='{$libpath}/assets/excanvas-r3.min.js'></script><![endif]-->");
drupal_add_js("{$libpath}/assets/jquery.signaturepad.min.js");
drupal_add_js("{$libpath}/assets/json2.min.js");
drupal_add_js("{$modpath}/signaturefield.js");
drupal_add_js(array(
'signaturefield' => array(
'settings' => array(
'drawOnly' => TRUE,
'validateFields' => FALSE,
'penColour' => $element['#color'],
'lineTop' => $element['#height'] * 0.85,
),
),
), 'setting');
drupal_add_css("{$modpath}/signaturefield.css");
return $element;
}
function signaturefield_preprocess_signaturefield(&$vars) {
$values = unserialize($vars['element']['#default_value']);
$vars['element']['#default_value'] = $values['json'];
drupal_add_js(array(
'signaturefield' => array(
'sig' => $values['json'],
),
), 'setting');
}
function theme_signaturefield_display($element) {
$values = unserialize(is_array($element) && !empty($element['#value']) ? $element['#value'] : $element);
return theme('image', $values['filepath']);
}
Functions
Name![]() |
Description |
---|---|
form_type_signaturefield_value | |
signaturefield_after_build | |
signaturefield_elements | Implements hook_elements() |
signaturefield_form_alter | Implements hook_form_alter() |
signaturefield_preprocess_signaturefield | |
signaturefield_theme | Implements hook_theme() |
theme_signaturefield_display |