One of the most often asked features is proper inlnie handling of files. Look at the amount of solutions, the popularity of image_assist, and the amount of peolpe dowloading image.module! That alone should be enough proof that Drupal lacks proper inline image support.

This patch adds that to core. In fact, it does little more then appending a link of img tag to the body or the teaser. Off course that is configurable per file. Next to the [] list checkbox, this patch adds an [] inline checkbox.

Simplicity is the foundation of this patch. I want no stles for inline editing, no fancy html wrappers, no tokens, just $node->body or teaser appended with a small html string.

Another small themable funtion is introduced, (hey, you cannot expect me to develop something without adding more power for themers, now, can you? ;) ), that allows people to theme the string that is appended to the body or the teaser.

Oh, and also note hat the biggest part of this patch is some cleaning I had to do in order to be able to develop properly. I dont like Ifs inside cases in foreaches inside swiches. in other words: nodeapi now calls functions instead of executing code directly.

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

Bèr Kessels’s picture

FileSize
26.68 KB

here is how the form now looks

Bèr Kessels’s picture

FileSize
30.53 KB

and this is an example of inlined images and a .doc file.

Bèr Kessels’s picture

Title: add inline functionaliy tp uploads » add inline functionaliy to uploads
sepeck’s picture

Status: Active » Needs review

changing to patch per request from berkes

Kobus’s picture

This gets a +1 from me in principle, however, the [inline:xx] tag with inline.module gives you greater freedom as to where the inline image must be displayed. If you can add this functionality (I haven't checked the code, I don't know if it is in there) it would be a great addition for Core. This same strategy can be used for inline blocks, I am sure.

Regards,

Kobus

Bèr Kessels’s picture

