? project_namespace_80.patch
? project_namespace_83.patch
? project_namespace_84.patch
? release/diff.patch
Index: /Applications/MAMP/htdocs/oct2/drupal/sites/all/modules/project/project.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/project/project.inc,v
retrieving revision 1.126
diff -u -p -r1.126 project.inc
--- project.inc 24 Oct 2008 02:56:05 -0000 1.126
+++ project.inc 25 Oct 2008 23:38:07 -0000
@@ -70,20 +70,15 @@ function project_project_form($node) {
}
}
- /* Project properties */
- $form['project'] = array(
- '#type' => 'fieldset',
- '#title' => t('Project information'),
- '#collapsible' => TRUE,
- );
- $form['project']['title'] = array(
+ $form['title'] = array(
'#type' => 'textfield',
'#title' => t('Full project name'),
'#default_value' => isset($node->title) ? $node->title : NULL,
'#maxlength' => 128,
'#required' => TRUE,
);
- $form['project']['body'] = array(
+
+ $form['body'] = array(
'#type' => 'textarea',
'#title' => t('Full description'),
'#default_value' => isset($node->body) ? $node->body : NULL,
@@ -91,11 +86,22 @@ function project_project_form($node) {
'#rows' => 10,
'#required' => TRUE,
);
- $form['project']['format'] = filter_form($node->format);
+
+ $form['format'] = filter_form($node->format);
+
+ /* Project properties */
+ $form['project'] = array(
+ '#type' => 'fieldset',
+ '#title' => t('Project information'),
+ '#collapsible' => TRUE,
+ '#tree' => TRUE,
+ '#weight' => 2,
+ );
+
$form['project']['uri'] = array(
'#type' => 'textfield',
'#title' => t('Short project name'),
- '#default_value' => isset($node->uri) ? $node->uri : NULL,
+ '#default_value' => isset($node->project['uri']) ? $node->project['uri'] : NULL,
'#size' => 40,
'#maxlength' => 50,
'#description' => t('This will be used to generate a /project/<shortname>/ URL for your project.'),
@@ -104,7 +110,7 @@ function project_project_form($node) {
$form['project']['homepage'] = array(
'#type' => 'textfield',
'#title' => t('Homepage'),
- '#default_value' => isset($node->homepage) ? $node->homepage : NULL,
+ '#default_value' => isset($node->project['homepage']) ? $node->project['homepage'] : NULL,
'#size' => 40,
'#maxlength' => 255,
'#description' => t('Link to project homepage.'),
@@ -112,7 +118,7 @@ function project_project_form($node) {
$form['project']['documentation'] = array(
'#type' => 'textfield',
'#title' => t('Documentation'),
- '#default_value' => isset($node->documentation) ? $node->documentation : NULL,
+ '#default_value' => isset($node->project['documentation']) ? $node->project['documentation'] : NULL,
'#size' => 40,
'#maxlength' => 255,
'#description' => t('Link to project documentation.'),
@@ -120,7 +126,7 @@ function project_project_form($node) {
$form['project']['license'] = array(
'#type' => 'textfield',
'#title' => t('License'),
- '#default_value' => isset($node->license) ? $node->license : NULL,
+ '#default_value' => isset($node->project['license']) ? $node->project['license'] : NULL,
'#size' => 40,
'#maxlength' => 255,
'#description' => t('Link to project license.'),
@@ -128,7 +134,7 @@ function project_project_form($node) {
$form['project']['screenshots'] = array(
'#type' => 'textfield',
'#title' => t('Screenshots'),
- '#default_value' => isset($node->screenshots) ? $node->screenshots : NULL,
+ '#default_value' => isset($node->project['screenshots']) ? $node->project['screenshots'] : NULL,
'#size' => 40,
'#maxlength' => 255,
'#description' => t('Link to project screenshots.'),
@@ -136,7 +142,7 @@ function project_project_form($node) {
$form['project']['changelog'] = array(
'#type' => 'textfield',
'#title' => t('Changelog'),
- '#default_value' => isset($node->changelog) ? $node->changelog : NULL,
+ '#default_value' => isset($node->project['changelog']) ? $node->project['changelog'] : NULL,
'#size' => 40,
'#maxlength' => 255,
'#description' => t('Link to changelog.'),
@@ -144,7 +150,7 @@ function project_project_form($node) {
$form['project']['cvs'] = array(
'#type' => 'textfield',
'#title' => t('CVS tree'),
- '#default_value' => isset($node->cvs) ? $node->cvs : NULL,
+ '#default_value' => isset($node->project['cvs']) ? $node->project['cvs'] : NULL,
'#size' => 40,
'#maxlength' => 255,
'#description' => t('Link to webcvs/viewcvs.'),
@@ -152,7 +158,7 @@ function project_project_form($node) {
$form['project']['demo'] = array(
'#type' => 'textfield',
'#title' => t('Demo site'),
- '#default_value' => isset($node->demo) ? $node->demo : NULL,
+ '#default_value' => isset($node->project['demo']) ? $node->project['demo'] : NULL,
'#size' => 40,
'#maxlength' => 255,
'#description' => t('Link to a live demo.'),
@@ -174,12 +180,12 @@ function project_project_validate(&$node
}
// Validate uri.
- if (empty($node->uri)) {
+ if (empty($node->project['uri'])) {
form_set_error('uri', t('A short project name is required.'));
}
else {
// Make sure uri only includes valid characters
- if (!preg_match('/^[a-zA-Z0-9_-]+$/', $node->uri)) {
+ if (!preg_match('/^[a-zA-Z0-9_-]+$/', $node->project['uri'])) {
form_set_error('uri', t('Please only use alphanumerical characters for the project name.'));
}
@@ -194,7 +200,7 @@ function project_project_validate(&$node
}
}
}
- if (in_array(strtolower($node->uri), $reserved_names) || db_num_rows(db_query("SELECT nid FROM {project_projects} WHERE uri = '%s' AND nid <> %d", $node->uri, $node->nid))) {
+ if (in_array(strtolower($node->project['uri']), $reserved_names) || db_num_rows(db_query("SELECT nid FROM {project_projects} WHERE uri = '%s' AND nid <> %d", $node->project['uri'], $node->nid))) {
form_set_error('uri', t('This project name is already in use.'));
}
}
@@ -212,7 +218,7 @@ function project_project_validate(&$node
'demo' => t('Demo site'),
);
foreach ($fields as $uri => $name) {
- if ($node->$uri && !preg_match('/^(http|https|ftp):\/\//i', $node->$uri)) {
+ if ($node->project[$uri] && !preg_match('/^(http|https|ftp):\/\//i', $node->project[$uri])) {
form_set_error($uri, t('!field is not a valid URL.', array('!field' => $name)));
}
}
@@ -292,14 +298,14 @@ function project_project_view($node, $te
'weight' => 4,
);
foreach (array('homepage' => t('Home page'), 'documentation' => t('Read documentation'), 'license' => t('Read license'), 'changelog' => t('Read complete log of changes'), 'demo' => t('Try out a demonstration'), 'screenshots' => t('Look at screenshots')) as $uri => $name) {
- if (!empty($node->$uri)) {
- $all_links['resources']['links'][$uri] = l($name, $node->$uri);
+ if (!empty($node->project[$uri])) {
+ $all_links['resources']['links'][$uri] = l($name, $node->project[$uri]);
}
}
// Flags that indicate what kind of access to project issues to allow.
- $has_issues = module_exists('project_issue') && !empty($node->issues);
+ $has_issues = module_exists('project_issue') && !empty($node->project_issue['issues']);
$view_issues = $has_issues && (user_access('access project issues') || user_access('access own project issues') || user_access('administer projects'));
$make_issues = $has_issues && node_access('create', 'project_issue');
@@ -310,19 +316,19 @@ function project_project_view($node, $te
);
$links = array();
if ($view_issues) {
- $links['all_support'] = l(t('View all support requests'), 'project/issues/'. $node->uri, null, 'categories=support&states=all', null);
- $links['pending_support'] = l(t('View pending support requests'), 'project/issues/'. $node->uri, null, 'categories=support', null);
- $links['pending_bugs'] = l(t('View pending bug reports'), 'project/issues/'. $node->uri, null, 'categories=bug', null);
- $links['pending_features'] = l(t('View pending feature requests'), 'project/issues/'. $node->uri, null, 'categories=feature', null);
- $links['search_issues'] = l(t('Search issues'), 'project/issues/search/'. $node->uri);
+ $links['all_support'] = l(t('View all support requests'), 'project/issues/'. $node->project['uri'], null, 'categories=support&states=all', null);
+ $links['pending_support'] = l(t('View pending support requests'), 'project/issues/'. $node->project['uri'], null, 'categories=support', null);
+ $links['pending_bugs'] = l(t('View pending bug reports'), 'project/issues/'. $node->project['uri'], null, 'categories=bug', null);
+ $links['pending_features'] = l(t('View pending feature requests'), 'project/issues/'. $node->project['uri'], null, 'categories=feature', null);
+ $links['search_issues'] = l(t('Search issues'), 'project/issues/search/'. $node->project['uri']);
}
if ($make_issues) {
- $links['request_support'] = l(t('Request support'), 'node/add/project_issue/'. $node->uri .'/support');
- $links['report_bug'] = l(t('Report new bug'), 'node/add/project_issue/'. $node->uri .'/bug');
- $links['request_feature'] = l(t('Request new feature'), 'node/add/project_issue/'. $node->uri .'/feature');
+ $links['request_support'] = l(t('Request support'), 'node/add/project_issue/'. $node->project['uri'] .'/support');
+ $links['report_bug'] = l(t('Report new bug'), 'node/add/project_issue/'. $node->project['uri'] .'/bug');
+ $links['request_feature'] = l(t('Request new feature'), 'node/add/project_issue/'. $node->project['uri'] .'/feature');
}
elseif ($has_issues) {
- $links['create_forbidden'] = theme('project_issue_create_forbidden', $node->uri);
+ $links['create_forbidden'] = theme('project_issue_create_forbidden', $node->project['uri']);
}
$all_links['support']['links'] = $links;
@@ -334,13 +340,13 @@ function project_project_view($node, $te
);
$links = array();
if ($view_issues) {
- $links['pending_patches'] = l(t('View pending patches'), 'project/issues/'. $node->uri, null, 'states=8,13,14', null);
- $links['available_tasks'] = l(t('View available tasks'), 'project/issues/'. $node->uri, null, 'categories=task', null);
- $links['pending_issues'] = l(t('View all pending issues'), 'project/issues/'. $node->uri);
+ $links['pending_patches'] = l(t('View pending patches'), 'project/issues/'. $node->project['uri'], null, 'states=8,13,14', null);
+ $links['available_tasks'] = l(t('View available tasks'), 'project/issues/'. $node->project['uri'], null, 'categories=task', null);
+ $links['pending_issues'] = l(t('View all pending issues'), 'project/issues/'. $node->project['uri']);
}
- if ($node->cvs) {
- $links['browse_repository'] = l(t('Browse the CVS repository'), $node->cvs);
+ if ($node->project['cvs']) {
+ $links['browse_repository'] = l(t('Browse the CVS repository'), $node->project['cvs']);
}
if (project_use_cvs($node)) {
@@ -367,8 +373,9 @@ function project_project_view($node, $te
}
function project_project_load($node) {
- $project = db_fetch_object(db_query('SELECT * FROM {project_projects} WHERE nid = %d', $node->nid));
-
+ $additions = db_fetch_array(db_query('SELECT * FROM {project_projects} WHERE nid = %d', $node->nid));
+ $project = new stdClass;
+ $project->project = $additions;
return $project;
}
@@ -381,7 +388,7 @@ function project_project_nodeapi(&$node,
case 'insert':
_project_save_taxonomy($node);
if (module_exists('path')) {
- path_set_alias("node/$node->nid", "project/$node->uri");
+ path_set_alias("node/$node->nid", "project/". $node->project['uri']);
}
break;
@@ -389,20 +396,20 @@ function project_project_nodeapi(&$node,
_project_save_taxonomy($node);
if (module_exists('path')) {
path_set_alias("node/$node->nid"); // Clear existing alias.
- path_set_alias("node/$node->nid", "project/$node->uri");
+ path_set_alias("node/$node->nid", "project/". $node->project['uri']);
}
break;
}
}
function project_project_insert($node) {
- db_query("INSERT INTO {project_projects} (nid, uri, homepage, changelog, cvs, demo, screenshots, documentation, license) VALUES (%d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')", $node->nid, $node->uri, $node->homepage, $node->changelog, $node->cvs, $node->demo, $node->screenshots, $node->documentation, $node->license);
-// project_release_scan_directory($node->uri);
+ db_query("INSERT INTO {project_projects} (nid, uri, homepage, changelog, cvs, demo, screenshots, documentation, license) VALUES (%d, '%s', '%s', '%s', '%s', '%s', '%s', %d, '%s')", $node->nid, $node->project['uri'], $node->project['homepage'], $node->project['changelog'], $node->project['cvs'], $node->project['demo'], $node->project['screenshots'], $node->project['documentation'], $node->project['license']);
+// project_release_scan_directory($node->project['uri']);
}
function project_project_update($node) {
- db_query("UPDATE {project_projects} SET uri = '%s', homepage = '%s', changelog = '%s', cvs = '%s', demo = '%s', screenshots = '%s', documentation = '%s', license = '%s' WHERE nid = %d", $node->uri, $node->homepage, $node->changelog, $node->cvs, $node->demo, $node->screenshots, $node->documentation, $node->license, $node->nid);
-// project_release_scan_directory($node->uri);
+ db_query("UPDATE {project_projects} SET uri = '%s', homepage = '%s', changelog = '%s', cvs = '%s', demo = '%s', screenshots = '%s', documentation = '%s', license = '%s' WHERE nid = %d", $node->project['uri'], $node->project['homepage'], $node->project['changelog'], $node->project['cvs'], $node->project['demo'], $node->project['screenshots'], $node->project['documentation'], $node->project['license'], $node->nid);
+// project_release_scan_directory($node->project['uri']);
}
function project_project_delete($node) {
@@ -417,7 +424,7 @@ function project_project_access($op, $no
// Since this function is shared for project_release nodes, we have to
// be careful what node we pass to project_check_admin_access().
if ($node->type == 'project_release') {
- $node = node_load($node->pid);
+ $node = node_load($node->project['pid']);
}
if (project_check_admin_access($node)) {
return TRUE;
Index: /Applications/MAMP/htdocs/oct2/drupal/sites/all/modules/project/project.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/project/project.module,v
retrieving revision 1.319
diff -u -p -r1.319 project.module
--- project.module 25 Oct 2008 20:29:38 -0000 1.319
+++ project.module 25 Oct 2008 23:38:08 -0000
@@ -1218,7 +1218,7 @@ function project_use_taxonomy() {
function project_use_cvs($project) {
if (module_exists('cvs')) {
$project = is_numeric($project) ? node_load($project) : $project;
- return isset($project->cvs_repository) && ($project->cvs_repository != 0);
+ return isset($project->cvs['cvs_repository']) && ($project->cvs['cvs_repository'] != 0);
}
}
Index: /Applications/MAMP/htdocs/oct2/drupal/sites/all/modules/project/release/project_release.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/project/release/project_release.module,v
retrieving revision 1.72
diff -u -p -r1.72 project_release.module
--- release/project_release.module 25 Oct 2008 20:29:38 -0000 1.72
+++ release/project_release.module 25 Oct 2008 23:38:10 -0000
@@ -213,7 +213,7 @@ function project_release_access($op, $no
// We can't just use project_project_access() here, since we
// need to check access to the project itself, not the release
// node, so we use the helper method and pass the project id.
- return project_check_admin_access($node->pid);
+ return project_check_admin_access($node->project_release['pid']);
case 'delete':
// No one should ever delete a release node, only unpublish it.
return FALSE;
@@ -240,11 +240,12 @@ function project_release_node_info() {
*/
function project_release_form($release) {
if (arg(1) == 'add') {
- $release->pid = arg(3);
- $project = node_load($release->pid);
+ $release->project_release = array();
+ $release->project_release['pid'] = arg(3);
+ $project = node_load($release->project_release['pid']);
project_project_set_breadcrumb($project, TRUE);
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->project_reelease['pid'])));
drupal_not_found();
module_invoke_all('exit');
exit;
@@ -266,7 +267,7 @@ function project_release_form($release)
global $user;
$admin = user_access('administer projects');
$is_edit = true;
- $project->nid = $release->pid;
+ $project->nid = $release->project_release['pid'];
$project = node_load($project);
$breadcrumb[] = l($project->title, 'node/'. $project->nid);
$breadcrumb[] = l(t('Releases'), 'node/'. $project->nid . '/release');
@@ -289,13 +290,17 @@ function project_release_form($release)
);
}
_project_release_form_add_text_element($form['rel_id']['title'], t('Title'), $release->title, $is_edit, $admin, true, 40, 128);
- _project_release_form_add_text_element($form['rel_id']['version'], t('Version string'), $release->version, $is_edit, $admin, true, 20, 255);
+ _project_release_form_add_text_element($form['rel_id']['version'], t('Version string'), $release->project_release['version'], $is_edit, $admin, true, 20, 255);
+
+ $form['project_release'] = array(
+ '#tree' => TRUE
+ );
- $form['pid'] = array(
+ $form['project_release']['pid'] = array(
'#type' => 'value',
- '#value' => $release->pid,
+ '#value' => $release->project_release['pid'],
);
- $form['version']['num'] = array(
+ $form['project_release']['version']['num'] = array(
'#type' => 'fieldset',
'#title' => t('Version number elements'),
'#collapsible' => TRUE,
@@ -313,14 +318,14 @@ function project_release_form($release)
_project_release_form_add_version_element($form, $release, $modify, $format,
'extra', t('Extra identifier'), t('Optionally specify other identifying information for this version, for example "beta-1", "rc-1" or "dev". In most cases, this should be left blank.'), 40);
- $form['file'] = array(
+ $form['project_release']['file'] = array(
'#type' => 'fieldset',
'#title' => t('File information'),
'#collapsible' => TRUE,
);
- if (empty($release->file_path)) {
+ if (empty($release->project_release['file_path'])) {
$file = file_check_upload('file');
- $form['file']['file'] = array(
+ $form['project_release']['file']['file'] = array(
'#title' => t('File'),
'#type' => 'file',
'#description' => ($file ? t('A file named %filename has already been uploaded. If you upload another file %filename will be replaced.', array('%filename' => $file->filename)) : t('Choose the file that will be associated with this release.')),
@@ -343,14 +348,14 @@ function project_release_form($release)
);
$form['body_filter']['format'] = filter_form($release->format);
- _project_release_form_add_text_element($form['tag']['tag'], t('Tag'), $release->tag, $is_edit, $admin, true, 40, 255);
- $form['tag']['rebuild'] = array(
+ _project_release_form_add_text_element($form['project_release']['tag']['tag'], t('Tag'), $release->project_release['tag'], $is_edit, $admin, true, 40, 255);
+ $form['project_release']['tag']['rebuild'] = array(
'#type' => 'value',
- '#value' => $release->rebuild,
+ '#value' => $release->project_release['rebuild'],
);
- _project_release_form_add_text_element($form['file']['file_path'], t('File path'), $release->file_path, $is_edit, $admin, false, 40, 255);
- _project_release_form_add_text_element($form['file']['file_hash'], t('File md5 hash'), $release->file_hash, $is_edit, false);
- _project_release_form_add_text_element($form['file']['file_date'], t('File date'), $release->file_date, $is_edit, false);
+ _project_release_form_add_text_element($form['project_release']['file']['file_path'], t('File path'), $release->project_release['file_path'], $is_edit, $admin, false, 40, 255);
+ _project_release_form_add_text_element($form['project_release']['file']['file_hash'], t('File md5 hash'), $release->project_release['file_hash'], $is_edit, false);
+ _project_release_form_add_text_element($form['project_release']['file']['file_date'], t('File date'), $release->project_release['file_date'], $is_edit, false);
return $form;
}
@@ -381,10 +386,10 @@ function _project_release_form_add_versi
$var_name = 'version_'. $name;
$regexp = "@.*[!#%]$name.*@";
if (preg_match($regexp, $format)) {
- $form['version']['num'][$var_name] = array(
+ $form['project_release']['version']['num'][$var_name] = array(
'#type' => 'textfield',
'#title' => $title,
- '#default_value' => $release->$var_name,
+ '#default_value' => $release->project_release[$var_name],
'#size' => $size,
'#maxlength' => $size+10,
'#attributes' => array('style' => 'width:auto'),
@@ -396,16 +401,16 @@ function _project_release_form_add_versi
$form[$var_name]['#required'] = TRUE;
}
if ($description) {
- $form['version']['num'][$var_name]['#description'] = $description;
+ $form['project_release']['version']['num'][$var_name]['#description'] = $description;
}
if (!$modify) {
- $form['version']['num'][$var_name]['#attributes'] = array('disabled' => 'disabled');
+ $form['project_release']['version']['num'][$var_name]['#attributes'] = array('disabled' => 'disabled');
}
}
else {
- $form['version']['num'][$var_name] = array(
+ $form['project_release']['version']['num'][$var_name] = array(
'#type' => 'value',
- '#value' => $release->$var_name,
+ '#value' => $release->project_release[$var_name],
);
}
}
@@ -455,19 +460,19 @@ function project_release_validate(&$edit
global $form_values;
if ($_POST['validate_version']) {
- if (!isset($edit->version_major) && !isset($edit->version_minor) &&
- !isset($edit->version_patch) &&
- (!($edit->version_extra) || $edit->version_extra === '')) {
+ if (!isset($edit->project_release['version']['num']['version_major']) && !isset($edit->project_release['version']['num']['version_minor']) &&
+ !isset($edit->project_release['version']['num']['version_patch']) &&
+ (!($edit->project_release['version']['num']['version_extra']) || $edit->project_release['version']['num']['version_extra'] === '')) {
form_set_error('version_major', t('You must fill in some version information.'));
// TODO: find a better form value to mark as the error?
}
foreach (array('version_major' => 'Major version number', 'version_minor' => 'Minor version number') as $field => $name) {
- $val = $edit->$field;
+ $val = $edit->project_release['version']['num'][$field];
if (isset($val) && $val !== '' && !is_numeric($val)) {
form_set_error($field, t('!name must be a number.', array('!name' => $name)));
}
}
- $val = $edit->version_patch;
+ $val = $edit->project_release['version']['num']['version_patch'];
if (isset($val) && $val !== '' && !is_numeric($val) && $val != 'x') {
form_set_error('version_patch', t("Patch-level version number must be numeric or the letter 'x'."));
}
@@ -498,7 +503,7 @@ function project_release_validate(&$edit
$tid = $edit->$vid;
}
if (isset($tid) && is_numeric($tid)) {
- $edit->version_api_tid = $tid;
+ $edit->project_release['version_api_tid'] = $tid;
}
}
@@ -516,8 +521,8 @@ function project_release_validate(&$edit
if (isset($edit->project->uri)) {
$project_name = $edit->project->uri;
}
- elseif (isset($edit->pid)) {
- $project_name = db_result(db_query("SELECT uri FROM {project_projects} WHERE nid = %d", $edit->pid));
+ elseif (isset($edit->project_release['pid'])) {
+ $project_name = db_result(db_query("SELECT uri FROM {project_projects} WHERE nid = %d", $edit->project_release['pid']));
}
if (isset($edit->title)) {
// TODO: Magic re-setting to "%project_name %version" ??
@@ -538,12 +543,14 @@ function project_release_validate(&$edit
* @ingroup project_release_node
*/
function project_release_load($node) {
- $additions = db_fetch_object(db_query("SELECT * FROM {project_release_nodes} WHERE nid = %d", $node->nid));
+ $additions = db_fetch_array(db_query("SELECT * FROM {project_release_nodes} WHERE nid = %d", $node->nid));
// Add the API term associated with the release.
$api_vid = _project_release_get_api_vid();
$api_tid = db_result(db_query("SELECT tn.tid FROM {term_node} tn INNER JOIN {term_data} td ON tn.tid = td.tid WHERE td.vid = %d AND tn.nid = %d", $api_vid, $node->nid));
- $additions->version_api_tid = $api_tid;
- return $additions;
+ $additions['version_api_tid'] = $api_tid;
+ $release = new stdClass;
+ $release->project_release = $additions;
+ return $release;
}
/**
@@ -592,8 +599,8 @@ function project_release_db_save($node,
// If the patch field is set to a non-numeric value, we just want to
// keep it as a NULL in the DB, instead of casting it to a 0.
- if (isset($node->version_patch) && !is_numeric($node->version_patch)) {
- unset($node->version_patch);
+ if (isset($node->project_release['version']['num']['version_patch']) && !is_numeric($node->project_release['version']['num']['version_patch'])) {
+ unset($node->project_release['version']['num']['version_patch']);
}
// Handle file upload data.
@@ -605,28 +612,28 @@ function project_release_db_save($node,
}
else {
// If there's no upload, save whatever value is already in $node.
- $file_path = $node->file_path;
+ $file_path = $node->project_release['file']['file_path'];
}
$types = array( 'pid' => "%d", 'version' => "'%s'", 'tag' => "'%s'",
'file_path' => "'%s'", 'file_date' => "%d", 'file_hash' => "'%s'",
'rebuild' => "%d",
);
- $values = array( 'pid' => $node->pid, 'version' => $node->version,
- 'tag' => $node->tag, 'file_path' => $file_path,
- 'file_date' => $node->file_date, 'file_hash' => $node->file_hash,
- 'rebuild' => $node->rebuild,
+ $values = array( 'pid' => $node->project_release['pid'], 'version' => $node->version,
+ 'tag' => $node->project_release['tag']['tag'], 'file_path' => $file_path,
+ 'file_date' => $node->project_release['file']['file_date'], 'file_hash' => $node->project_release['file']['file_hash'],
+ 'rebuild' => $node->project_release['tag']['rebuild'],
);
$fields = array('version_major', 'version_minor', 'version_patch');
foreach ($fields as $field) {
- if (isset($node->$field) && is_numeric($node->$field)) {
+ if (isset($node->project_release['version']['num'][$field]) && is_numeric($node->project_release['version']['num'][$field])) {
$types[$field] = "%d";
- $values[$field] = $node->$field;
+ $values[$field] = $node->project_release['version']['num'][$field];
}
}
- if (!empty($node->version_extra)) {
+ if (!empty($node->project_release['version']['num']['version_extra'])) {
$types['version_extra'] = "'%s'";
- $values['version_extra'] = $node->version_extra;
+ $values['version_extra'] = $node->project_release['version']['num']['version_extra'];
}
if ($is_new) {
@@ -727,7 +734,7 @@ function project_release_check_supported
*/
function project_release_delete($node) {
if ($node->file_path) {
- file_delete(file_create_path($node->file_path));
+ file_delete(file_create_path($node->project_release['file_path']));
}
db_query("DELETE FROM {project_release_nodes} WHERE nid = %d", $node->nid);
}
@@ -743,8 +750,8 @@ function project_release_delete($node) {
* @ingroup project_release_api
*/
function project_release_get_version_format($project) {
- if (!empty($project->version_format)) {
- return $project->version_format;
+ if (!empty($project->project_release['version_format'])) {
+ return $project->project_release['version_format'];
}
$db_format = db_result(db_query("SELECT version_format FROM {project_release_projects} WHERE nid = %d", $project->nid));
@@ -777,15 +784,15 @@ function project_release_get_version($re
$node = $project;
}
else {
- $node->nid = $release->pid;
+ $node->nid = $release->project_release['pid'];
}
$variables = array();
foreach (array('major', 'minor', 'patch', 'extra') as $field) {
$var = "version_$field";
if (isset($release->$var) && $release->$var !== '') {
- $variables["!$field"] = $release->$var;
- $variables["%$field"] = '.'. $release->$var;
- $variables["#$field"] = '-'. $release->$var;
+ $variables["!$field"] = $release->project_release[$var];
+ $variables["%$field"] = '.'. $release->project_release[$var];
+ $variables["#$field"] = '-'. $release->project_release[$var];
}
else {
$variables["!$field"] = '';
@@ -821,7 +828,7 @@ function project_release_get_version($re
*/
function project_release_view($node, $teaser = FALSE, $page = FALSE) {
$node = node_prepare($node, $teaser);
- $project = node_load($node->pid);
+ $project = node_load($node->project_release['pid']);
if ($page) {
// Breadcrumb navigation
@@ -831,25 +838,25 @@ function project_release_view($node, $te
}
$output = '';
- if (project_use_cvs($project) && isset($node->tag)) {
- if ($node->rebuild) {
- $output .= t('Nightly development snapshot from CVS branch: @tag', array('@tag' => $node->tag)) .'
';
+ if (project_use_cvs($project) && isset($node->project_release['tag'])) {
+ if ($node->project_release['rebuild']) {
+ $output .= t('Nightly development snapshot from CVS branch: @tag', array('@tag' => $node->project_release['tag'])) .'
';
}
else {
- $output .= t('Official release from CVS tag: @tag', array('@tag' => $node->tag)) .'
';
+ $output .= t('Official release from CVS tag: @tag', array('@tag' => $node->project_release['tag'])) .'
';
}
}
- if ($node->file_path) {
- $output .= ''. t('Download: !file', array('!file' => theme('project_release_download_link', $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->project_release['file_path']) {
+ $output .= ''. t('Download: !file', array('!file' => theme('project_release_download_link', $node->project_release['file_path']))) .'
';
+ $output .= ''. t('Size: !size', array('!size' => format_size(filesize(file_create_path($node->project_release['file_path']))))) .'
';
+ $output .= ''. t('md5_file hash: !file_hash', array('!file_hash' => $node->project_release['file_hash'])) .'
';
}
if ($node->created) {
$output .= ''. t('First released: !created', array('!created' => format_date($node->created))) .'
';
}
if ($node->file_date && ($node->file_date != $node->created)) {
- $output .= ''. t('Last updated: !changed', array('!changed' => format_date($node->file_date))) .'
';
+ $output .= ''. t('Last updated: !changed', array('!changed' => format_date($node->project_release['file_date']))) .'
';
}
if (module_exists('project_usage') && user_access('view project usage')) {
$output .= ''. l(t('View usage statistics for this release'), 'project/usage/'. $node->nid) .'
';
@@ -860,7 +867,7 @@ function project_release_view($node, $te
);
// Display packaging errors to admins.
- if (project_check_admin_access($node->pid)) {
+ if (project_check_admin_access($node->project_release['pid'])) {
$rows = array();
$result = db_query('SELECT * FROM {project_release_package_errors} WHERE nid = %d', $node->nid);
$error = db_fetch_object($result);
@@ -1134,7 +1141,7 @@ function project_release_project_edit_fo
'#type' => 'fieldset',
'#title' => t('Advanced options'),
'#collapsible' => TRUE,
- '#collapsed' => $node->releases,
+ '#collapsed' => $node->project_release['releases'],
'#weight' => 5,
);
@@ -1143,7 +1150,7 @@ function project_release_project_edit_fo
'#title' => t('Enable releases'),
'#return_value' => 1,
'#weight' => -10,
- '#default_value' => isset($node->releases) ? $node->releases : 1,
+ '#default_value' => isset($node->project_release['releases']) ? $node->project_release['releases'] : 1,
'#description' => t('Allow releases of this project with specific versions.'),
);
@@ -1413,15 +1420,15 @@ function project_release_project_edit_fo
function project_release_alter_release_form(&$form) {
global $user;
$node = $form['#node'];
- $tid = $node->version_api_tid;
+ $tid = $node->project_release['version_api_tid'];
$vid = _project_release_get_api_vid();
if (!project_release_get_api_taxonomy() && isset($form['taxonomy'][$vid])) {
unset($form['taxonomy'][$vid]);
}
else {
/*
- if (isset($node->pid)) {
- $project->nid = $node->pid;
+ if (isset($node->project_release['pid'])) {
+ $project->nid = $node->project_release['pid'];
}
elseif (arg(1) == 'add' && is_numeric(arg(3))) {
$project->nid = arg(3);
@@ -1505,11 +1512,11 @@ function project_release_project_nodeapi
$project = db_fetch_object(db_query('SELECT * FROM {project_release_projects} WHERE nid = %d', $node->nid));
$fields = array('releases', 'version_format');
foreach ($fields as $field) {
- $node->$field = $project->$field;
+ $node->project_release[$field] = $project->$field;
}
$wants_snapshots = db_result(db_query('SELECT tid FROM {project_release_supported_versions} WHERE nid = %d AND snapshot = 1 LIMIT 1', $node->nid));
if (isset($wants_snapshots)) {
- $node->project_release_show_snapshots = TRUE;
+ $node->project_release['show_snapshots'] = TRUE;
}
break;
@@ -1543,8 +1550,8 @@ function project_release_release_nodeapi
// Since release nodes can be unpublished, we need to make sure that the
// recommended branch information is still up to date.
if (module_exists('taxonomy')) {
- if (isset($node->version_api_tid)) {
- $tid = $node->version_api_tid;
+ if (isset($node->project_release['version_api_tid'])) {
+ $tid = $node->project_release['version_api_tid'];
}
else {
$vid = _project_release_get_api_vid();
@@ -1553,7 +1560,7 @@ function project_release_release_nodeapi
}
}
if (isset($tid)) {
- project_release_check_supported_versions($node->pid, $tid, $node->version_major, ($op == 'delete' ? TRUE : FALSE));
+ project_release_check_supported_versions($node->project_release['pid'], $tid, $node->project_release['version_major'], ($op == 'delete' ? TRUE : FALSE));
}
}
break;
@@ -1622,12 +1629,12 @@ function project_release_get_current_rec
* Theme the appropriate release download table for a project node.
*/
function theme_project_release_project_download_table($node) {
- if (!$node->releases) {
+ if (!$node->project_release['releases']) {
return;
}
$output = '