| 1 |
<?php
|
| 2 |
|
| 3 |
// $Id: skeleton_admin.inc,v 1.13 2009/02/05 20:33:33 deviantintegral Exp $
|
| 4 |
|
| 5 |
/**
|
| 6 |
* @file
|
| 7 |
* Basic functions for the skeleton module
|
| 8 |
*/
|
| 9 |
|
| 10 |
include_once('skeleton_common.inc');
|
| 11 |
|
| 12 |
/**
|
| 13 |
* Create the configuration page
|
| 14 |
*/
|
| 15 |
function skeleton_admin() {
|
| 16 |
$result = db_query("SELECT skeleton_id, skeleton FROM {skeleton} ORDER BY skeleton_id");
|
| 17 |
$header = array(t('Name'), t('Associated Templates'), t('Operations'));
|
| 18 |
while ($skeleton = db_fetch_object($result)) {
|
| 19 |
// Get the templates for this skeleton.
|
| 20 |
$template_result = db_query("SELECT st.template_id, st.template, st.node_data, sd.parent FROM {skeleton_template} st
|
| 21 |
INNER JOIN {skeleton_data} sd ON st.template_id = sd.template_id
|
| 22 |
INNER JOIN {skeleton} s ON sd.skeleton_id = s.skeleton_id
|
| 23 |
WHERE s.skeleton_id = %d
|
| 24 |
ORDER BY sd.parent, sd.weight", $skeleton->skeleton_id);
|
| 25 |
$templates = array();
|
| 26 |
while ($template = db_fetch_object($template_result)) {
|
| 27 |
$node = (object)unserialize($template->node_data);
|
| 28 |
module_exists('translation') ? $language = ' (' . locale_language_name($node->language) . ')': $language = '';
|
| 29 |
$templates[] = l(check_plain($template->template) . $language, 'admin/content/skeleton/template/' . $template->template_id .'/view');
|
| 30 |
}
|
| 31 |
|
| 32 |
$operations = array();
|
| 33 |
if (_skeleton_user_can_create_instance()) {
|
| 34 |
$operations[] = l(t('create new instance'), 'admin/content/skeleton/skeleton/'. $skeleton->skeleton_id . '/create');
|
| 35 |
}
|
| 36 |
if (user_access('configure skeleton outlines')) {
|
| 37 |
$operations[] = l(t('edit skeleton'), 'admin/content/skeleton/skeleton/'. $skeleton->skeleton_id . '/edit');
|
| 38 |
$operations[] = l(t('delete skeleton'), 'admin/content/skeleton/skeleton/'. $skeleton->skeleton_id . '/delete');
|
| 39 |
}
|
| 40 |
$rows[] = array(check_plain($skeleton->skeleton), theme('item_list', $templates), theme('item_list', $operations));
|
| 41 |
}
|
| 42 |
if (!empty($rows)) {
|
| 43 |
return theme('table', $header, $rows);
|
| 44 |
}
|
| 45 |
else {
|
| 46 |
return t('<p>No skeleton outlines have been created.</p>');
|
| 47 |
}
|
| 48 |
}
|
| 49 |
|
| 50 |
/**
|
| 51 |
* Add a new skeleton
|
| 52 |
*/
|
| 53 |
function skeleton_add() {
|
| 54 |
$output = '';
|
| 55 |
drupal_set_title(t('Skeleton: Add'));
|
| 56 |
$output .= '<h3>'. t('Add New Skeleton') .'</h3>';
|
| 57 |
$output .= drupal_get_form('skeleton_add_form');
|
| 58 |
return $output;
|
| 59 |
}
|
| 60 |
|
| 61 |
/**
|
| 62 |
* FormsAPI for skeleton_add()
|
| 63 |
*/
|
| 64 |
function skeleton_add_form($form_state) {
|
| 65 |
$form = array();
|
| 66 |
$form['skeleton'] = array(
|
| 67 |
'#type' => 'fieldset',
|
| 68 |
'#title' => t('Skeleton information'),
|
| 69 |
'#collapsible' => TRUE
|
| 70 |
);
|
| 71 |
$form['skeleton']['skeleton'] = array(
|
| 72 |
'#type' => 'textfield',
|
| 73 |
'#title' => t('Skeleton name'),
|
| 74 |
'#description' => t('Enter a unique name to identify this skeleton.'),
|
| 75 |
'#required' => TRUE
|
| 76 |
);
|
| 77 |
$form['submit'] = array(
|
| 78 |
'#type' => 'submit',
|
| 79 |
'#value' => t('Create skeleton'),
|
| 80 |
);
|
| 81 |
return $form;
|
| 82 |
}
|
| 83 |
|
| 84 |
/**
|
| 85 |
* FormsAPI for skeleton_add()
|
| 86 |
*/
|
| 87 |
function skeleton_add_form_validate($form, &$form_state) {
|
| 88 |
$check = db_result(db_query("SELECT COUNT(skeleton_id) FROM {skeleton} WHERE skeleton = '%s'", $form_state['values']['skeleton']));
|
| 89 |
if ($check > 0) {
|
| 90 |
form_set_error('skeleton', t('The name of the skeleton must be unique.'));
|
| 91 |
}
|
| 92 |
}
|
| 93 |
|
| 94 |
/**
|
| 95 |
* FormsAPI for skeleton_add()
|
| 96 |
*/
|
| 97 |
function skeleton_add_form_submit($form, &$form_state) {
|
| 98 |
db_query("INSERT INTO {skeleton} (skeleton) VALUES ('%s')", $form_state['values']['skeleton']);
|
| 99 |
// We rebuild the menu system to update the links at node/add.
|
| 100 |
menu_rebuild();
|
| 101 |
drupal_set_message(t('Skeleton added.'));
|
| 102 |
$skeleton = skeleton_get_by_name($form_state['values']['skeleton']);
|
| 103 |
drupal_goto('admin/content/skeleton/'. $skeleton->skeleton_id . '/edit');
|
| 104 |
}
|