? Doxyfile ? files ? upload_inline_2_0.patch ? upload_inline_2_1.patch ? upload_inline_2_2.patch ? upload_inline_2_3.patch ? upload_inline_2_4.patch ? database/database.prefixed.mysql ? sites/webschuur.dyndns.org.DPL Index: database/database.mysql =================================================================== RCS file: /cvs/drupal/drupal/database/database.mysql,v retrieving revision 1.195 diff -u -F^f -u -F^f -r1.195 database.mysql --- database/database.mysql 30 Aug 2005 15:19:20 -0000 1.195 +++ database/database.mysql 13 Sep 2005 19:14:12 -0000 @@ -250,6 +250,7 @@ filemime varchar(255) NOT NULL default '', filesize int(10) unsigned NOT NULL default '0', list tinyint(1) unsigned NOT NULL default '0', + inline tinyint(1) unsigned NOT NULL default '0', KEY vid (vid), KEY fid (fid) ) TYPE=MyISAM; Index: database/database.pgsql =================================================================== RCS file: /cvs/drupal/drupal/database/database.pgsql,v retrieving revision 1.134 diff -u -F^f -u -F^f -r1.134 database.pgsql --- database/database.pgsql 30 Aug 2005 15:19:20 -0000 1.134 +++ database/database.pgsql 13 Sep 2005 19:14:12 -0000 @@ -245,7 +245,8 @@ filepath varchar(255) NOT NULL default '', filemime varchar(255) NOT NULL default '', filesize integer NOT NULL default '0', - list smallint NOT NULL default '0' + list smallint NOT NULL default '0', + inline smallint NOT NULL default '0' ); CREATE INDEX files_fid_idx ON files(fid); CREATE INDEX files_vid_idx ON files(vid); Index: database/updates.inc =================================================================== RCS file: /cvs/drupal/drupal/database/updates.inc,v retrieving revision 1.131 diff -u -F^f -u -F^f -r1.131 updates.inc --- database/updates.inc 8 Sep 2005 19:17:34 -0000 1.131 +++ database/updates.inc 13 Sep 2005 19:14:13 -0000 @@ -45,7 +45,8 @@ "2005-08-08" => "update_144", "2005-08-15" => "update_145", "2005-08-25" => "update_146", - "2005-09-07" => "update_147" + "2005-09-07" => "update_147", + "2005-09-12" => "update_148" ); function update_110() { @@ -790,6 +791,12 @@ function update_147() { return $ret; } +function update_148() { + $ret = array(); + $ret[] = update_sql("ALTER TABLE {files} ADD inline tinyint(1) unsigned default 0 not NULL"); + return $ret; +} + function update_sql($sql) { $edit = $_POST["edit"]; $result = db_query($sql); Index: misc/drupal.css =================================================================== RCS file: /cvs/drupal/drupal/misc/drupal.css,v retrieving revision 1.120 diff -u -F^f -u -F^f -r1.120 drupal.css --- misc/drupal.css 7 Sep 2005 20:56:00 -0000 1.120 +++ misc/drupal.css 13 Sep 2005 19:14:13 -0000 @@ -455,6 +455,9 @@ form { #user-login-form { text-align: center; } +img.upload { + float:left; +} .more-help-link { font-size: 0.85em; text-align: right; Index: modules/upload.module =================================================================== RCS file: /cvs/drupal/drupal/modules/upload.module,v retrieving revision 1.51 diff -u -F^f -u -F^f -r1.51 upload.module --- modules/upload.module 2 Sep 2005 02:11:41 -0000 1.51 +++ modules/upload.module 13 Sep 2005 19:14:13 -0000 @@ -151,6 +151,7 @@ function upload_nodeapi(&$node, $op, $ar if ($file = file_check_upload($key)) { $node->files[$file->source] = $file; $node->files[$key]->list = $node->list[$key]; + $node->files[$key]->inline = $node->inline[$key]; $node->files[$key]->remove = $node->remove[$key]; if ($file->source) { $filesize += $file->filesize; @@ -161,6 +162,7 @@ function upload_nodeapi(&$node, $op, $ar else { foreach ($node->files as $key => $file) { $node->list[$key] = $file->list; + $node->inline[$key] = $file->inline; } } @@ -252,8 +254,18 @@ function upload_nodeapi(&$node, $op, $ar $previews[] = $file; } } + elseif ($file->inline) { + //we need to save that list for previews in inline modus too. + if (!$file->fid) { + $previews[] = $file; + } + } } + //render the inline image(s) + $node->teaser = _upload_inline($node) . $node->teaser; + $node->body = _upload_inline($node) . $node->body; + // URLs to files being previewed are actually Drupal paths. When Clean // URLs are disabled, the two do not match. We perform an automatic // replacement from temporary to permanent URLs. That way, the author @@ -273,6 +285,8 @@ function upload_nodeapi(&$node, $op, $ar if (count($rows) && !$teaser) { $node->body .= theme('table', $header, $rows, array('id' => 'attachments')); } + + } break; @@ -342,8 +356,8 @@ function upload_save($node) { // Insert new files: if ($file = file_save_upload($file, $file->filename)) { $fid = db_next_id('{files}_fid'); - db_query("INSERT INTO {files} (fid, nid, vid, filename, filepath, filemime, filesize, list) VALUES (%d, %d, %d, '%s', '%s', '%s', %d, %d)", - $fid, $node->nid, $node->vid, $file->filename, $file->filepath, $file->filemime, $file->filesize, $node->list[$key]); + db_query("INSERT INTO {files} (fid, nid, vid, filename, filepath, filemime, filesize, list, inline) VALUES (%d, %d, %d, '%s', '%s', '%s', %d, %d, %d)", + $fid, $node->nid, $node->vid, $file->filename, $file->filepath, $file->filemime, $file->filesize, $node->list[$key], $node->inline[$key]); } } } @@ -360,15 +374,15 @@ function upload_save($node) { } foreach ((array)$node->list as $key => $value) { if (!$node->remove[$key]) { - db_query('UPDATE {files} SET list = %d WHERE fid = %d AND vid = %d', $node->list[$key], $key, $node->vid); + db_query('UPDATE {files} SET list = %d, inline = %d WHERE fid = %d AND vid = %d', $node->list[$key], $node->inline[$key], $key, $node->vid); } } if ($node->old_vid) { foreach ((array)$node->remove as $key => $remove) { if (!$remove) { $file = db_fetch_object(db_query('SELECT * FROM {files} WHERE vid = %d AND fid = %d', $node->old_vid, $key)); - db_query("INSERT INTO {files} (fid, nid, vid, filename, filepath, filemime, filesize, list) VALUES (%d, %d, %d, '%s', '%s', '%s', %d, %d)", - $key, $node->nid, $node->vid, $file->filename, $file->filepath, $file->filemime, $file->filesize, $file->list); + db_query("INSERT INTO {files} (fid, nid, vid, filename, filepath, filemime, filesize, list, inline) VALUES (%d, %d, %d, '%s', '%s', '%s', %d, %d, %d)", + $key, $node->nid, $node->vid, $file->filename, $file->filepath, $file->filemime, $file->filesize, $file->list, $file->inline); } } } @@ -393,15 +407,17 @@ function upload_form($node) { } function _upload_form($node) { - $header = array(t('Delete'), t('List'), t('Url'), t('Size')); + $header = array(t('Delete'), t('List'), t('Inline'), t('Url'), t('Size')); $rows = array(); $output = ''; if (is_array($node->files)) { foreach ($node->files as $key => $file) { + $is_image = ereg('^(image/)', $file->filemime); $rows[] = array( form_checkbox('', "remove][$key", 1, $file->remove), form_checkbox('', "list][$key", 1, $file->list), + form_checkbox('', "inline][$key", 1, $file->inline, '', $is_image ? '' : array('disabled'=>'disabled')), $file->filename ."
". file_create_url(($file->fid ? $file->filepath : file_create_filename($file->filename, file_create_path()))) ."", format_size($file->filesize) ); @@ -438,6 +454,20 @@ function upload_load($node) { } /** + * Render inline link, or image. + */ +function _upload_inline($node) { + $previews = array(); + // Build list of attached files + foreach ($node->files as $file) { + if ($file->inline) { + $output .= theme('upload_inline', $file); + } + } + return $output; +} + +/** * Check an upload, if it is an image, make sure it fits within the * maximum dimensions allowed. */ @@ -471,3 +501,13 @@ function upload_js() { print drupal_call_js('window.parent.iframeHandler', $output); exit; } + +/** + * Theme function for rendering of inline images + * @param $file a file object. + * @param $image a Boolean, indicating whether an img tag (TRUE) or an anchor tag (FALSE) should be used. + * @ingroup themable + */ +function theme_upload_inline($file) { + return ''.  check_plain($file->filename) .''; +} \ No newline at end of file