Todays update:
The Live Presentation Editor is now more 'newbee friendly':
-allows for the re-sequencing of slides
-uses the 'WYSIWYG' editor for 'text transcripts' of each slide and Description of Presentation. This allows for the inclusion of all html tags, emoticons and images, also uploading of images through its interface as required.
While editing a slide , the graphic slide is displayed above the 'WYSIWYG' editor , this enables the creator to see the slide as he is editing the transcripts and allows for better slide previewing.
i still need to add a 'file selector and uploader' for the slide's graphic file itself , i have downloaded the new 'CMS' module from http://moodle.opitaan.fi/moodle_extra_120704.tar.gz and will hopefully see how to get that feature coded.
About a 'PHP Powered' Whiteboard:
the basic description and usage:
Each chatter would have their own editable 'whiteboard' with a transparent background , this 'whteboard' would overlay a base image , the base image would be selected by the instructor as the 'topic' to be 'brainstormed' during this chat-driven whiteboard session. Each participating chatter would receive updated versions of other's 'whiteboard' overlays , a chatter would select which and how many overlays to view at any one time, each overlay would be contained in its own 'DIV' container that could be 'hidden' or 'show'n on demand. Although a chatter can only edit their own 'whiteboard' , their 'whiteboard' contents can be 'combined' with other's simply by 'show'ing the colaborating chatter(s)'s 'whiteboard' overlay(s).
possible methods i have found and discarded:
java/flash and other plugins :
yes pre-made whiteboard plug-ins do exist and there are many , i personally dont like java since it would require java rte install on all 'student's machines, possibly serverside java install required or at least additional php libs to handle moodle-izing of whiteboard data.
flash plug-in does not 'save as jpeg' by itself so this would require server install.
vrml (3d) - yes can output vrml with php but need browser plug-in for viewing if not editing.
i believe a php-mysql framework is required for a whiteboard module to be easily installed at any moodle site.
vml - just too early for wide browser compatability.
possible methods i have found and tested and still like:
Moodle's built-in 'WYSIWYG' editor:
yes it would be a viable possibility , every chatter is already familiar with the interface, you can insert text, graphics etc...
Usage : Each chatter would have their own editable 'message' in it's own transparent background 'div' and this would become their 'whiteboard overlay' that would be displayed in all chatter's browser...chat module can already handle db storage and transfer to all chatters.
The editor would need a bit of coding to display the base image along with your whiteboard contents , allow for the on-demand read-only display of other chatter's div contents into the editor, hide/show which chatters whiteboards and how many you want to see at the same time.
this would simply make the editor's area the whiteboard , when other chatter's send their edits into the chat your editor's content would be re-freshed, when you make changes in the editor you are only altering your own 'DIV's whiteboard.
the limitations are: difficulties in 'pixel-perfect' alignment of your whiteboard's content with the base image, the absence of line-drawing to enable 'pointing' at parts of base image and to connect whiteboard ; as in creating a flowchart.
i like this method as a possibility ; moodle's editor (htmlArea) has already been used in the 'mis-named' pwhiteboard project, is say 'mis-named' because their implimentation is more along the lines of a 'guestbook' than a live-shared whiteboard.
PHPdraw is a 'simplistic' php-gd powered 'in-the-browser' image creator i have installed and tested. It creates shapes like 'rectangle' 'line' 'oval'... not 'everything-you've-always-wanted' but free and open-source , a possible starting point...
i have installed and tested a fabulous 'feature rich' 'in the browser' image editor from: http://alllayers.com . it uses javascript to 'get' mousexy position and form submits to give GD commands server-side through php. they also have a 'flowcharter' version which would be a perfect way for chatters to easily select and add premade graphic elements to their whiteboard. A free version is available but we would need to alter the code and that is not free , they charge 200$ for 'all my scripts' and to have the edit-rights we need ... it's a good deal considering the amount of features already built-in but i think each moodle site would have to buy a license. still take a look at what they have done ....
PHPcad : is beautifullllll !!! a full-fledged 'in-the-browser' 3d editor : create 3dimensional objects and scenes , instant output of png/jpeg as you edit , mouse clicks for entry of start/end points, form input for code. saves POV format file as you work so the image you see is not the final output: you can output a MPEG movie !!! WOW ... all in the browser !!
i have to say : PHPcad is still making me drool !! 3d is the only reason i ever considered 'touching' a computer and finding this php-gd based 'in-the-browser' 3d editor is making my mind spin ... this would be dead-on perfect as the ultimate 3d course inside the moodle framework, an online course with an online 3d editor !!! share your 'workspace' and 'results' live .WOW
free and open-source BUT this one is a little too much for a 'whiteboard' , 3D comes with a pretty steep learning curve just to chat... i'll have to keep this one on the back-burner, i will end-up using PHPcad for a moodle '3D animation' course...
The biggest 'problem' of a GD-php powered whiteboard would be that each edit of each chatters whiteboard overlay would trigger the server to create a new image and send that new file to all chatters ... the overlay's image size would 'have' to be as large as the base image, that is a lot of processing/storing/transfer resources ..... just to put a mustache on the mona lisa !
THEN i found what i think will meet the needs of 'whiteboarding' , stay inside moodle's javascript-php-mysql framework, meet the 'logging' needs of moodle and not use so much server-side resources:
THE method i have found , tested and LOVE:
wz_dragdrop : a cross-browser javascript-dhtml library : allows for interactive and scripted content creation , placement and animation:
- moving / resizing images interactive with mouse or by script, can add/create images/divs on-demand , has path-based animation functions, can group div/images/content, can show/hide grouped elements.
AND from the same guy ! : Vector Graphics library : can draw lines, rectangles, elipses on the screen with javascript-dhtml only, live interactive or scripted.
I found this because a was looking to improve the 'windowing kit' i have been using to manage the different areas of the screen in my 'Live Presentation with webcam' chat module enhancement. i was feeling the limitations of using Popup Windows - V 4.4 .. can't complain ... it is a great bit of javascript but it is created for that purpose only , an instant 'div that looks like a window' kit.
So i have decided to re-code the javascript that manages the different areas of the chat window (well actually write the code, since i was kinda cheating by using that 'kit').
of course i will be using wz_dragdrop as my library of premade functions .... this will give me the opportunity to extend the chat's features to include 'Live Whiteboard' :
All chatters will have the js functions already loaded in their browser , these same functions that manage the chat areas of the screen can also be used to manage 'whiteboard' areas, i can allow for chatters to send 'pre-defined' commands to others and this will be the way to share your 'whiteboard' to all.....
This is the same technique i am now using to power the 'Live Presentation' Slideshow: when a message is about to be sent from the server to the chatters it is 'checked' for the presence of certain 'commands' already, when these 'commands' are found the message is handled in different ways ...
this method is already in use at your own moodle's chat ! when you type /me: you will see your name instead of /me: at the beggining of your message when displayed in the chat message list.
So far ; i simply added a few 'send slide' commands and by adding even more 'commands' we can handle the storage and transfer of 'whiteboard' contents without overloading the server... the commands would simply state which image to place where on the chatters screen area as defined by the base image's proportions and placement.
i will be adding this method as the 'pointer' during a slide presentation: when the presenter of the slideshow clicks on an area of the slide's graphic the mousexy will be sent to all chatters then their browser will get the 'pointer' image and display as slide overlay at those coordinates.
Using this method the server would not have to GD 'create' a new whiteboard image for every single change of every chatter's 'whiteboard' ....this would also allow for 'undo' of edits, since the whiteboard will actually be a collection of elements any element can be edited or removed independently.
i will also include a subset of the Vector Graphics library to allow for line-drawing in a flowchart setting.
IMPORTANT REQUEST: since i am planning to use the wz_dragdrop library as the basis for the entire chat module : Please test that website's demos with as many browser versions as you have !
Let me know if i have a found the cross-browser gem i need !!
Thanks that will help a lot ,
LouCharrierMIS@go.com