diff --git nodeapi_example/nodeapi_example.module nodeapi_example/nodeapi_example.module index cf6f1c1..f7862b6 100755 --- nodeapi_example/nodeapi_example.module +++ nodeapi_example/nodeapi_example.module /** * @file @@ -18,10 +18,10 @@ * changes to two types: a node's content type configuration and edit forms. * * We need to have a way for administrators to indicate which content types - * should have our rating field added. This is done by inserting a checkbox in + * should have our rating field added. This is done by inserting radios in * the node's content type configuration page. * - * Changes made by this hook will be show when editing the settings of any + * Changes made by this hook will be shown when editing the settings of any * content type. * * Optionally, hook_form_FORM_ID_alter() could be used with the function name @@ -45,15 +45,17 @@ function nodeapi_example_form_alter(&$form, $form_state, $form_id) { $form['rating']['nodeapi_example'] = array( '#type' => 'radios', '#title' => t('NodeAPI Example Rating'), - '#default_value' => variable_get('nodeapi_example_' . $form['#node_type']->type, + '#default_value' => variable_get('nodeapi_example_' . $form['#node_type']->type, '#options' => array(FALSE => t('Disabled'), TRUE => t('Enabled')), '#description' => t('Should this node have a rating attached to it?'), ); } - // If the type and node field are set this may be a node edit form. + //Here we check to see if the type and node field are set. + //If so, it could be a node edit form. elseif (isset($form['type']) && isset($form['#node']) && $form['type']['#value'] . '_ // If the rating is enabled for this node type, we insert our control - // into the form. + // into the form. We could add it into the additional settings by using the + // format we used in the configuration form above. $node = $form['#node']; if (variable_get('nodeapi_example_' . $form['type']['#value'], FALSE)) { $form['nodeapi_example_rating'] = array( @@ -72,24 +74,24 @@ function nodeapi_example_form_alter(&$form, $form_state, $form_id) { * hook_nodeapi() has been replaced in Drupal 7 with a set of different hooks * providing the same or improved functionality. * - * The replacement functions providing access to events ocurred to content in - * Drupal is listed below, and detailled in the following location: + * The replacement functions providing access to events affecting nodes in + * Drupal is listed below, and detailed in the following location: * http://api.drupal.org/api/group/hooks/7 * or in the node API declaration file: modules/node/node.api.php * * hook_node_access() - Control access to a node. * hook_node_access_records() - Set permissions for a node to be written to the * hook_node_access_records_alter() - Alter permissions for a node before it i - * hook_node_build_alter() - The node content was built, the module may modif + * hook_node_build_alter() - Modify structured content after content built. * hook_node_delete() - Act on node deletion. * hook_node_grants() - Inform the node access system what permissions the user * hook_node_grants_alter() - Alter user access rules when trying to view, edi - * hook_node_info() - Defines module-provided node types. + * hook_node_info() - Define module-provided node types. * hook_node_insert() - Respond to node insertion. * hook_node_load() - Act on node objects when loaded. * hook_node_operations() - Add mass node operations. - * hook_node_prepare() - The node is about to be shown on the add/edit form. - * hook_node_prepare_translation() - The node is being cloned for translation + * hook_node_prepare() - The node is about to be shown on the add/edit form. + * hook_node_prepare_translation() - The node is being cloned for translation. * hook_node_presave() - The node passed validation and is about to be saved. * hook_node_revision_delete() - A revision of the node is deleted. * hook_node_search_result() - The node is being displayed as a search result. @@ -106,8 +108,8 @@ function nodeapi_example_form_alter(&$form, $form_state, $form_id) { /** * Implements hook_node_validate(). * - * Check that rating attribute is set in the form submission, the field is - * required + * Check that rating attribute is set in the form submission, since the field is + * required. If not, send error message. */ function nodeapi_example_node_validate($node, $form) { if (variable_get('nodeapi_example_' . $node->type, FALSE)) { @@ -125,18 +127,18 @@ function nodeapi_example_node_validate($node, $form) { */ function nodeapi_example_node_load($nodes, $form) { foreach ($nodes as $node) { - // We are using the revision id instead of node id + // We are using the revision id instead of node id. if (variable_get('nodeapi_example_' . $node->type, FALSE)) { $vids[] = $node->vid; } } - // Check if we should load rating for any of the nodes + // Check if we should load rating for any of the nodes. if (!isset($vids) || !count($vids)) { return; } - // When we read, we don't care about the node->nid, but we look for the right - // revision ID (node->vid) + // When we read, we don't care about the node->nid; we look for the right + // revision ID (node->vid). $result = db_select('nodeapi_example', 'e') ->fields('e', array( 'nid', @@ -188,16 +190,16 @@ function nodeapi_example_node_delete($node) { * * As an existing node is being updated in the database, we need to do our own * database updates. - * - * Update is called when an existing node has been changed. Here, we use a - * DELETE then an INSERT rather than an UPDATE. The reason is that a node - * created before this module was installed won't already have a rating - * saved so there would be nothing to update. + * + * We can't simply update, since the node may not have a rating saved, thus no + * database field to update. So we first check the database for a rating. + * If there is one, we update it. If not, we call nodeapi_example_node_insert() + * to create one. */ + function nodeapi_example_node_update($node) { if (variable_get('nodeapi_example_' . $node->type, FALSE)) { - // If may happen that this node does not have a previous saved rating - // value, so we can't just update it, we need to check first if this + // We need to check first if this node has a saved rating. $rating = db_select('nodeapi_example', 'e') ->fields('e', array( 'rating', @@ -206,7 +208,7 @@ function nodeapi_example_node_update($node) { ->execute()->fetchField(); if($rating) { - // node has been rated before. + // Node has been rated before. db_update('nodeapi_example') ->fields(array('rating' => $node->nodeapi_example_rating)) ->condition('vid', $node->vid) @@ -263,7 +265,7 @@ function nodeapi_example_theme() { * A custom theme function. * * By using this function to format our rating, themes can override this presentation - * if they wish; for example, they could provide a star graphic for the rating. We + * if they wish. For example, they could provide a star graphic for the rating. We * also wrap the default presentation in a CSS class that is prefixed by the module * name. This way, style sheets can modify the output without requiring theme code. */ (END)