';
$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);
@@ -902,5 +900,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());
}
Index: release/project_release.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/project/release/project_release.module,v
retrieving revision 1.2
diff -u -p -r1.2 project_release.module
--- release/project_release.module 12 Nov 2006 13:40:22 -0000 1.2
+++ release/project_release.module 18 Dec 2006 01:17:29 -0000
@@ -15,8 +15,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.');
}
@@ -34,15 +32,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),
+ 'weight' => 0,
+ '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),
+ 'weight' => 0,
+ 'type' => MENU_CALLBACK
+ );
}
}
}
- theme_add_style(drupal_get_path('module', 'project_release') .'/project_release.css');
+ drupal_add_css(drupal_get_path('module', 'project_release') .'/project_release.css');
project_release_get_api_taxonomy();
}
+ else {
+ $items[] = array(
+ 'path' => 'admin/settings/project_release',
+ 'title' => t('Project release'),
+ 'callback' => 'drupal_get_form',
+ 'callback arguments' => '_project_release_settings',
+ 'access' => user_access('administer projects'),
+ 'type' => MENU_NORMAL_ITEM,
+ 'description' => t('Provides a project release node type for projects.'),
+ );
+ }
return $items;
}
@@ -50,7 +73,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() {
if ($rel_dir = variable_get('project_release_directory', '')) {
$form['project_release_directory'] = array(
'#type' => 'textfield',
@@ -86,10 +109,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?
@@ -110,10 +133,10 @@ function project_release_settings() {
);
$form['#validate'] = array_merge($form['#validate'], array('project_release_settings_validate' => array()));
}
- return $form;
+ return system_settings_form($form);
}
-function project_release_settings_validate($form_id, $form_values, $form) {
+function _project_release_settings_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.'));
}
@@ -121,7 +144,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.
@@ -175,7 +198,7 @@ function project_release_access_check($p
if ($user->uid == $project_obj->uid) {
return TRUE;
}
- if (module_exist('cvs')) {
+ if (module_exists('cvs')) {
if (db_num_rows(db_query("SELECT * FROM {cvs_project_maintainers} WHERE uid = %d AND nid = %d", $user->uid, $project_obj->nid))) {
return TRUE;
}
@@ -190,7 +213,10 @@ function project_release_access_check($p
*/
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',
+ ),
);
}
@@ -209,7 +235,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;
@@ -414,7 +440,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;
@@ -450,7 +476,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.'));
}
@@ -495,7 +521,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', '');
}
@@ -670,7 +696,7 @@ function project_release_get_version($re
* Implementation of hook_view().
* @ingroup project_release_node
*/
-function project_release_view(&$release, $teaser = FALSE, $page = FALSE) {
+function project_release_view($release, $teaser = FALSE, $page = FALSE) {
$project = node_load($release->pid);
if ($page) {
@@ -681,24 +707,27 @@ function project_release_view(&$release,
menu_set_location($breadcrumb);
}
- $links = array();
if ($release->rebuild) {
- $output .= t('Nightly development snapshot from %tag', array('%tag' => check_plain($release->tag))) . '
';
+ $output .= t('Nightly development snapshot from @tag', array('@tag' => $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)) . '';
+ $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))) . '';
+ $output .= '
' . t('First released: !created', array('!created' => format_date($release->created))) . '';
}
if ($release->changed && ($release->changed != $release->created)) {
- $output .= '
' . t('Last updated: %changed', array('%changed' => format_date($release->changed))) . '';
+ $output .= '
' . t('Last updated: !changed', array('!changed' => format_date($release->changed))) . '';
}
- $output .= theme('links', $links);
- $release->body = '
' . $output . '
' . check_markup($release->body, $release->format, FALSE);
+ $release->content['project_release_body'] = array(
+ '#value' => '
' . $output . '
' . check_markup($release->body, $release->format, FALSE),
+ '#weight' => 0,
+ );
+
+ return $release;
}
/**
@@ -717,7 +746,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;
}
@@ -789,19 +818,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',
- '#value' => t('Go')
+ '#type' => 'submit',
+ '#value' => t('Go'),
);
}
- return $form;
+ return isset($form) ? $form : '';
+}
+
+function project_release_version_filter_form_submit($form_id, $form_values) {
+ if ($form_vales['version_tid']) {
+ $_SESSION['project_version'] = $form_values['version_tid'];
+ }
}
function theme_project_release_version_filter_form($form) {
@@ -812,7 +850,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)) . form_render($form) . '
';
return $output;
}
@@ -876,7 +914,7 @@ function project_release_alter_project_f
'#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_form_validate' => array()));
}
@@ -1013,7 +1051,7 @@ function project_release_project_downloa
$release = node_load($node->version);
// Make sure the release we think is the default is valid...
if ($release->type == 'project_release' && $release->pid == $node->nid) {
- $links[] = l(t('Download default release (%version, %date, %size)', array('%version' => $release->version, '%date' => format_date($release->file_date, 'small'), '%size' => format_size(filesize($release->file_path)))), file_create_url($release->file_path));
+ $links[] = l(t('Download default release (!version, !date, !size)', array('!version' => $release->version, '!date' => format_date($release->file_date, 'small'), '!size' => format_size(filesize($release->file_path)))), file_create_url($release->file_path));
}
$links[] = l(t('View all releases'), 'node/'. $node->nid .'/release');
if (project_release_access_check($node->nid)) {
@@ -1039,7 +1077,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());