You are not logged in.
I apologise for the Ballmer impression This is an invitation to any developers with knowledge of (or the willingness to learn) Javascript's ins and outs to pitch in with the project.
Post here to let me know you exist, or if you see a ticket you'd like to tackle just post a comment to the ticket.
I'm totally open to allowing SVN commit access to developers who show that they are willing and able to partake in the joys of x-browser development. As long as you submit me a patch of two of substance and quality I'll be happy to set you up an SVN login.
I know there are lots of people who have hacked bits and bobs into htmlArea over the years, now is your time to come out of the woodwork, share your knowledge and get in on the ground floor with Xinha.
James Sleeman
Offline
I'm on board and I'm willing to jump in as time permits. I can also throw $$ when I don't have enough time to directly contribute code.
I've done a moderate amount of javascript but nothing on the scale of HTMLArea; however I'm extremely familiar with PHP. (and C and C++)
I'm not familiar with alot of the browser API's. Since I've been coding since age 7 I can come up to speed very quickly. At the moment, I have little time so my ability to contribute will be somewhat spotty. However, I'm very motivated because Xinha is extremely important to a large project I'm doing. (details forthcoming)
Initially I figure I can help with testing and provide user-interface feedback; I can also help out quite a bit on the server side while I come up to speed on the browser side API's. Answers to occasional questions will help me come up to speed much quicker.
-----------------------------------------------------------------------------------------
Content Management with Business Intelligence [url]http://www.formvista.com[/url]
Offline
Hi gogo,
I've done some work on htmlArea for the College's Interact online learning community system.
Some features I've added so far - I'll try and remember everything!
• tables have red dots around cells (but this vanishes on the completed page) - I see you have a different solution to this (other editor-only styles may also be applied).
• made table editing buttons appear when cursor is inside a table
• improved table dialogs
• Insert image - includes scaled image preview and improved dialog
• insert sound/video/checkpoint - for flash objects, it puts an editable placeholder on the page which can be dragged around - this gets replaced by the real flash object when pages are viewed normally.
• uses a standard file browser, included in all insert dialogs in an iframe, which uploads (including .zip unarchiving), makes new folders, deletes, and can also pop up a file manager for moving files around between user folders and global libraries... but I do like the look of your add-link browser!
• Improved styles/fonts/sizes menus a bit like you have - they update correctly as cursor enters regions.
• added Blockquote format
• made remove format kill all block styles & tags
• inherits style sheet from Interact site skin (even for 'fullpage' editing)
• improved popups - a bit of a hack, but no more dancing around the screen before opening.
• inserted space after format blocks to prevent getting trapped
• link dialog has remove link button if there is a link already
• rearranged toolbar to be similar layout to Word (most users are familiar with that layout)
• various bug fixes, everything works in IE and gecko.
Some stuff like the Flash and uploading requires PHP server side code.
You're most welcome to trawl through the diffs and pull some of this over to Xinha.
Interact version 2 (an open source project) is due out later this month - I'll put a current version of our htmlArea somewhere for you to play with soon - I've just been editing/testing htmlArea changes today. Do you mind registering yourself to a site to get edit/post privileges (to play with my htmlArea)?
So what is interactive tools doing with htmlArea? Letting it rot, or are they trying to take it back in-house? Why make something open source and then discourage developers!?
Hmm, 3 members here so far and all names ending in 'o'. I'm zebo 'cos I just bought zebo.org.
Xinha is a better name. Is it legally OK to grab somebodys open source project and rename it?
No html editing in your forums - whats that about!?
Offline
• tables have red dots around cells (but this vanishes on the completed page) - I see you have a different solution to this (other editor-only styles may also be applied).
I'd be interested to see how you did this. I just added an !important style, but it seems it's not enough to ensure that borders are visible when border styles are directly applied to the table.
• made table editing buttons appear when cursor is inside a table
Is this different from the TableOperations plugin? Or you mean you make them totally disappear when not in a table?
• insert sound/video/checkpoint - for flash objects, it puts an editable placeholder on the page which can be dragged around - this gets replaced by the real flash object when pages are viewed normally.
That sounds like a very useful thing to make into a plugin
• uses a standard file browser, included in all insert dialogs in an iframe, which uploads (including .zip unarchiving)
That sounds pretty flash! How, err, secure is it from having any old Joe Blow come in and mess with files on the server?
• made remove format kill all block styles & tags
Sounds like I could incorporate that in to the SuperClean plugin.
You're most welcome to trawl through the diffs and pull some of this over to Xinha.
Cool, perhaps best if you can just submit a ticket ("Examine and incorporate changes from this htmlarea") with a Zip of your htmlarea directory attached.
So what is interactive tools doing with htmlArea? Letting it rot, or are they trying to take it back in-house? Why make something open source and then discourage developers!?
Well, if you take a look at thier forums, it's, well, strange. They claim to be activly developing it, but so far all I've seen is them screw up the CVS, make a couple of changes here and there, change the "build system" (?!?), ignore lots of bug reports and plaster the site with adverts for competing products.
Hence why I and others gave up waiting.
Xinha is a better name. Is it legally OK to grab somebodys open source project and rename it?
Yes I think it's fine, in this case, htmlarea is licence under the socalled "htmlArea Licence", which is essentially a BSD licence deriviation. Renaming it shouldn't be a problem, AFAIK it has to stay under the htmlArea licence. But I'm not at all sure about what the copyright status becomes (it's already (C) dynarch and (C) interactive tools), wether we can, or should add copyrights for myself and the other developers working especially in the editor core.
No html editing in your forums - whats that about!?
Heh. Just keeping things simple
James Sleeman
Offline
I styled the td tag - and my style is put in as a linked css file at the end of the head, so it overrides any td in a user page. an inline td style could override the dots on a given cell, but hopefully you'll still be able to see where cells are.
My editor-only css link in the head gets ripped out of the file when the page is submitted.
Or you mean you make them totally disappear when not in a table?
yeah, I use the table op plugin, but the table op row of editing buttons is not displayed unless you're in a table. I fixed up the table properties dialog - it had bad default values and could muck up your table just by opening and closing it!
insert sound/video/checkpoint - for flash objects, it puts an editable placeholder on the page which can be dragged around - this gets replaced by the real flash object when pages are viewed normally.
That sounds like a very useful thing to make into a plugin
Yeah, though you need to RegExp all your pages with PHP to swap the placeholder with the real object - this is well beyond the javascript scope of htmlArea at present. The nice thing is that one RegExp handles *any* flash content on the page (along with sizing and FlashVars), but you can still pop back to the editor and move/copy/edit them.
uses a standard file browser, included in all insert dialogs in an iframe, which uploads (including .zip unarchiving)
That sounds pretty flash! How, err, secure is it from having any old Joe Blow come in and mess with files on the server?
The PHP server side that does all the work double-checks that you have permission - normal users can't do anything outside their own home folder - admins can also change and make global library folders. Theres lots of error-checking - it'll give a permission error if they try and hack the hidden path field in the form to something they're not allowed into.
Cool, perhaps best if you can just submit a ticket ("Examine and incorporate changes from this htmlarea") with a Zip of your htmlarea directory attached.
Yeah, except some of the stuff (like placeholder objects, user home folders and Interact styles) are not stand-alone - I think the easiest thing to do would be to use our site to see how it works and then transfer features to Xinha one by one.
I'll point you at a demo site soon - no public access to our test server.
If you're keen and impatient, browse the CVS here:
http://sourceforge.net/projects/cce-interact/
Hence why I and others gave up waiting.
Us too - nothing happening at their end so we just got stuck in.
Offline
insert sound/video/checkpoint - for flash objects, it puts an editable placeholder on the page which can be dragged around - this gets replaced by the real flash object when pages are viewed normally.
That sounds like a very useful thing to make into a plugin
Yeah, though you need to RegExp all your pages with PHP to swap the placeholder with the real object - this is well beyond the javascript scope of htmlArea at present. The nice thing is that one RegExp handles *any* flash content on the page (along with sizing and FlashVars), but you can still pop back to the editor and move/copy/edit them.
If it's just a RegExp then that should be able to be put into Xinha, I might have to make a hook available to plugins for when html goes in/out of the editor, but the functions are there to do it.
James Sleeman
Offline
I'm not sure if I made this clear - the saved HTML from the editor looks like this:
<img src="/includes/editor/images/[PlaceholderForItem].gif?XX[FLASHCOMPONENT]XX[scaling]:[width]:[height]:[FlashVars]XX[FLASHCOMPONENT]XX" />
one example:
<img src="/includes/editor/images/videoPlaceholder.gif?XXVIDSTREAMXXfixed:370:317:medianame=/local/users/19/1965000032/graffiti&vtitle=GraffitiXXVIDSTREAMXX" />
For built-in components (with their own edit window in HTMLArea), we have VIDSTREAM, MP3STREAM, CHECKPOINT,... for a user-uploaded swf, it's CUSTOMSWF
A normal page view will just show you a dud placeholder image... PHP needs to parse every page request to the server. But by keeping them as placeholders, it is easy to edit them, or change how the flash objects are setup.
The CVS repository mentioned in my last message - go into Interact/includes/editor (and editor.js) to get to our HTMLArea files. But gogo, we're both living in Christchurch, right? Why don't you stop by to visit me next week - either at work - CHCH College of Ed, or home - I live in Bryndwr. Email me if you want to meet, and suggest a time.
Last edited by zebo (2005-02-15 00:27:17)
Offline
I'm not sure if I made this clear - the saved HTML from the editor looks like this:
<img src="/includes/editor/images/videoPlaceholder.gif?XXVIDSTREAMXXfixed:370:317:medianame=/local/users/19/1965000032/graffiti&vtitle=GraffitiXXVIDSTREAMXX" />
Is it difficult to parse the reverse direction (going from the flash tags back to the img placeholder)?
Reason I ask is if it's not too hard (ie can be done with regexps) then it would be better for you to implement the conversion to + from placeholder in the javascript, that way when you switch from htmlmode -> textmode you wil see the proper flash tags, then switch back and you'll get the placeholder
That way you always store the real flash code, and only the editor deals with converting to/from the placeholder at time of editing.
(I imagine you know, but the Javascript regexp object is basically perlish, so it's quite capable)
Why don't you stop by to visit me next week - either at work - CHCH College of Ed, or home - I live in Bryndwr. Email me if you want to meet, and suggest a time.
I might do that, I'll let you know if I have time sometime in the next couple of weeks.
James Sleeman
Offline
Sure, you could do it just in the editor...
But you can't change the flash object easily - you have to deal with all the pages already created using the old version. The placeholder is more flexible - for example, I plan to allow the scaling to be set to 'fitwindow' or something, which would insert javascript to write the object size, making it the full width of (window - side menu width) by (proportinally scaled height). You might still be able to cope with a RegExp to convert it back, but it gets messy!
I would convert to a real flash object on submit and convert back to a placeholder when you enter the editor.
I definitely wouldn't let users touch the Flash object code because:
1) The placeholder is a subset of what is available in the full object - if you let the user edit the object html, then you'll need to expand the placeholder to cope with anything (possible??) or wipe some user changes.
2) Due to Win IE insisting on their new format for the object and gecko insisting on the old way, all parameters are usually specified twice in the object - if a user edits one of the 2 identical values, which do you keep?
3) If users touch the object code, they could easily break your RegExp and stop the replace working.
Offline
4) The browser editor will mangle your Flash object. IE (as to be expected) is the worst - it deletes anything in the object not specific to Win IE 5+... so your object won't show up in gecko browsers!
On exit from the editor, I'd stick html comments around the placeholder img (regExp any img tag with ?XX[NAME]XX...XX[NAME]XX in it), and insert the flash obj with comments above & below (ie <!-- Start Xinha Flash Object -->). That way, when you come back in, all you have to do is rip out the whole flash obj using the comments as start & end markers, and remove the comments from the placeholder! Hmmm, only thing is, the html comments might get mangled. Try it and see.
-=Bruce Webster.
Last edited by zebo (2005-02-15 22:54:30)
Offline
Really quite a newbie, so perhaps not much help in the development, but I do have a real and current need so I am busy testing and perhaps that's where I can contribute. And I am delighted to see something seriously happening with the product.
Offline
Hi James,
I'm using HTMLArea 3.0 at one of the websites I'm developing. I've never digged much into the HTML code but case I see a ticket I can quick fix I'll let you know.
Offline
Really quite a newbie, so perhaps not much help in the development, but I do have a real and current need so I am busy testing and perhaps that's where I can contribute. And I am delighted to see something seriously happening with the product.
Excellent Reg, just post ticket when you find a bug or think of a feature that would be useful.
James Sleeman
Offline
The flash object sounds very interesting, but then for a different purpose. I've actually been considering implementing something similar in my CMS.
I'll try to explain. In my CMS I make use of custom modules. So when on a certain page you want to display something that needs to be generated by php, you can write a module for that, and call for that module from anywhere in the text or put it somewhere in the templates. As has been said before, before the final page is displayed to the visitor, the page is quickly scanned for these special module tags with a regexp (php) and then the code is replaced with the appropriate output.
However, since it is also possible to send certain variables to the module upon loading, it would nice if some sort of insertion dialog would be present and an image placeholder would be displayed.
The current 'tags' look as follows:
{{module_name?key1=value1&key2=value2&key_N=value_N}}
Images are nicer, I could even use gd library to display the name of the module that is being loaded... I'd definately like to see this implemented, should I add a ticket then?
Offline
{{module_name?key1=value1&key2=value2&key_N=value_N}}
Images are nicer, I could even use gd library to display the name of the module that is being loaded... I'd definately like to see this implemented, should I add a ticket then?
Hmm, I think this would be a pretty specific implementation rather than a general-use plugin? If you want to have a go at creating a plugin though it's quite easy, a good one for example might be the Linker plugin.
James Sleeman
Offline
Sorry if I was a little unclear (I was pretty damn tired when I wrote that), I meant that I would like to see the flash plugin implemented, I could quite easily convert that into something usefull for myself...
Offline
Sorry if I was a little unclear (I was pretty damn tired when I wrote that), I meant that I would like to see the flash plugin implemented, I could quite easily convert that into something usefull for myself...
Ahhh, I see. Can you submit a ticket as an enhancement request for that.
Thanx.
James Sleeman
Offline
Done! Submitted the enhancement request!
Offline
I would like to help out, but I can't use http SVN as I am behind a http proxy.
Wei.
Offline
with mod_dav_svn subversion works over http!
is that not possible?
Niko
Offline
I'd be willing to provide space on my server (and did email you a while back), but I'm not currently running Apache2 so I guess that's out.
Offline
Is there a tutorial for plugin creation? Is there a definition of the API or a list of functions or anything on how to communicate with the core? I have unsuccesfully searched for such for HTMLArea or Xinha, so contributing has been hard and frustrating... reverse engineering takes a heck of a lot of time. If anyone could give me some pointers I will contribute any useful plugins I might develop.
Thanks for the awesome job, by the way.
Offline