cvs diff: Diffing modules/project Index: modules/project/project.css =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/project/project.css,v retrieving revision 1.32 diff -u -p -r1.32 project.css --- modules/project/project.css 18 Dec 2006 09:02:39 -0000 1.32 +++ modules/project/project.css 19 Dec 2006 23:44:17 -0000 @@ -107,15 +107,15 @@ width: 150px; } -.node-form .project fieldset { +.project .node-form fieldset { display: block; } -.node-form .project .form-checkbox { +.project .node-form .form-checkbox { display: inline; } -.node-form .project .project-taxonomy-element { +.project .node-form .project-taxonomy-element { float: left; padding-right: 2em; } Index: modules/project/project.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/project/project.inc,v retrieving revision 1.96 diff -u -p -r1.96 project.inc --- modules/project/project.inc 19 Dec 2006 02:43:17 -0000 1.96 +++ modules/project/project.inc 19 Dec 2006 23:44:18 -0000 @@ -57,7 +57,7 @@ function project_project_form($node) { $select_size = max(5, 2*count($top_level)); foreach ($options as $tid => $values) { $form['project_taxonomy']["tid_$tid"] = array( - '#title' => t('%type categories', array('%type' => $top_level[$tid])), + '#title' => t('!type categories', array('!type' => $top_level[$tid])), '#type' => 'select', '#multiple' => TRUE, '#options' => $values, @@ -90,7 +90,7 @@ function project_project_form($node) { '#rows' => 10, '#required' => TRUE, ); - $form['project']['format'] = filter_form($node->format); + $form['project']['format'] = filter_form($node->format); $form['project']['uri'] = array( '#type' => 'textfield', '#title' => t('Short project name'), @@ -233,7 +233,7 @@ function project_project_validate(&$node // Make sure all URL fields actually contain URLs. foreach (array('homepage', 'changelog', 'cvs', 'demo') as $uri) { if ($node->$uri && !preg_match('/^(http|https|ftp):\/\//i', $node->$uri)) { - form_set_error($uri, t('%field is not a valid URL.', array('%field' => t(ucfirst($uri))))); + form_set_error($uri, t('!field is not a valid URL.', array('!field' => t(ucfirst($uri))))); } } @@ -250,7 +250,7 @@ function project_project_validate(&$node if ($node->project_type != $tid) { $tid_field = 'tid_' . $tid; if (!empty($node->$tid_field)) { - form_set_error($tid, t('Project type %project_type was selected, you can not use values from %invalid_type categories', array('%project_type' => theme('placeholder', $top_level[$node->project_type]), '%invalid_type' => theme('placeholder', $top_level[$tid])))); + form_set_error($tid, t('Project type %project_type was selected, you can not use values from %invalid_type categories', array('%project_type' => $top_level[$node->project_type], '%invalid_type' => $top_level[$tid]))); } } } @@ -277,14 +277,18 @@ function project_project_set_breadcrumb( drupal_set_breadcrumb($breadcrumb); } -function project_project_view(&$node, $teaser = false, $page = false) { +function project_project_view($node, $teaser = false, $page = false) { $node = node_prepare($node, $teaser); + if ($page) { // Breadcrumb navigation project_project_set_breadcrumb($node); if (function_exists('project_release_project_download_table')) { - $output = project_release_project_download_table($node); + $node->content['download_table'] = array( + '#value' => project_release_project_download_table($node), + '#weight' => 1, + ); } // Misc section @@ -297,13 +301,15 @@ function project_project_view(&$node, $t } if ($links) { - $output .= theme('item_list', $links, t('Resources')); + $node->content['resources'] = array( + '#value' => theme('item_list', $links, t('Resources')), + '#weight' => 2, + ); } // Support section $links = array(); - - if (module_exist('forum') && ($support_forum = variable_get('project_support_forum', ''))) { + if (module_exists('forum') && ($support_forum = variable_get('project_support_forum', ''))) { $links[] = l(t('Support forum'), 'forum/' . $support_forum); } @@ -315,14 +321,15 @@ function project_project_view(&$node, $t } if ($links) { - $output .= theme('item_list', $links, t('Support')); + $node->content['support'] = array( + '#value' => theme('item_list', $links, t('Support')), + '#weight' => 3, + ); } // Developer section $links = array(); - if ($node->issues) { - #$output .= '

'. t('If you think you have found a bug please check the list of existing bugs reported, if you do not find it please submit a new bug report. Remember to provide as much information as possible to make it easier for the developers to fix the issue.') .'

'; $links[] = l(t('View pending patches'), 'project/issues/'. $node->uri, null, 'states=8,13,14', null); $links[] = l(t('View available tasks'), 'project/issues/'. $node->uri, null, 'categories=task', null); $links[] = l(t('View all issues'), 'project/issues/'. $node->uri); @@ -332,17 +339,19 @@ function project_project_view(&$node, $t $links[] = sprintf('%s', $node->cvs, t('Browse the CVS repository')); } - if (module_exist('cvs')) { + if (module_exists('cvs')) { $links[] = l(t('View CVS messages'), 'project/cvs/'. $node->nid); $links[] = l(t('Developers'), 'project/developers/'. $node->nid); } if ($links) { - $output .= theme('item_list', $links, t('Development')); + $node->content['development'] = array( + '#value' => theme('item_list', $links, t('Development')), + '#weight' => 4, + ); } - - $node->body .= $output; } + return $node; } function project_project_load($node) { @@ -359,14 +368,14 @@ function project_project_nodeapi(&$node, switch ($op) { case 'insert': _project_save_taxonomy($node); - if (module_exist('path')) { + if (module_exists('path')) { path_set_alias("node/$node->nid", "project/$node->uri"); } break; case 'update': _project_save_taxonomy($node); - if (module_exist('path')) { + if (module_exists('path')) { path_set_alias("node/$node->nid"); // Clear existing alias. path_set_alias("node/$node->nid", "project/$node->uri"); } @@ -406,7 +415,7 @@ function project_project_access($op, $no if ($user->uid && user_access('maintain projects')) { // Since this CVS access checking is non-standard, we need to // special-case uid 1 to always allow everything. - if ($user->uid != 1 && module_exist('cvs') && variable_get('cvs_restrict_project_creation',1)) { + if ($user->uid != 1 && module_exists('cvs') && variable_get('cvs_restrict_project_creation',1)) { return db_result(db_query("SELECT uid FROM {cvs_accounts} WHERE uid = %d AND status = %d", $user->uid, CVS_APPROVED)) ? TRUE : FALSE; } else { Index: modules/project/project.info =================================================================== RCS file: modules/project/project.info diff -N modules/project/project.info --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ modules/project/project.info 19 Dec 2006 23:44:18 -0000 @@ -0,0 +1,6 @@ +; $Id$ +name = Project +description = Provides a project node type and browsing of projects. +package = Project +version = "$Name$" + Index: modules/project/project.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/project/project.module,v retrieving revision 1.257 diff -u -p -r1.257 project.module --- modules/project/project.module 18 Dec 2006 09:02:39 -0000 1.257 +++ modules/project/project.module 19 Dec 2006 23:44:18 -0000 @@ -9,11 +9,7 @@ if (file_exists("$path/project.inc")) { function project_help($section) { switch ($section) { - case 'admin/modules#description': - return t('Provides a project node type and browsing of projects.'); - case 'node/add#project_project': - return t('A project is something a group is working on. It can optionally have issue tracking, integration with revision control systems, releases, and so on.' ); - case 'node/add/project_project': + case 'node/add/project-project': if (project_use_taxonomy()) { $tree = taxonomy_get_tree(_project_get_vid()); // Extract the different project types, and, for the first type, up to three categories. @@ -41,7 +37,7 @@ function project_help($section) { return t('

The project module makes special use of the taxonomy (category) system. A special vocabulary, "Projects", has been created automatically.

To take full advantage of project categorization, add at least two levels of terms to this vocabulary. The first level will be the basic project types, e.g., "modules", "themes", "translations".

Subterms of each of these types will be the categories that users can select to classify the projects. For example, "modules" might have sub-terms including "mail" and "XML".

-

Use the vocabulary admin page to view and add terms.

', array('%taxonomy-admin' => url('admin/taxonomy/' . $vid))); +

Use the vocabulary admin page to view and add terms.

', array('!taxonomy-admin' => url('admin/content/taxonomy/' . $vid))); } break; } @@ -56,19 +52,19 @@ function project_block($op = 'list', $de return $blocks; } else if ($op == 'view') { - $uris = NULL; - $projects = array_merge(array(0 => t('')), project_projects_select_options($uris, FALSE, 'node/')); $form = array(); $form['project_goto'] = array( '#type' => 'select', '#default_value' => '0', '#options' => $projects ); - $form['destination'] = array( - '#type' => 'hidden', - '#value' => $_REQUEST['q'] - ); $form['submit'] = array( - '#type' => 'button', + '#type' => 'submit', '#value' => t('Go') ); - $form['#action'] = url('project/goto'); return $form; } +function project_quick_navigate_form_submit($form_id, $form_values) { + if (!empty($form_values['project_goto']) && (string)$form_values['project_goto'] != '0') { + drupal_goto($form_values['project_goto']); + } +} + // Themables function theme_project_term_list($terms, $path) { $depth = 0; $output = "\n\n"; @@ -887,7 +868,7 @@ function theme_project_summary($project) $output = '
'; $output .= '

'. l($project->title, "node/$project->nid") .'

'; if ($project->changed) { - $output .= '

' . t('Last changed: %interval ago', array('%interval' => format_interval(time() - $project->changed, 2))) . '

'; + $output .= '

' . t('Last changed: !interval ago', array('!interval' => format_interval(time() - $project->changed, 2))) . '

'; } $output .= $project->body; $output .= theme('links', $project->links); @@ -895,7 +876,7 @@ function theme_project_summary($project) $output .= $project->download_table; } if ($project->terms) { - $output .= '
' . theme('links', $project->terms); + $output .= theme('links', $project->terms); } $output .= '
'; return $output; @@ -949,5 +930,5 @@ function project_autocomplete($string) { * taxonomy-specific functionality. */ function project_use_taxonomy() { - return module_exist('taxonomy') && taxonomy_get_tree(_project_get_vid()); + return module_exists('taxonomy') && taxonomy_get_tree(_project_get_vid()); } cvs diff: Diffing modules/project/po cvs diff: Diffing modules/project/po/ar cvs diff: Diffing modules/project/release Index: modules/project/release/project_release.css =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/project/release/project_release.css,v retrieving revision 1.3 diff -u -p -r1.3 project_release.css --- modules/project/release/project_release.css 18 Dec 2006 09:02:39 -0000 1.3 +++ modules/project/release/project_release.css 19 Dec 2006 23:44:18 -0000 @@ -1,13 +1,13 @@ /* $Id$ */ /* $Name$ */ -.node-form .project-release .version-elements fieldset .form-item { +.project-release .node-form .version-elements fieldset .form-item { float: left; padding-right: 0.8em; margin: 0.05em 0.1em; } -.node-form .project-release fieldset:after { +.project-release .node-form fieldset:after { content: "."; display: block; height: 0; @@ -15,7 +15,7 @@ visibility: hidden; } -.node-form .project-release .version-elements fieldset {display: inline-table;} +.project-release .node-form .version-elements fieldset {display: inline-table;} /*************************** * CSS for tables of releases @@ -39,4 +39,3 @@ table.releases .release-size { table.releases .release-links { width: 40%; } - Index: modules/project/release/project_release.info =================================================================== RCS file: modules/project/release/project_release.info diff -N modules/project/release/project_release.info --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ modules/project/release/project_release.info 19 Dec 2006 23:44:18 -0000 @@ -0,0 +1,5 @@ +; $Id$ +name = Project releases +description = Provides a release node type to represent releases of projects. +package = Project +version = "$Name$" Index: modules/project/release/project_release.install =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/project/release/project_release.install,v retrieving revision 1.3 diff -u -p -r1.3 project_release.install --- modules/project/release/project_release.install 18 Dec 2006 09:02:39 -0000 1.3 +++ modules/project/release/project_release.install 19 Dec 2006 23:44:18 -0000 @@ -42,7 +42,7 @@ function project_release_install() { break; case 'pgsql': - if (!project_release_db_table_exists('project_release_nodes')) { + if (!db_table_exists('project_release_nodes')) { db_query("CREATE TABLE {project_release_nodes} ( nid int NOT NULL default '0', pid int NOT NULL default '0', @@ -60,7 +60,7 @@ function project_release_install() { KEY project_releases_pid (pid) );"); } - if (!project_release_db_table_exists('project_release_projects')) { + if (!db_table_exists('project_release_projects')) { db_query("CREATE TABLE {project_release_projects} ( nid int NOT NULL default '0', releases smallint NOT NULL default '1', @@ -70,7 +70,7 @@ function project_release_install() { KEY project_release_projects_releases (releases) );"); } - if (!project_release_db_table_exists('project_release_default_versions')) { + if (!db_table_exists('project_release_default_versions')) { db_query("CREATE TABLE {project_release_default_versions} ( nid int NOT NULL default '0', tid int NOT NULL default '0', @@ -147,18 +147,3 @@ function project_release_update_2() { } return $ret; } - - -function project_release_db_table_exists($table) { - switch ($GLOBALS['db_type']) { - case 'mysql': - case 'mysqli': - return db_num_rows(db_query("SHOW TABLES LIKE '{" . db_escape_table($table) . "}'")); - break; - - case 'pgsql': - return db_num_rows(db_query("SELECT relname FROM pg_class WHERE relname = '{" . db_escape_table($table) . "}'")); - break; - } -} - Index: modules/project/release/project_release.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/project/release/project_release.module,v retrieving revision 1.3 diff -u -p -r1.3 project_release.module --- modules/project/release/project_release.module 18 Dec 2006 09:02:39 -0000 1.3 +++ modules/project/release/project_release.module 19 Dec 2006 23:44:19 -0000 @@ -16,8 +16,6 @@ define('PROJECT_RELEASE_VERSION_FORMAT_H */ function project_release_help($section) { switch ($section) { - case 'admin/modules#description': - return t('Provides a project release node type.'); case 'node/add#project_release': return t('A release of a project with a specific version number.'); } @@ -35,19 +33,40 @@ function project_release_menu($may_cache if (arg(0) == 'node' && is_numeric(arg(1))) { $node = node_load(arg(1)); if ($node->type == 'project_project') { - $items[] = array('path' => 'node/'. arg(1) .'/release', 'title' => t('releases'), 'callback' => 'project_release_project_releases', 'access' => node_access('view', $node), 'weight' => 0, 'type' => MENU_CALLBACK); + $items[] = array( + 'path' => 'node/'. arg(1) .'/release', + 'title' => t('Releases'), + 'callback' => 'project_release_project_releases', + 'access' => node_access('view', $node), + 'type' => MENU_CALLBACK, + ); if (node_access('update', $node)) { - $items[] = array('path' => 'node/'. arg(1) .'/release/overview', 'title' => t('overview'), 'callback' => 'project_release_project_releases', 'access' => node_access('view', $node), 'weight' => 0, 'type' => MENU_CALLBACK); + $items[] = array( + 'path' => 'node/'. arg(1) .'/release/overview', + 'title' => t('Overview'), + 'callback' => 'project_release_project_releases', + 'access' => node_access('view', $node), + 'type' => MENU_CALLBACK, + ); $items[] = array( 'path' => 'node/'. arg(1) .'/edit/releases', - 'title' => t('releases'), + 'title' => t('Releases'), 'callback' => 'project_release_project_edit_releases', - 'weight' => 0, 'type' => MENU_LOCAL_TASK, + 'type' => MENU_LOCAL_TASK, ); } } } - theme_add_style(drupal_get_path('module', 'project_release') .'/project_release.css'); + $items[] = array( + 'path' => 'admin/settings/project_release', + 'description' => t('Administer the project release module settings.'), + 'title' => t('Project release'), + 'callback' => 'drupal_get_form', + 'callback arguments' => 'project_release_settings_form', + 'access' => user_access('administer projects'), + 'type' => MENU_NORMAL_ITEM, + ); + drupal_add_css(drupal_get_path('module', 'project_release') .'/project_release.css'); project_release_get_api_taxonomy(); } return $items; @@ -57,7 +76,7 @@ function project_release_menu($may_cache * Callback for the main settings page. * @ingroup project_release_core */ -function project_release_settings() { +function project_release_settings_form() { if ($rel_dir = variable_get('project_release_directory', '')) { $form['project_release_directory'] = array( '#type' => 'textfield', @@ -93,10 +112,10 @@ function project_release_settings() { $tids = variable_get('project_release_active_compatibility_tids', ''); $form['project_release_active_compatibility_tids'] = array( '#type' => 'checkboxes', - '#title' => t('Active %vocab terms', array('%vocab' => check_plain($vocab->name))), + '#title' => t('Active @vocab terms', array('@vocab' => $vocab->name)), '#default_value' => $tids, '#options' => $terms, - '#description' => t('Terms from the %vocab vocabulary that should be visibile to end users and project maintainers.', array('%vocab' => theme('placeholder', $vocab->name))), + '#description' => t('Terms from the %vocab vocabulary that should be visibile to end users and project maintainers.', array('%vocab' => $vocab->name)), ); // TODO: put these 2 in a fieldset? @@ -115,13 +134,15 @@ function project_release_settings() { '#required' => TRUE, '#description' => t('Default release version to list on the overview page.'), ); +/* $setting_valid = array('project_release_settings_validate' => array()); $form['#validate'] = isset($form['#validate']) ? array_merge($form['#validate'], $setting_valid) : $setting_valid; +*/ } - return $form; + return system_settings_form($form); } -function project_release_settings_validate($form_id, $form_values, $form) { +function project_release_settings_form_validate($form_id, $form_values, $form) { if (!empty($form_values['project_release_directory'])) { form_set_error('project_release_directory', t('Release directory setting has been deprecated.')); } @@ -129,7 +150,7 @@ function project_release_settings_valida $default_tid = $form_values['project_release_overview']; if ($default_tid != -1 && !$tids[$default_tid]) { $vocab = taxonomy_get_vocabulary(_project_release_get_api_vid()); - form_set_error('project_release_overview', t('Project release overview must be one of the active %vocab terms', array('%vocab' => check_plain($vocab->name)))); + form_set_error('project_release_overview', t('Project release overview must be one of the active @vocab terms', array('@vocab' => $vocab->name))); } // Make sure the default version format has no bad characters. @@ -173,7 +194,10 @@ function project_release_access($op, $no */ function project_release_node_info() { return array( - 'project_release' => array('name' => t('project release'), 'base' => 'project_release'), + 'project_release' => array( + 'name' => t('project release'), + 'module' => 'project_release' + ), ); } @@ -181,7 +205,7 @@ function project_release_node_info() { * Implementation of hook_form(). * @ingroup project_release_node */ -function project_release_form(&$release, &$param) { +function project_release_form($release) { if (arg(1) == 'add') { if (!is_numeric(arg(3))) { drupal_set_message(t('You can only add releases from a project page.')); @@ -192,7 +216,7 @@ function project_release_form(&$release, $release->pid = arg(3); $project = node_load($release->pid); if (!isset($project) || $project->type != 'project_project') { - drupal_set_message(t('Node %nid is not a valid project.', array('%nid' => $release->pid))); + drupal_set_message(t('Node !nid is not a valid project.', array('!nid' => $release->pid))); drupal_not_found(); module_invoke_all('exit'); exit; @@ -387,7 +411,7 @@ function _project_release_form_add_text_ * @ingroup project_release_node */ function project_release_validate(&$edit, $form) { - if ($_POST['edit']['validate_version']) { + if ($_POST['validate_version']) { if (!isset($edit->version_major) && !isset($edit->version_minor) && !isset($edit->version_patch) && (!($edit->version_extra) || $edit->version_extra === '')) { @@ -397,7 +421,7 @@ function project_release_validate(&$edit foreach (array('version_major' => 'Major version number', 'version_minor' => 'Minor version number') as $field => $name) { $val = $edit->$field; if (isset($val) && $val !== '' && !is_numeric($val)) { - form_set_error($field, t('%name must be a number.', array('%name' => $name))); + form_set_error($field, t('!name must be a number.', array('!name' => $name))); } } $val = $edit->version_patch; @@ -433,7 +457,7 @@ function project_release_validate(&$edit // With cvs.module installed, this validation is already handled. // We only want to do it here if we're *not* doing the N-page form... - if (!module_exist('cvs') && !isset($edit->nid) && project_release_exists($edit)) { + if (!module_exists('cvs') && !isset($edit->nid) && project_release_exists($edit)) { // TODO: is there a better form element to mark with this error? form_set_error('version_patch', t('This version already exists for this project.')); } @@ -479,7 +503,7 @@ function project_release_load($node) { */ function project_release_insert($node) { project_release_db_save($node, true); - if (module_exist('cvs')) { + if (module_exists('cvs')) { if ($node->rebuild) { $msg = variable_get('cvs_message_new_release_branch', ''); } @@ -557,7 +581,7 @@ function project_release_db_save($node, // If this is the first release for a given compatibility term, add // a record into the {project_release_default_versions} table. - if ($is_new && module_exist('taxonomy')) { + if ($is_new && module_exists('taxonomy')) { $vid = _project_release_get_api_vid(); if (isset($node->taxonomy[$vid])) { $tid = $node->taxonomy[$vid]; @@ -667,8 +691,9 @@ function project_release_get_version($re * Implementation of hook_view(). * @ingroup project_release_node */ -function project_release_view(&$release, $teaser = FALSE, $page = FALSE) { - $project = node_load($release->pid); +function project_release_view($node, $teaser = FALSE, $page = FALSE) { + $node = node_prepare($node, $teaser); + $project = node_load($node->pid); if ($page) { // Breadcrumb navigation @@ -677,24 +702,25 @@ function project_release_view(&$release, project_project_set_breadcrumb($project, $breadcrumb); } - $links = array(); - if ($release->rebuild) { - $output .= t('Nightly development snapshot from %tag', array('%tag' => check_plain($release->tag))) . '
'; - } - if ($release->file_path) { - $output .= '' . t('Download: %file', array('%file' => l(basename($release->file_path), file_create_url($release->file_path)))) . '
'; - $output .= '' . t('Size: %size', array('%size' => format_size(filesize(file_create_path($release->file_path))))) . '
'; - $output .= '' . t('md5_file hash: %file_hash', array('%file_hash' => $release->file_hash)) . '
'; - } - if ($release->created) { - $output .= '' . t('First released: %created', array('%created' => format_date($release->created))) . '
'; + if ($node->rebuild) { + $output .= t('Nightly development snapshot from !tag', array('!tag' => check_plain($node->tag))) . '
'; } - if ($release->changed && ($release->changed != $release->created)) { - $output .= '' . t('Last updated: %changed', array('%changed' => format_date($release->file_date))) . '
'; - } - $output .= theme('links', $links); - - $release->body = '
' . $output . '
' . check_markup($release->body, $release->format, FALSE); + if ($node->file_path) { + $output .= '' . t('Download: !file', array('!file' => l(basename($node->file_path), file_create_url($node->file_path)))) . '
'; + $output .= '' . t('Size: !size', array('!size' => format_size(filesize(file_create_path($node->file_path))))) . '
'; + $output .= '' . t('md5_file hash: !file_hash', array('!file_hash' => $node->file_hash)) . '
'; + } + if ($node->created) { + $output .= '' . t('First released: !created', array('!created' => format_date($node->created))) . '
'; + } + if ($node->changed && ($node->changed != $node->created)) { + $output .= '' . t('Last updated: !changed', array('!changed' => format_date($node->file_date))) . '
'; + } + $node->content['release_info'] = array( + '#value' => '
' . $output . '
', + '#weight' => -1, + ); + return $node; } /** @@ -710,7 +736,7 @@ function project_release_project_release $output = project_release_list($node); - drupal_set_title(t('Releases for %project', array('%project' => theme('placeholder', $node->title)))); + drupal_set_title(t('Releases for %project', array('%project' => $node->title))); return $output; } @@ -785,19 +811,28 @@ function project_release_compatibility_l * projects on a site with 'project_release_browse_versions' enabled. * @see project_page_overview */ -function project_release_version_filter_form($version) { +function project_release_version_filter_form($version = NULL) { if ($terms = project_release_compatibility_list()) { + if (is_null($version)) { + $version = isset($_SESSION['project_version']) ? $_SESSION['project_version'] : variable_get('project_release_overview', -1); + } $form['version_tid'] = array( '#type' => 'select', '#default_value' => $version, '#options' => $terms, ); $form['submit'] = array( - '#type' => 'button', + '#type' => 'submit', '#value' => t('Go') ); } - return $form; + return isset($form) ? $form : ''; +} + +function project_release_version_filter_form_submit($form_id, $form_values) { + if (isset($form_values['version_tid'])) { + $_SESSION['project_version'] = $form_values['version_tid']; + } } function theme_project_release_version_filter_form($form) { @@ -808,7 +843,7 @@ function theme_project_release_version_f else { $label = t('version'); } - $output = '
' . t('Filter by %label:', array('%label' => $label)) . form_render($form) . '
'; + $output = '
' . t('Filter by !label:', array('!label' => $label)) . drupal_render($form) . '
'; return $output; } @@ -846,12 +881,15 @@ function project_release_project_edit_re $node = node_load(arg(1)); project_project_set_breadcrumb($node); drupal_set_title(check_plain($node->title)); + return drupal_get_form('project_release_project_edit_form'); +} +function project_release_project_edit_form() { $form['advanced'] = array( '#type' => 'fieldset', '#title' => t('Advanced options'), '#collapsible' => TRUE, - '#collapsed' => TRUE, + '#collapsed' => $node->releases, '#weight' => 5, ); @@ -926,7 +964,7 @@ function project_release_project_edit_re '#default_value' => $node->version_format, '#size' => 50, '#maxlength' => 255, - '#description' => t('Customize the format of the version strings for releases of this project.') .' '. PROJECT_RELEASE_VERSION_FORMAT_HELP .' '. t('If blank, this project will use the site-wide default (currently set to: %default)', array('%default' => theme('placeholder', variable_get('project_release_default_version_format', PROJECT_RELEASE_DEFAULT_VERSION_FORMAT)))), + '#description' => t('Customize the format of the version strings for releases of this project.') .' '. PROJECT_RELEASE_VERSION_FORMAT_HELP .' '. t('If blank, this project will use the site-wide default (currently set to: %default)', array('%default' => variable_get('project_release_default_version_format', PROJECT_RELEASE_DEFAULT_VERSION_FORMAT))), ); $form['#validate'] = array_merge($form['#validate'], array('project_release_project_edit_form_validate' => array())); } @@ -937,7 +975,7 @@ function project_release_project_edit_re '#title' => t('Display snapshot releases on project page'), '#return_value' => 1, '#default_value' => isset($node->snapshot_table) ? $node->snapshot_table : 1, - '#description' => t('Note: Even if the current default release for a given %vocabulary_name is a development snapshot, it will only be show if this checkbox is enabled.', array('%vocabulary_name' => $vocab)), + '#description' => t('Note: Even if the current default release for a given !vocabulary_name is a development snapshot, it will only be show if this checkbox is enabled.', array('!vocabulary_name' => $vocab)), ); } @@ -948,7 +986,7 @@ function project_release_project_edit_re '#weight' => 45, ); - return drupal_get_form('project_release_project_edit_form', $form); + return $form; } function theme_project_release_form_value($element) { @@ -967,20 +1005,20 @@ function theme_project_release_project_e } foreach (element_children($form['default_versions']) as $tid) { $row = array(); - $row[] = form_render($form['default_versions'][$tid]['name']); + $row[] = drupal_render($form['default_versions'][$tid]['name']); unset($form['default_versions'][$tid]['major']['#title']); - $row[] = form_render($form['default_versions'][$tid]['major']); - $row[] = form_render($form['default_versions'][$tid]['current_release']); + $row[] = drupal_render($form['default_versions'][$tid]['major']); + $row[] = drupal_render($form['default_versions'][$tid]['current_release']); $rows[] = $row; } if (count($rows)) { $output .= '

'. t('Default versions') .'

'; $output .= theme('table', $header, $rows); - $output .= '
'. t('This table allows you to specify the default version to download for any given %vocabulary_name. If there are releases from more than one major version number, you can select which major version should be used. For each %vocabulary_name, the current default release based on the saved major version is shown. If no official releases have been made, the development snapshot from the corresponding branch will be listed. Otherwise, the most recent official release is used.', array('%vocabulary_name' => theme('placeholder', $vocab->name))) ."
\n"; + $output .= '
'. t('This table allows you to specify the default version to download for any given %vocabulary_name. If there are releases from more than one major version number, you can select which major version should be used. For each %vocabulary_name, the current default release based on the saved major version is shown. If no official releases have been made, the development snapshot from the corresponding branch will be listed. Otherwise, the most recent official release is used.', array('%vocabulary_name' => $vocab->name)) ."
\n"; } - $output .= form_render($form['snapshot_table']); - $output .= form_render($form['advanced']); - $output .= form_render($form); + $output .= drupal_render($form['snapshot_table']); + $output .= drupal_render($form['advanced']); + $output .= drupal_render($form); return $output; } @@ -1140,6 +1178,7 @@ function project_release_project_downloa if ($node->snapshot_table) { $output .= project_release_table($node, 'defaults', 'snapshot', t('Development snapshots')); } + $links = array(); $links[] = l(t('View all releases'), 'node/'. $node->nid .'/release'); if (project_check_admin_access($node->nid)) { $links[] = l(t('Add new release'), 'node/add/project_release/'. $node->nid); @@ -1240,13 +1279,20 @@ function project_release_table($project, $can_edit = node_access('update', $project); while ($release = db_fetch_object($result)) { - $links = array( - l(t('Download'), file_create_url($release->file_path)), - l(t('Release notes'), "node/$release->nid"), + $links = array(); + $links['project_release_download'] = array( + 'title' => t('Download'), + 'href' => file_create_url($release->file_path), + ); + $links['project_release_notes'] = array( + 'title' => t('Release notes'), + 'href' => "node/$release->nid", ); - if ($can_edit) { - $links[] = l(t('Edit'), "node/$release->nid/edit"); + $links['project_release_edit'] = array( + 'title' => t('Edit'), + 'href' => "node/$release->nid/edit", + ); } if (!is_array($items[$release->tid])) { $items[$release->tid] = array(); @@ -1332,7 +1378,7 @@ function project_release_taxonomy($op, $ * API compatibility vocabulary, otherwise, it returns false. */ function project_release_get_api_taxonomy() { - if (!module_exist('taxonomy')) { + if (!module_exists('taxonomy')) { return false; } return taxonomy_get_tree(_project_release_get_api_vid()); Index: modules/project/release/project_release_update.php =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/project/release/project_release_update.php,v retrieving revision 1.3 diff -u -p -r1.3 project_release_update.php --- modules/project/release/project_release_update.php 18 Dec 2006 09:02:39 -0000 1.3 +++ modules/project/release/project_release_update.php 19 Dec 2006 23:44:20 -0000 @@ -97,7 +97,7 @@ function convert_all_releases() { $query = db_query("SELECT nid, rid FROM {project_release_legacy}"); while ($result = db_fetch_object($query)) { $nids_by_rid[$result->rid] = $result->nid; - if (module_exist('project_issue')) { + if (module_exists('project_issue')) { db_query("UPDATE {project_issues} SET rid = %d WHERE rid = %d", $result->nid, $result->rid); } } @@ -256,7 +256,7 @@ function convert_release($old_release) { // convert all the project_issue nodes to the new value. We'll have // to fix all the followup comments only after we have the complete // mapping of rid -> nid - if (module_exist('project_issue')) { + if (module_exists('project_issue')) { list($usec, $sec) = explode(' ', microtime()); $pre_update = (float)$usec + (float)$sec; db_query("UPDATE {project_issues} SET rid = %d WHERE rid = %d", $nid, $rid); @@ -282,7 +282,7 @@ function convert_release($old_release) { } function convert_issue_followups() { - if (!module_exist('project_issue')) { + if (!module_exists('project_issue')) { return; } global $nids_by_rid; @@ -440,7 +440,7 @@ if (!ini_get('safe_mode')) { set_time_limit(2000); } -if (!module_exist('project_release')) { +if (!module_exists('project_release')) { print '' . t('ERROR: project_release_update.php requires that you first install the project_release.module') . ''; exit(1); }