Index: project.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/project/project.inc,v
retrieving revision 1.75.2.8
diff -u -F^f -r1.75.2.8 project.inc
--- project.inc	8 Jun 2006 06:37:36 -0000	1.75.2.8
+++ project.inc	16 Jun 2006 07:00:29 -0000
@@ -152,6 +152,15 @@ function project_project_form(&$node) {
     '#maxlength' => 255,
     '#description' => t('Link to project screenshots.'),
   );
+  $form['project']['project_image'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Project Image'),
+    '#default_value' => $node->project_image,
+    '#size' => 40,
+    '#maxlength' => 255,
+    '#description' => t('URL of a screenshot or other image for this project.  Note: the value you enter here will be automatically wrapped in an IMG tag, so it should either be a full URL to an external image, or a relative path to a file that you have uploaded onto the site.'),
+  );
+
   $form['project']['changelog'] = array(
     '#type' => 'textfield',
     '#title' => t('Changelog'),
@@ -428,6 +437,10 @@ function project_project_view(&$node, $t
     $breadcrumb = project_project_set_location($node, $breadcrumb);
     menu_set_location($breadcrumb);
 
+    if ($node->project_image) {
+      $output .= '<div><img class="picture" alt="' . t('project image') . '" src="' . check_url($node->project_image) . '" /></div>';
+    }
+
     if ($releases = project_release_load($node)) {
       // Determine most suitable release
       $overview = variable_get('project_release_overview', -1);
@@ -573,7 +586,7 @@ function project_project_insert($node) {
   $node->mail_copy_filter = serialize($node->mail_copy_filter);
   $node->mail_copy_filter_state = serialize($node->mail_copy_filter_state);
 
-  db_query("INSERT INTO {project_projects} (nid, uri, homepage, changelog, cvs, demo, release_directory, issues, components, mail, mail_digest, mail_reminder, mail_copy, mail_copy_filter, mail_copy_filter_state, version, help, screenshots, documentation, license) VALUES (%d, '%s', '%s', '%s', '%s', '%s', '%s', %d, '%s', '%s', '%s', %d, '%s', '%s', '%s', %d, '%s', '%s', '%s', '%s')", $node->nid, $node->uri, $node->homepage, $node->changelog, $node->cvs, $node->demo, $node->release_directory, $node->issues, $node->components, $node->mail, $node->mail_digest, $node->reminder, $node->mail_copy, $node->mail_copy_filter, $node->mail_copy_filter_state, $node->version, $node->help, $node->screenshots, $node->documentation, $node->license);
+  db_query("INSERT INTO {project_projects} (nid, uri, homepage, changelog, cvs, demo, release_directory, issues, components, mail, mail_digest, mail_reminder, mail_copy, mail_copy_filter, mail_copy_filter_state, version, help, screenshots, project_image, documentation, license) VALUES (%d, '%s', '%s', '%s', '%s', '%s', '%s', %d, '%s', '%s', '%s', %d, '%s', '%s', '%s', %d, '%s', '%s', '%s', '%s', '%s')", $node->nid, $node->uri, $node->homepage, $node->changelog, $node->cvs, $node->demo, $node->release_directory, $node->issues, $node->components, $node->mail, $node->mail_digest, $node->reminder, $node->mail_copy, $node->mail_copy_filter, $node->mail_copy_filter_state, $node->version, $node->help, $node->screenshots, $node->project_image, $node->documentation, $node->license);
   project_release_scan_directory($node->uri);
 }
 
@@ -583,7 +596,7 @@ function project_project_update($node) {
   $node->mail_copy_filter = serialize($node->mail_copy_filter);
   $node->mail_copy_filter_state = serialize($node->mail_copy_filter_state);
 
-  db_query("UPDATE {project_projects} SET uri = '%s', homepage = '%s', changelog = '%s', cvs = '%s', demo = '%s', release_directory = '%s', issues = %d, components = '%s', mail = '%s', mail_digest = '%s', mail_reminder = %d, mail_copy = '%s', mail_copy_filter = '%s', mail_copy_filter_state = '%s', version = %d, help = '%s', screenshots = '%s', documentation = '%s', license = '%s' WHERE nid = %d", $node->uri, $node->homepage, $node->changelog, $node->cvs, $node->demo, $node->release_directory, $node->issues, $node->components, $node->mail, $node->mail_digest, $node->mail_reminder, $node->mail_copy, $node->mail_copy_filter, $node->mail_copy_filter_state, $node->version, $node->help, $node->screenshots, $node->documentation, $node->license, $node->nid);
+  db_query("UPDATE {project_projects} SET uri = '%s', homepage = '%s', changelog = '%s', cvs = '%s', demo = '%s', release_directory = '%s', issues = %d, components = '%s', mail = '%s', mail_digest = '%s', mail_reminder = %d, mail_copy = '%s', mail_copy_filter = '%s', mail_copy_filter_state = '%s', version = %d, help = '%s', screenshots = '%s', project_image = '%s', documentation = '%s', license = '%s' WHERE nid = %d", $node->uri, $node->homepage, $node->changelog, $node->cvs, $node->demo, $node->release_directory, $node->issues, $node->components, $node->mail, $node->mail_digest, $node->mail_reminder, $node->mail_copy, $node->mail_copy_filter, $node->mail_copy_filter_state, $node->version, $node->help, $node->screenshots, $node->project_image, $node->documentation, $node->license, $node->nid);
   project_release_scan_directory($node->uri);
 }
 
Index: project.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/project/project.install,v
retrieving revision 1.2.2.3
diff -u -F^f -r1.2.2.3 project.install
--- project.install	8 Jun 2006 09:05:55 -0000	1.2.2.3
+++ project.install	16 Jun 2006 07:00:29 -0000
@@ -24,6 +24,7 @@ function project_install() {
           help text,
           documentation varchar(255) not null default '',
           screenshots varchar(255) not null default '',
+          project_image varchar(255) not null default '',
           license varchar(255) not null default '',
           PRIMARY KEY (`nid`),
           KEY project_projects_uri (uri(8))
@@ -114,6 +115,7 @@ function project_install() {
           mail_reminder smallint NOT NULL default '0',
           help text,
           screenshots varchar(255) default '' not null,
+          project_image varchar(255) default '' not null,
           mail_copy_filter_state varchar(255) default '' not null,
           documentation varchar(255) default '' not null,
           license varchar(255) default '' not null,
@@ -199,3 +201,17 @@ function project_update_2() {
   $ret[] = update_sql("UPDATE {system} SET weight = 2 WHERE name = 'project'");
   return $ret;
 }
+
+function project_update_3() {
+  $ret = array();
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      $ret[] = update_sql("ALTER TABLE {project_projects} ADD COLUMN project_image varchar(255) not null default ''");
+      break;
+    case 'pgsql':
+      db_add_column($ret, 'project_projects', 'project_image', 'varchar(255)', array('not null' => TRUE, 'default' => "''"));
+      break;
+  }
+  return $ret;
+}
Index: project.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/project/project.module,v
retrieving revision 1.239.2.6
diff -u -F^f -r1.239.2.6 project.module
--- project.module	15 Jun 2006 22:13:26 -0000	1.239.2.6
+++ project.module	16 Jun 2006 07:00:30 -0000
@@ -588,7 +588,9 @@ function project_page_overview($termname
             'n.title',
             'nr.teaser',
             'nr.format',
-            'p.issues'
+            'p.issues',
+            'p.screenshots',
+            'p.project_image'
           )
         ),
         'from' => array(
@@ -703,7 +705,7 @@ function project_page_overview($termname
   }
   // If taxonomy is not enabled, fetch all projects
   else {
-    $result = db_query(db_rewrite_sql("SELECT n.nid, n.title, nr.teaser, nr.format, p.issues FROM {node} n INNER JOIN {node_revisions} nr ON n.vid = nr.vid INNER JOIN {project_projects} p ON n.nid = p.nid WHERE n.status = 1 ORDER BY n.title ASC"));
+    $result = db_query(db_rewrite_sql("SELECT n.nid, n.title, nr.teaser, nr.format, p.issues, p.screenshots, p.project_image FROM {node} n INNER JOIN {node_revisions} nr ON n.vid = nr.vid INNER JOIN {project_projects} p ON n.nid = p.nid WHERE n.status = 1 ORDER BY n.title ASC"));
   }
   $class = 'even';
   while ($project = db_fetch_object($result)) {
@@ -1033,6 +1035,12 @@ function theme_project_summary($project)
   if ($project->changed) {
     $output .= '<p><small>' . t('Last changed: %interval ago', array('%interval' => format_interval(time() - $project->changed, 2))) . '</small></p>';
   }
+  if ($project->project_image) {
+    $output .= '<div><img class="picture" alt="' . t('project image') . '" src="' . check_url($project->project_image) . '" /></div>';
+  }
+  if ($project->screenshots) {
+    $output .= l('more images', $project->screenshots);
+  }
   $output .= $project->body;
   $output .= theme('links', $project->links);
   if ($project->terms) {
