/[drupal]/contributions/modules/skeleton/skeleton_admin.inc
ViewVC logotype

Contents of /contributions/modules/skeleton/skeleton_admin.inc

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.14 - (show annotations) (download) (as text)
Thu Aug 27 19:17:08 2009 UTC (3 months ago) by deviantintegral
Branch: MAIN
CVS Tags: DRUPAL-6--1-0-ALPHA1, HEAD
Changes since 1.13: +7 -8 lines
File MIME type: text/x-php
#357493: Skeleton table doesn't check user permissions for template links.
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 }

  ViewVC Help
Powered by ViewVC 1.1.2