Index: README.txt =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/cmf/README.txt,v retrieving revision 1.1 diff -u -r1.1 README.txt --- README.txt 19 Aug 2008 16:14:43 -0000 1.1 +++ README.txt 14 Jul 2009 23:41:47 -0000 @@ -25,6 +25,12 @@ administer > site building > modules +PERMISSIONS +----------- +* filter and manage site content - gives access to the CMF page. +* view user content list - gives access to the user page. + + USE --- 1. The functional page to filter and administer content can be found by navigating to: Index: both.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/cmf/both.inc,v retrieving revision 1.2.2.4 diff -u -r1.2.2.4 both.inc --- both.inc 12 Mar 2009 12:39:19 -0000 1.2.2.4 +++ both.inc 14 Jul 2009 23:35:28 -0000 @@ -13,7 +13,6 @@ * @warning For more information on licensing, read the LICENCE.txt file. */ - /** * Defines the form for mixed content administration filter results. * @@ -24,7 +23,6 @@ * @return array with forms properties */ function cmf_admin_both_form() { - $destination = drupal_get_destination(); // build an 'Update options' form @@ -32,28 +30,27 @@ $form['options'] = array( '#type' => 'fieldset', '#title' => t('Update options'), '#prefix' => '
', '#suffix' => '
' - ); + ); $form['options']['operation'] = array( '#type' => 'select', '#options' => array( - 'publish' => t('Publish'), - 'unpublish' => t('Unpublish'), - 'delete' => t('Delete'), - ), + 'publish' => t('Publish'), + 'unpublish' => t('Unpublish'), + 'delete' => t('Delete'), + ), '#default_value' => 'publish' - ); + ); $form['options']['submit'] = array('#type' => 'submit', '#value' => t('Update')); } - // load the objects that we want to display + // Load the objects that we want to display. $form['header'] = array( '#type' => 'value', '#value' => cmf_build_header(), - ); - + ); $result = cmf_perform_query($form['header']['#value']); - // build a table listing the appropriate objects + // Build a table listing the appropriate objects. while ($object = db_fetch_object($result)) { if ($object->cid == 0) { $objects['n-'. $object->nid] = ''; @@ -61,7 +58,7 @@ array('attributes' => array('title' => truncate_utf8($object->body, drupal_strlen($object->body))), 'fragment' => 'node-'. $object->nid)) .' '. theme('mark', node_mark($object->nid, $object->changed))); $form['kind']['n-'. $object->nid] = array('#value' => _cmf_get_img('node', t('node'))); - $form['type']['n-'. $object->nid] = $object->type == 'forum' ? array('#value' => '

nid) .'">'. check_plain(node_get_types('name', $object)) .'

') : array('#value' => check_plain(node_get_types('name', $object))); if (!(arg(0) == 'user' && is_numeric(arg(1)) && arg(1) > 0)) { @@ -73,7 +70,7 @@ 'small')); if (user_access('filter and manage site content')) { $form['operations']['n-'. $object->nid] = array('#value' => l(_cmf_get_img('edit', - t('edit')) .' '. t('edit'), 'node/'. $object->nid .'/edit', array('html' => TRUE))); + t('edit')) .' '. t('edit'), 'node/'. $object->nid .'/edit', array('query' => $destination, 'html' => TRUE))); } } else{ @@ -94,12 +91,11 @@ 'small')); if (user_access('filter and manage site content')) { $form['operations']['c-'. $object->cid] = array('#value' => l(_cmf_get_img('edit', - t('edit')) .' '. t('edit'), 'comment/edit/'. $object->cid, array('html' => TRUE))); + t('edit')) .' '. t('edit'), 'comment/edit/'. $object->cid, array('query' => $destination, 'html' => TRUE))); } } } - if (user_access('filter and manage site content')) { $form['objects'] = array('#type' => 'checkboxes', '#options' => $objects); } @@ -108,7 +104,6 @@ return $form; } - /** * Form validation before submit. \n * We can't execute any 'Update options' if no objects were selected. @@ -119,7 +114,7 @@ * * @param the ID of the passed form * @param array with the form properties values - */ + */ function cmf_admin_both_form_validate($form, &$form_state) { $form_state['values']['objects'] = array_diff($form_state['values']['objects'], array(0)); if (count($form_state['values']['objects']) == 0) { @@ -128,7 +123,6 @@ } } - /** * Handle post-validation form submission. \n * Execute the chosen 'Update option' on the selected objects, such as @@ -140,10 +134,9 @@ * * @param the ID of the passed form * @param array with the form properties values - */ + */ function cmf_admin_both_form_submit($form, &$form_state) { - - // queries building + // Query building. switch ($form_state['values']['operation']) { case 'publish': $node_query = 'UPDATE {node} SET status = 1 WHERE nid = %d'; @@ -159,13 +152,13 @@ break; } - // perform queries + // Perform queries. foreach ($form_state['values']['objects'] as $flag) { if ($flag) { $object = explode('-', $flag); $kind = $object[0]; $value = $object[1]; - + if ($kind == 'n') { db_query($node_query, $value); } @@ -176,7 +169,6 @@ _comment_update_node_statistics($comment->nid); // Allow modules to respond to the updating of a comment. comment_invoke_comment($comment, $form_state['values']['operation']); - } } } @@ -191,14 +183,13 @@ } } - /** * Theme results table. * * @ingroup themable * * @return table with filter results - */ + */ function theme_cmf_admin_both_form($form) { $output = drupal_render($form['options']); Index: cmf.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/cmf/cmf.module,v retrieving revision 1.2.2.4 diff -u -r1.2.2.4 cmf.module --- cmf.module 12 Mar 2009 12:39:19 -0000 1.2.2.4 +++ cmf.module 15 Jul 2009 01:06:21 -0000 @@ -1,6 +1,5 @@ * @author Nuno André Veloso Matias (http://www.nunoveloso.org) - * - * @warning For more information on licensing, read the LICENCE.txt file. */ - /** * Implementation of hook_help(). */ function cmf_help($path, $arg) { - - $output = ''; - switch ($section) { - case "admin/help#cmf": - - $output .= '