there are a couple of reasons why i did not include the [inline] tags.
* I aimed for extreme simplicity: a checkbox shows an image inline: its up to the theme where it appears (if one does not like it before/above the body and teaser.). Simplicity was the main goal.
* We don't have any tokens in core. And we should not have them.
* Tokens are a very bad substitute for a good interface. They give less power then plain HTLM. Are much worst documented then HTML, but in the mean time, they are still as hard to learn as HTML. (Yes, I know people _think_ they are easier, but there _is_ not difference between [ ] and <>, only that its a different ascii char.

So, no. I don't allow any placement of the image. I leave that that for dedicated modules, or the themer to decide.

Kobus’s picture

So you will provide an API to do this? For example, with perhaps minor modifications, the inline.module will be able to display these files? In that case I am happy. If not, then I can't give my support to this patch (as if that matters...).

A themer can't do this task as inline images (and blocks for that matter) is too dynamic for theming; it can be placed anywhere in a node where the user pleases. This means for me that there should be a module for this, such as inline module that allows you to define [inline:xx] tags. If your module emits an array of uploaded files (such as upload.module), inline.module can be, with minor changes, adapted to show these files inline.

To show you what I mean with the content is too dynamic for a themer to perform this task, look at this screenshot related to inline blocks (inline images can follow the same pattern): http://drupal.org/files/issues/regions---possibility-3.png

Bèr Kessels’s picture

Kobus,

We are dealing with different issues here: You want a method to place images, files or so anywhere in the post. That is fine, but certainly NOT addressed in the patch!

I made patch that *only* adds marked files to the body. its really nothing more then $node->body = $filestring . $node->body
No APIS, no, dynamic tokens, no filters, nothing.

However, what I meant with themers, is that there now is a theme_upload_inline available, so you can theme the abovementioned $filestring. On top of that $node->files[FILEID]->inline is TRUE if a file is flagged for inline.
So in node.tpl.php, or wherever you want to theme a node, you can print nice images inline, when that flag is set.

And about the comment that a themer cant do this:
Simply not true. On most sites images are always placed in the same places. REally, even the sites see which use img_assist or inline, use them to place the images on the exact same places in every node. People /think/ they want the power to place images anywhere, but they hardly ever use that power. Just look at all the big news/publishing sites out there (BBC, CNN, BoigBoing, r even freshmeat) images are all placed acc. to the theme. They are not placed in random places by authors. So if you are one of the few that still want that power, there aer mots of power tools like inline module or img_assist. We should offer a good default, one that is simple.

Gerhard Killesreiter’s picture

Version: 4.6.0 »

I fully agree that tags are evil.

Kobus: You can always look for tags in $node->body in your theme's node function.

Stefan Nagtegaal’s picture

Ber,

the theme-function in your code looks like:

+/**
+ * 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, $image) {
+  if ($image) {
+    return '<img src="'. check_url(($file->fid ? file_create_url($file->filepath) : url(file_create_filename($file->filename, file_create_path())))) .'" alt="'.  check_plain($file->filename) .'" class="upload inline">';
+  }
+  else {
+    return '<a href="'. check_url(($file->fid ? file_create_url($file->filepath) : url(file_create_filename($file->filename, file_create_path())))) .'" class="upload inline">'. check_plain($file->filename) .'</a>';
+  }
+
+}

After looking at your code it's not clear to me when $image is TRUE or FALSE, can you elaborate on me please?

Bèr Kessels’s picture

The function calling the theme function should decide whether its an image. IMO that is far too hardcore code for a themer ;)

$image = ereg('^(image/)', $file->filemime);

inside _upload_inline() does the trick.
I did find one issue, though, with svgs, which are image/svg so maybe we should limit this to really only inline jpg, png, and gif, by extension? But I am no fan of determining files by extension, and IMO getimgsize is too heavy;

Stefan Nagtegaal’s picture

Can't you make use of PHP's

image_type_to_mime_type();

or

image_type_to_extension();
Kobus’s picture

Well, if not in the patch, I need inline functionality one way or another. inline.module works perfectly with the current upload.module to fulfill my needs, and if there is a way where someone can extend your proposed upload.module, that would get my +1, otherwise I will just remain neutral about this issue.

inline.module makes use of $node->files and displays that image. If your patch still uses $node->files, then this is a non-issue. In other words, if I can, with inline.module, or with minor modifications to inline.module still show files inline, I am +1 for this.

As for the themability question... I still disagree. You say "Simply not true. On most sites images are always placed in the same places." That is ONLY true because they have NO alternatives. Means the content is in the same places, because they have no other places to put them. I have made tens of static sites where the content does not resemble a fixed pattern or structure. For me, free-flow layout is my expression of my creativity. This is why I still even BOTHER with static sites; when Drupal don't do what I want it to do. If Drupal could do inline display of content properly, I'd never even build another static site.

It is a great mistake people make (including myself), and that is they design the site before ANY content is available, and this happens a lot in static sites. But in dynamic sites, you have far less control over this, unless you have a VERY clean structure with limited information that can be added, and only a few people posting content. If you can have your content before you start the design, you will have a better fit.

I can't see how you can anticipate every possible posting posted on your site if you have a diversity of users. Especially not if you're using a site such as an designer's showcase site where your creativity is shown by your web sites. Possible, but not easy. If I claim that I have "unique, fresh designs" I can certainly NOT give them a "box-like" site with "left and right side bars only". That's why I need inline content, this includes images AND boxes.

Gerhard: Your concern about tags is answered as well above, if I am not mistaken. The patch need not provide the tags, but should provide for someone to develop a module that provide the filters or tags.

To summarize: I don't need your patch to do the inline images. I just need your patch to be able to allow someone else to develop a module that can display inline files.

Kobus

Bèr Kessels’s picture

okay, so for all clarity, let me sumarise:
* this patch introduces a chackbox "inline". If checked, the file will show up inline. IT will be appended to the teaser and the body.
* this patch does *not* allow one to place images of files in a userdefined place in the body.
* this patch does *not* do any resizing nor any thumbnailing.
* This patch is meant to be simple, clear and transparant. No tokens, no javascript, no nothing.

Kobus’s picture

Then I can't see how this patch could replace the existing upload.module, which allows you to use inline.module to place images inline. I therefore withdraw my +1 and go -1 on this (not that it matters, I believe).

I think you didn't properly read my previous message. I said I don't need your patch to do all this, but I can't live without the functionality currently provided by the upload.module and inline.module combination. I agree that your patch don't need to have that functionality, but if your patch takes away this functionality, in other words, I can't (by hook or by crook) manage what I need to do, my vote is -1.

Regards,

Kobus

Bèr Kessels’s picture

Kobus,
And all the others looking fofr advanced inline systems:

please do not -1 this. It will hep inline module a lot too. allthough not yet in this patch, but can you imagine a perission system for inline module, that comes for free? Or a core system, that makes inline module ten times smaller? it is this path!
so, please, if it is not /exactly/ what you are looking for, at least look at the advantages for Joe Average, and even for the possibilties for your favorite inline-module. even imag_assist will gain an anomous usability impcact when usiong this module, for it can then finally use the upload module in full scale.

Ber

Bèr Kessels’s picture

Sohodjo jim:

I hope it matters. A big -1 on enforcing over-simplification at the
expense of important and existing functionality. If automatic,
uncontrollable placement of images becomes the standard, it will mean
fewer not more image-rich Drupal sites as site owners/developers get
complaints about "Why can't I control my images!"
I _strongly_ encourage Ber to provide a "have it both ways"
solution. Why not have an admin configuration setting for "allow inline
tags" with default off. Change it to on and you get an additional upload
checkbox for 'inline at tag' to accommodate the current functionality of
the inline module while simultaneously allowing for default placement.

NOOO. people; please; look at the PATCH.

Again: and hopefully last time: Simplicity.

This patch does NOT replace ANYTHING inline module or img_assist wants to do.
This patch hands better data to such modules. It hands a variable over to these modules, $node->file[FID]->inline, which tells these sorts of modules if people wnat that file to appear inline.
AND it CAN (by default will) render a file in the most simple way inline.

So really, if you want to -1 this patch, fine. But do not -1 it, because it does too little IYO. It still allows MUCH more than what you can do no, without that patch! And any solution, for core, that allows advanced handling of inline images will either require an enourmous amount of work, or it will simply no get in.

So, unless you come up with a good core-worthy patch, this is still a big leap forward from what we have now.

Bèr Kessels’s picture

:$ this is an attempt to fix the borken HML in the previous follow up.

TDobes’s picture

Please don't combine unrelated changes together in the same patch. Moving stuff in/out of the _nodeapi hook has absolutely nothing to do with the patch and makes it much harder to read through the patch and see what it's actually doing. I'd appreciate it if you could separate the changes made here which are really relevant and move the other changes into another issue.

Also: You change form_group_collapsible(t('File attachments') to form_group_collapsible(t('File Attachments'). A quick glance at some other core code seems to indicate that we've standardized on capitalizing only the first word in multi-word group titles.

As for the functionality itself, I don't think this belongs in upload.module. It would be useful to have the functionality in core, but as a separate module which can be switched on and off. (upload_inline.module or something like that) If a site were set up using an inlining system from contrib and the functionality you're proposing could not be switched off, it would be extremely confusing to users that there are two different ways of inlining images.

A minor comment: I'm not so sure whether the results of this patch, when inlining non-image attachments, will be the one users expect. A non-web-savvy person may expect his/her Word document (for instance) to appear inline with the node when they click "inline" -- just like their images do. I'd suggest that we limit inlining to images only. I'm not as adamant about this as the other issues, so I could be convinced otherwise if others disagree.

Bèr Kessels’s picture

Thank you for your thoughts Tdobbes.

As for the "moving things in and out of nodeapi" This was necessary, because otherwise the patch would have made the code even more unreadable. I agree with you on this point, but I simply had to clean it up a little, in order to be able to work in it.

As it stands now, it is simply not possible to make this a separate module. We cannot hook into the files table. In a next stage, I might work out some hook for that table. But first things first.

Can Dries or Steven please comment on his. I want to know If i should bother spending this enormous amount of time on commenting and debating this issue. If the chances are small this is accepted, Ill just drop it This ridiculous long thread reminds me again why I try to avoid making patches for core.

Steven’s picture

Overall I like the concept, but I think it at least needs some default styling to make the image appear okay, like floating it. Right now it appears inline between whatever was there... very ugly.

Sure you can say "leave it up to the themer" but if the goal is to provide a simple default, we can't expect people to dive into theming if they are going to use this feature instead of img_assist or whatever.

Also, I wonder about the classes "upload" and "image". Is there a reason to use two classes? Isn't "image" a bit too generic? Oh and there is a missing XHTML / for the img tag.

Bèr Kessels’s picture

I will fix the broken Xhttml.

I chose "image" because it is exactly the same as the .image class used by image.module. But I will see to it, to add more functionality.
I agree that it is not up to the themer for some good defaults, thus I will add a line of CSS to drupal.css (*shiver* ;) )
upload, IMO does not communicate well enough what the Image is doing. Not sure yet how I ill fix this, but I will see to it to come up with a better CSS/theme solution. Thanks!

Bèr Kessels’s picture

FileSize
12.24 KB

Suggestions by Steven are now included. I very simple float is added to the inline images in drupal.css. XHTML fixed.
And I cleaned up some old crufty comments, as suggested by Dries.

fax8’s picture

What is proposed here is a good idea.

But I think that this is done in not good way.

I think that upload.module should be only a layer
between file system and modules.
So modify upload module to add a specific feature
like your inline for me is not good.

but I like the idea to add checkboxes for enable
interaction modules between modules and upload.module.

Maybe we could design an of api wich let modules
tell upload.module that they can interact with it.

I make an example:
I'm a developer of video.module.
Now to add a video file to video.module one need
to put the file into drupal folders using ftp and then insert
the path to the file during node creation.

One of the features our users are asking a lot is
the possibility to directly upload a video file to dupal.

So I should write a lot of code, settings, security buggy
code.. that for me isn't useful.

What about if only calling an upload.module api I
should enable a new checkbox on upload form
called "use as video file" which let me use the file
as a video file on my module???

What do you think about it????

Bèr Kessels’s picture

fax: upload /is/ such a layer. Just look at how image module does it. You need not write any additional 'buggy' code, you can use all teh upload functionality.

The upload interface (the table and list), however, is tightly integrated, so that drupal offers an out-of-the-box file system.

Nox, my patch simply adds an "out of the box" inline functionality. Small and simple.

For any more advanced file features you should use or write a module that, in turn, uses the uplaod.module.

Stefan Nagtegaal’s picture

After discussing with Ber, I think this patch has some great potential though the simplicity of it..

For the people who don't completely agree what this patch does:
- It adds an extra checkbox for each attachment. If the 'Inline' checkbox is checked, images are displayed inline in your post and other attachments (like .pdf, .ppt, or whatever) were transformed into links.

The potential of this patch is in the fact that this makes it much, much easier to have another contrib module which makes it possible to let you choose at the node submission how you would like your node to be displayed, incl. the selected inline attachments to be displayed (using _nodeapi()).

So, a big +1 from me on this..

Kobus’s picture

> - It adds an extra checkbox for each attachment. If the 'Inline'
> checkbox is checked, images are displayed inline in your post and other
> attachments (like .pdf, .ppt, or whatever) were transformed into links.

Does this mean it is done automatically or do I have control over this? I don't want the images to be inline if I can't control where I put it.

Let me just clarify my position on this short-and-sweet-like:

If it breaks the existing functionality that upload.module + inline.module provides without opening the door for a replacement, then I am -1, otherwise +1. :-)

Kobus

Bèr Kessels’s picture

Kobus: Again: it does not break anything!

It opens up enormous potential for modules such as inline/module. Because inline module now has access to a variable $node->files[fid]->inline.
in other words: modules such as inline.module can now find out what images a user wants to see inline!

Kobus’s picture

Ber: Great, then I +1 it. From our previous talks about this, it seemed as if this functionality was being taken away.

Sohodojo Jim’s picture

Agreed, +1. The most on-going and especially most recent discussion has clarified that we can have our simple cake and contrib mod cake as well.

Does this mean that inline module will work as is, or will a post-patch update be required?

--Sohodojo Jim--

Bèr Kessels’s picture

inline module will continue working. but in order for it to use this inline variable (and become even better) it needs to be patched.

moshe weitzman’s picture

I read through the code and it looks good to me, though it is hard to know whats new given all the code thats moved around. this is definately needed functionality.

If you were still up for enhancements, I'd like to see the 'inline' box get checked by default when uploading an image. when the attachment is not an image, the box should be disabled and unchecked.

Bèr Kessels’s picture

disabling the box for non-images would break the link function (i.e add a link in the text. But, on second thought: that is fine, since it defeats the list checkbox.

I will add that. As well as making it checked by default.

Junyor’s picture

@Bèr: Why not simplify this patch to only add the hooks to a contrib module would need to add this functionality? You said that your patch would allow inline.module to work much more easily. But then there is a lot of extra stuff there that inline.module won't need. This functionality can't replace inline.module, so anything that it doesn't use just gets in the way.

I'm afraid that users will think this is the best Drupal can provide without looking for a contrib module. I'd prefer we spent our time and effort adding the whole functionality of inline.module or making it easy to add and position inline content in nodes to core rather than adding some functionality to upload.module that doesn't cut it for most users.

So, either strip this patch of everything but the functionality that inline.module (and similar modules) can use or allow me to position images in my text through this patch. Otherwise, -1. If this is the first step in a plan to add the functionality I want to core, I'd like to hear your full plan.

Bèr Kessels’s picture

FileSize
19.71 KB

to all: everyone has Big Plans[tm] and even worse: everyone has Bigger Plans for my patch, for inline module. Why not code it? Hooks? fine! module integration, even better. Sorry if I sound a bit grumpy here. But so far I have spent nearly three times as much hours debbating the patch, then I spent creating it. Hooks sound great. but are not the intention of this patch. I want to add a *default* way, that works. But that does not break other modules, nd in fact tries to help them. But I am not inventing some advanced image handling system here.

Here is an updated patch with renewed updates.inc (got lost in the previous patch)
Moshes suggestion about disabling non-images-checkboxes is also implemented. I like it a lot more now.
I did not, however, implement Moshes idea about defaulting to "checked". for a few reasons:
* It looks a bit silly if you have more then one image inline, And defaulting all uploads to inline will inline any uploaded image.
* When uploading large images they will default to inline, thus pushing your sites layout to oblivian
* None of the other options default to TRUE, so for consistancy I prefer to default it to not inline.

Bèr Kessels’s picture

oh, bytheway: you can test adn play with this patch here: http://fixme.remixreading.org/?q=add_content
note that it is a sandbox, so your account will get lost, and pages might not work :)

ejort’s picture

+1 from me for this feature. It's frustrating that core doesn't include some basic image display functionality, and this will cover a large percentage of users needs without introducing complexity. People wanting arbitrary image placement still have inline.module etc., so it's nothing but an improvement on the current situation.

Steven’s picture

Bèr: one thing is not clear to me... you are right that other modules can access the inline value. But upload.module will always add the image to the body. So, how can other modules use the inline checkbox/option meaningfully?

Bèr Kessels’s picture

Steven: what I mean, is that they have access to a variable that tells them a user wants something inline. Nothing more. Its up to these modules to use that meaningfully.

Bèr Kessels’s picture

Status: Needs review » Reviewed & tested by the community

The patch still applies. Dries, please let me know if I must bother trying to get this in before 4.7?

m3avrck’s picture

Ber, check this latest commit: http://drupal.org/node/28483 ... I think your patch no longer applies since this JS based does do inline functionality.

Bèr Kessels’s picture

FileSize
20.02 KB

updated patch works with revisions and JS upload.

m3avrck’s picture

got an extra 'favico' in the patch file there.

Bèr Kessels’s picture

Status: Reviewed & tested by the community » Needs review
FileSize
19.22 KB

favicon removed.

killes@www.drop.org’s picture

I think I'd like to have this feature in core. The patch is quite big, though. ;-/
Also I noticed that the pgsql part is bogus.

Bèr Kessels’s picture

how would the pgsql look then? I am a complete pgSQL nitwit :)

telex4’s picture

Just a quick +1 from a user who is hoping that this gets into core for 4.7. We're using the inline functionality on our Remix Reading test site at the moment, and it's very handy for our theme where the user uploads any number of files and may want one or two images to be previewed in the node.

m3avrck’s picture

Status: Needs review » Needs work

Patch needs to be rerolled. Latest 2_0 version does indeed fix JS-based uploads commit, however it is missing all of the database changes and updates from the last _1 patch. Also, upload_count_size() is undefined, should be using <a href="http://drupaldocs.org/api/head/function/upload_space_used">upload_space_used()</a> instead. Also, beginning of upload.module patch adds the default maxsize setting which was previously taken out becuase it wasnt working properly. This patch corrects that and is a seperate issue :)

Steven’s picture

Status: Needs work » Needs review

Bèr: I'm afraid you missed my point. It is pretty useless for other modules to be able to read the inline value, when upload.module always adds the image to the node body.

Suppose I want to make a module which adds more advanced inline positioning, perhaps with a marker tag. I cannot avoid _upload_inline($node) being called, so I have to somehow remove that (themed!) image tag again. This makes the "other modules can use it" argument pretty silly IMO.

Dries’s picture

It would make sense for Ber to provide one or two examples of how this could be used.

Bèr Kessels’s picture

@Steven: no I did not miss your point.

on nodeapi view this is appended to the $node->body, regardless. You are correct.
But nothing witholds you from using that variable *before* the view is invoked. ou can then choose to unset the variable, or leave it.
I first had yet another hook, that would be called on nodeapi view, by the upload, on a per-file base; but then I found that all this was very OTT, since it ca all be achieved with the existing nodeapi. I reverted to the nodeapi.

@Dries; examples, sure.
1) Look for the result at http://fixme.remixreading.org/node/595, the small image at the right is rendered with this variable. 5and I must add that users that tested this behaviour were VERY positive!)

In phptemplate, the node, we do:

  <?php foreach ($node->files as $file): ?>
    <?php if ($file->inline): ?>
      <div id="preview">
        <img src="files/<?php print $file->filename ?>" alt="preview" title="preview of <?php print $node->title ?>" />
      </div>
    <?php endif; ?>
  <?php endforeach; ?>

Because we have ourtheme_upload_inline() to return NULL, this looks like you see online. Together with some CSS you get a very nice result.

2) For most weblogs, or newssites, you need not do anything, for the $node->body has the image already appended *if* the inline checkbox is checked. Esp since these types of sites need a unified look, they do not (or should not) need to alter the place and aligning of each image.

3) For the power users there are node-layout tools available such as tinyMCE, wikisyntax or even inline.module. Since that last one is the simplest I use that as example.

function inline_nodeapi(&$node, $op, $arg) {
  if(is_array($node->files) && $op == 'view') { //on view we replace the tokens with the img tags
    $node->teaser = _inline_substitute_tags($node, 'teaser');
    $node->body = _inline_substitute_tags($node, 'body');
  }
  elseif(is_array($node->files) && $op == 'validate') {
     $node = _inline_remove_tags($node); //remove the tags that are not flagged as inline
  }
  elseif(is_array($node->files) && $op == 'load') {
    _inline_remove_flags($node) //remove all $node->files[XX]->inline variables, so that upload does not render them. 
  }
  elseif(is_array($node->files) && $op == 'from pre') {
    $node = _inline_add_tags($node); //add [inline:X] tokens to 'body', so editor can use them.
    $node = _inline_remove_tags($node); //remove [inline] tokens that call files that are (no longer) marked for inline use.
  }
}
//....
function _inline_add_tags(&$node, $field) {
  foreach ($node->files as $file) {
    if ($file->inline && !_inline_check_for_tag($file->filename)) { //look if the tag is not already in body, and if the file is marked for inline usage.
       $node->body = _inline_add_single_tag($file) . $node->body; //Actually add the token to the beginning of the body
       $node->teaser = _inline_add_single_tag($file) . $node->teaser; // same for teaser
    }
  }
}

//note. preview is broken no Idea how this post looks ;)

TDobes’s picture

Bèr: The idea of clearing $node->inline never occurred to me... but won't that only work some of the time? It depends on the order in which modules' _nodeapi hooks get called. I believe they get called alphebetically (there's an asort in module_list), so a module whose name starts with v, w, x, y, or z will not be able to prevent upload.module from displaying its inline image.

While I do feel this functionality is useful, I think a better way of implementing it would be to allow other modules to add columns to the upload table. Then a module could invoke this upload hook to add a field for "display inline" and invoke _nodeapi to actually place the image. This would provide for future expansion of the upload module in addition to solving the immediate goal.

Bèr Kessels’s picture

in short my battle plan was:
* introduce inline stuff
* introduce hook for altering the file table

Why i did not go for #2 at once? because IMO you can do two things wit a file: show it, or download it. Anything else should be done in a file admin UI.

And furthermore: yes modules are ran in alphabetic order, but, nodeapi(load) is ALWAYS ran before nodeapi(view). So you can always make sure on nodeapi(view) the variable is unset.

moshe weitzman’s picture

Status: Needs review » Reviewed & tested by the community

I think that Ber's suggestion to unset the variable is a great, simple workaround. I don't see any more outstanding objections to the patch. Yes, it can be improved later, but it is useful already.

Bèr Kessels’s picture

the patch is still in brokenish state. I am trying to free some time this weekend (sunday evening) to fix it and synch with HEAd again. not h revisions and JS upload broke this patch. Its a lot of work to reroll, due to that amount of changes (nearly a complete rewrite, I am afraid)

Bèr Kessels’s picture

Status: Reviewed & tested by the community » Needs work
Bèr Kessels’s picture

Status: Needs work » Needs review

please review. This a complete rewrite,
* I ignored all the huge fucntions and just left tath for another ime to clean up (never). It does make the patch easier to read and smaller, though
* I left the 'upload preview' bug for what it is: it belons in a differnt issue, and would clutter this inline feature patch a lot. For the rest see above.
* Themes could be updated to do nice stuff to the inline patch. I did not do that, for that goes far beyond what this patch tries to do

Bèr Kessels’s picture

FileSize
14.13 KB

No, please review /this/ patch.

m3avrck’s picture

upload.module is listed twice in the patch ... so patch isn't work, please update!

Bèr Kessels’s picture

FileSize
8.66 KB

last attempt

Souvent22’s picture

Status: Needs review » Reviewed & tested by the community

+1 Ber. Worked well. I agree, the upload preview issue belongs in a diff bug. perhaps i'll create one, i'll try and look into that bug today. but i really like the inline feature, and i like that it IS simple. nice.

Souvent22’s picture

Ber,

As stated earlier about the bug, there seems to be a similar issue:

http://drupal.org/node/31102

Souvent22’s picture

Just wanted to state, this patch is ready to go. The "bug" is for all intents and purposes unrelated, and shall be resolved when the above mentioned issuse is resolved. I'd like to see this go in.

Souvent22’s picture

The problem with your upload file lists dissapearing has been resolved.
http://drupal.org/node/31102

m3avrck’s picture

Patch in #60 does work as advertised. The noted bug above is indeed a seperate and indepedent issue and can be recreated without this patch. In otherwords, this patch doesn't introduce any bugs and is ready to go.

Dries’s picture

Status: Reviewed & tested by the community » Postponed

I'm going to put this patch on hold. There does not seems to be a much demand for it.

Bèr Kessels’s picture

uhhm. 66 comments? 9 sperad out +1s? This being one the most FAQ in the forums? No demand? Come on. please!

moshe weitzman’s picture

@Dries - I thnk you have underestimated the demand. Of all the image handling solutions, this is the simplest. It feels very much like core functionality to me.

Bèr Kessels’s picture

I started a new project called betterupload (http://drupal.org/node/31736) where I added this inline feature.
It is a fork from core, and I hope to give uplaods a big overhaul, after wich it might get back into core, or otherwise live in contribs as a good alternative for core uploads.

Bèr Kessels’s picture

Status: Postponed » Active

I am reactivating this. After I read a thread at http://performancing.com/node/175#comment-440 and I folowed some links I found taht indeed:
* Drupal lacks any proper handling. The only solutions (img_assist, image module) are either far too comlpex, far too heavy and so,
* Or ar non-exitant

We need this. Full stop! If not this slution, we should trow all resources in coming up with another easy core solution.

m3avrck’s picture

Like I said before, I really like this patch too. Makes things a lot easier, IMO. Has lots of potential! Patch probably no longer applies, huh?

Bèr Kessels’s picture

Status: Active » Needs work

The path indeed no longer applies

saerdna’s picture

hum does this only inline images? i think if there's going to be inline in core, there has to be configurable inlining for different mime types and pre defined choosable aliases.

Bèr Kessels’s picture

simplicity, KISS, smple, clean, what other words should I use to describe this?

so no, we do not want to get involved into mimetypes configuration userinterfaces embedded media and all that shazam. Just Inline Pictures [tm]

Bèr

Stefan Nagtegaal’s picture

I would like to see this in core.. I like the functionality and the way it's implemented, very clean and straightforward..

Ber: Please update you patch so we can test it and set it to 'Ready to be committed'

Bèr Kessels’s picture

@stefan, Sorry, but I lack time, and above all lack motivation. I have spent hours and hours in this patch, Im rather fed up with it. I'm now maintaining it for myself, and once I get it upgraded to a HEAD i will -off course- ship a new patch. Though that will not be before freeze.
And for now, I am no longer bothered about all these loads of people being turned down because of Drupals inability to do simple image stuff. My itch is scratched. In the mean time, thanks to all the support and plus ones i got here. I'm out. :)

David Lesieur’s picture

The feature Bèr attempted to push here gets a big +1 from me. For many users, tags (such as [inline:N]) are too difficult. This feature would be exactly what they need. AFAIK, no better solution has been proposed for those users. The interface Bèr proposed is simple, elegant and consistent with the rest of the attachment interface.

Even where the users are able to use tags, I think this solution would be the most appropriate in many cases.

I naively hope this issue can be revived... :-)

sun’s picture

+1 for this patch

In terms of simplicity: Why should there be a workaround for removing automatically inlined images from nodes? Make it simple: Update themes to handle inlined uploads as stated in #51 by Ber! If you already use your theme to decide whether images are displayed in your example, why would you expect others to do that in another way? Instead of tricks, let the theme decide where to put inlined uploads. - Bottom line: This patch

  • adds simple inline image support to Drupal core through an additional checkbox, which is the greatest of all demands
  • adds the possibility for other modules to handle inline checked uploads in their way

If neither the theme nor a module handles those checked uploads, nothing will be inlined. That's default and simple. I would love to see this patch in core.

Thanks Bèr for your dedication!

David Lesieur’s picture

Status: Needs work » Fixed

Well, I think this issue could be closed, as this functionality has been integrated into the Inline module. Thanks a lot Bèr!

frjo’s picture

I strongly believe this function belongs in core. It is just the kind of simple and straight forward support for inline images that many users needs.

I use my own hacked version of inline.module on all my own and my customers sites. If this patch gets commit to core it would replace inline.module at least 7 times of 10.

When I first read this post many month ago I was sure this would get committed in no time, I'm really surprised that we are still discussing it.

Bèr Kessels’s picture

we are working on inline module to get this more usable and even more simple in there.

Core seems not to be interested, so lets leave this issue closed and focus on inline module instead? 80 comments, and all we got is a "I'm going to put this patch on hold. There does not seems to be a much demand for it."

so lets stick to that. There is not much demand for simple inline images in Drupal (ahum).

Anonymous’s picture

Status: Fixed » Closed (fixed)
jacauc’s picture

Version: » 4.7.2

Pity to have a such an exciting thread just end like this.
:(
Shot for the hard work with this patch Ber!

JamieR’s picture

Version: 4.7.2 » 6.x-dev

3 years later and still nothing in core. This was a huge mistake made long ago... Please consider re-opening...

sun’s picture

No. A core-worthy way to introduce a general "inline"/embedding functionality that can be leveraged by any contrib module is in development and called Inline API.