From b1b1e2045f9a3bcc645293c372516e756f0dcb57 Mon Sep 17 00:00:00 2001 From: Dries Buytaert <dries@buytaert.net> Date: Fri, 25 Nov 2005 10:11:59 +0000 Subject: [PATCH] - Patch #37798 by Neil: allow non-workflow form elements on the node type settings page. --- INSTALL.mysql.txt | 6 +++--- INSTALL.pgsql.txt | 26 +++++++++++++------------- INSTALL.txt | 6 +++--- modules/comment.module | 9 ++++++--- modules/comment/comment.module | 9 ++++++--- modules/node.module | 24 ++++++++---------------- modules/node/node.module | 24 ++++++++---------------- modules/upload.module | 15 +++++++++------ modules/upload/upload.module | 15 +++++++++------ 9 files changed, 65 insertions(+), 69 deletions(-) diff --git a/INSTALL.mysql.txt b/INSTALL.mysql.txt index 7402f70c9159..0d82937e56cf 100644 --- a/INSTALL.mysql.txt +++ b/INSTALL.mysql.txt @@ -7,14 +7,14 @@ CONTENTS OF THIS FILE * Installation and configuration: - Database and user creation - Drupal schema loading - + INTRODUCTION ------------ This file describes how to create a MySQL database for Drupal. -If you control your databases through a web-based control panel, -check its documentation, as the following instructions are for the +If you control your databases through a web-based control panel, +check its documentation, as the following instructions are for the command line only. INSTALLATION AND CONFIGURATION diff --git a/INSTALL.pgsql.txt b/INSTALL.pgsql.txt index a1c99b10326e..078f4caaa0c3 100644 --- a/INSTALL.pgsql.txt +++ b/INSTALL.pgsql.txt @@ -14,41 +14,41 @@ INTRODUCTION This file describes how to create a PostgreSQL database for Drupal. -If you control your databases through a web-based control panel, -check its documentation, as the following instructions are for the +If you control your databases through a web-based control panel, +check its documentation, as the following instructions are for the command line only. INSTALLATION AND CONFIGURATION ------------------------------ 1. CREATE DATABASE USER - + This step is only necessary if you don't already have a user setup (e.g. by your host) or you want to create new user for use with Drupal only. The following command creates a new user named "username" and asks for a password for that user: createuser --pwprompt --encrypted --no-adduser --no-createdb username - + If everything works correctly, you'll see a "CREATE USER" notice. 2. CREATE THE DRUPAL DATABASE - + This step is only necessary if you don't already have a database - setup (e.g. by your host) or you want to create new database for + setup (e.g. by your host) or you want to create new database for use with Drupal only. The following command creates a new database named "databasename", which is owned by previously created "username": - + createdb --encoding=SQL_ASCII --owner=username databasename - + If everything works correctly, you'll see a "CREATE DATABASE" notice. -3. INSTALL THE PL/pgSQL LANGUAGE - +3. INSTALL THE PL/pgSQL LANGUAGE + You must also install the PL/pgSQL language if it does not exist: - + createlang plpgsql databasename - + If everything works correctly, you won't see any messages. It is possible that the PL/pgSQL language was already installed; if so, running the above command would give you the following error: @@ -60,7 +60,7 @@ INSTALLATION AND CONFIGURATION Once the database has been created, load the required tables into it: - psql -q -f database/database.pgsql databasename username + psql -q -f database/database.pgsql databasename username If everything works correctly, you won't see any messages. diff --git a/INSTALL.txt b/INSTALL.txt index e4d77a42f6a7..0cc20116b153 100644 --- a/INSTALL.txt +++ b/INSTALL.txt @@ -60,7 +60,7 @@ INSTALLATION Depending on the database of your choice, please read either INSTALL.mysql.txt (for MySQL) or INSTALL.pgsql.txt (for PostgreSQL). - + 3. CONNECTING DRUPAL The default configuration can be found in the @@ -69,10 +69,10 @@ INSTALLATION base URL to the web site. Open the configuration file and edit the $db_url line to match the database defined in the previous step: - $db_url = "mysql://username:password@localhost/databasename"; + $db_url = "mysql://username:password@localhost/databasename"; If you use PostgreSQL, change "mysql" to "pgsql" in the above line. - + Set $base_url to match the address to your Drupal site: $base_url = "http://www.example.com"; diff --git a/modules/comment.module b/modules/comment.module index 36f81ac93a1d..12a23143a4de 100644 --- a/modules/comment.module +++ b/modules/comment.module @@ -231,15 +231,18 @@ function comment_link($type, $node = 0, $main = 0) { return $links; } +function comment_form_alter($form_id, &$form) { + if (substr($form_id, -14) == '_node_settings') { + $form['workflow']['comment_'. $node->type] = array('#type' => 'radios', '#title' => t('Default comment setting'), '#default_value' => variable_get('comment_'. $node->type, COMMENT_NODE_READ_WRITE), '#options' => array(t('Disabled'), t('Read only'), t('Read/Write')), '#description' => t('Users with the <em>administer comments</em> permission will be able to override this setting.')); + } +} + /** * Implementation of hook_nodeapi(). * */ function comment_nodeapi(&$node, $op, $arg = 0) { switch ($op) { - case 'settings': - $form['comment_'. $node->type] = array('#type' => 'radios', '#title' => t('Default comment setting'), '#default_value' => variable_get('comment_'. $node->type, COMMENT_NODE_READ_WRITE), '#options' => array(t('Disabled'), t('Read only'), t('Read/Write')), '#description' => t('Users with the <em>administer comments</em> permission will be able to override this setting.')); - return $form; case 'fields': return array('comment'); diff --git a/modules/comment/comment.module b/modules/comment/comment.module index 36f81ac93a1d..12a23143a4de 100644 --- a/modules/comment/comment.module +++ b/modules/comment/comment.module @@ -231,15 +231,18 @@ function comment_link($type, $node = 0, $main = 0) { return $links; } +function comment_form_alter($form_id, &$form) { + if (substr($form_id, -14) == '_node_settings') { + $form['workflow']['comment_'. $node->type] = array('#type' => 'radios', '#title' => t('Default comment setting'), '#default_value' => variable_get('comment_'. $node->type, COMMENT_NODE_READ_WRITE), '#options' => array(t('Disabled'), t('Read only'), t('Read/Write')), '#description' => t('Users with the <em>administer comments</em> permission will be able to override this setting.')); + } +} + /** * Implementation of hook_nodeapi(). * */ function comment_nodeapi(&$node, $op, $arg = 0) { switch ($op) { - case 'settings': - $form['comment_'. $node->type] = array('#type' => 'radios', '#title' => t('Default comment setting'), '#default_value' => variable_get('comment_'. $node->type, COMMENT_NODE_READ_WRITE), '#options' => array(t('Disabled'), t('Read only'), t('Read/Write')), '#description' => t('Users with the <em>administer comments</em> permission will be able to override this setting.')); - return $form; case 'fields': return array('comment'); diff --git a/modules/node.module b/modules/node.module index aad24f85f739..dac183dffad5 100644 --- a/modules/node.module +++ b/modules/node.module @@ -1227,7 +1227,6 @@ function node_multiple_delete_confirm_execute($form_id, $edit) { */ function node_types_configure($type = NULL) { if (isset($type)) { - // Go to the listing page when we submit this form, system_settings_save() calls drupal_goto(). $node = new stdClass(); $node->type = $type; $form['submission'] = array('#type' => 'fieldset', '#title' =>t('Submission form') ); @@ -1240,10 +1239,9 @@ function node_types_configure($type = NULL) { '#description' => t('The minimum number of words a %type must be to be considered valid. This can be useful to rule out submissions that do not meet the site\'s standards, such as short test posts.', array('%type' => node_get_name($type))) ); $form['workflow'] = array('#type' => 'fieldset', '#title' =>t('Workflow')); - $form['workflow'] = array_merge($form['workflow'], node_invoke_nodeapi($node, 'settings')); $form['array_filter'] = array('#type' => 'value', '#value' => TRUE); - return system_settings_form($type . '_node_settings', $form); + return system_settings_form($type .'_node_settings', $form); } else { $header = array(t('Type'), t('Operations')); @@ -2056,19 +2054,13 @@ function node_update_index() { } } -/** - * Implementation of hook_nodeapi(). - */ -function node_nodeapi(&$node, $op, $arg = 0) { - switch ($op) { - case 'settings': - $form['node_options_'. $node->type] = array( - '#type' => 'checkboxes', '#title' => t('Default options'), '#default_value' => variable_get('node_options_'. $node->type, array('status', 'promote')), - '#options' => array('status' => t('Published'), 'moderate' => t('In moderation queue'), 'promote' => t('Promoted to front page'), - 'sticky' => t('Sticky at top of lists'), 'revision' => t('Create new revision')), - '#description' => t('Users with the <em>administer nodes</em> permission will be able to override these options.') - ); - return $form; +function node_form_alter($form_id, &$form) { + if (substr($form_id, -14) == '_node_settings') { + $form['workflow']['node_options_'. $node->type] = array( + '#type' => 'checkboxes', '#title' => t('Default options'), '#default_value' => variable_get('node_options_'. $node->type, array('status', 'promote')), + '#options' => array('status' => t('Published'), 'moderate' => t('In moderation queue'), 'promote' => t('Promoted to front page'), 'sticky' => t('Sticky at top of lists'), 'revision' => t('Create new revision')), + '#description' => t('Users with the <em>administer nodes</em> permission will be able to override these options.'), + ); } } diff --git a/modules/node/node.module b/modules/node/node.module index aad24f85f739..dac183dffad5 100644 --- a/modules/node/node.module +++ b/modules/node/node.module @@ -1227,7 +1227,6 @@ function node_multiple_delete_confirm_execute($form_id, $edit) { */ function node_types_configure($type = NULL) { if (isset($type)) { - // Go to the listing page when we submit this form, system_settings_save() calls drupal_goto(). $node = new stdClass(); $node->type = $type; $form['submission'] = array('#type' => 'fieldset', '#title' =>t('Submission form') ); @@ -1240,10 +1239,9 @@ function node_types_configure($type = NULL) { '#description' => t('The minimum number of words a %type must be to be considered valid. This can be useful to rule out submissions that do not meet the site\'s standards, such as short test posts.', array('%type' => node_get_name($type))) ); $form['workflow'] = array('#type' => 'fieldset', '#title' =>t('Workflow')); - $form['workflow'] = array_merge($form['workflow'], node_invoke_nodeapi($node, 'settings')); $form['array_filter'] = array('#type' => 'value', '#value' => TRUE); - return system_settings_form($type . '_node_settings', $form); + return system_settings_form($type .'_node_settings', $form); } else { $header = array(t('Type'), t('Operations')); @@ -2056,19 +2054,13 @@ function node_update_index() { } } -/** - * Implementation of hook_nodeapi(). - */ -function node_nodeapi(&$node, $op, $arg = 0) { - switch ($op) { - case 'settings': - $form['node_options_'. $node->type] = array( - '#type' => 'checkboxes', '#title' => t('Default options'), '#default_value' => variable_get('node_options_'. $node->type, array('status', 'promote')), - '#options' => array('status' => t('Published'), 'moderate' => t('In moderation queue'), 'promote' => t('Promoted to front page'), - 'sticky' => t('Sticky at top of lists'), 'revision' => t('Create new revision')), - '#description' => t('Users with the <em>administer nodes</em> permission will be able to override these options.') - ); - return $form; +function node_form_alter($form_id, &$form) { + if (substr($form_id, -14) == '_node_settings') { + $form['workflow']['node_options_'. $node->type] = array( + '#type' => 'checkboxes', '#title' => t('Default options'), '#default_value' => variable_get('node_options_'. $node->type, array('status', 'promote')), + '#options' => array('status' => t('Published'), 'moderate' => t('In moderation queue'), 'promote' => t('Promoted to front page'), 'sticky' => t('Sticky at top of lists'), 'revision' => t('Create new revision')), + '#description' => t('Users with the <em>administer nodes</em> permission will be able to override these options.'), + ); } } diff --git a/modules/upload.module b/modules/upload.module index 2ce3fe8c6b12..50a4c08612f5 100644 --- a/modules/upload.module +++ b/modules/upload.module @@ -143,17 +143,20 @@ function upload_file_download($file) { } } +function upload_form_alter($form_id, &$form) { + if (substr($form_id, -14) == '_node_settings') { + $form['workflow']['upload_'. $node->type] = array( + '#type' => 'radios', '#title' => t('Attachments'), '#default_value' => variable_get('upload_'. $node->type, 1), + '#options' => array(t('Disabled'), t('Enabled')), + ); + } +} + /** * Implementation of hook_nodeapi(). */ function upload_nodeapi(&$node, $op, $arg) { switch ($op) { - case 'settings': - $form['upload_'. $node->type] = array( - '#type' => 'radios', '#title' => t('Attachments'), '#default_value' => variable_get('upload_'. $node->type, 1), - '#options' => array(t('Disabled'), t('Enabled')) - ); - return $form; case 'validate': $node->files = upload_load($node); // Double check existing files: diff --git a/modules/upload/upload.module b/modules/upload/upload.module index 2ce3fe8c6b12..50a4c08612f5 100644 --- a/modules/upload/upload.module +++ b/modules/upload/upload.module @@ -143,17 +143,20 @@ function upload_file_download($file) { } } +function upload_form_alter($form_id, &$form) { + if (substr($form_id, -14) == '_node_settings') { + $form['workflow']['upload_'. $node->type] = array( + '#type' => 'radios', '#title' => t('Attachments'), '#default_value' => variable_get('upload_'. $node->type, 1), + '#options' => array(t('Disabled'), t('Enabled')), + ); + } +} + /** * Implementation of hook_nodeapi(). */ function upload_nodeapi(&$node, $op, $arg) { switch ($op) { - case 'settings': - $form['upload_'. $node->type] = array( - '#type' => 'radios', '#title' => t('Attachments'), '#default_value' => variable_get('upload_'. $node->type, 1), - '#options' => array(t('Disabled'), t('Enabled')) - ); - return $form; case 'validate': $node->files = upload_load($node); // Double check existing files: -- GitLab