'. t('This module adds an easier way for administrators to filter the - content on a Drupal site for administration purposes.') .'

'; - - $output .= '

'. t('It\'s an improvement over the content page in the administration area - of Drupal. It can show on the same page nodes and comments and adds new filters like role - and author.') .'

'; - + $output = '

'. t("This module adds an easier way for administrators to filter the content on a Drupal site for administration purposes.") .'

'; + $output .= '

'. t("It's an improvement over the content page in the administration area of Drupal. It can show on the same page nodes and comments and adds new filters like role and author.") .'

'; break; } return $output; } - - /** * Implementation of hook_perm(). */ function cmf_perm() { - return array('admin cmf module', 'filter and manage site content', 'view user content list'); + return array('filter and manage site content', 'view user content list'); } - - /** * Implementation of hook_menu(). */ function cmf_menu() { $items = array(); - $items['admin/content/filter'] = array( - 'title' => 'Content Management Filter', - 'description' => 'All-in-one advanced filter and management of your site content.', - 'page callback' => 'cmf_admin_content_page', - 'access arguments' => array('filter and manage site content'), - ); - - $items['user/%/cmf'] = array( - 'title' => 'CMF', - 'description' => 'User-specific content management filter', - 'page callback' => 'cmf_admin_content_page', - 'access callback' => '_cmf_userspace_perms', - 'access arguments' => array('filter and manage site content', 'view user content list'), - 'type' => MENU_LOCAL_TASK, - ); + $items['admin/content/filter'] = array( + 'title' => 'Content Management Filter', + 'description' => 'All-in-one advanced filter and management of your site content.', + 'page callback' => 'cmf_admin_content_page', + 'access arguments' => array('filter and manage site content'), + ); + + $items['user/%/cmf'] = array( + 'title' => 'CMF', + 'description' => 'User-specific content management filter', + 'page callback' => 'cmf_admin_content_page', + 'access callback' => '_cmf_userspace_perms', + 'access arguments' => array('filter and manage site content', 'view user content list'), + 'type' => MENU_LOCAL_TASK, + ); return $items; } - - /** * Called when user goes to example.com/admin/content/filter * * @return the HTML generated from the $form data structure - */ + */ function cmf_admin_content_page() { - if (!isset($_SESSION['cmf_content_kind'])) { $_SESSION['cmf_content_kind'] = 'node'; } - if (arg(0) == 'user' && is_numeric(arg(1)) && arg(1) > 0) { $true = TRUE; } - $output = drupal_get_form('cmf_filter_form', $true); - // Call the form first, to allow for the form_values array to be populated. switch ($_SESSION['cmf_content_kind']) { case 'node': @@ -108,18 +84,15 @@ $output .= drupal_get_form('cmf_admin_comments_form'); } break; + case 'both': $output .= drupal_get_form('cmf_admin_both_form'); } - return $output; } - - -/********************** -* FILTERS * -**********************/ - +/** + * FILTERS + */ /** * Defines the form for content administration filters. * @@ -133,13 +106,12 @@ $session = &$_SESSION['cmf_overview_filter']; $session = is_array($session) ? $session : array(); $filters = cmf_filters($true); - // general settings display (max rows & content kind) $form['general'] = array('#type' => 'fieldset', '#title' => t('General Settings'), '#collapsible' => TRUE, '#collapsed' => TRUE, - ); + ); $form['general']['max-rows'] = array( '#type' => 'textfield', '#title' => t('Max rows'), @@ -147,54 +119,64 @@ '#default_value' => isset($_SESSION['cmf_max_rows']) ? $_SESSION['cmf_max_rows'] : 50, '#prefix' => '
', '#suffix' => '
', - ); + ); $form['general']['kind'] = array( '#type' => 'select', '#title' => t('Content'), '#options' => array('node' => t('node'), 'comment' => t('comment'), 'both' => t('both')), - '#default_value' => isset($_SESSION['cmf_content_kind']) ? $_SESSION['cmf_content_kind'] : - 'node', + '#default_value' => isset($_SESSION['cmf_content_kind']) ? $_SESSION['cmf_content_kind'] : 'node', '#prefix' => '
', - ); + ); $form['general']['buttons']['apply'] = array( '#type' => 'submit', '#value' => t('Apply'), '#suffix' => '
', - ); - + ); $i = 0; $form['filters'] = array('#type' => 'fieldset', '#title' => t('Show only items where'), '#theme' => 'node_filters', - ); + ); + foreach ($session as $filter) { list($type, $value) = $filter; if ($type == 'category') { // Load term name from DB rather than search and parse options array. - $value = module_invoke('taxonomy', 'get_term', $value); + $value = taxonomy_get_term($value); $value = $value->name; } + elseif ($type == 'title') { + // Just sanitize it and add quotes. + $value = "'". $value ."'"; + } else { $value = $filters[$type]['options'][$value]; } - // avoid not applicable filter verbose - if ($true && !($type == 'user' || $type == 'blocked' || $type == 'role')) { - $string = ($i++ ? 'and where %a is %b' : - '%a is %b'); - $form['filters']['current'][] = array('#value' => t($string, - array('%a' => $filters[$type]['title'] , '%b' => $value))); + // Avoid not applicable filter verbose. Note '%' does check_plain. + if ($type == 'title') { + if ($i++) { + $form['filters']['current'][] = array('#value' => t('and where %a contains %b', array('%a' => $filters[$type]['title'], '%b' => $value))); + } + else { + $form['filters']['current'][] = array('#value' => t('%a contains %b', array('%a' => $filters[$type]['title'], '%b' => $value))); + } } else { - $string = ($i++ ? 'and where %a is %b' : - '%a is %b'); - $form['filters']['current'][] = array('#value' => t($string, - array('%a' => $filters[$type]['title'] , '%b' => $value))); + if ($i++) { + $form['filters']['current'][] = array('#value' => t('and where %a is %b', array('%a' => $filters[$type]['title'], '%b' => $value))); + } + else { + $form['filters']['current'][] = array('#value' => t('%a is %b', array('%a' => $filters[$type]['title'], '%b' => $value))); + } } - // those ifs remove the respective option if it is already being filtered on. + // These ifs remove the respective option if it is already being filtered on. if ($type == 'type') { unset($filters['type']); } + if ($type == 'title') { + unset($filters['title']); + } if ($type == 'user') { unset($filters['users']); unset($filters['user']); @@ -206,47 +188,52 @@ unset($filters['role']); } } - // preparing select boxes foreach ($filters as $key => $filter) { $names[$key] = $filter['title']; - switch ($key) { case 'user': $form['filters']['status'][$key] = array( '#type' => 'select', '#options' => $filter['options'], // '#disabled' => TRUE, - ); + ); break; - + case 'users': $form['filters']['status'][$key] = array( '#type' => 'textfield', '#autocomplete_path' => 'user/autocomplete', - '#size' => 20, - ); + '#size' => 37, + ); break; - + + case 'title': + $form['filters']['status'][$key] = array( + '#type' => 'textfield', + '#size' => 37, + ); + break; + default: $form['filters']['status'][$key] = array( '#type' => 'select', '#options' => $filter['options'], - ); + ); } } - // building radio buttons + // Building radio buttons. $keyz = array_keys($names); $form['filters']['filter'] = array( '#type' => 'radios', '#options' => $names, '#default_value' => $keyz[0], - ); - // building buttons depending on the filter state + ); + // Building buttons depending on the filter state. $form['filters']['buttons']['submit'] = array( '#type' => 'submit', '#value' => (count($session) ? t('Refine') : t('Filter')), - ); + ); if (count($session)) { $form['filters']['buttons']['undo'] = array( '#type' => 'submit', @@ -257,11 +244,9 @@ '#value' => t('Reset'), ); } - return $form; } - /** * Handle post-validation form submission. * @@ -270,7 +255,7 @@ * * @param the ID of the passed form * @param array with the form properties values - */ + */ function cmf_filter_form_submit($form, &$form_state) { $filters = cmf_filters(); /* TODO The 'op' element in the form values is deprecated. @@ -282,44 +267,41 @@ switch ($form_state['values']['op']) { case t('Filter'): case t('Refine'): - if (isset($form_state['values']['filter'])) { $filter = $form_state['values']['filter']; - - // convert AJAX search value to select box value + // Convert AJAX search value to select box value. if ($filter == 'users') { $users = cmf_get_users('name'); - - $uid = db_result(db_query(' - SELECT uid - FROM {users} - WHERE name = "%s"', - $form_state['values']['users'] - )); - + $uid = db_result(db_query('SELECT uid FROM {users} WHERE name = "%s"', $form_state['values']['users'])); $form_state['values']['user'] = $uid; - $filter = 'user'; } + if ($filter == 'title') { + $string = $form_state['values']['title']; + $filters['title']['options'][$string] = $string; + } + // Flatten the options array to accommodate hierarchical/nested options. $flat_options = form_options_flatten($filters[$filter]['options']); - - if (isset($flat_options[$form_state['values'][$filter]])) { + if (isset($flat_options[$form_state['values'][$filter]]) || $filter == 'title') { $_SESSION['cmf_overview_filter'][] = array($filter, $form_state['values'][$filter]); } } break; + case t('Undo'): array_pop($_SESSION['cmf_overview_filter']); break; + case t('Reset'): $_SESSION['cmf_overview_filter'] = array(); break; + case t('Apply'): $_SESSION['cmf_max_rows'] = $form_state['values']['max-rows']; $_SESSION['cmf_content_kind'] = $form_state['values']['kind']; - + if (arg(0) == 'user' && is_numeric(arg(1)) && arg(1) > 0) { $form_state['redirect'] = 'user/'. arg(1) .'/cmf'; } @@ -347,7 +329,6 @@ return $output; } - /** * List node administration filters that can be applied. * @@ -355,17 +336,26 @@ * @return array with filter properties */ function cmf_filters($true = NULL) { - // Regular filters - $filters['status'] = array('title' => t('node status'), - 'options' => array('status-1' => t('published'), 'status-0' => t('not published'), - 'promote-1' => t('promoted'), 'promote-0' => t('not promoted'), - 'sticky-1' => t('sticky'), 'sticky-0' => t('not sticky'))); + // Regular filters. + $filters['status'] = array( + 'title' => t('node status'), + 'options' => array( + 'status-1' => t('published'), + 'status-0' => t('not published'), + 'promote-1' => t('promoted'), + 'promote-0' => t('not promoted'), + 'sticky-1' => t('sticky'), + 'sticky-0' => t('not sticky'), + ), + ); $filters['type'] = array('title' => t('node type'), 'options' => node_get_types('names')); - // The taxonomy filter + // The taxonomy filter. if ($taxonomy = module_invoke('taxonomy', 'form_all', 1)) { $filters['category'] = array('title' => t('category'), 'options' => $taxonomy); } - // cmf filters + // Cmf filters. + $filters['title'] = array('title' => t('title/subject')); + // Don't show these on the user page. if (!$true) { $filters['user'] = array('title' => t('user list'), 'options' => cmf_get_users('names')); $filters['users'] = array('title' => t('user name')); @@ -376,19 +366,16 @@ return $filters; } - -/********************** -* QUERIES * -**********************/ - +/** + * QUERIES + */ /** * Build the variable parts of the query to be performed regarding the filter status. * - * @return associative array with WHERE JOIN qury parts and respective arguments - */ + * @return associative array with WHERE JOIN query parts and respective arguments + */ function cmf_build_filter_query() { $filters = cmf_filters(); - // Build query $where = $args = array(); $join = ''; @@ -400,24 +387,34 @@ list($key, $value) = explode('-', $value, 2); $where[] = 'n.'. $key .' = %d'; break; + case 'category': $table = "tn$index"; $where[] = "$table.tid = %d"; $join .= "INNER JOIN {term_node} $table ON n.nid = $table.nid "; break; + case 'type': $where[] = "n.type = '%s'"; break; + case 'user': $where[] = "u.uid = %d"; break; + case 'role': $where[] = "u.uid = ur.uid AND ur.rid = %d"; $join .= "INNER JOIN {users_roles} ur ON u.uid = ur.uid "; break; + + case 'title': + $where[] = "n.title LIKE ('%%%s%%')"; + break; + case 'users': $where[] = "u.name = '%s'"; break; + case 'blocked': $where[] = "u.status = %d AND u.uid != 0"; break; @@ -425,20 +422,16 @@ $args[] = $value; } $where = count($where) ? 'WHERE '. implode(' AND ', $where) : ''; - return array('where' => $where, 'join' => $join, 'args' => $args); } - /** * Build the header of the result table. * * @return array respecting tablesort_sql() - */ + */ function cmf_build_header() { - $header = array(); - if (user_access('filter and manage site content')) { $header[] = theme('table_select_header_cell'); } @@ -454,6 +447,7 @@ $header[] = array('data' => t('Status'), 'field' => 'status'); $header[] = array('data' => t('Time'), 'field' => 'created', 'sort' => 'desc'); break; + case 'comment': $header[] = array('data' => t('Subject'), 'field' => 'subject'); $header[] = array('data' => t('Kind')); @@ -464,6 +458,7 @@ $header[] = array('data' => t('Status'), 'field' => 'status'); $header[] = array('data' => t('Time'), 'field' => 'created', 'sort' => 'desc'); break; + case 'both': $header[] = array('data' => t('Title') .'/'. t('Subject'), 'field' => 'title'); $header[] = array('data' => t('Kind')); @@ -482,105 +477,101 @@ return $header; } - /** * Permform adjusted query. * * @param array respecting tablesort_sql() * @return result of permormed query - */ + */ function cmf_perform_query($header, $kind = NULL) { - $filter = cmf_build_filter_query(); - if (is_null($kind)) { $kind = $_SESSION['cmf_content_kind']; } - + if (arg(0) == 'user' && is_numeric(arg(1)) && arg(1) > 0) { $filter['where'] .= ' AND u.uid = '. arg(1); } switch ($kind) { case 'node': - return pager_query(' - SELECT n.nid, n.title, n.type, u.name AS username, u.uid, n.status, n.created, n.changed - FROM {node} n INNER JOIN {users} u ON n.uid = u.uid '. $filter['join'] . - $filter['where'] . - tablesort_sql($header), + return pager_query('SELECT n.nid, n.title, n.type, u.name AS username, u.uid, n.status, n.created, n.changed + FROM {node} n INNER JOIN {users} u ON n.uid = u.uid ' + . $filter['join'] + . $filter['where'] + . tablesort_sql($header), isset($_SESSION['cmf_max_rows']) ? $_SESSION['cmf_max_rows'] : 50, 0, NULL, $filter['args'] ); break; + case 'comment': - return pager_query(' - SELECT c.cid, c.subject, c.nid, c.comment, c.timestamp AS created, c.status, c.name, + return pager_query('SELECT c.cid, c.subject, c.nid, c.comment, c.timestamp AS created, c.status, c.name, c.homepage, u.name AS username, u.uid, n.type - FROM {comments} c INNER JOIN {node} n ON c.nid = n.nid INNER JOIN {users} u ON u.uid = c.uid - '. $filter['join'] . - $filter['where'] . - tablesort_sql($header), + FROM {comments} c INNER JOIN {node} n ON c.nid = n.nid INNER JOIN {users} u ON u.uid = c.uid ' + . $filter['join'] + . $filter['where'] + . tablesort_sql($header), isset($_SESSION['cmf_max_rows']) ? $_SESSION['cmf_max_rows'] : 50, 0, NULL, $filter['args'] ); break; + case 'both': $args = array_merge($filter['args'], $filter['args']); - return pager_query(' - SELECT 0 AS cid, n.nid, n.title, NULL AS comment, n.type, u.name AS username, u.uid, - n.status, n.created, n.changed - FROM {node} n INNER JOIN {users} u ON n.uid = u.uid '. $filter['join'] . - $filter['where'] .' - UNION - SELECT c.cid, c.nid, c.subject AS title, c.comment, n.type, u.name AS username, u.uid, + $where = $filter['where']; + $cwhere = str_replace(array('n.title', 'n.uid'), array('c.subject', 'c.uid'), $where); + $count_query = 'SELECT (' + .'SELECT COUNT(*) FROM {node} n' + .' INNER JOIN {users} u ON n.uid = u.uid ' + . $filter['join'] + .' '. $where + .') + (' + .'SELECT COUNT(*) FROM {comments} c INNER JOIN {node} n ON c.nid = n.nid ' + .' INNER JOIN {users} u ON u.uid = c.uid ' + . $filter['join'] + .' '. $cwhere + .') AS count'; + return pager_query('SELECT 0 AS cid, n.nid, n.title, NULL AS comment, n.type, u.name AS username, + u.uid, n.status, n.created, n.changed + FROM {node} n INNER JOIN {users} u ON n.uid = u.uid ' + . $filter['join'] + .' '. $where + .' UNION SELECT c.cid, c.nid, c.subject AS title, c.comment, n.type, u.name AS username, u.uid, c.status, c.timestamp AS created, 0 AS changed - FROM {comments} c INNER JOIN {node} n ON c.nid = n.nid INNER JOIN {users} u ON u.uid = c.uid - '. $filter['join'] . - $filter['where'] . - tablesort_sql($header), - isset($_SESSION['cmf_max_rows']) ? $_SESSION['cmf_max_rows'] : 50, 0, NULL, $args + FROM {comments} c INNER JOIN {node} n ON c.nid = n.nid INNER JOIN {users} u ON u.uid = c.uid ' + . $filter['join'] + .' '. $cwhere + . tablesort_sql($header), + isset($_SESSION['cmf_max_rows']) ? $_SESSION['cmf_max_rows'] : 50, 0, $count_query, $args ); break; } } - -/********************** -* RESULTS * -**********************/ - +/** + * RESULTS + */ module_load_include('inc', 'cmf', '/node'); - module_load_include('inc', 'cmf', '/comment'); - module_load_include('inc', 'cmf', '/both'); - -/********************** -* AUX * -**********************/ - +/* + * AUX + */ /** - * Builds a list of available users + * Builds a list of available users. * * @param the format in which to return the list * @return array of all available users */ function cmf_get_users($op) { - switch ($op) { case 'names': - $result = db_query(' - SELECT uid, name - FROM {users} - WHERE uid != 0 - ORDER BY name' - ); - + $result = db_query('SELECT uid, name FROM {users} WHERE uid <> 0 ORDER BY name'); break; } $users = array(); - $users[0] = variable_get('anonymous', NULL); - + $users[0] = variable_get('anonymous', t('anonymous')); while ($user = db_fetch_object($result)) { $users[$user->uid] = $user->name; } @@ -588,7 +579,6 @@ return $users; } - /** * Builds a list of available roles * @@ -596,20 +586,12 @@ * @return array of all available roles */ function cmf_get_roles($op) { - switch ($op) { case 'names': - $result = db_query(' - SELECT * - FROM {role} - ORDER BY name' - ); - + $result = db_query('SELECT rid, name FROM {role} ORDER BY name'); break; } - $roles = array(); - while ($role = db_fetch_object($result)) { $roles[$role->rid] = $role->name; } @@ -617,7 +599,6 @@ return $roles; } - /** * Get the html code of an image * @@ -625,20 +606,16 @@ * @return html tag img */ function _cmf_get_img($action, $title) { - $path = base_path() . drupal_get_path('module', 'cmf') .'/images/'. $action .'.png'; - if ($title == NULL) { $html = 'untitled image'; } else { $html = ''. $title .''; } - return $html; } - /** * Theme (node) type cell on table result. * @@ -646,24 +623,16 @@ * * @param 0 or node type key * @return formated (node) type - */ + */ function theme_cmf_type($type) { - - return db_result(db_query(' - SELECT name - FROM {node_type} - WHERE type = "%s"', - $type - )); - + return db_result(db_query('SELECT name FROM {node_type} WHERE type = "%s"', $type)); } - /** * Implementation of hook_theme(). * * @ingroup themable - */ + */ function cmf_theme() { return array( 'cmf_filter_form' => array( @@ -693,7 +662,6 @@ ); } - /** * Theme user cell on table result. * @@ -701,26 +669,21 @@ * * @param user ID * @return clickable username with status - */ + */ function theme_cmf_user($uid) { - if ($uid == 0) { - return variable_get('anonymous', NULL); + return variable_get('anonymous', t('anonymous')); } - $result = db_query(' SELECT name, status FROM {users} WHERE uid = %d', $uid ); - $user = db_fetch_array($result); - $url_alias = _cmf_get_user_path($uid); $url = $url_alias ? $url_alias : 'user/'. $uid; - if ($user['status']) { $output .= l($user['name'], $url, array()); } @@ -728,11 +691,9 @@ $output .= l(_cmf_get_img('blocked', t('blocked')) .' '. $user['name'], $url, array(), NULL, NULL, FALSE, TRUE); } - return $output; } - /** * Get the alias path to a user profile * @@ -740,7 +701,6 @@ * @return the relative URL of the user profile */ function _cmf_get_user_path($uid) { - return db_result(db_query(" SELECT dst FROM {url_alias} @@ -749,7 +709,6 @@ )); } - /** * Check user permissions to see menu itme under example.com/user/UID/cmf * @@ -761,7 +720,6 @@ return (user_access($manage_access) || user_access($view_access)); } - /** * Get the term for a forum node * @@ -769,15 +727,11 @@ * @return the name and forum description */ function _cmf_get_forum($nid) { - - $node = node_load($nid); - + $path = array(); + $node = node_load($nid); $parents = taxonomy_get_parents_all($node->tid); - - foreach ($parents as $parent) { + foreach ($parents as $parent) { $path[] = $parent->name; - } - - return implode(' > ', array_reverse($path)); - -} \ No newline at end of file + } + return implode(' > ', array_reverse($path)); +} Index: comment.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/cmf/comment.inc,v retrieving revision 1.2.2.5 diff -u -r1.2.2.5 comment.inc --- comment.inc 12 Mar 2009 16:59:07 -0000 1.2.2.5 +++ comment.inc 14 Jul 2009 23:41:03 -0000 @@ -13,7 +13,6 @@ * @warning For more information on licensing, read the LICENCE.txt file. */ - /** * Defines the form for comments administration filter results. * @@ -24,15 +23,16 @@ * @return array with forms properties */ function cmf_admin_comments_form() { - $destination = drupal_get_destination(); - // build an 'Update options' form + // Build an 'Update options' form. if (user_access('filter and manage site content')) { $form['options'] = array( - '#type' => 'fieldset', '#title' => t('Update options'), - '#prefix' => '
', '#suffix' => '
' - ); + '#type' => 'fieldset', + '#title' => t('Update options'), + '#prefix' => '
', + '#suffix' => '
', + ); $options = array(); foreach (comment_operations() as $key => $value) { $options[$key] = $value[0]; @@ -41,18 +41,18 @@ '#type' => 'select', '#options' => $options, '#default_value' => 'publish', - ); + ); $form['options']['submit'] = array('#type' => 'submit', '#value' => t('Update')); } - - // load the comments that we want to display + + // Load the comments that we want to display. $form['header'] = array( '#type' => 'value', '#value' => cmf_build_header(), ); $result = cmf_perform_query($form['header']['#value']); - // build a table listing the appropriate comments + // Build a table listing the appropriate comments. while ($comment = db_fetch_object($result)) { $comments[$comment->cid] = ''; $form['title'][$comment->cid] = array('#value' => l($comment->subject, 'node/'. $comment->nid, @@ -70,10 +70,10 @@ $form['created'][$comment->cid] = array('#value' => format_date($comment->created, 'small')); if (user_access('filter and manage site content')) { $form['operations'][$comment->cid] = array('#value' => l(_cmf_get_img('edit', t('edit')) .' '. - t('edit'), 'comment/edit/'. $comment->cid, array('html' => TRUE))); + t('edit'), 'comment/edit/'. $comment->cid, array('query' => $destination, 'html' => TRUE))); } } - + if (user_access('filter and manage site content')) { $form['comments'] = array('#type' => 'checkboxes', '#options' => $comments); } @@ -82,7 +82,6 @@ return $form; } - /** * Form validation before submit. \n * We can't execute any 'Update options' if no comments were selected. @@ -93,7 +92,7 @@ * * @param the ID of the passed form * @param array with the form properties values - */ + */ function cmf_admin_comments_form_validate($form, &$form_state) { $form_state['values']['comments'] = array_diff($form_state['values']['comments'], array(0)); if (count($form_state['values']['comments']) == 0) { @@ -102,7 +101,6 @@ } } - /** * Handle post-validation form submission. \n * Execute the chosen 'Update option' on the selected comments, such as @@ -114,15 +112,15 @@ * * @param the ID of the passed form * @param array with the form properties values - */ + */ function cmf_admin_comments_form_submit($form, &$form_state) { $operations = comment_operations(); if ($operations[$form_state['values']['operation']][1]) { - // extract the appropriate database query operation + // Extract the appropriate database query operation. $query = $operations[$form_state['values']['operation']][1]; foreach ($form_state['values']['comments'] as $cid => $value) { if ($value) { - // perform the update action, then refresh node statistics + // Perform the update action, then refresh node statistics. db_query($query, $cid); $comment = _comment_load($cid); _comment_update_node_statistics($comment->nid); @@ -142,14 +140,13 @@ } } - /** * Theme results table. * * @ingroup themable * * @return table with filter results - */ + */ function theme_cmf_admin_comments_form($form) { $output = drupal_render($form['options']); if (isset($form['title']) && is_array($form['title'])) { Index: node.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/cmf/node.inc,v retrieving revision 1.2.2.5 diff -u -r1.2.2.5 node.inc --- node.inc 12 Mar 2009 16:59:07 -0000 1.2.2.5 +++ node.inc 14 Jul 2009 23:37:15 -0000 @@ -13,7 +13,6 @@ * @warning For more information on licensing, read the LICENCE.txt file. */ - /** * Defines the form for nodes administration filter results. * @@ -24,7 +23,6 @@ * @return array with forms properties */ function cmf_admin_nodes_form() { - $destination = drupal_get_destination(); // build an 'Update options' form @@ -50,14 +48,14 @@ '#type' => 'value', '#value' => cmf_build_header(), ); - + $result = cmf_perform_query($form['header']['#value']); // build a table listing the appropriate nodes while ($node = db_fetch_object($result)) { $nodes[$node->nid] = ''; $form['title'][$node->nid] = array('#value' => l($node->title, 'node/'. $node->nid, array('attributes' => array('title' => truncate_utf8($node->body, drupal_strlen($node->body))), - 'fragment' => 'node-'. $node->nid)) .' '.theme('mark', node_mark($node->nid, $node->changed))); + 'fragment' => 'node-'. $node->nid)) .' '. theme('mark', node_mark($node->nid, $node->changed))); $form['kind'][$node->nid] = array('#value' => _cmf_get_img('node', t('node'))); $form['type'][$node->nid] = $node->type == 'forum' ? array('#value' => '

'. check_plain(node_get_types('name', $node)) .'

') : @@ -70,7 +68,7 @@ $form['created'][$node->nid] = array('#value' => format_date($node->created, 'small')); if (user_access('filter and manage site content')) { $form['operations'][$node->nid] = array('#value' => l(_cmf_get_img('edit', t('edit')) .' '. - t('edit'), 'node/'. $node->nid .'/edit', array('html' => TRUE))); + t('edit'), 'node/'. $node->nid .'/edit', array('query' => $destination, 'html' => TRUE))); } } @@ -78,11 +76,10 @@ $form['nodes'] = array('#type' => 'checkboxes', '#options' => $nodes); } $form['pager'] = array('#value' => theme('pager', NULL, $_SESSION['cmf_max_rows'], 0)); - + return $form; } - /** * Form validation before submit. \n * We can't execute any 'Update options' if no nodes were selected. @@ -93,7 +90,7 @@ * * @param the ID of the passed form * @param array with the form properties values - */ + */ function cmf_admin_nodes_form_validate($form, &$form_state) { $nodes = array_filter($form_state['values']['nodes']); if (count($nodes) == 0) { @@ -101,7 +98,6 @@ } } - /** * Handle post-validation form submission. \n * Execute the chosen 'Update option' on the selected nodes, such as @@ -113,7 +109,7 @@ * * @param the ID of the passed form * @param array with the form properties values - */ + */ function cmf_admin_nodes_form_submit($form, &$form_state) { $operations = module_invoke_all('node_operations'); $operation = $operations[$form_state['values']['operation']]; @@ -141,14 +137,13 @@ } } - /** * Theme results table. * * @ingroup themable * * @return table with filter results - */ + */ function theme_cmf_admin_nodes_form($form) { $output = drupal_render($form['options']); if (isset($form['title']) && is_array($form['title'])) { @@ -183,4 +178,4 @@ $output .= drupal_render($form); return $output; -} \ No newline at end of file +}