Revision history for GmBowen


Revision [19448]

Last edited on 2008-01-28 00:16:02 by GmBowen [Modified links pointing to docs server]

No Differences

Revision [17841]

Edited on 2007-12-12 17:13:54 by GmBowen [update of personal info, project progress....]
Additions:
My name is Mike Bowen and I'm a professor of science education at Mount Saint Vincent University in Halifax, Nova Scotia, Canada.
My research interests involve developing "authentic" science environments for grade 6 to 12 students so that they may participate in science activities & communities which parallel those engaged in by "real" scientists. In my view, it only makes sense to learn about a subject in **all** of its dimensions...including the generative aspects and the interactive & participatory contexts in which those aspects arise. In the past several years I have been re-working wikkawiki to accomplish that....to such an extent that it is now it's a wikka-fork because the code-base has been changed so radically.
I have two goals overall. One is to develop an enhanced on-line publication and project site so that students can work on (hopefully collaborative) projects and publish their results on-line (when this project is finally active you'll be able to see it at "The Canadian Electronic Journal of High School Science & Technology"). The other facet of the project is to provide a single on-line environment that contains many of the project features found at The Journal, but which can be implemented on a smaller scale -- in a single class, school or school board. It is this latter facet which drives much of the recent wikka development I've been doing and which I hope will encourage collaborative and long-term projects in schools (both of which have been found to have substantial learning outcomes over "typical" classroom approaches). Wikka offers the advantage that you can start to use it in a very simple fashion and then, as your interests or needs evolve, more of the tools (both from the base wikka distribution and the tools I've been working on) can be incorporated into a student project.
The wikka "fork" (now called clikkawiki) will be available at www.clikkawiki.com as soon as I figure out how to modify the install package to include all of the database and page changes) derives considerably from THIS great wikkawiki and all the work done by all of you!! and has the following features (I released earlier versions of many of the tools here....then the core changed so much that the tools wouldn't work in this wiki any more)...
- Bulletin Board/Forum/discussion thread tools (looking darn close to things like phpBB etc)
- Blog Tools
- "Links" tool (for keeping lists w/ use counts of links) [The Blog/Forum/Thread/Linkmanager tools can all integrate through the BB tool....maintaining the same color scheme & look/feel across those different tools]
- Mail tools
- IM Chat tools
- Simple Paint/Drawing & Graphing tools (which save in a user directory on the server)
- Simple "spreadsheet" tool w/ simple statistics (mean, median, std dev, count, freq) available from dropdown menus (spreadsheet has a permissions system to allow multiple users/contributors as well)
- tagging w/in the wiki (a dynamic & amorphous system w/o ownership...it's essentially a way of collaboratively indexing the pages, w/ a "favourite tags" feature)
- page notes (so you can leave personal notes for your use on wiki pages...a feature I got the idea for from Hotscripts.com) w/ an organizing tool so you can find your notes.
- Calendaring/Scheduling tools
- "Presentation" tools (think of it as a simple version of something like powerpoint...that leaves it's notes visible online) with changeable backgrounds
- simple "polling" tool (basically can do T/F, M/C & open-ended) with simple analysis components built in
- contact/phonebook list
- buddies list (with tracking of pages they've been to)
- View Gallery tool (to view drawings or graphs the user has created)
- a "project" tool (that combines images w/ comments, spreadsheets, project blog on one page)
- a feature called "MyTown" which essentially allows a user to subset the whole wiki to only those pages of their friends, their pages, their "favourite" pages & admin pages.
- full admin features including page locking/hiding, page & username banning, image upload approval system, backup system (of images, database & files), "hide" forum contributions, etc
- an enhanced "lost password" feature
- easy making of tables using markup
- YouTube and image embedding (but, as currently written, only for images available IN the wiki that have been approved)
- "Block" system so a student can block someone from contributing to various tools (blogs, forums etc) on their pages, sending them "mail", as well as seeing their name in forums etc
- threaded commenting system for each page
- permissions for editing/viewing/commenting/actions on each page
- an enhanced search tool
- registration can be keyed to a password or locked, log-in can be locked.
In the end, it combines the "best" parts of wiki's (unstructured writing environment) with the "best" parts of forums/blogs/threads etc, and the best parts of social networking environments....and empowers the individual user to be able to create their own content whether structured or unstructured. It is fully intended to help a classroom teacher generate an [[http://en.wikipedia.org/wiki/Constructivism_%28learning_theory%29 constructivist]] learning environment.
Although the tools I've developed are often less full-featured than those in standalone versions of the tools, they offer a few distinct advantages for kids working on school projects. Firstly, the student doesn't have to carry/move files or documents around. Secondly, students are able to use the same tools at school, in the library, at a friends place, or at home. The work they do is not subject to the vagaries of the platform they are on. Thirdly, they can collaboratively work on projects in ways not possible with traditional tools available to them. Fourthly, and this is really interesting in a learning sense, they afford participation by students **not** part of the project group....even from other schools & grades....something which rarely happens in schools. That the teacher can monitor projects as they are ongoing is also different than what often happens. And heck, even parents can drop in.
Overall, I chose wakka/wikka because it seemed to be the wiki with the most flexibility for doing the sorts of things I was interested in. When I started 3 years ago I didn't even know what PHP was....I'd used basic and fortran in bits in the far past and I knew HTML. Things have progressed since then, and I owe much to Mark Kasper, Andrew Somerville, Chris Spurr and Colin Madore each of whom helped program various parts of tools & to the people who work with this wikki (JW, Nils, DarTar, Jason, etc) who have both provided examples of code & input on what I've been doing that have helped me develop the scripts I've been working on. Although I know that they often despair at my seeming inability to follow conventions (or, at least cluelessness about them), I'm grateful for their support and help. Thanks folks.
I have a modified file-upload utility (just for graphic images)......The "upload" script is a mod of one of the ones at wakka or wikka (can't remember which)..... This script only allows 10 uploaded files with the users prefix in the upload directory (although you can change that easily), and checks the wikka_users database to see (a) how many files are allowed in total and (b) what number the user is at.
The current max allowed image upload is "30"...set at the database level. When the images are uploaded to the directory the username is concatonated to the front of the filename. Admin has access to an image approval system (the first version of which was based on [[http://sourceforge.net/projects/otfgallery/ OTF Gallery]]) that allows you to preview and "approve" each image and will then copy the files to a directory that exists for each individual user and strip the user name from the front of the file. If you're interested in the gallery software for wikka let me know....you'd be on your own for modifying it to only show files with the username prefix cuz my php skills aren't good enough to do those changes.
Deletions:
My name is Mike Bowen and I'm a professor of science education at the University of New Brunswick in Fredericton, NB, Canada.
My research interests involve developing "authentic" science environments for grade 6 to 12 students so that they may participate in science activities & communities which parallel those engaged in by "real" scientists. In my view, it only makes sense to learn about a subject in **all** of its dimensions...including the generative aspects and the interactive & participatory contexts in which those aspects arise.
I have two goals overall. One is to develop an enhanced on-line publication and project site so that students can work on (hopefully collaborative) projects and publish their results on-line (you can see this project as it develops at The Canadian Electronic Journal of High School Science & Technology [[http://www.thejournal.ca here]]). The other facet of the project is to provide a single on-line environment that contains many of the project features found at The Journal, but which can be implemented on a smaller scale -- in a single class, school or school board. It is this latter facet which drives much of the recent wikka development I've been doing and which I hope will encourage collaborative and long-term projects in schools (both of which have been found to have substantial learning outcomes over "typical" classroom approaches). Wikka offers the advantage that you can start to use it in a very simple fashion and then, as your interests or needs evolve, more of the tools (both from the base wikka distribution and the tools I've been working on) can be incorporated into a students projects.
Although the tools I've developed are often "primitive" compared to full-blown versions, they offer a few distinct advantages for kids working on school projects. Firstly, the student doesn't have to carry/move files or documents around. Secondly, students are able to use the same tools at school, in the library, at a friends place, or at home. The work they do is not subject to the vagaries of the platform they are on. Thirdly, they can collaboratively work on projects in ways not possible with traditional tools available to them. Fourthly, and this is really interesting in a learning sense, they afford participation by students **not** part of the project group....even from other schools & grades....something which rarely happens in schools. That the teacher can monitor projects as they are ongoing is also different than what often happens. And heck, even parents can drop in.
Overall, I chose wakka/wikka because it seemed to be the wiki with the most flexibility for doing the sorts of things I was interested in. When I started a year ago I didn't even know what PHP was....I'd used basic and fortran in bits in the far past and I knew HTML. Things have progressed since then, and I owe much to Mark Kasper who helped program parts of The Journal site last spring & to the people who work with this wikki (JW, Nils, DarTar, Jason, etc) who have both provided examples of code & input on what I've been doing that have helped me develop the scripts I've been working on. Although I know that they often despair at my seeming inability to follow conventions (or, at least cluelessness about them), I'm grateful for their support and help. Thanks folks.
I have a modified file-upload utility (just for graphic images)......The "upload" script is a mod of one of the ones at wakka or wikka (can't remember which)....I've made it available at http://131.202.10.204/wiki/actions/uploadimage.phps .... to use it you will of course have to change phps to php. This script only allows 10 uploaded files with the users prefix in the upload directory (although you can change that easily), and checks the wikka_users database to see (a) how many files are allowed in total and (b) what number the user is at.
The current max allowed image upload is "30"...set at the database level. When the images are uploaded to the directory the username is concatonated to the front of the filename. I have a modified version of [[http://sourceforge.net/projects/otfgallery/ OTF Gallery]] that allows you to preview and "approve" each image and will then copy the files to a directory that exists for each individual user and strip the user name from the front of the file (this is from a modification of a registration script extraneous to Wikka that makes a directory for each registrant)""[""[[http://131.202.10.204/wiki/OTFGalleryMod.zip Modified OTF]]""]"" (note that this will require some fiddling as they were not really modified for release purposes....I've included comments about the things we've changed in the PHP scripts, but you should probably read the instructions for OTF gallery in general). Or, if you're not interested in doing that, I have a modified version of the "gallery" action available for wikka that you could change so it would just shows thumbnails of images of the logged in user and allows erasing images...currently it just goes to the users personal directory, but you could change that (my programming guy modded this so it generates thumbnails using GD....the original version of the gallery required you to generate the thumbnails yourself)""[""[[http://wiki.samuelooi.com/wikka.php?wakka=Mod02Gallery Code Available Here]]""]"". Hope this helps. If you're interested in the gallery software for wikka let me know....you'd be on your own for modifying it to only show files with the username prefix cuz my php skills aren't good enough to do those changes.
For a "user resources" page we created an action that would just list the graphical images in the directory (and let the user delete them if so desired).....**needs code added so ONLY works for registered & logged in user** (otherwise for unregistered users writes errors into the server logs)


Revision [17581]

Edited on 2007-10-01 18:50:14 by GmBowen [update of personal info, project progress....]
Additions:
====Database Status Action==== (see [[http://gmbtst.msvu.ca/wiki/wakka.php?wakka=Administration here]] for example.)
Also developed is graphing software that works within wikka (see GraphMaker).....also see ([[http://gmbtst.msvu.ca/vhgraph/ here]] and [[http://gmbtst.msvu.ca/powergraphic/graphic.php?showform here]]). The advantage of graphmaker is you don't have to rely on uploading images. That program will be further refined so that it can re-load the graph code and re-edit it. I'm still working on getting it to save the graphic to the hard drive. A "pagewatches" action is more-or-less finished....it allows you to keep a list of pages that you're looking to see if changes have been made on. And what's my //dream// regarding the wiki?? A rich text editor choice with wysiwyg (in addition to wikiedit)...it'll make it more user friendly for kids, but methinks that must be a hard thing to accomplish (since nobody has progressed with the idea much).
Deletions:
====Database Status Action==== (see [[http://gmbowen.educ.unb.ca/wiki/wakka.php?wakka=Administration here]] for example.)
Also developed is graphing software that works within wikka (see GraphMaker).....also see ([[http://gmbowen.educ.unb.ca/vhgraph/ here]] and [[http://gmbowen.educ.unb.ca/powergraphic/graphic.php?showform here]]). The advantage of graphmaker is you don't have to rely on uploading images. That program will be further refined so that it can re-load the graph code and re-edit it. I'm still working on getting it to save the graphic to the hard drive. A "pagewatches" action is more-or-less finished....it allows you to keep a list of pages that you're looking to see if changes have been made on. And what's my //dream// regarding the wiki?? A rich text editor choice with wysiwyg (in addition to wikiedit)...it'll make it more user friendly for kids, but methinks that must be a hard thing to accomplish (since nobody has progressed with the idea much).


Revision [17148]

Edited on 2007-07-07 04:43:41 by JavaWoman [changed wakkawiki web.archive.org link to latest "good" ones]
Additions:
**Interesting Pages:** SysInfo, WikkaBetaFeatures, ACLsWithUserGroups, UserRegistration, [[http://web.archive.org/web/20040510011532/http://www.wakkawiki.com/IbukiReDirect redirect script]] (with registration password for admin purposes), WikkaCSS (to make flexible floating box width), to embed images completely in a webpage use base64img.php at http://php.holtsmark.no/base64img/, FLV streaming players (for demo movies) [[http://www.videospark.com/index.php?ssp=24 here]], [[http://www.entrezeroetun.com/wiki/wakka.php?wiki=ImageBrowser Image browser]], simple edit actions for wackowiki (modifiable for here) [[http://wackowiki.com/Dev/PatchesHacks/CallEdit?v=rjs here]], an action to prune older pages from the history is at PageAdminPrune.
Deletions:
**Interesting Pages:** SysInfo, WikkaBetaFeatures, ACLsWithUserGroups, UserRegistration, [[http://web.archive.org/web/20040318215353/www.wakkawiki.com/IbukiReDirect redirect script]] (with registration password for admin purposes), WikkaCSS (to make flexible floating box width), to embed images completely in a webpage use base64img.php at http://php.holtsmark.no/base64img/, FLV streaming players (for demo movies) [[http://www.videospark.com/index.php?ssp=24 here]], [[http://www.entrezeroetun.com/wiki/wakka.php?wiki=ImageBrowser Image browser]], simple edit actions for wackowiki (modifiable for here) [[http://wackowiki.com/Dev/PatchesHacks/CallEdit?v=rjs here]], an action to prune older pages from the history is at PageAdminPrune.


Revision [16152]

Edited on 2007-02-19 17:57:29 by SultanRahi [changed wakkawiki web.archive.org link to latest "good" ones]
Additions:
<tr><font size="-2">Notez que la traduction semble mieux fonctionner si vous faites un clic droit sur le drapeau et ouvrez la traduction dans une nouvelle fenêtre.</font></tr>
Deletions:
<tr><font size="-2">Notez que la traduction semble mieux fonctionnersi vous faites un clic droit sur le drapeau et ouvrez la traduction dans une nouvelle fenêtre.</font></tr>


Revision [16151]

Edited on 2007-02-19 17:55:59 by SultanRahi [Fix the french translation]
Additions:
<tr><font size="-2">Notez que la traduction semble mieux fonctionnersi vous faites un clic droit sur le drapeau et ouvrez la traduction dans une nouvelle fenêtre.</font></tr>
Deletions:
<tr><font size="-2">Notez que la traduction semble fonctionner mieux si vous right-clic le drapeau et ouvrir la traduction dans une nouvelle fenêtre.</font></tr>


Revision [12381]

Edited on 2005-12-22 06:24:15 by GmBowen [update of interesting pages]
Additions:
**Interesting Pages:** SysInfo, WikkaBetaFeatures, ACLsWithUserGroups, UserRegistration, [[http://web.archive.org/web/20040318215353/www.wakkawiki.com/IbukiReDirect redirect script]] (with registration password for admin purposes), WikkaCSS (to make flexible floating box width), to embed images completely in a webpage use base64img.php at http://php.holtsmark.no/base64img/, FLV streaming players (for demo movies) [[http://www.videospark.com/index.php?ssp=24 here]], [[http://www.entrezeroetun.com/wiki/wakka.php?wiki=ImageBrowser Image browser]], simple edit actions for wackowiki (modifiable for here) [[http://wackowiki.com/Dev/PatchesHacks/CallEdit?v=rjs here]], an action to prune older pages from the history is at PageAdminPrune.
Deletions:
**Interesting Pages:** SysInfo, WikkaBetaFeatures, ACLsWithUserGroups, UserRegistration, [[http://web.archive.org/web/20040318215353/www.wakkawiki.com/IbukiReDirect redirect script]] (with registration password for admin purposes), WikkaCSS (to make flexible floating box width), to embed images completely in a webpage use base64img.php at http://php.holtsmark.no/base64img/, FLV streaming players (for demo movies) [[http://www.videospark.com/index.php?ssp=24 here]], [[http://www.entrezeroetun.com/wiki/wakka.php?wiki=ImageBrowser Image browser]], simple edit actions for wackowiki (modifiable for here) [[http://wackowiki.com/Dev/PatchesHacks/CallEdit?v=rjs here]].


Revision [11838]

Edited on 2005-11-15 13:39:36 by GmBowen [update of links]
Additions:
**Interesting Pages:** SysInfo, WikkaBetaFeatures, ACLsWithUserGroups, UserRegistration, [[http://web.archive.org/web/20040318215353/www.wakkawiki.com/IbukiReDirect redirect script]] (with registration password for admin purposes), WikkaCSS (to make flexible floating box width), to embed images completely in a webpage use base64img.php at http://php.holtsmark.no/base64img/, FLV streaming players (for demo movies) [[http://www.videospark.com/index.php?ssp=24 here]], [[http://www.entrezeroetun.com/wiki/wakka.php?wiki=ImageBrowser Image browser]], simple edit actions for wackowiki (modifiable for here) [[http://wackowiki.com/Dev/PatchesHacks/CallEdit?v=rjs here]].
Deletions:
**Interesting Pages:** SysInfo, WikkaBetaFeatures, ACLsWithUserGroups, UserRegistration, [[http://web.archive.org/web/20040318215353/www.wakkawiki.com/IbukiReDirect redirect script]] (with registration password for admin purposes), WikkaCSS (to make flexible floating box width), to embed images completely in a webpage use base64img.php at http://php.holtsmark.no/base64img/, FLV streaming players (for demo movies) [[http://www.videospark.com/index.php?ssp=24 here]], [[http://www.entrezeroetun.com/wiki/wakka.php?wiki=ImageBrowser Image browser]].


Revision [11667]

Edited on 2005-11-06 05:41:58 by GmBowen [update links]
Additions:
I have a modified file-upload utility (just for graphic images)......The "upload" script is a mod of one of the ones at wakka or wikka (can't remember which)....I've made it available at http://131.202.10.204/wiki/actions/uploadimage.phps .... to use it you will of course have to change phps to php. This script only allows 10 uploaded files with the users prefix in the upload directory (although you can change that easily), and checks the wikka_users database to see (a) how many files are allowed in total and (b) what number the user is at.
The current max allowed image upload is "30"...set at the database level. When the images are uploaded to the directory the username is concatonated to the front of the filename. I have a modified version of [[http://sourceforge.net/projects/otfgallery/ OTF Gallery]] that allows you to preview and "approve" each image and will then copy the files to a directory that exists for each individual user and strip the user name from the front of the file (this is from a modification of a registration script extraneous to Wikka that makes a directory for each registrant)""[""[[http://131.202.10.204/wiki/OTFGalleryMod.zip Modified OTF]]""]"" (note that this will require some fiddling as they were not really modified for release purposes....I've included comments about the things we've changed in the PHP scripts, but you should probably read the instructions for OTF gallery in general). Or, if you're not interested in doing that, I have a modified version of the "gallery" action available for wikka that you could change so it would just shows thumbnails of images of the logged in user and allows erasing images...currently it just goes to the users personal directory, but you could change that (my programming guy modded this so it generates thumbnails using GD....the original version of the gallery required you to generate the thumbnails yourself)""[""[[http://wiki.samuelooi.com/wikka.php?wakka=Mod02Gallery Code Available Here]]""]"". Hope this helps. If you're interested in the gallery software for wikka let me know....you'd be on your own for modifying it to only show files with the username prefix cuz my php skills aren't good enough to do those changes.
**Um, okay, weird. This works fine on my version of wikka 1.0.2, but not at all on 1.1.5.3 ....anybody have any sense as to why?? I'd appreciate any insights.** On further investigation, even if I go to http://babelfish.altavista.com/ and enter http://131.202.10.204/helpwiki/wikka.php?wakka=HomePage it won't translate the page, whereas if I enter http://wikka.jsnx.com/HomePage (which are both the same version of Wikka) it will translate that page. Since my using the feature that allows Jason to have the "shortform" of the web address is not an option for me (as far as I know...although I'm happy to be corrected on this), is there any solution?? [I chatted with the people at SYSTRAN who provide the engine and they say there's no reason that they know of that it shouldn't work]
Sometimes I want to know how the page creator did something in wikka code (like, how does Jason make the HomePage here so that there's that wizard lined up parallel with the text)...but the page isn't "open" for editing so I can't (logic being, that if users wanted to know they could note that in the comments and the page author could add the action eh). So, I hacked together this little action (it's kinda at the starting phase) so that it was possible for me to drop it in at the end of a page and let the reader see how the coding was done (my site is for kids remember....so "by example" will be better for many of them than a "how to" sheet....see what I mean at http://131.202.10.204/wiki/wakka.php?wakka=ExampleHomePage ). Another version (farther down) is available as a link so that the page code is visible (it requires the showpagecode.php handler code to be in the handler directory).
Deletions:
I have a modified file-upload utility (just for graphic images)......The "upload" script is a mod of one of the ones at wakka or wikka (can't remember which)....I've made it available at http://131.202.167.33/wiki/actions/uploadimage.phps .... to use it you will of course have to change phps to php. This script only allows 10 uploaded files with the users prefix in the upload directory (although you can change that easily), and checks the wikka_users database to see (a) how many files are allowed in total and (b) what number the user is at.
The current max allowed image upload is "30"...set at the database level. When the images are uploaded to the directory the username is concatonated to the front of the filename. I have a modified version of [[http://sourceforge.net/projects/otfgallery/ OTF Gallery]] that allows you to preview and "approve" each image and will then copy the files to a directory that exists for each individual user and strip the user name from the front of the file (this is from a modification of a registration script extraneous to Wikka that makes a directory for each registrant)""[""[[http://131.202.167.33/wiki/OTFGalleryMod.zip Modified OTF]]""]"" (note that this will require some fiddling as they were not really modified for release purposes....I've included comments about the things we've changed in the PHP scripts, but you should probably read the instructions for OTF gallery in general). Or, if you're not interested in doing that, I have a modified version of the "gallery" action available for wikka that you could change so it would just shows thumbnails of images of the logged in user and allows erasing images...currently it just goes to the users personal directory, but you could change that (my programming guy modded this so it generates thumbnails using GD....the original version of the gallery required you to generate the thumbnails yourself)""[""[[http://wiki.samuelooi.com/wikka.php?wakka=Mod02Gallery Code Available Here]]""]"". Hope this helps. If you're interested in the gallery software for wikka let me know....you'd be on your own for modifying it to only show files with the username prefix cuz my php skills aren't good enough to do those changes.
**Um, okay, weird. This works fine on my version of wikka 1.0.2, but not at all on 1.1.5.3 ....anybody have any sense as to why?? I'd appreciate any insights.** On further investigation, even if I go to http://babelfish.altavista.com/ and enter http://131.202.167.33/helpwiki/wikka.php?wakka=HomePage it won't translate the page, whereas if I enter http://wikka.jsnx.com/HomePage (which are both the same version of Wikka) it will translate that page. Since my using the feature that allows Jason to have the "shortform" of the web address is not an option for me (as far as I know...although I'm happy to be corrected on this), is there any solution?? [I chatted with the people at SYSTRAN who provide the engine and they say there's no reason that they know of that it shouldn't work]
Sometimes I want to know how the page creator did something in wikka code (like, how does Jason make the HomePage here so that there's that wizard lined up parallel with the text)...but the page isn't "open" for editing so I can't (logic being, that if users wanted to know they could note that in the comments and the page author could add the action eh). So, I hacked together this little action (it's kinda at the starting phase) so that it was possible for me to drop it in at the end of a page and let the reader see how the coding was done (my site is for kids remember....so "by example" will be better for many of them than a "how to" sheet....see what I mean at http://131.202.167.33/wiki/wakka.php?wakka=ExampleHomePage ). Another version (farther down) is available as a link so that the page code is visible (it requires the showpagecode.php handler code to be in the handler directory).


Revision [11666]

Edited on 2005-11-06 04:40:47 by GmBowen [update links]
Additions:
@@[GmBowenCalendar] [GmBowenCounter] [GmBowenRecentEditCheck] [GmBowenUnitConverter][Mod041fPageIndexByLetter][GmBowenAdminPageControlTool] [GmBowenSpellchecker] [GmBowenWikkaAsPIM] [BannerMaker] [WikkaForum] [GraphMaker] [WikkaBlog2] [CanadianWeather] [Mp3Player] [WikkaMail] [ImageListing] [FormattedIncludeAction] [EditSaveGif] [WikiBreadcrumb] [InLineComments] [TabNavigation] [PopOutSideMenu] @@
Deletions:
@@[GmBowenCalendar] [GmBowenCounter] [GmBowenRecentEditCheck] [GmBowenUnitConverter][Mod041fPageIndexByLetter][GmBowenAdminPageControlTool] [GmBowenSpellchecker] [GmBowenWikkaAsPIM] [BannerMaker] [WikkaForum] [GraphMaker] [WikkaBlog2] [CanadianWeather] [Mp3Player] [WikkaMail] [ImageListing] [FormattedIncludeAction] [EditSaveGif] [WikiBreadcrumb] [InLineComments] [TabNavigation]@@


Revision [10737]

Edited on 2005-08-16 15:48:49 by GmBowen [update my links]
Additions:
if ($file != '.' && $file != '..') {
$num++;
$delete_link = "<a href=\"$homelink&action=delete&file=$file&tmbnail=\" onmouseover=\"this.T_WIDTH=130;this.T_BGCOLOR='#FF3300';this.T_FONTCOLOR='#000000';this.T_FONTWEIGHT='bold';return escape('Delete this image file')\">x</a>";
} else {
$delete_link = "";
print "
<tr>
<td valign='top' align='center'>
 
{$delete_link}
{$file}
 
</td>
</tr>
";
// print n/a if no files currently exist
if (!$num) print "<tr><td> </td><td colspan='3' align='center'><font color='gray' size='-1'><i>You have no image files yet!</i></font></td></tr>";
else print "<tr><td> </td></tr>";
<TD>
<P>The wiki code which generated this page...</P>
</TD>
<TD BGCOLOR="#FFFFCC">
<P>
</TD>
// display raw page, slightly formatted for viewing
echo "</p><strong>".$pageowner2." owns these pages.....</strong>";
@@[GmBowenCalendar] [GmBowenCounter] [GmBowenRecentEditCheck] [GmBowenUnitConverter][Mod041fPageIndexByLetter][GmBowenAdminPageControlTool] [GmBowenSpellchecker] [GmBowenWikkaAsPIM] [BannerMaker] [WikkaForum] [GraphMaker] [WikkaBlog2] [CanadianWeather] [Mp3Player] [WikkaMail] [ImageListing] [FormattedIncludeAction] [EditSaveGif] [WikiBreadcrumb] [InLineComments] [TabNavigation]@@
Deletions:
if ($file != '.' && $file != '..') {
$num++;
$delete_link = "<a href=\"$homelink&action=delete&file=$file&tmbnail=\" onmouseover=\"this.T_WIDTH=130;this.T_BGCOLOR='#FF3300';this.T_FONTCOLOR='#000000';this.T_FONTWEIGHT='bold';return escape('Delete this image file')\">x</a>";
} else {
$delete_link = "";
print "
<tr>
<td valign='top' align='center'>
 
{$delete_link}
{$file}
 
</td>
</tr>
";
}
// print n/a if no files currently exist
if (!$num) print "<tr><td> </td><td colspan='3' align='center'><font color='gray' size='-1'><i>You have no image files yet!</i></font></td></tr>";
else print "<tr><td> </td></tr>";
<TD>
<P>The wiki code which generated this page...</P>
</TD>
<TD BGCOLOR="#FFFFCC">
<P>
</TD>
// display raw page, slightly formatted for viewing
echo "</p><strong>".$pageowner2." owns these pages.....</strong>";
@@[GmBowenCalendar] [GmBowenCounter] [GmBowenRecentEditCheck] [GmBowenUnitConverter][Mod041fPageIndexByLetter][GmBowenAdminPageControlTool] [GmBowenSpellchecker] [GmBowenWikkaAsPIM] [BannerMaker] [WikkaForum] [GraphMaker] [WikkaBlog2] [CanadianWeather] [Mp3Player] [WikkaMail] [ImageListing] [FormattedIncludeAction] [EditSaveGif] [WikiBreadcrumb]@@


Revision [8003]

Edited on 2005-05-11 07:26:14 by GmBowen [update my links]
Additions:
@@[GmBowenCalendar] [GmBowenCounter] [GmBowenRecentEditCheck] [GmBowenUnitConverter][Mod041fPageIndexByLetter][GmBowenAdminPageControlTool] [GmBowenSpellchecker] [GmBowenWikkaAsPIM] [BannerMaker] [WikkaForum] [GraphMaker] [WikkaBlog2] [CanadianWeather] [Mp3Player] [WikkaMail] [ImageListing] [FormattedIncludeAction] [EditSaveGif] [WikiBreadcrumb]@@
Deletions:
@@[GmBowenCalendar] [GmBowenCounter] [GmBowenRecentEditCheck] [GmBowenUnitConverter][Mod041fPageIndexByLetter][GmBowenAdminPageControlTool] [GmBowenSpellchecker] [GmBowenWikkaAsPIM] [BannerMaker] [WikkaForum] [GraphMaker] [WikkaBlog2] [CanadianWeather] [Mp3Player] [WikkaMail] [ImageListing] [FormattedIncludeAction][EditSaveGif]@@


Revision [7038]

Edited on 2005-03-31 23:44:23 by GmBowen [info update]
Additions:
Many current mods: An action in development is the interactive table action which is a "big" one for our interests...it is like a //*very*// simple spreadsheet tool -- an interactive table actually -- that will do sum, count, frequency & average on the column entries & sum, count & average on selectable rows for multiple sheets connected to one page (they're owned "on" a specific page) . We are very close to release. It also has a separate "permissions" system so that the owner of the spreadsheets can assign shared editing rights to other users. It also has associated actions including { {myspreadsheets} } (to list pages with associated spreadsheets for any user), { {spreadusermanagement} } for the logged in user to easily add and remove users to their multiple sheets/pages, { {inserttable} } which allows any sheet to be inserted (w/o editing ability) on any page by any body. If a user doesn't have permission they'll still be able to "browse" the sheets on the page the { {spreadsheet} } action is on but not edit them. In addition, there will be an "easy" version { {ezspreadsheet} } to help scaffold new users towards using the full package. Look for the release in the next 3 weeks (my programmer is taking a couple of weeks off).
---
---
---
---
Deletions:
Many current mods: An action in development is the interactive table action which is a "big" one for our interests...it is like a //*very*// simple spreadsheet tool -- an interactive table actually -- that will do sum, count, frequency & average on the column entries....but we're currently having a problem with the foreach() statement which is why we've not released it yet.


Revision [6669]

Edited on 2005-03-11 15:21:49 by GmBowen [code for AIM/MSN/ICQ]
Additions:
===Code for detecting InstantMessaging Online===
the following was obtained from comawiki where it was put up, I think, by Michael Hartmann. It allows you to enter the username for ICQ, AIM & MSN to see if that user is on-line. I think they'll be easy to turn into actions with parameters for the name & ID of individuals....and will be useful for determining if other team members are on-line.
""<A HREF="ymsgr:sendIM?ibukimiha">
<IMG SRC="http://www.mplampla.com:800/yahoo/ibukimiha"
align="absmiddle" border="0" ALT="Yahoo Online Status Indicator"
onerror="this.onerror=null;this.src='http://www.mplampla.com:800/image/yahoounknown.gif';"></A>
<A HREF="http://www.mplampla.com:800/message/icq/317419095">
<IMG SRC="http://www.mplampla.com:800/icq/317419095"
align="absmiddle" border="0" ALT="ICQ Online Status Indicator"
onerror="this.onerror=null;this.src='http://www.mplampla.com:800/image/icqunknown.gif';"></A>
<A HREF="aim:goim?screenname=IbukiMicha">
<IMG SRC="http://www.mplampla.com:800/aim/IbukiMicha"
align="absmiddle" border="0" ALT="AIM Online Status Indicator"
onerror="this.onerror=null;this.src='http://www.mplampla.com:800/image/aimunknown.gif';"></A> ""
http://web.icq.com/whitepages/online?icq=317419095&img=3


Revision [6255]

Edited on 2005-02-22 20:29:24 by GmBowen [update of background info....]
Additions:
==Issues I'm interested in==
In general I'm interested in socio-cultural insights into learning....I view learning as a collaborative and distributed social activity not an individual one. This perspective flies in the face of much of the traditional individualistic cognitive views that permeate Western culture. It is easy to see how that is related to my interest in the wiki community. With respect to this wiki, I think one of the issues that needs exploring is those I discussed at the VirtualWikiFarm page. Overall, how one manages and deals with the community one is part of (communities really) is an issue with any wiki (or community for that matter). In the "real world, as communities become larger and larger people separate off into sub-groups and identify with the membership of the sub groups. Developing sub-groups isn't possible in this wiki and I think that this is an issue overall. Ultimately, I think any wiki will need the ability for a participant to identify a sub-group of which they are a member....at least //implicitly// identify a sub-group of which they are a member....and restrict the pages/areas that they commonly have access to to those sub-groups as a way of managing the size of the group they interact with. Note that the sub-group isn't one where all members are together, but just one defined as an individual.....think of it as overlapping circles in a Venn diagram with each member of "your" group having outside participations in other groups as well (just like in real life). An idea for future development....
=====Participation in Wikka Development=====
====Graphic Oriented Mods====
===="Erase History" Actions====
====Calendar Action====
====Modified Mypages action --> menu====
====Language Translation====
====Show Code====
====Comment Search====
====Simple Column Codes====
====Database Status Action==== (see [[http://gmbowen.educ.unb.ca/wiki/wakka.php?wakka=Administration here]] for example.)
====Other Mods in development====
Deletions:
=====Graphic Oriented Mods=====
====="Erase History" Actions=====
=====Calendar Action=====
=====Modified Mypages action --> menu=====
=====Language Translation=====
=====Show Code=====
=====Comment Search=====
=====Simple Column Codes=====
=====Database Status Action===== (see [[http://gmbowen.educ.unb.ca/wiki/wakka.php?wakka=Administration here]] for example.)
=====Other Mods in development=====


Revision [6046]

Edited on 2005-02-16 15:16:31 by GmBowen [updating links]
Additions:
**Interesting Pages:** SysInfo, WikkaBetaFeatures, ACLsWithUserGroups, UserRegistration, [[http://web.archive.org/web/20040318215353/www.wakkawiki.com/IbukiReDirect redirect script]] (with registration password for admin purposes), WikkaCSS (to make flexible floating box width), to embed images completely in a webpage use base64img.php at http://php.holtsmark.no/base64img/, FLV streaming players (for demo movies) [[http://www.videospark.com/index.php?ssp=24 here]], [[http://www.entrezeroetun.com/wiki/wakka.php?wiki=ImageBrowser Image browser]].
Deletions:
**Interesting Pages:** SysInfo, WikkaBetaFeatures, ACLsWithUserGroups, UserRegistration, [[http://web.archive.org/web/20040318215353/www.wakkawiki.com/IbukiReDirect redirect script]] (with registration password for admin purposes), WikkaCSS (to make flexible floating box width), to embed images completely in a webpage use base64img.php at http://php.holtsmark.no/base64img/, FLV streaming players (for demo movies) [[http://www.videospark.com/index.php?ssp=24 here]].


Revision [5846]

Edited on 2005-02-10 00:42:33 by GmBowen [updating links]
Additions:
===Just who is GmBowen?===
My name is Mike Bowen and I'm a professor of science education at the University of New Brunswick in Fredericton, NB, Canada.

My research interests involve developing "authentic" science environments for grade 6 to 12 students so that they may participate in science activities & communities which parallel those engaged in by "real" scientists. In my view, it only makes sense to learn about a subject in **all** of its dimensions...including the generative aspects and the interactive & participatory contexts in which those aspects arise.

Previously I've worked in classrooms & schools with kids engaging with them in projects which paralleled those of the sort done by scientists (the "authenticity" of those projects arising from the "fuzzy" nature of the questions and methods by the students, the social interactions necessary to develop those, and the socio-rhetorical nature in which resulting knowledge claims arose). However, projects of this sort are often sustained only as long as there were university persons in the school supporting the work. As soon as the support structures left, the activities ceased. My interest in web tools arose from recognition that many of the features of science communities which lead to sustained and prolonged involvement could be provided to students in schools through a well-designed web environment. Thus, the tools I'm working on draw on studies from the discipline known as 'sociology of science' to consider the different ways in which scientists communicate. In addition to this, because my audience is kids, there are various security features that must be considered (including the distinction between "delete" and "hide").

I have two goals overall. One is to develop an enhanced on-line publication and project site so that students can work on (hopefully collaborative) projects and publish their results on-line (you can see this project as it develops at The Canadian Electronic Journal of High School Science & Technology [[http://www.thejournal.ca here]]). The other facet of the project is to provide a single on-line environment that contains many of the project features found at The Journal, but which can be implemented on a smaller scale -- in a single class, school or school board. It is this latter facet which drives much of the recent wikka development I've been doing and which I hope will encourage collaborative and long-term projects in schools (both of which have been found to have substantial learning outcomes over "typical" classroom approaches). Wikka offers the advantage that you can start to use it in a very simple fashion and then, as your interests or needs evolve, more of the tools (both from the base wikka distribution and the tools I've been working on) can be incorporated into a students projects.

Although the tools I've developed are often "primitive" compared to full-blown versions, they offer a few distinct advantages for kids working on school projects. Firstly, the student doesn't have to carry/move files or documents around. Secondly, students are able to use the same tools at school, in the library, at a friends place, or at home. The work they do is not subject to the vagaries of the platform they are on. Thirdly, they can collaboratively work on projects in ways not possible with traditional tools available to them. Fourthly, and this is really interesting in a learning sense, they afford participation by students **not** part of the project group....even from other schools & grades....something which rarely happens in schools. That the teacher can monitor projects as they are ongoing is also different than what often happens. And heck, even parents can drop in.

Overall, I chose wakka/wikka because it seemed to be the wiki with the most flexibility for doing the sorts of things I was interested in. When I started a year ago I didn't even know what PHP was....I'd used basic and fortran in bits in the far past and I knew HTML. Things have progressed since then, and I owe much to Mark Kasper who helped program parts of The Journal site last spring & to the people who work with this wikki (JW, Nils, DarTar, Jason, etc) who have both provided examples of code & input on what I've been doing that have helped me develop the scripts I've been working on. Although I know that they often despair at my seeming inability to follow conventions (or, at least cluelessness about them), I'm grateful for their support and help. Thanks folks.

A final thought....I release any and all scripts that I work on as GPL/open-source because I work for a public institution. I'm paid by the public to think about these issues, do this sort of code/script development work, and the code is released to the public because they've paid for it. If, however, you use any of the stuff I've worked on in any academic projects I'd appreciate you letting me know....and I might even be of use participating with the project so don't hesitate to ask. If you use it elsewhere I'd like to know too (an ego thing eh?)...but my bosses care less about those uses.
----
One of our first modifications was completed by my programming guy (Mark Kasper) in June '04 and was a modification of the pageindex.php code that has now been modified and incorporated into wikka as part of the release [Mod041fPageIndexByLetter] .....it should make the wiki's more useable for high-use sites because it provides a letter index for pageindex.php. It can either be used as usual, ""{{pageindex}}"", or using a parameter indicating which letter you would like to see a listing for (for example, ""{{pageindex start="a"}}""...or whatever letter you wish to show a listing for). If you enter a letter that there is not yet a listing for, then it defaults to "all".

**Interesting Pages:** SysInfo, WikkaBetaFeatures, ACLsWithUserGroups, UserRegistration, [[http://web.archive.org/web/20040318215353/www.wakkawiki.com/IbukiReDirect redirect script]] (with registration password for admin purposes), WikkaCSS (to make flexible floating box width), to embed images completely in a webpage use base64img.php at http://php.holtsmark.no/base64img/, FLV streaming players (for demo movies) [[http://www.videospark.com/index.php?ssp=24 here]].

""{{rss url="http://wikka.jsnx.com/WikkaBlog2/revisions.xml"}}""

=====Graphic Oriented Mods=====
I have a modified file-upload utility (just for graphic images)......The "upload" script is a mod of one of the ones at wakka or wikka (can't remember which)....I've made it available at http://131.202.167.33/wiki/actions/uploadimage.phps .... to use it you will of course have to change phps to php. This script only allows 10 uploaded files with the users prefix in the upload directory (although you can change that easily), and checks the wikka_users database to see (a) how many files are allowed in total and (b) what number the user is at.

The changes in the wikka_users table are adding these two fields....
%%
+-----------------------------------------------------------------------------------------------------------+
| wikka_users |
+-----------------------------------------------------------------------------------------------------------+
+-----------------+------------------+------+-----+-------------------------------------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+------------------+------+-----+-------------------------------------------------+-------+
+ images_allowed + smallint(4) + + + 30 + +
+ images_uploaded + int(6) + + PRI + 0 + +
+-----------------+------------------+------+-----+-------------------------------------------------+-------+
%%

The current max allowed image upload is "30"...set at the database level. When the images are uploaded to the directory the username is concatonated to the front of the filename. I have a modified version of [[http://sourceforge.net/projects/otfgallery/ OTF Gallery]] that allows you to preview and "approve" each image and will then copy the files to a directory that exists for each individual user and strip the user name from the front of the file (this is from a modification of a registration script extraneous to Wikka that makes a directory for each registrant)""[""[[http://131.202.167.33/wiki/OTFGalleryMod.zip Modified OTF]]""]"" (note that this will require some fiddling as they were not really modified for release purposes....I've included comments about the things we've changed in the PHP scripts, but you should probably read the instructions for OTF gallery in general). Or, if you're not interested in doing that, I have a modified version of the "gallery" action available for wikka that you could change so it would just shows thumbnails of images of the logged in user and allows erasing images...currently it just goes to the users personal directory, but you could change that (my programming guy modded this so it generates thumbnails using GD....the original version of the gallery required you to generate the thumbnails yourself)""[""[[http://wiki.samuelooi.com/wikka.php?wakka=Mod02Gallery Code Available Here]]""]"". Hope this helps. If you're interested in the gallery software for wikka let me know....you'd be on your own for modifying it to only show files with the username prefix cuz my php skills aren't good enough to do those changes.

For a "user resources" page we created an action that would just list the graphical images in the directory (and let the user delete them if so desired).....**needs code added so ONLY works for registered & logged in user** (otherwise for unregistered users writes errors into the server logs)

%%(php)
<?php
$dst = '../../../approvalgallery/userdeletegallery/';
if(empty($owner)){ $username = $this->GetUserName();} else {$username = $owner;}
if(empty($owner)){ $username2 = $this->GetUserName();} else {$username2 = $owner;}
$username = strtolower($username);
$fl = substr($username,0,1);
$homelink = $this->config["base_url"].$this->MiniHref($method, $tag);

$imgstr = "graphicsgallery/".$fl."/".$username."/";
$tmbstr = "thumbnailgallery/".$fl."/".$username."/";

if(!empty($_REQUEST[action])){
$file = $_REQUEST['file'];
chdir($imgstr);
unlink($file);
chdir("../../../");
chdir($tmbstr);
unlink($file);
chdir("../../../");
}
/// if(!empty($_REQUEST[image])){
// $file = $_REQUEST['file'];
// echo "<div align=left><img src=".$imgstr.$file."></div>";
// }

$dir = opendir($imgstr);
echo "<b>$username2's Image Files: </b>";
while ($file = readdir($dir)) {
if ($file != '.' && $file != '..') {
$num++;
if ($this->HasAccess('write')) {
// if ($this->IsAdmin()) {
$delete_link = "<a href=\"$homelink&action=delete&file=$file&tmbnail=\" onmouseover=\"this.T_WIDTH=130;this.T_BGCOLOR='#FF3300';this.T_FONTCOLOR='#000000';this.T_FONTWEIGHT='bold';return escape('Delete this image file')\">x</a>";
// $delete_link = "<a href=\"".$this->href('files.xml',$this->GetPageTag(),'action=delete&file='.urlencode($file))."\">x</a>";


} else {
$delete_link = "";
}
// <a href='$homelink&image=show&file=$file' onmouseover=\"return escape('<img src='$imgstr'.'$file'>')\">{$file}</a>
print "

<tr>
<td valign='top' align='center'>
 
{$delete_link}
{$file}
 
</td>
</tr>

";
}
}
- closedir($dir);

// below added by GMB
echo "<script language=\"JavaScript\" type=\"text/javascript\" src=\"./actions/wz_tooltip.js\"></script>";

// print n/a if no files currently exist
if (!$num) print "<tr><td> </td><td colspan='3' align='center'><font color='gray' size='-1'><i>You have no image files yet!</i></font></td></tr>";
else print "<tr><td> </td></tr>";
?>
%%

The action uses a javascript tool (in the actions directory on my system) that allows a "hover" window in bright red that shows that the "x" is to delete the files. The wz_tooltip.js allows "better" tooltips (in this case, more visible) & is available at http://www.walterzorn.com/tooltip/tooltip_e.htm as a free download.

Another recently developed graphic-oriented action I've developed for wikka is BannerMaker which allows the placement of coloured banners on pages.

====="Erase History" Actions=====
When I'm developing pages I find I generate lots of "history" that I don't care to remain in the database. Or, as is sometimes the case, sometimes some of the actions I'm developing cause the "history" feature to crap out. Rather than just erasing the rows manually, I thought it might be easier to do it from a simple menu. Another way this is useful for me is that I might have users who write "inappropriate" information in the wiki (racist, sexist etc) and I'd like to be able to easily expunge the record for this (I know, I know, this is anti-wiki....but things are different when you're working at a publicly funded institution and providing a site for kids to use). One action automatically erases history every time the page loads (for the "flakey" actions I've developed that cause the history feature to blow up (the task manager we're working on, for instance)). The other code (see GmBowenAdminPageControlTool now) is to support an administrator being able to delete the history of a page by clicking on a button.

//**auto erasing**// of history.....has the potential to be a security risk. The admin should probably name the file something obscure, place it in the actions directory, and then enter the file name into the showpagecode.php and pagecode.php actions (so that the filename is not displayed when those actions are used).

%%(php)
<?
// code developed by GMBowen to allow automatically erasing the history of a given page
$thispage=$this->GetPageTag();
$sql = "DELETE FROM ".$this->config["table_prefix"]."pages WHERE tag='$thispage' AND latest='N'";
mysql_query($sql) or die("Unable to process query: " . mysql_error());
?>
%%

ANOTHER approach is to have an Erase History feature included as part of the footer code (for Admins only)....(moved to GmBowenAdminPageControlTool and extended in functionality to include "page hiding" and page erasing)

=====Calendar Action=====
A useful little action is found at GmBowenCalendar....it's a calendar that you can embed in a wikipage....

=====Modified Mypages action --> menu=====
Much of what we do is designed to help students work collaboratively in teams. I modified the mypages action into one that students can use as a simple menu....which I've called mypagesmenu.php .... basically it just lists the pages you own horizontally (although you can designate not having a title AND specify a menu list for a specific user....for us the latter will allow a listing of pages owned by different members all on the same project by just listing the action multiple times with different owners). It's not anything that the DarTar's & Jason's and JavaWoman's of the world couldn't do....but nine months ago I couldn't have done it myself & so I'm posting it for the more "casual" wikka user that I used to be (and, the DT's etc are welcome to do any fixes that they see necessary {grin}). -- Mike

%%(php)
<?php /*dotmg modifications : contact m.randimbisoa@dotmg.net*/ ?>
<?php
// modification by GMBowen of actions/mypages.php written by Carlo Zottmann for wakkawiki
// parameter title="no" or title="off"; can list pages for a specific person by using parameter owner="username"
$title = strtolower($title);
$username = $this->UserName();
if ($owner != '')
{
$username=$owner;
}
if ($user = $this->GetUser())
{
if ($title != 'off' && $title !='no')
{
print("<strong>Pages owned by $username:</strong>\n");
}
$my_pages_count = 0;

if ($pages = $this->LoadAllPages())
{
foreach ($pages as $page)
{
//#dotmg [1 line modified]: added [0-9]+$ to regular expression
if ($username == $page["owner"] && !preg_match("/^Comment[0-9]+$/", $page["tag"]))
{
print("[".$this->Link($page["tag"])."]"."\n");

$my_pages_count++;
}
}

if ($my_pages_count == 0)
{
print("<em>$username does not own any pages.</em>");
}
}
else
{
print("<em>No pages found.</em>");
}
}
else
{
print("<em>You're not logged in, thus the list of your pages couldn't be retrieved.</em>");
}

?>
%%
=====Language Translation=====
Hmmm....neat. I found that you can include two small actions that allow you to have your page translated using alta vista's SYSTRAN service. You can just include both in your actions directory. Kinda inelegant, but better than paying for your own translation service.

translateenglish.php
%%(php)
<hr>
<table>
<tr><strong><font size="-2">English Translation</font></strong></tr>
<tr><script language="JavaScript1.2" src="http://www.altavista.com/static/scripts/translate_engl.js"></script></tr>
<tr><font size="-2">Note that translation sometimes works better if you right-click the flag and open the translation in a new window.</font></tr>
</table>
%%

translatefrench.php
%%(php)
<hr>
<table>
<tr><strong><font size="-2">Traduction Française</font></strong></tr>
<tr><script language="JavaScript1.2" src="http://www.altavista.com/static/scripts/translate_french.js"></script></tr>
<tr><font size="-2">Notez que la traduction semble fonctionner mieux si vous right-clic le drapeau et ouvrir la traduction dans une nouvelle fenêtre.</font></tr>
</table>
%%
(I used the translation tool to translate into the French in the second one. If it's incorrect, please feel free to fix it)
**Um, okay, weird. This works fine on my version of wikka 1.0.2, but not at all on 1.1.5.3 ....anybody have any sense as to why?? I'd appreciate any insights.** On further investigation, even if I go to http://babelfish.altavista.com/ and enter http://131.202.167.33/helpwiki/wikka.php?wakka=HomePage it won't translate the page, whereas if I enter http://wikka.jsnx.com/HomePage (which are both the same version of Wikka) it will translate that page. Since my using the feature that allows Jason to have the "shortform" of the web address is not an option for me (as far as I know...although I'm happy to be corrected on this), is there any solution?? [I chatted with the people at SYSTRAN who provide the engine and they say there's no reason that they know of that it shouldn't work]

Okay, hey, it works using a different "engine" for translation (google). I've put the following code into my footer.php file (and associated images in the images directory in the wiki root) and everything works just peachy. (it goes after line 44 after </div> and before <div class="smallprint">)

%%(php)
<?
// Added by GMB to provide language translation
echo "<a href='"."http://translate.google.com/translate?u=".$this->GetConfigValue("base_url").$this->MiniHref($method, $tag)."&show_comments=1&langpair=en%7Cfr&hl=en&ie=UTF-8&oe=UTF-8&prev=%2Flanguage_tools"."' title=\"Translate Page to French from English.\"><IMG SRC=\"./images/frflag.gif\" BORDER=0></a>";
echo "<a href='"."http://translate.google.com/translate?u=".$this->GetConfigValue("base_url").$this->MiniHref($method, $tag)."&show_comments=1&langpair=fr%7Cen&hl=en&ie=UTF-8&oe=UTF-8&prev=%2Flanguage_tools"."' title=\"Translate Page to English from French.\"><IMG SRC=\"./images/gb.png\" BORDER=0></a>";
?>
%%

(Thanks to [[http://tufat.com/wiki/wikka.php?wakka=HomePage FlashChatWiki]]for evidence this was possible)

=====Show Code=====

Sometimes I want to know how the page creator did something in wikka code (like, how does Jason make the HomePage here so that there's that wizard lined up parallel with the text)...but the page isn't "open" for editing so I can't (logic being, that if users wanted to know they could note that in the comments and the page author could add the action eh). So, I hacked together this little action (it's kinda at the starting phase) so that it was possible for me to drop it in at the end of a page and let the reader see how the coding was done (my site is for kids remember....so "by example" will be better for many of them than a "how to" sheet....see what I mean at http://131.202.167.33/wiki/wakka.php?wakka=ExampleHomePage ). Another version (farther down) is available as a link so that the page code is visible (it requires the showpagecode.php handler code to be in the handler directory).

place ##showpagecode.php## in the actions directory
%%(php)
<?php
// if there is any code you want to be ignored by this action
$ignorecode = Array ('/{{simpleshowcode}}/i', '/{{showpagecode}}/i');
$changeto = ' ';
?>
<TABLE BORDER=1 WIDTH="90%">
<TR>
<TD>
<P>The wiki code which generated this page...</P>
</TD>
</TR>
<TR>
<TD BGCOLOR="#FFFFCC">
<P>
<?php
$thisbody = preg_replace($ignorecode, $changeto, $this->page["body"]);
print(nl2br(htmlspecialchars($thisbody, ENT_QUOTES))); ?>
</P>
</TD>
</TR>
</TABLE>
%%

(thanks to Jason who showed me a much much simpler way of accessing the body code....I gotta learn more about the functions etc in wikka)

''Mike, the idea is intriguing: I proposed something in this direction in this draft for [[IncludeRemote fetching online Wikka Documentation]].
Basically, if a //rawcontent// method (identical to the current //raw// method, but with header and footer //stripped//) is available, you can get the source of the page by simply appending "/rawcontent" to the pagename (much as you append "/edit" to edit the page). -- DarTar''
''Ah, I see what your suggestion is now...and I can see for you guys how that would suit your purposes. From my perspective tho', that might need an ACLS feature then because there are some pages I'll code that I won't want them to see the code for....like, for instance, whatever I've called the action to automatically erase the history (see above).....I don't actually want them to know the name of that file because I don't want them being able to erase their own history''....I've subsequently solved this (see below) by having the "action" call for that file removed from the code being displayed through a simple modification of Jason's ShowPageCodeHandler -- Mike

JsnX says: It's interesting to me above you say that "like, how does Jason make the HomePage here so that there's that wizard lined up parallel with the text". It's interesting because Hendrik Mans used to have a hotscripts.com voting dropdown on the Wakka homepage and I used to wonder how he did it. I never did find out how he did it....

So, I'm adding an handler to the standard Wikka distribution that does what you are looking for. See Mod042fShowPageCodeHandler :) -- JsnX (''thanks Jason'')

I've modified Jason's modification to ignore a couple of files...and to add a return link and a bit of a title (so it works more transparently with the action described below...).....now called ##showcode.php## and placed in the handlers directory
%%(php)
<?php
if ($this->HasAccess("read") && $this->page) {
// display raw page, slightly formatted for viewing
// if there is any code you want to be ignored by this action
$ignorecode = Array ('/{{nameoffiletoerasehistory}}/i', '/{{showpagecode}}/i');
$changeto = ' ';
$thisbody = preg_replace($ignorecode, $changeto, $this->page["body"]);
Echo "<strong>This is the wiki code that generated the original page....</strong></p>";
print(nl2br(htmlspecialchars($thisbody, ENT_QUOTES)));
}
?>
<? $site_base = $this->GetConfigValue("base_url").$this->GetPageTag();?>
<P><small>[</small><A HREF="<? echo $site_base; ?>"><small><strong>Return To Original Page</strong></small></A><small>]</small></P>%%

And I wrote a small action (to go in the actions directory) that can be placed on a page to provide a link to call the code output (which I've called showpagecode.php)....
%%(php)
<? $site_base = $this->GetConfigValue("base_url").$this->GetPageTag();?>
<P><small>[</small><A HREF="<? echo $site_base."/showpagecode"; ?>"><small>ShowCode</small></A><small>]</small></P>
%%
=====Comment Search=====
As per my remarks on WikkaDevelopment, I think a "search comments" feature needs to be returned to wikka. Until a formal re-working of this, I present the following solution.....
This code was used to replace the code in ##textsearch.php## and provides a separate listing for the pages and the comments (in two different columns)...
%%(php)
<?php echo $this->FormOpen("", "", "GET") ?>
<td>Search for: </td>
<td><input name="phrase" size="35" value="<?php echo htmlspecialchars($_REQUEST["phrase"]) ?>" class="searchbox" /> <input type="submit" value="Search" class="btn" /></td>
<?php echo $this->FormClose();
?>
<table border="0" cellpadding="5" cellspacing="0" width="100%"><tr><td valign="top">
<?php
if ($phrase = $_REQUEST["phrase"])
{
print("<br />");
$results = $this->FullTextSearch($phrase);
if ($results)
{
print("<strong>Search results for pages containing \"$phrase\":</strong><br /><br />\n");
foreach ($results as $i => $page)
{
print(($i+1).". ".$this->Link($page["tag"])."<br />\n");
}
print("<BR>Not sure which page to choose?<BR>Try the <a href=\"".$this->href("", "TextSearchExpanded", "phrase=$phrase")."\">Expanded Text Search</a> which shows surrounding text.");
}
else
{
print("No pages contained the word(s) \"$phrase\". :-(");
}
}

?>
</td><td valign="top"><img src="/icons/blank.png" alt=" " width="10" height="1"></td><td valign="top">
<?php
if ($phrase = $_REQUEST["phrase"])
{
print("<br />");
$results = $this->CommentTextSearch($phrase);
if ($results)
{
print("<strong>Search results for comments containing \"$phrase\":</strong><br /><br />\n");
foreach ($results as $i => $page_tag)
{
$link = "<a href=".$this->GetConfigValue("base_url").$page_tag["page_tag"]."&show_comments=1#comments>".$page_tag["page_tag"]."</a>";
print(($i+1).". ".$link."<br />\n");
}
}
else
{
print("No comments contained the word(s) \"$phrase\". :-(");
}
}

?>
</td></tr></table>
%%
And the following function added to ##wakka.php## (I added it right under the one for textsearch)**[SEE NOTE BELOW]**
%%(php)
function CommentTextSearch($phrase)
{
$data = "";
if ($this->CheckMySQLVersion(4,00,01))
{
$data = $this->LoadAll("(select * from "
.$this->config["table_prefix"]
."comments where page_tag like('%".mysql_escape_string($phrase)."%'))
UNION (select * from ".$this->config["table_prefix"]
."comments where match(page_tag, comment) against('".mysql_escape_string($phrase)."'))");
}
/* if no results perform a more general search */
if (!$data) {
$data = $this->LoadAll("select * from "
.$this->config["table_prefix"]
."comments where (page_tag like '%".mysql_escape_string($phrase)."%' or
comment like '%".mysql_escape_string($phrase)."%')
order by time DESC");
}

return($data);
}
%%
**NOTE:** On the server running MYSQL 3.23.56 this code works just fine. But on a more recent version of MYSQL (4.0.20) it crashes. To make it work there one must remove the "If" statement (and all code in it) that checks the MYSQL version. Doesn't make any sense to me since the same code is in the page text search code and work there, but at least it works searching comments if I take it out. Note that the code still needs work....if the search word appears in 3 comments, then the pagename is listed 3 times. I tried to figure out how to get a MYSQL filter ("distinct") take care of this, but had no luck.
Feel free to adapt and modify as you'd like.

====Search for Pages Owned====
Somebody, somewhere mentioned that they were interested in searching for pages owned by a particular user. I thought, why re-invent the whole wheel, and wrote some code that'll be part of the search page. It only shows results **IF** it's a user name that's entered (so, you'll see output for the presence in **comments**, in **pages**, and for page **ownership** with a single search).

The following is added at the **BOTTOM** of the ##textsearch.php## file....
%%(php)
<?php
if (($phrase = $_REQUEST["phrase"]) && ($phrase = $this->LoadUser( $phrase )))
{
$pageowner2 = $_REQUEST["phrase"];
$site_base = $this->GetConfigValue("base_url");
$count = 0;
$query = "SELECT tag,owner,latest FROM ".$this->config['table_prefix']."pages WHERE latest = 'Y' ORDER BY tag asc";
$result = mysql_query($query);
echo "</p><strong>".$pageowner2." owns these pages.....</strong>";
$pageowner2 = strtolower($pageowner2);
echo "<BR><TABLE width='200' border='0'>";
while($row=mysql_fetch_array($result)) {
$pageowner = strtolower($row['owner']);
if ($pageowner == $pageowner2){
$count = ($count + 1);
$urltag = $site_base.$row['tag'];
echo "<TR BGCOLOR='#DDDDDD'><TD valign='top' ALIGN='center'> ".$count." </TD>";
echo "<TD ALIGN='left'> <A HREF=\"".$urltag."\">".$row['tag']."</a> </TD>";
echo "</TR>";
}
}
echo "</table>";
if ($count < 1)
{
echo "(oops, no pages yet)";
}
}
?>
%%

=====Simple Column Codes=====
You can make columns with three simple actions (I originally got these at wakkawiki). You place ""{{colstart}}"" at the start of the text you want in a column, ""{{colmiddle}}"" in the middle where you want the break (or you can have more than one of these), and ""{{colend}}"" at the end of the text. When you save, voila, 2 (or more) columns.

save as ##colstart.php## in actions directory
%%(html)
<table border="0" cellpadding="5" cellspacing="10" width="100%"><tr><td valign="top">
%%
~''replace **##cellspacing="0"##** by **##cellspacing="10"##** ...''

save as ##colmid.php## in actions directory
%%(html)
</td><td valign="top">
%%
~''...and remove **##<td valign="top"><img src="/icons/blank.png" alt=" " width="10" height="1"></td>##**here - same effect, no silly blank image needed! ''(whoops....I'd taken that out elsewhere, forgot to here when I copied over)'' (Of course layout tables should be avoided, but if you //must//, do it cleanly!) --JavaWoman''
~thanks for the suggestions. Thought the code might help with the FormattingRules page. --GmBowen

save as ##colend.php## in actions directory
%%(html)
</td></tr></table>
%%
=====Database Status Action===== (see [[http://gmbowen.educ.unb.ca/wiki/wakka.php?wakka=Administration here]] for example.)
This action is modified from one by Charles Népote at wikini which is part of an [[http://www.wikini.net/wakka.php?wiki=InterfaceDAdministrationWikiNi administration interface]]. Simply, it shows you each table, the # of entries, and the total size of the table. Probably inessential, but interesting to monitor what's going on.
%%(php)
<?php
// dbstatus.php
// originally developed by Charles Népote (charles@nepote.org) for wikini
// Version 0.1 du 10/09/2004
// License GPL.
// slightly modified by GMBowen for wikka wiki. (if you want the action usable by only admin,
// remove the double slashes on line 17 & 46) Use: {{dbstatus [details="yes"]}}

/*
Si vous souhaitez avoir un tableau joliment encadré il faut ajouter
les styles suivant à wakka.css

.simple_table { border-collapse: collapse; }
.simple_table th, td { border: 1px solid #666; padding: 0.5em; }
*/
//if ($this->IsAdmin()) {

$status = $this->LoadAll('SHOW TABLE STATUS LIKE \''.$this->config["table_prefix"].'%\'');

echo "<strong>Status of Wiki Database....</strong><br><small>(if you want to see <strong>all</strong> the details, use {{dbstatus details=\"yes\"}})</small>\n",
"<table class=\"simple_table\">\n",
"<tr>\n",
"<th>Name</th>\n",
"<th># Records</th>\n",
"<th>Size</th>\n",
"</tr>\n";

foreach ($status as $table)
{
echo
"<tr>\n",
"<td>", $table['Name'], "</td>\n",
"<td>", $table['Rows'], "</td>\n",
"<td>", round($table['Data_length']/1024, 2), " Ko</td>\n",
"</tr>\n";
}

echo "</table>\n";

// Details
if ($details=="yes"){
echo "<pre>";
print_r ($status);
echo "</pre>";}
//}
?>
%%
=====Other Mods in development=====
Many current mods: An action in development is the interactive table action which is a "big" one for our interests...it is like a //*very*// simple spreadsheet tool -- an interactive table actually -- that will do sum, count, frequency & average on the column entries....but we're currently having a problem with the foreach() statement which is why we've not released it yet.
__Tools for (semi) structured interactions__: (1) I've developed a flash-based "chat" that embeds on wiki pages (vchat modded from flatfile to database). I can't distribute it, because I'm not sure the licensing on the site I obtained it from allows it (although they provided all the source code and everything so it can be modded). It works pretty well, and I've written two associated actions ({ {mychats} } and { {listchat page="name"} }) which allow you to see what chats you own (whether the action is on a page or not) and the history of what chats has occured (unlike other chats like MSN, all of the chats are kept in the database so it is recoverable). An advantage of this chat system is it allows kids to communicate with each other w/o being exposed to adult-oriented spam (like happens with email). (2) The wiki based internal messaging system is complete (although I already have "upgrade" ideas) and is posted at WikkaMail. It is complemented by (3) a wiki blog tool and (4) a wiki forum tool that allows you to set up discussion forums (using individual wiki pages for each topic). Altogether these constitute a communication toolset that facilitates different modes of communication and different personal communication styles (as well as for different types of projects).
One reason for the development of these tools is to make the wiki a communication portal. In many uses a site will have a blog, and a forum area, and a wiki area as an add-on. Users have to register into each tool. Now, with wikka, you can use wikka as the central tool and build the other tools into it. In fact, the **users** get to determine when/how/if these tools are used. In other words, the users have more discretionary control over how they construct the site.
Also developed is graphing software that works within wikka (see GraphMaker).....also see ([[http://gmbowen.educ.unb.ca/vhgraph/ here]] and [[http://gmbowen.educ.unb.ca/powergraphic/graphic.php?showform here]]). The advantage of graphmaker is you don't have to rely on uploading images. That program will be further refined so that it can re-load the graph code and re-edit it. I'm still working on getting it to save the graphic to the hard drive. A "pagewatches" action is more-or-less finished....it allows you to keep a list of pages that you're looking to see if changes have been made on. And what's my //dream// regarding the wiki?? A rich text editor choice with wysiwyg (in addition to wikiedit)...it'll make it more user friendly for kids, but methinks that must be a hard thing to accomplish (since nobody has progressed with the idea much).
I'm going to use most of these for teaching purposes (such as having students keep an on-line journal of events) with students at various grade levels. Currently, students in a post-graduate science methods course are using the wiki to manage & keep track of the work they are doing on a science/technology project.

=====Other Recent Code Releases/Submissions=====
@@[GmBowenCalendar] [GmBowenCounter] [GmBowenRecentEditCheck] [GmBowenUnitConverter][Mod041fPageIndexByLetter][GmBowenAdminPageControlTool] [GmBowenSpellchecker] [GmBowenWikkaAsPIM] [BannerMaker] [WikkaForum] [GraphMaker] [WikkaBlog2] [CanadianWeather] [Mp3Player] [WikkaMail] [ImageListing] [FormattedIncludeAction][EditSaveGif]@@
""<small>[<A HREF="http://wikka.jsnx.com/GmBowen/showcode">Show Code</A>]</small>""
----
Deletions:
===Just who is GmBowen?===
My name is Mike Bowen and I'm a professor of science education at the University of New Brunswick in Fredericton, NB, Canada.

My research interests involve developing "authentic" science environments for grade 6 to 12 students so that they may participate in science activities & communities which parallel those engaged in by "real" scientists. In my view, it only makes sense to learn about a subject in **all** of its dimensions...including the generative aspects and the interactive & participatory contexts in which those aspects arise.

Previously I've worked in classrooms & schools with kids engaging with them in projects which paralleled those of the sort done by scientists (the "authenticity" of those projects arising from the "fuzzy" nature of the questions and methods by the students, the social interactions necessary to develop those, and the socio-rhetorical nature in which resulting knowledge claims arose). However, projects of this sort are often sustained only as long as there were university persons in the school supporting the work. As soon as the support structures left, the activities ceased. My interest in web tools arose from recognition that many of the features of science communities which lead to sustained and prolonged involvement could be provided to students in schools through a well-designed web environment. Thus, the tools I'm working on draw on studies from the discipline known as 'sociology of science' to consider the different ways in which scientists communicate. In addition to this, because my audience is kids, there are various security features that must be considered (including the distinction between "delete" and "hide").

I have two goals overall. One is to develop an enhanced on-line publication and project site so that students can work on (hopefully collaborative) projects and publish their results on-line (you can see this project as it develops at The Canadian Electronic Journal of High School Science & Technology [[http://www.thejournal.ca here]]). The other facet of the project is to provide a single on-line environment that contains many of the project features found at The Journal, but which can be implemented on a smaller scale -- in a single class, school or school board. It is this latter facet which drives much of the recent wikka development I've been doing and which I hope will encourage collaborative and long-term projects in schools (both of which have been found to have substantial learning outcomes over "typical" classroom approaches). Wikka offers the advantage that you can start to use it in a very simple fashion and then, as your interests or needs evolve, more of the tools (both from the base wikka distribution and the tools I've been working on) can be incorporated into a students projects.

Although the tools I've developed are often "primitive" compared to full-blown versions, they offer a few distinct advantages for kids working on school projects. Firstly, the student doesn't have to carry/move files or documents around. Secondly, students are able to use the same tools at school, in the library, at a friends place, or at home. The work they do is not subject to the vagaries of the platform they are on. Thirdly, they can collaboratively work on projects in ways not possible with traditional tools available to them. Fourthly, and this is really interesting in a learning sense, they afford participation by students **not** part of the project group....even from other schools & grades....something which rarely happens in schools. That the teacher can monitor projects as they are ongoing is also different than what often happens. And heck, even parents can drop in.

Overall, I chose wakka/wikka because it seemed to be the wiki with the most flexibility for doing the sorts of things I was interested in. When I started a year ago I didn't even know what PHP was....I'd used basic and fortran in bits in the far past and I knew HTML. Things have progressed since then, and I owe much to Mark Kasper who helped program parts of The Journal site last spring & to the people who work with this wikki (JW, Nils, DarTar, Jason, etc) who have both provided examples of code & input on what I've been doing that have helped me develop the scripts I've been working on. Although I know that they often despair at my seeming inability to follow conventions (or, at least cluelessness about them), I'm grateful for their support and help. Thanks folks.

A final thought....I release any and all scripts that I work on as GPL/open-source because I work for a public institution. I'm paid by the public to think about these issues, do this sort of code/script development work, and the code is released to the public because they've paid for it. If, however, you use any of the stuff I've worked on in any academic projects I'd appreciate you letting me know....and I might even be of use participating with the project so don't hesitate to ask. If you use it elsewhere I'd like to know too (an ego thing eh?)...but my bosses care less about those uses.
----
One of our first modifications was completed by my programming guy (Mark Kasper) in June '04 and was a modification of the pageindex.php code that has now been modified and incorporated into wikka as part of the release [Mod041fPageIndexByLetter] .....it should make the wiki's more useable for high-use sites because it provides a letter index for pageindex.php. It can either be used as usual, ""{{pageindex}}"", or using a parameter indicating which letter you would like to see a listing for (for example, ""{{pageindex start="a"}}""...or whatever letter you wish to show a listing for). If you enter a letter that there is not yet a listing for, then it defaults to "all".

**Interesting Pages:** SysInfo, WikkaBetaFeatures, ACLsWithUserGroups, UserRegistration, [[http://web.archive.org/web/20040318215353/www.wakkawiki.com/IbukiReDirect redirect script]] (with registration password for admin purposes), WikkaCSS (to make flexible floating box width), to embed images completely in a webpage use base64img.php at http://php.holtsmark.no/base64img/, FLV streaming players (for demo movies) [[http://www.videospark.com/index.php?ssp=24 here]].

""{{rss url="http://wikka.jsnx.com/WikkaBlog2/revisions.xml"}}""

=====Graphic Oriented Mods=====
I have a modified file-upload utility (just for graphic images)......The "upload" script is a mod of one of the ones at wakka or wikka (can't remember which)....I've made it available at http://131.202.167.33/wiki/actions/uploadimage.phps .... to use it you will of course have to change phps to php. This script only allows 10 uploaded files with the users prefix in the upload directory (although you can change that easily), and checks the wikka_users database to see (a) how many files are allowed in total and (b) what number the user is at.

The changes in the wikka_users table are adding these two fields....
%%
+-----------------------------------------------------------------------------------------------------------+
| wikka_users |
+-----------------------------------------------------------------------------------------------------------+
+-----------------+------------------+------+-----+-------------------------------------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+------------------+------+-----+-------------------------------------------------+-------+
+ images_allowed + smallint(4) + + + 30 + +
+ images_uploaded + int(6) + + PRI + 0 + +
+-----------------+------------------+------+-----+-------------------------------------------------+-------+
%%

The current max allowed image upload is "30"...set at the database level. When the images are uploaded to the directory the username is concatonated to the front of the filename. I have a modified version of [[http://sourceforge.net/projects/otfgallery/ OTF Gallery]] that allows you to preview and "approve" each image and will then copy the files to a directory that exists for each individual user and strip the user name from the front of the file (this is from a modification of a registration script extraneous to Wikka that makes a directory for each registrant)""[""[[http://131.202.167.33/wiki/OTFGalleryMod.zip Modified OTF]]""]"" (note that this will require some fiddling as they were not really modified for release purposes....I've included comments about the things we've changed in the PHP scripts, but you should probably read the instructions for OTF gallery in general). Or, if you're not interested in doing that, I have a modified version of the "gallery" action available for wikka that you could change so it would just shows thumbnails of images of the logged in user and allows erasing images...currently it just goes to the users personal directory, but you could change that (my programming guy modded this so it generates thumbnails using GD....the original version of the gallery required you to generate the thumbnails yourself)""[""[[http://wiki.samuelooi.com/wikka.php?wakka=Mod02Gallery Code Available Here]]""]"". Hope this helps. If you're interested in the gallery software for wikka let me know....you'd be on your own for modifying it to only show files with the username prefix cuz my php skills aren't good enough to do those changes.

For a "user resources" page we created an action that would just list the graphical images in the directory (and let the user delete them if so desired).....**needs code added so ONLY works for registered & logged in user** (otherwise for unregistered users writes errors into the server logs)

%%(php)
<?php
$dst = '../../../approvalgallery/userdeletegallery/';
if(empty($owner)){ $username = $this->GetUserName();} else {$username = $owner;}
if(empty($owner)){ $username2 = $this->GetUserName();} else {$username2 = $owner;}
$username = strtolower($username);
$fl = substr($username,0,1);
$homelink = $this->config["base_url"].$this->MiniHref($method, $tag);

$imgstr = "graphicsgallery/".$fl."/".$username."/";
$tmbstr = "thumbnailgallery/".$fl."/".$username."/";

if(!empty($_REQUEST[action])){
$file = $_REQUEST['file'];
chdir($imgstr);
unlink($file);
chdir("../../../");
chdir($tmbstr);
unlink($file);
chdir("../../../");
}
/// if(!empty($_REQUEST[image])){
// $file = $_REQUEST['file'];
// echo "<div align=left><img src=".$imgstr.$file."></div>";
// }

$dir = opendir($imgstr);
echo "<b>$username2's Image Files: </b>";
while ($file = readdir($dir)) {
if ($file != '.' && $file != '..') {
$num++;
if ($this->HasAccess('write')) {
// if ($this->IsAdmin()) {
$delete_link = "<a href=\"$homelink&action=delete&file=$file&tmbnail=\" onmouseover=\"this.T_WIDTH=130;this.T_BGCOLOR='#FF3300';this.T_FONTCOLOR='#000000';this.T_FONTWEIGHT='bold';return escape('Delete this image file')\">x</a>";
// $delete_link = "<a href=\"".$this->href('files.xml',$this->GetPageTag(),'action=delete&file='.urlencode($file))."\">x</a>";


} else {
$delete_link = "";
}
// <a href='$homelink&image=show&file=$file' onmouseover=\"return escape('<img src='$imgstr'.'$file'>')\">{$file}</a>
print "

<tr>
<td valign='top' align='center'>
 
{$delete_link}
{$file}
 
</td>
</tr>

";
}
}
- closedir($dir);

// below added by GMB
echo "<script language=\"JavaScript\" type=\"text/javascript\" src=\"./actions/wz_tooltip.js\"></script>";

// print n/a if no files currently exist
if (!$num) print "<tr><td> </td><td colspan='3' align='center'><font color='gray' size='-1'><i>You have no image files yet!</i></font></td></tr>";
else print "<tr><td> </td></tr>";
?>
%%

The action uses a javascript tool (in the actions directory on my system) that allows a "hover" window in bright red that shows that the "x" is to delete the files. The wz_tooltip.js allows "better" tooltips (in this case, more visible) & is available at http://www.walterzorn.com/tooltip/tooltip_e.htm as a free download.

Another recently developed graphic-oriented action I've developed for wikka is BannerMaker which allows the placement of coloured banners on pages.

====="Erase History" Actions=====
When I'm developing pages I find I generate lots of "history" that I don't care to remain in the database. Or, as is sometimes the case, sometimes some of the actions I'm developing cause the "history" feature to crap out. Rather than just erasing the rows manually, I thought it might be easier to do it from a simple menu. Another way this is useful for me is that I might have users who write "inappropriate" information in the wiki (racist, sexist etc) and I'd like to be able to easily expunge the record for this (I know, I know, this is anti-wiki....but things are different when you're working at a publicly funded institution and providing a site for kids to use). One action automatically erases history every time the page loads (for the "flakey" actions I've developed that cause the history feature to blow up (the task manager we're working on, for instance)). The other code (see GmBowenAdminPageControlTool now) is to support an administrator being able to delete the history of a page by clicking on a button.

//**auto erasing**// of history.....has the potential to be a security risk. The admin should probably name the file something obscure, place it in the actions directory, and then enter the file name into the showpagecode.php and pagecode.php actions (so that the filename is not displayed when those actions are used).

%%(php)
<?
// code developed by GMBowen to allow automatically erasing the history of a given page
$thispage=$this->GetPageTag();
$sql = "DELETE FROM ".$this->config["table_prefix"]."pages WHERE tag='$thispage' AND latest='N'";
mysql_query($sql) or die("Unable to process query: " . mysql_error());
?>
%%

ANOTHER approach is to have an Erase History feature included as part of the footer code (for Admins only)....(moved to GmBowenAdminPageControlTool and extended in functionality to include "page hiding" and page erasing)

=====Calendar Action=====
A useful little action is found at GmBowenCalendar....it's a calendar that you can embed in a wikipage....

=====Modified Mypages action --> menu=====
Much of what we do is designed to help students work collaboratively in teams. I modified the mypages action into one that students can use as a simple menu....which I've called mypagesmenu.php .... basically it just lists the pages you own horizontally (although you can designate not having a title AND specify a menu list for a specific user....for us the latter will allow a listing of pages owned by different members all on the same project by just listing the action multiple times with different owners). It's not anything that the DarTar's & Jason's and JavaWoman's of the world couldn't do....but nine months ago I couldn't have done it myself & so I'm posting it for the more "casual" wikka user that I used to be (and, the DT's etc are welcome to do any fixes that they see necessary {grin}). -- Mike

%%(php)
<?php /*dotmg modifications : contact m.randimbisoa@dotmg.net*/ ?>
<?php
// modification by GMBowen of actions/mypages.php written by Carlo Zottmann for wakkawiki
// parameter title="no" or title="off"; can list pages for a specific person by using parameter owner="username"
$title = strtolower($title);
$username = $this->UserName();
if ($owner != '')
{
$username=$owner;
}
if ($user = $this->GetUser())
{
if ($title != 'off' && $title !='no')
{
print("<strong>Pages owned by $username:</strong>\n");
}
$my_pages_count = 0;

if ($pages = $this->LoadAllPages())
{
foreach ($pages as $page)
{
//#dotmg [1 line modified]: added [0-9]+$ to regular expression
if ($username == $page["owner"] && !preg_match("/^Comment[0-9]+$/", $page["tag"]))
{
print("[".$this->Link($page["tag"])."]"."\n");

$my_pages_count++;
}
}

if ($my_pages_count == 0)
{
print("<em>$username does not own any pages.</em>");
}
}
else
{
print("<em>No pages found.</em>");
}
}
else
{
print("<em>You're not logged in, thus the list of your pages couldn't be retrieved.</em>");
}

?>
%%
=====Language Translation=====
Hmmm....neat. I found that you can include two small actions that allow you to have your page translated using alta vista's SYSTRAN service. You can just include both in your actions directory. Kinda inelegant, but better than paying for your own translation service.

translateenglish.php
%%(php)
<hr>
<table>
<tr><strong><font size="-2">English Translation</font></strong></tr>
<tr><script language="JavaScript1.2" src="http://www.altavista.com/static/scripts/translate_engl.js"></script></tr>
<tr><font size="-2">Note that translation sometimes works better if you right-click the flag and open the translation in a new window.</font></tr>
</table>
%%

translatefrench.php
%%(php)
<hr>
<table>
<tr><strong><font size="-2">Traduction Française</font></strong></tr>
<tr><script language="JavaScript1.2" src="http://www.altavista.com/static/scripts/translate_french.js"></script></tr>
<tr><font size="-2">Notez que la traduction semble fonctionner mieux si vous right-clic le drapeau et ouvrir la traduction dans une nouvelle fenêtre.</font></tr>
</table>
%%
(I used the translation tool to translate into the French in the second one. If it's incorrect, please feel free to fix it)
**Um, okay, weird. This works fine on my version of wikka 1.0.2, but not at all on 1.1.5.3 ....anybody have any sense as to why?? I'd appreciate any insights.** On further investigation, even if I go to http://babelfish.altavista.com/ and enter http://131.202.167.33/helpwiki/wikka.php?wakka=HomePage it won't translate the page, whereas if I enter http://wikka.jsnx.com/HomePage (which are both the same version of Wikka) it will translate that page. Since my using the feature that allows Jason to have the "shortform" of the web address is not an option for me (as far as I know...although I'm happy to be corrected on this), is there any solution?? [I chatted with the people at SYSTRAN who provide the engine and they say there's no reason that they know of that it shouldn't work]

Okay, hey, it works using a different "engine" for translation (google). I've put the following code into my footer.php file (and associated images in the images directory in the wiki root) and everything works just peachy. (it goes after line 44 after </div> and before <div class="smallprint">)

%%(php)
<?
// Added by GMB to provide language translation
echo "<a href='"."http://translate.google.com/translate?u=".$this->GetConfigValue("base_url").$this->MiniHref($method, $tag)."&show_comments=1&langpair=en%7Cfr&hl=en&ie=UTF-8&oe=UTF-8&prev=%2Flanguage_tools"."' title=\"Translate Page to French from English.\"><IMG SRC=\"./images/frflag.gif\" BORDER=0></a>";
echo "<a href='"."http://translate.google.com/translate?u=".$this->GetConfigValue("base_url").$this->MiniHref($method, $tag)."&show_comments=1&langpair=fr%7Cen&hl=en&ie=UTF-8&oe=UTF-8&prev=%2Flanguage_tools"."' title=\"Translate Page to English from French.\"><IMG SRC=\"./images/gb.png\" BORDER=0></a>";
?>
%%

(Thanks to [[http://tufat.com/wiki/wikka.php?wakka=HomePage FlashChatWiki]]for evidence this was possible)

=====Show Code=====

Sometimes I want to know how the page creator did something in wikka code (like, how does Jason make the HomePage here so that there's that wizard lined up parallel with the text)...but the page isn't "open" for editing so I can't (logic being, that if users wanted to know they could note that in the comments and the page author could add the action eh). So, I hacked together this little action (it's kinda at the starting phase) so that it was possible for me to drop it in at the end of a page and let the reader see how the coding was done (my site is for kids remember....so "by example" will be better for many of them than a "how to" sheet....see what I mean at http://131.202.167.33/wiki/wakka.php?wakka=ExampleHomePage ). Another version (farther down) is available as a link so that the page code is visible (it requires the showpagecode.php handler code to be in the handler directory).

place ##showpagecode.php## in the actions directory
%%(php)
<?php
// if there is any code you want to be ignored by this action
$ignorecode = Array ('/{{simpleshowcode}}/i', '/{{showpagecode}}/i');
$changeto = ' ';
?>
<TABLE BORDER=1 WIDTH="90%">
<TR>
<TD>
<P>The wiki code which generated this page...</P>
</TD>
</TR>
<TR>
<TD BGCOLOR="#FFFFCC">
<P>
<?php
$thisbody = preg_replace($ignorecode, $changeto, $this->page["body"]);
print(nl2br(htmlspecialchars($thisbody, ENT_QUOTES))); ?>
</P>
</TD>
</TR>
</TABLE>
%%

(thanks to Jason who showed me a much much simpler way of accessing the body code....I gotta learn more about the functions etc in wikka)

''Mike, the idea is intriguing: I proposed something in this direction in this draft for [[IncludeRemote fetching online Wikka Documentation]].
Basically, if a //rawcontent// method (identical to the current //raw// method, but with header and footer //stripped//) is available, you can get the source of the page by simply appending "/rawcontent" to the pagename (much as you append "/edit" to edit the page). -- DarTar''
''Ah, I see what your suggestion is now...and I can see for you guys how that would suit your purposes. From my perspective tho', that might need an ACLS feature then because there are some pages I'll code that I won't want them to see the code for....like, for instance, whatever I've called the action to automatically erase the history (see above).....I don't actually want them to know the name of that file because I don't want them being able to erase their own history''....I've subsequently solved this (see below) by having the "action" call for that file removed from the code being displayed through a simple modification of Jason's ShowPageCodeHandler -- Mike

JsnX says: It's interesting to me above you say that "like, how does Jason make the HomePage here so that there's that wizard lined up parallel with the text". It's interesting because Hendrik Mans used to have a hotscripts.com voting dropdown on the Wakka homepage and I used to wonder how he did it. I never did find out how he did it....

So, I'm adding an handler to the standard Wikka distribution that does what you are looking for. See Mod042fShowPageCodeHandler :) -- JsnX (''thanks Jason'')

I've modified Jason's modification to ignore a couple of files...and to add a return link and a bit of a title (so it works more transparently with the action described below...).....now called ##showcode.php## and placed in the handlers directory
%%(php)
<?php
if ($this->HasAccess("read") && $this->page) {
// display raw page, slightly formatted for viewing
// if there is any code you want to be ignored by this action
$ignorecode = Array ('/{{nameoffiletoerasehistory}}/i', '/{{showpagecode}}/i');
$changeto = ' ';
$thisbody = preg_replace($ignorecode, $changeto, $this->page["body"]);
Echo "<strong>This is the wiki code that generated the original page....</strong></p>";
print(nl2br(htmlspecialchars($thisbody, ENT_QUOTES)));
}
?>
<? $site_base = $this->GetConfigValue("base_url").$this->GetPageTag();?>
<P><small>[</small><A HREF="<? echo $site_base; ?>"><small><strong>Return To Original Page</strong></small></A><small>]</small></P>%%

And I wrote a small action (to go in the actions directory) that can be placed on a page to provide a link to call the code output (which I've called showpagecode.php)....
%%(php)
<? $site_base = $this->GetConfigValue("base_url").$this->GetPageTag();?>
<P><small>[</small><A HREF="<? echo $site_base."/showpagecode"; ?>"><small>ShowCode</small></A><small>]</small></P>
%%
=====Comment Search=====
As per my remarks on WikkaDevelopment, I think a "search comments" feature needs to be returned to wikka. Until a formal re-working of this, I present the following solution.....
This code was used to replace the code in ##textsearch.php## and provides a separate listing for the pages and the comments (in two different columns)...
%%(php)
<?php echo $this->FormOpen("", "", "GET") ?>
<td>Search for: </td>
<td><input name="phrase" size="35" value="<?php echo htmlspecialchars($_REQUEST["phrase"]) ?>" class="searchbox" /> <input type="submit" value="Search" class="btn" /></td>
<?php echo $this->FormClose();
?>
<table border="0" cellpadding="5" cellspacing="0" width="100%"><tr><td valign="top">
<?php
if ($phrase = $_REQUEST["phrase"])
{
print("<br />");
$results = $this->FullTextSearch($phrase);
if ($results)
{
print("<strong>Search results for pages containing \"$phrase\":</strong><br /><br />\n");
foreach ($results as $i => $page)
{
print(($i+1).". ".$this->Link($page["tag"])."<br />\n");
}
print("<BR>Not sure which page to choose?<BR>Try the <a href=\"".$this->href("", "TextSearchExpanded", "phrase=$phrase")."\">Expanded Text Search</a> which shows surrounding text.");
}
else
{
print("No pages contained the word(s) \"$phrase\". :-(");
}
}

?>
</td><td valign="top"><img src="/icons/blank.png" alt=" " width="10" height="1"></td><td valign="top">
<?php
if ($phrase = $_REQUEST["phrase"])
{
print("<br />");
$results = $this->CommentTextSearch($phrase);
if ($results)
{
print("<strong>Search results for comments containing \"$phrase\":</strong><br /><br />\n");
foreach ($results as $i => $page_tag)
{
$link = "<a href=".$this->GetConfigValue("base_url").$page_tag["page_tag"]."&show_comments=1#comments>".$page_tag["page_tag"]."</a>";
print(($i+1).". ".$link."<br />\n");
}
}
else
{
print("No comments contained the word(s) \"$phrase\". :-(");
}
}

?>
</td></tr></table>
%%
And the following function added to ##wakka.php## (I added it right under the one for textsearch)**[SEE NOTE BELOW]**
%%(php)
function CommentTextSearch($phrase)
{
$data = "";
if ($this->CheckMySQLVersion(4,00,01))
{
$data = $this->LoadAll("(select * from "
.$this->config["table_prefix"]
."comments where page_tag like('%".mysql_escape_string($phrase)."%'))
UNION (select * from ".$this->config["table_prefix"]
."comments where match(page_tag, comment) against('".mysql_escape_string($phrase)."'))");
}
/* if no results perform a more general search */
if (!$data) {
$data = $this->LoadAll("select * from "
.$this->config["table_prefix"]
."comments where (page_tag like '%".mysql_escape_string($phrase)."%' or
comment like '%".mysql_escape_string($phrase)."%')
order by time DESC");
}

return($data);
}
%%
**NOTE:** On the server running MYSQL 3.23.56 this code works just fine. But on a more recent version of MYSQL (4.0.20) it crashes. To make it work there one must remove the "If" statement (and all code in it) that checks the MYSQL version. Doesn't make any sense to me since the same code is in the page text search code and work there, but at least it works searching comments if I take it out. Note that the code still needs work....if the search word appears in 3 comments, then the pagename is listed 3 times. I tried to figure out how to get a MYSQL filter ("distinct") take care of this, but had no luck.
Feel free to adapt and modify as you'd like.

====Search for Pages Owned====
Somebody, somewhere mentioned that they were interested in searching for pages owned by a particular user. I thought, why re-invent the whole wheel, and wrote some code that'll be part of the search page. It only shows results **IF** it's a user name that's entered (so, you'll see output for the presence in **comments**, in **pages**, and for page **ownership** with a single search).

The following is added at the **BOTTOM** of the ##textsearch.php## file....
%%(php)
<?php
if (($phrase = $_REQUEST["phrase"]) && ($phrase = $this->LoadUser( $phrase )))
{
$pageowner2 = $_REQUEST["phrase"];
$site_base = $this->GetConfigValue("base_url");
$count = 0;
$query = "SELECT tag,owner,latest FROM ".$this->config['table_prefix']."pages WHERE latest = 'Y' ORDER BY tag asc";
$result = mysql_query($query);
echo "</p><strong>".$pageowner2." owns these pages.....</strong>";
$pageowner2 = strtolower($pageowner2);
echo "<BR><TABLE width='200' border='0'>";
while($row=mysql_fetch_array($result)) {
$pageowner = strtolower($row['owner']);
if ($pageowner == $pageowner2){
$count = ($count + 1);
$urltag = $site_base.$row['tag'];
echo "<TR BGCOLOR='#DDDDDD'><TD valign='top' ALIGN='center'> ".$count." </TD>";
echo "<TD ALIGN='left'> <A HREF=\"".$urltag."\">".$row['tag']."</a> </TD>";
echo "</TR>";
}
}
echo "</table>";
if ($count < 1)
{
echo "(oops, no pages yet)";
}
}
?>
%%

=====Simple Column Codes=====
You can make columns with three simple actions (I originally got these at wakkawiki). You place ""{{colstart}}"" at the start of the text you want in a column, ""{{colmiddle}}"" in the middle where you want the break (or you can have more than one of these), and ""{{colend}}"" at the end of the text. When you save, voila, 2 (or more) columns.

save as ##colstart.php## in actions directory
%%(html)
<table border="0" cellpadding="5" cellspacing="10" width="100%"><tr><td valign="top">
%%
~''replace **##cellspacing="0"##** by **##cellspacing="10"##** ...''

save as ##colmid.php## in actions directory
%%(html)
</td><td valign="top">
%%
~''...and remove **##<td valign="top"><img src="/icons/blank.png" alt=" " width="10" height="1"></td>##**here - same effect, no silly blank image needed! ''(whoops....I'd taken that out elsewhere, forgot to here when I copied over)'' (Of course layout tables should be avoided, but if you //must//, do it cleanly!) --JavaWoman''
~thanks for the suggestions. Thought the code might help with the FormattingRules page. --GmBowen

save as ##colend.php## in actions directory
%%(html)
</td></tr></table>
%%
=====Database Status Action===== (see [[http://gmbowen.educ.unb.ca/wiki/wakka.php?wakka=Administration here]] for example.)
This action is modified from one by Charles Népote at wikini which is part of an [[http://www.wikini.net/wakka.php?wiki=InterfaceDAdministrationWikiNi administration interface]]. Simply, it shows you each table, the # of entries, and the total size of the table. Probably inessential, but interesting to monitor what's going on.
%%(php)
<?php
// dbstatus.php
// originally developed by Charles Népote (charles@nepote.org) for wikini
// Version 0.1 du 10/09/2004
// License GPL.
// slightly modified by GMBowen for wikka wiki. (if you want the action usable by only admin,
// remove the double slashes on line 17 & 46) Use: {{dbstatus [details="yes"]}}

/*
Si vous souhaitez avoir un tableau joliment encadré il faut ajouter
les styles suivant à wakka.css

.simple_table { border-collapse: collapse; }
.simple_table th, td { border: 1px solid #666; padding: 0.5em; }
*/
//if ($this->IsAdmin()) {

$status = $this->LoadAll('SHOW TABLE STATUS LIKE \''.$this->config["table_prefix"].'%\'');

echo "<strong>Status of Wiki Database....</strong><br><small>(if you want to see <strong>all</strong> the details, use {{dbstatus details=\"yes\"}})</small>\n",
"<table class=\"simple_table\">\n",
"<tr>\n",
"<th>Name</th>\n",
"<th># Records</th>\n",
"<th>Size</th>\n",
"</tr>\n";

foreach ($status as $table)
{
echo
"<tr>\n",
"<td>", $table['Name'], "</td>\n",
"<td>", $table['Rows'], "</td>\n",
"<td>", round($table['Data_length']/1024, 2), " Ko</td>\n",
"</tr>\n";
}

echo "</table>\n";

// Details
if ($details=="yes"){
echo "<pre>";
print_r ($status);
echo "</pre>";}
//}
?>
%%
=====Other Mods in development=====
Many current mods: An action in development is the interactive table action which is a "big" one for our interests...it is like a //*very*// simple spreadsheet tool -- an interactive table actually -- that will do sum, count, frequency & average on the column entries....but we're currently having a problem with the foreach() statement which is why we've not released it yet.
__Tools for (semi) structured interactions__: (1) I've developed a flash-based "chat" that embeds on wiki pages (vchat modded from flatfile to database). I can't distribute it, because I'm not sure the licensing on the site I obtained it from allows it (although they provided all the source code and everything so it can be modded). It works pretty well, and I've written two associated actions ({ {mychats} } and { {listchat page="name"} }) which allow you to see what chats you own (whether the action is on a page or not) and the history of what chats has occured (unlike other chats like MSN, all of the chats are kept in the database so it is recoverable). An advantage of this chat system is it allows kids to communicate with each other w/o being exposed to adult-oriented spam (like happens with email). (2) The wiki based internal messaging system is complete (although I already have "upgrade" ideas) and is posted at WikkaMail. It is complemented by (3) a wiki blog tool and (4) a wiki forum tool that allows you to set up discussion forums (using individual wiki pages for each topic). Altogether these constitute a communication toolset that facilitates different modes of communication and different personal communication styles (as well as for different types of projects).
One reason for the development of these tools is to make the wiki a communication portal. In many uses a site will have a blog, and a forum area, and a wiki area as an add-on. Users have to register into each tool. Now, with wikka, you can use wikka as the central tool and build the other tools into it. In fact, the **users** get to determine when/how/if these tools are used. In other words, the users have more discretionary control over how they construct the site.
Also developed is graphing software that works within wikka (see GraphMaker).....also see ([[http://gmbowen.educ.unb.ca/vhgraph/ here]] and [[http://gmbowen.educ.unb.ca/powergraphic/graphic.php?showform here]]). The advantage of graphmaker is you don't have to rely on uploading images. That program will be further refined so that it can re-load the graph code and re-edit it. I'm still working on getting it to save the graphic to the hard drive. A "pagewatches" action is more-or-less finished....it allows you to keep a list of pages that you're looking to see if changes have been made on. And what's my //dream// regarding the wiki?? A rich text editor choice with wysiwyg (in addition to wikiedit)...it'll make it more user friendly for kids, but methinks that must be a hard thing to accomplish (since nobody has progressed with the idea much).
I'm going to use most of these for teaching purposes (such as having students keep an on-line journal of events) with students at various grade levels. Currently, students in a post-graduate science methods course are using the wiki to manage & keep track of the work they are doing on a science/technology project.

=====Other Recent Code Releases/Submissions=====
@@[GmBowenCalendar] [GmBowenCounter] [GmBowenRecentEditCheck] [GmBowenUnitConverter][Mod041fPageIndexByLetter][GmBowenAdminPageControlTool] [GmBowenSpellchecker] [GmBowenWikkaAsPIM] [BannerMaker] [WikkaForum] [GraphMaker] [WikkaBlog2] [CanadianWeather] [Mp3Player] [WikkaMail] [ImageListing] [FormattedIncludeAction]@@
""<small>[<A HREF="http://wikka.jsnx.com/GmBowen/showcode">Show Code</A>]</small>""
----


Revision [5692]

Edited on 2005-02-06 20:36:48 by GmBowen [update of personal info etc]
Additions:
===Just who is GmBowen?===
My name is Mike Bowen and I'm a professor of science education at the University of New Brunswick in Fredericton, NB, Canada.
My research interests involve developing "authentic" science environments for grade 6 to 12 students so that they may participate in science activities & communities which parallel those engaged in by "real" scientists. In my view, it only makes sense to learn about a subject in **all** of its dimensions...including the generative aspects and the interactive & participatory contexts in which those aspects arise.
Previously I've worked in classrooms & schools with kids engaging with them in projects which paralleled those of the sort done by scientists (the "authenticity" of those projects arising from the "fuzzy" nature of the questions and methods by the students, the social interactions necessary to develop those, and the socio-rhetorical nature in which resulting knowledge claims arose). However, projects of this sort are often sustained only as long as there were university persons in the school supporting the work. As soon as the support structures left, the activities ceased. My interest in web tools arose from recognition that many of the features of science communities which lead to sustained and prolonged involvement could be provided to students in schools through a well-designed web environment. Thus, the tools I'm working on draw on studies from the discipline known as 'sociology of science' to consider the different ways in which scientists communicate. In addition to this, because my audience is kids, there are various security features that must be considered (including the distinction between "delete" and "hide").
I have two goals overall. One is to develop an enhanced on-line publication and project site so that students can work on (hopefully collaborative) projects and publish their results on-line (you can see this project as it develops at The Canadian Electronic Journal of High School Science & Technology [[http://www.thejournal.ca here]]). The other facet of the project is to provide a single on-line environment that contains many of the project features found at The Journal, but which can be implemented on a smaller scale -- in a single class, school or school board. It is this latter facet which drives much of the recent wikka development I've been doing and which I hope will encourage collaborative and long-term projects in schools (both of which have been found to have substantial learning outcomes over "typical" classroom approaches). Wikka offers the advantage that you can start to use it in a very simple fashion and then, as your interests or needs evolve, more of the tools (both from the base wikka distribution and the tools I've been working on) can be incorporated into a students projects.
Although the tools I've developed are often "primitive" compared to full-blown versions, they offer a few distinct advantages for kids working on school projects. Firstly, the student doesn't have to carry/move files or documents around. Secondly, students are able to use the same tools at school, in the library, at a friends place, or at home. The work they do is not subject to the vagaries of the platform they are on. Thirdly, they can collaboratively work on projects in ways not possible with traditional tools available to them. Fourthly, and this is really interesting in a learning sense, they afford participation by students **not** part of the project group....even from other schools & grades....something which rarely happens in schools. That the teacher can monitor projects as they are ongoing is also different than what often happens. And heck, even parents can drop in.
Overall, I chose wakka/wikka because it seemed to be the wiki with the most flexibility for doing the sorts of things I was interested in. When I started a year ago I didn't even know what PHP was....I'd used basic and fortran in bits in the far past and I knew HTML. Things have progressed since then, and I owe much to Mark Kasper who helped program parts of The Journal site last spring & to the people who work with this wikki (JW, Nils, DarTar, Jason, etc) who have both provided examples of code & input on what I've been doing that have helped me develop the scripts I've been working on. Although I know that they often despair at my seeming inability to follow conventions (or, at least cluelessness about them), I'm grateful for their support and help. Thanks folks.
A final thought....I release any and all scripts that I work on as GPL/open-source because I work for a public institution. I'm paid by the public to think about these issues, do this sort of code/script development work, and the code is released to the public because they've paid for it. If, however, you use any of the stuff I've worked on in any academic projects I'd appreciate you letting me know....and I might even be of use participating with the project so don't hesitate to ask. If you use it elsewhere I'd like to know too (an ego thing eh?)...but my bosses care less about those uses.
Deletions:
I'm a university prof who is modifying parts of wikka so that it can be used by high school kids to collaborate on school project work and writing. I chose wakka/wikka because it seemed to be the wiki with the most flexibility for doing the sorts of things I was interested in. I'm not a programmer myself, although I do understand lots about programming....and I'm teaching myself PHP programming and am working with some undergrads and a grad student developing code for wikka developing features this audience will need. The wiki is only one of the central tools they'll be using, and has to coordinate with numerous other tools (such as a graph drawing and an on-line drawing tool).


Revision [5558]

Edited on 2005-02-04 07:25:45 by GmBowen [update of personal info etc]
Additions:
@@[GmBowenCalendar] [GmBowenCounter] [GmBowenRecentEditCheck] [GmBowenUnitConverter][Mod041fPageIndexByLetter][GmBowenAdminPageControlTool] [GmBowenSpellchecker] [GmBowenWikkaAsPIM] [BannerMaker] [WikkaForum] [GraphMaker] [WikkaBlog2] [CanadianWeather] [Mp3Player] [WikkaMail] [ImageListing] [FormattedIncludeAction]@@
Deletions:
@@[GmBowenCalendar] [GmBowenCounter] [GmBowenRecentEditCheck] [GmBowenUnitConverter][Mod041fPageIndexByLetter][GmBowenAdminPageControlTool] [GmBowenSpellchecker] [GmBowenWikkaAsPIM] [BannerMaker] [WikkaForum] [GraphMaker] [WikkaBlog2] [CanadianWeather] [Mp3Player] [WikkaMail] [ImageListing]@@


Revision [5550]

Edited on 2005-02-03 23:44:22 by GmBowen [update of personal info etc]
Additions:
@@[GmBowenCalendar] [GmBowenCounter] [GmBowenRecentEditCheck] [GmBowenUnitConverter][Mod041fPageIndexByLetter][GmBowenAdminPageControlTool] [GmBowenSpellchecker] [GmBowenWikkaAsPIM] [BannerMaker] [WikkaForum] [GraphMaker] [WikkaBlog2] [CanadianWeather] [Mp3Player] [WikkaMail] [ImageListing]@@
Deletions:
@@[GmBowenCalendar] [GmBowenCounter] [GmBowenRecentEditCheck] [GmBowenUnitConverter][Mod041fPageIndexByLetter][GmBowenAdminPageControlTool] [GmBowenSpellchecker] [GmBowenWikkaAsPIM] [BannerMaker] [WikkaForum] [GraphMaker] [WikkaBlog2] [CanadianWeather] [Mp3Player] [WikkaMail]@@


Revision [5464]

Edited on 2005-02-02 05:48:01 by GmBowen [update of page info & adding link to WikkaMail]
Additions:
Many current mods: An action in development is the interactive table action which is a "big" one for our interests...it is like a //*very*// simple spreadsheet tool -- an interactive table actually -- that will do sum, count, frequency & average on the column entries....but we're currently having a problem with the foreach() statement which is why we've not released it yet.
__Tools for (semi) structured interactions__: (1) I've developed a flash-based "chat" that embeds on wiki pages (vchat modded from flatfile to database). I can't distribute it, because I'm not sure the licensing on the site I obtained it from allows it (although they provided all the source code and everything so it can be modded). It works pretty well, and I've written two associated actions ({ {mychats} } and { {listchat page="name"} }) which allow you to see what chats you own (whether the action is on a page or not) and the history of what chats has occured (unlike other chats like MSN, all of the chats are kept in the database so it is recoverable). An advantage of this chat system is it allows kids to communicate with each other w/o being exposed to adult-oriented spam (like happens with email). (2) The wiki based internal messaging system is complete (although I already have "upgrade" ideas) and is posted at WikkaMail. It is complemented by (3) a wiki blog tool and (4) a wiki forum tool that allows you to set up discussion forums (using individual wiki pages for each topic). Altogether these constitute a communication toolset that facilitates different modes of communication and different personal communication styles (as well as for different types of projects).
One reason for the development of these tools is to make the wiki a communication portal. In many uses a site will have a blog, and a forum area, and a wiki area as an add-on. Users have to register into each tool. Now, with wikka, you can use wikka as the central tool and build the other tools into it. In fact, the **users** get to determine when/how/if these tools are used. In other words, the users have more discretionary control over how they construct the site.
Also developed is graphing software that works within wikka (see GraphMaker).....also see ([[http://gmbowen.educ.unb.ca/vhgraph/ here]] and [[http://gmbowen.educ.unb.ca/powergraphic/graphic.php?showform here]]). The advantage of graphmaker is you don't have to rely on uploading images. That program will be further refined so that it can re-load the graph code and re-edit it. I'm still working on getting it to save the graphic to the hard drive. A "pagewatches" action is more-or-less finished....it allows you to keep a list of pages that you're looking to see if changes have been made on. And what's my //dream// regarding the wiki?? A rich text editor choice with wysiwyg (in addition to wikiedit)...it'll make it more user friendly for kids, but methinks that must be a hard thing to accomplish (since nobody has progressed with the idea much).
I'm going to use most of these for teaching purposes (such as having students keep an on-line journal of events) with students at various grade levels. Currently, students in a post-graduate science methods course are using the wiki to manage & keep track of the work they are doing on a science/technology project.
@@[GmBowenCalendar] [GmBowenCounter] [GmBowenRecentEditCheck] [GmBowenUnitConverter][Mod041fPageIndexByLetter][GmBowenAdminPageControlTool] [GmBowenSpellchecker] [GmBowenWikkaAsPIM] [BannerMaker] [WikkaForum] [GraphMaker] [WikkaBlog2] [CanadianWeather] [Mp3Player] [WikkaMail]@@
Deletions:
Many current mods in development...a "chat" that as an embedded flash chat (vchat modded from flatfile to database)....altho' it's difficult to pass to someone else cuz the fla file needs to be edited for each website (we've not been able to solve the absolute/relative path statement issue). Another action in development is the interactive table action which is a "big" one for our interests...it is like a //*very*// simple spreadsheet tool -- an interactive table actually -- that will do sum, count, frequency & average on the column entries....but we're currently having a problem with the foreach() statement which is why we've not released it yet). As we complete various tools I'll post them here when completed. Another thing we're working on is a wiki-based internal messaging system (both tikiwiki & the wakka derived comawiki have IMS's in place now)....but that'll be awhile before it shows up as I'm trying to do it myself from more or less scratch (it'll allow kids to send messages to each other w/o using email.....a security issue eh?) to help learn programming better. As you've probably noticed, I'm trying to develop tools that are portal-like but embedded in the wiki so it can expand beyond its traditional use. Another thing I'm playing with is graphing software.....see ([[http://gmbowen.educ.unb.ca/vhgraph/ here]] and [[http://gmbowen.educ.unb.ca/powergraphic/graphic.php?showform here]]) and trying to get the latter (a) working in wikka (b) able to save the graphic to the hard drive (c) save the form, etc to the hard drive so one can re-edit one's graphs.....no luck so far, even with (a) (sigh). We've "mostly" finished a "pagewatches" action that allows you to keep a list of pages that you're looking to see if changes have been made on. The code for the action and the table info for it will be posted soonish...... And what's my dream with regarding the wiki?? A rich text editor choice with wysiwyg (in addition to wikiedit)...it'll make it more user friendly for kids, but methinks that must be a hard thing to accomplish (since nobody has progressed with the idea much). -- **Mike** Also in development.....""WikkaBlog""....so far the entry box and formatting are done, then need pagination added and then a commenting feature (per blog entry....but using wikka comment table).....see the progress at [[http://gmbowen.educ.unb.ca/wiki/wakka.php?wakka=BlogTest Here]] where it is demo'd to where developed so far (you won't see the entry window). The more I think of it, the more useful the action seems cuz it'll allow blog-farms to be developed....plus encourages diaries etc. I'm going to use it for teaching purposes (having students keep an on-line journal of events).
@@[GmBowenCalendar] [GmBowenCounter] [GmBowenRecentEditCheck] [GmBowenUnitConverter][Mod041fPageIndexByLetter][GmBowenAdminPageControlTool] [GmBowenSpellchecker] [GmBowenWikkaAsPIM] [BannerMaker] [WikkaForum] [GraphMaker] [WikkaBlog2] [CanadianWeather] [Mp3Player]@@


Revision [5415]

Edited on 2005-01-31 19:54:17 by GmBowen [update of page info & adding link to WikkaMail]
Additions:
""{{rss url="http://wikka.jsnx.com/WikkaBlog2/revisions.xml"}}""
Deletions:
{{rss url="http://wikka.jsnx.com/WikkaBlog2/revisions.xml"}}


Revision [5414]

Edited on 2005-01-31 19:37:25 by GmBowen [update of page info & adding link to WikkaMail]
Additions:
{{rss url="http://wikka.jsnx.com/WikkaBlog2/revisions.xml"}}


Revision [5351]

Edited on 2005-01-28 21:23:23 by GmBowen [update links]
Additions:
**Interesting Pages:** SysInfo, WikkaBetaFeatures, ACLsWithUserGroups, UserRegistration, [[http://web.archive.org/web/20040318215353/www.wakkawiki.com/IbukiReDirect redirect script]] (with registration password for admin purposes), WikkaCSS (to make flexible floating box width), to embed images completely in a webpage use base64img.php at http://php.holtsmark.no/base64img/, FLV streaming players (for demo movies) [[http://www.videospark.com/index.php?ssp=24 here]].
Deletions:
**Interesting Pages:** SysInfo, WikkaBetaFeatures, ACLsWithUserGroups, UserRegistration, [[http://web.archive.org/web/20040318215353/www.wakkawiki.com/IbukiReDirect redirect script]] (with registration password for admin purposes), WikkaCSS (to make flexible floating box width), to embed images completely in a webpage use base64img.php at http://php.holtsmark.no/base64img/


Revision [5347]

Edited on 2005-01-28 17:27:05 by GmBowen [update links]
Additions:
@@[GmBowenCalendar] [GmBowenCounter] [GmBowenRecentEditCheck] [GmBowenUnitConverter][Mod041fPageIndexByLetter][GmBowenAdminPageControlTool] [GmBowenSpellchecker] [GmBowenWikkaAsPIM] [BannerMaker] [WikkaForum] [GraphMaker] [WikkaBlog2] [CanadianWeather] [Mp3Player]@@
Deletions:
@@[GmBowenCalendar] [GmBowenCounter] [GmBowenRecentEditCheck] [GmBowenUnitConverter][Mod041fPageIndexByLetter][GmBowenAdminPageControlTool] [GmBowenSpellchecker] [GmBowenWikkaAsPIM] [BannerMaker] [WikkaForum] [GraphMaker] [WikkaBlog2] [CanadianWeather]@@


Revision [5287]

Edited on 2005-01-28 02:44:31 by GmBowen [update links]
Additions:
**Interesting Pages:** SysInfo, WikkaBetaFeatures, ACLsWithUserGroups, UserRegistration, [[http://web.archive.org/web/20040318215353/www.wakkawiki.com/IbukiReDirect redirect script]] (with registration password for admin purposes), WikkaCSS (to make flexible floating box width), to embed images completely in a webpage use base64img.php at http://php.holtsmark.no/base64img/
Deletions:
Interesting Pages: SysInfo, WikkaBetaFeatures, ACLsWithUserGroups, UserRegistration, [[http://web.archive.org/web/20040318215353/www.wakkawiki.com/IbukiReDirect redirect script]] (with registration password for admin purposes), WikkaCSS (to make flexible floating box width)


Revision [5266]

Edited on 2005-01-27 14:08:47 by GmBowen [add link]
Additions:
Interesting Pages: SysInfo, WikkaBetaFeatures, ACLsWithUserGroups, UserRegistration, [[http://web.archive.org/web/20040318215353/www.wakkawiki.com/IbukiReDirect redirect script]] (with registration password for admin purposes), WikkaCSS (to make flexible floating box width)
Deletions:
Interesting Pages: SysInfo, WikkaBetaFeatures, ACLsWithUserGroups, UserRegistration, [[http://web.archive.org/web/20040318215353/www.wakkawiki.com/IbukiReDirect redirect script]] (with registration password for admin purposes)


Revision [4973]

Edited on 2005-01-23 05:46:53 by GmBowen [link update]
Additions:
Interesting Pages: SysInfo, WikkaBetaFeatures, ACLsWithUserGroups, UserRegistration, [[http://web.archive.org/web/20040318215353/www.wakkawiki.com/IbukiReDirect redirect script]] (with registration password for admin purposes)
Deletions:
Interesting Pages: SysInfo, WikkaBetaFeatures, ACLsWithUserGroups, UserRegistration (with registration password for admin purposes)


Revision [4970]

Edited on 2005-01-23 05:08:56 by GmBowen [update of program list]
Additions:
@@[GmBowenCalendar] [GmBowenCounter] [GmBowenRecentEditCheck] [GmBowenUnitConverter][Mod041fPageIndexByLetter][GmBowenAdminPageControlTool] [GmBowenSpellchecker] [GmBowenWikkaAsPIM] [BannerMaker] [WikkaForum] [GraphMaker] [WikkaBlog2] [CanadianWeather]@@
Deletions:
@@[GmBowenCalendar] [GmBowenCounter] [GmBowenRecentEditCheck] [GmBowenUnitConverter][Mod041fPageIndexByLetter][GmBowenAdminPageControlTool] [GmBowenSpellchecker] [GmBowenWikkaAsPIM] [BannerMaker] [WikkaForum] [GraphMaker] [WikkaBlog2]@@


Revision [4903]

Edited on 2005-01-21 04:44:24 by GmBowen [update of page]
Additions:
@@[GmBowenCalendar] [GmBowenCounter] [GmBowenRecentEditCheck] [GmBowenUnitConverter][Mod041fPageIndexByLetter][GmBowenAdminPageControlTool] [GmBowenSpellchecker] [GmBowenWikkaAsPIM] [BannerMaker] [WikkaForum] [GraphMaker] [WikkaBlog2]@@
Deletions:
@@[GmBowenCalendar] [GmBowenCounter] [GmBowenRecentEditCheck] [GmBowenUnitConverter][Mod041fPageIndexByLetter][GmBowenAdminPageControlTool] [GmBowenSpellchecker] [GmBowenWikkaAsPIM] [BannerMaker] [WikkaForum] [GraphMaker]@@


Revision [4400]

Edited on 2005-01-11 00:23:35 by GmBowen [adding interesting link]
Additions:
Interesting Pages: SysInfo, WikkaBetaFeatures, ACLsWithUserGroups, UserRegistration (with registration password for admin purposes)
Deletions:
Interesting Pages: SysInfo, WikkaBetaFeatures, ACLsWithUserGroups


Revision [4399]

Edited on 2005-01-11 00:21:49 by GmBowen [adding link to my "interest" area]
Additions:
Interesting Pages: SysInfo, WikkaBetaFeatures, ACLsWithUserGroups
Deletions:
Interesting Pages: SysInfo, WikkaBetaFeatures


Revision [4322]

Edited on 2005-01-09 17:31:32 by GmBowen [update link to graphmaker]
Additions:
@@[GmBowenCalendar] [GmBowenCounter] [GmBowenRecentEditCheck] [GmBowenUnitConverter][Mod041fPageIndexByLetter][GmBowenAdminPageControlTool] [GmBowenSpellchecker] [GmBowenWikkaAsPIM] [BannerMaker] [WikkaForum] [GraphMaker]@@
Deletions:
@@[GmBowenCalendar] [GmBowenCounter] [GmBowenRecentEditCheck] [GmBowenUnitConverter][Mod041fPageIndexByLetter][GmBowenAdminPageControlTool] [GmBowenSpellchecker] [GmBowenWikkaAsPIM] [BannerMaker] [WikkaForum]@@


Revision [3994]

Edited on 2005-01-05 07:37:23 by GmBowen [addition of link]
Additions:
@@[GmBowenCalendar] [GmBowenCounter] [GmBowenRecentEditCheck] [GmBowenUnitConverter][Mod041fPageIndexByLetter][GmBowenAdminPageControlTool] [GmBowenSpellchecker] [GmBowenWikkaAsPIM] [BannerMaker] [WikkaForum]@@
Deletions:
@@[GmBowenCalendar] [GmBowenCounter] [GmBowenRecentEditCheck] [GmBowenUnitConverter][Mod041fPageIndexByLetter][GmBowenAdminPageControlTool] [GmBowenSpellchecker] [GmBowenWikkaAsPIM] [[BannerMaker]]@@


Revision [3966]

Edited on 2005-01-04 12:46:39 by GmBowen [updated bookmarks]
Additions:
Interesting Pages: SysInfo, WikkaBetaFeatures


Revision [3878]

Edited on 2005-01-02 16:26:45 by GmBowen [updated page]
Additions:
I'm a university prof who is modifying parts of wikka so that it can be used by high school kids to collaborate on school project work and writing. I chose wakka/wikka because it seemed to be the wiki with the most flexibility for doing the sorts of things I was interested in. I'm not a programmer myself, although I do understand lots about programming....and I'm teaching myself PHP programming and am working with some undergrads and a grad student developing code for wikka developing features this audience will need. The wiki is only one of the central tools they'll be using, and has to coordinate with numerous other tools (such as a graph drawing and an on-line drawing tool).
Another recently developed graphic-oriented action I've developed for wikka is BannerMaker which allows the placement of coloured banners on pages.
Many current mods in development...a "chat" that as an embedded flash chat (vchat modded from flatfile to database)....altho' it's difficult to pass to someone else cuz the fla file needs to be edited for each website (we've not been able to solve the absolute/relative path statement issue). Another action in development is the interactive table action which is a "big" one for our interests...it is like a //*very*// simple spreadsheet tool -- an interactive table actually -- that will do sum, count, frequency & average on the column entries....but we're currently having a problem with the foreach() statement which is why we've not released it yet). As we complete various tools I'll post them here when completed. Another thing we're working on is a wiki-based internal messaging system (both tikiwiki & the wakka derived comawiki have IMS's in place now)....but that'll be awhile before it shows up as I'm trying to do it myself from more or less scratch (it'll allow kids to send messages to each other w/o using email.....a security issue eh?) to help learn programming better. As you've probably noticed, I'm trying to develop tools that are portal-like but embedded in the wiki so it can expand beyond its traditional use. Another thing I'm playing with is graphing software.....see ([[http://gmbowen.educ.unb.ca/vhgraph/ here]] and [[http://gmbowen.educ.unb.ca/powergraphic/graphic.php?showform here]]) and trying to get the latter (a) working in wikka (b) able to save the graphic to the hard drive (c) save the form, etc to the hard drive so one can re-edit one's graphs.....no luck so far, even with (a) (sigh). We've "mostly" finished a "pagewatches" action that allows you to keep a list of pages that you're looking to see if changes have been made on. The code for the action and the table info for it will be posted soonish...... And what's my dream with regarding the wiki?? A rich text editor choice with wysiwyg (in addition to wikiedit)...it'll make it more user friendly for kids, but methinks that must be a hard thing to accomplish (since nobody has progressed with the idea much). -- **Mike** Also in development.....""WikkaBlog""....so far the entry box and formatting are done, then need pagination added and then a commenting feature (per blog entry....but using wikka comment table).....see the progress at [[http://gmbowen.educ.unb.ca/wiki/wakka.php?wakka=BlogTest Here]] where it is demo'd to where developed so far (you won't see the entry window). The more I think of it, the more useful the action seems cuz it'll allow blog-farms to be developed....plus encourages diaries etc. I'm going to use it for teaching purposes (having students keep an on-line journal of events).
@@[GmBowenCalendar] [GmBowenCounter] [GmBowenRecentEditCheck] [GmBowenUnitConverter][Mod041fPageIndexByLetter][GmBowenAdminPageControlTool] [GmBowenSpellchecker] [GmBowenWikkaAsPIM] [[BannerMaker]]@@
Deletions:
I'm a university prof who is modifying parts of wikka so that it can be used by high school kids to collaborate on school project work and writing. I chose wakka/wikka because it seemed to be the wiki with the most flexibility for doing the sorts of things I was interested in. I'm not a programmer myself, although I do understand lots about programming, and so I've hired a recent grad from my university to implement some features for me that I think my target audience for using the wiki will need. The wiki is only one of the central tools they'll be using, and has to coordinate with numerous other tools (such as a graph drawing and an on-line drawing tool).
Many current mods in development...a "chat" that as an embedded flash chat (vchat modded from flatfile to database)....altho' it's difficult to pass to someone else cuz the fla file needs to be edited for each website (we've not been able to solve the absolute/relative path statement issue). Another action in development is the interactive table action which is a "big" one for our interests...it is like a //*very*// simple spreadsheet tool -- an interactive table actually -- that will do sum, count, frequency & average on the column entries....but we're currently having a problem with the foreach() statement which is why we've not released it yet). As we complete various tools I'll post them here when completed. Another thing we're working on is a wiki-based internal messaging system (both tikiwiki & the wakka derived comawiki have IMS's in place now)....but that'll be awhile before it shows up as I'm trying to do it myself from more or less scratch (it'll allow kids to send messages to each other w/o using email.....a security issue eh?) to help learn programming better. As you've probably noticed, I'm trying to develop tools that are portal-like but embedded in the wiki so it can expand beyond its traditional use. Another thing I'm playing with is graphing software.....see ([[http://gmbowen.educ.unb.ca/vhgraph/ here]] and [[http://gmbowen.educ.unb.ca/powergraphic/graphic.php?showform here]]) and trying to get the latter (a) working in wikka (b) able to save the graphic to the hard drive (c) save the form, etc to the hard drive so one can re-edit one's graphs.....no luck so far, even with (a) (sigh). We've "mostly" finished a "pagewatches" action that allows you to keep a list of pages that you're looking to see if changes have been made on. The code for the action and the table info for it will be posted soonish...... And what's my dream with regarding the wiki?? A rich text editor choice with wysiwyg (in addition to wikiedit)...it'll make it more user friendly for kids, but methinks that must be a hard thing to accomplish (since nobody has progressed with the idea much). -- **Mike**.....**almost ready for release**....BANNERMAKER.....see [[http://gmbowen.educ.unb.ca/wiki/wakka.php?wakka=SandBox2 here]] for an example of it at work....I'll tweak it a bit more, play with fonts some (to see how they work & where they need to be.....still having trouble with this) and then release the code to wikka. ''Mike, make sure you specify that GD is required for this - not every PHP installation has it! --JavaWoman'' Also in development.....""WikkaBlog""....so far the entry box and formatting are done, then need pagination added and then a commenting feature (per blog entry....but using wikka comment table).....see the progress at [[http://gmbowen.educ.unb.ca/wiki/wakka.php?wakka=BlogTest Here]] where it is demo'd to where developed so far (you won't see the entry window). The more I think of it, the more useful the action seems cuz it'll allow blog-farms to be developed....plus encourages diaries etc. I'm going to use it for teaching purposes (having students keep an on-line journal of events).
@@[GmBowenCalendar] [GmBowenCounter] [GmBowenRecentEditCheck] [GmBowenUnitConverter][Mod041fPageIndexByLetter][GmBowenAdminPageControlTool] [GmBowenSpellchecker] [GmBowenWikkaAsPIM]@@


Revision [3286]

Edited on 2004-12-16 04:02:05 by GmBowen [update of comments on developments....]
Additions:
Many current mods in development...a "chat" that as an embedded flash chat (vchat modded from flatfile to database)....altho' it's difficult to pass to someone else cuz the fla file needs to be edited for each website (we've not been able to solve the absolute/relative path statement issue). Another action in development is the interactive table action which is a "big" one for our interests...it is like a //*very*// simple spreadsheet tool -- an interactive table actually -- that will do sum, count, frequency & average on the column entries....but we're currently having a problem with the foreach() statement which is why we've not released it yet). As we complete various tools I'll post them here when completed. Another thing we're working on is a wiki-based internal messaging system (both tikiwiki & the wakka derived comawiki have IMS's in place now)....but that'll be awhile before it shows up as I'm trying to do it myself from more or less scratch (it'll allow kids to send messages to each other w/o using email.....a security issue eh?) to help learn programming better. As you've probably noticed, I'm trying to develop tools that are portal-like but embedded in the wiki so it can expand beyond its traditional use. Another thing I'm playing with is graphing software.....see ([[http://gmbowen.educ.unb.ca/vhgraph/ here]] and [[http://gmbowen.educ.unb.ca/powergraphic/graphic.php?showform here]]) and trying to get the latter (a) working in wikka (b) able to save the graphic to the hard drive (c) save the form, etc to the hard drive so one can re-edit one's graphs.....no luck so far, even with (a) (sigh). We've "mostly" finished a "pagewatches" action that allows you to keep a list of pages that you're looking to see if changes have been made on. The code for the action and the table info for it will be posted soonish...... And what's my dream with regarding the wiki?? A rich text editor choice with wysiwyg (in addition to wikiedit)...it'll make it more user friendly for kids, but methinks that must be a hard thing to accomplish (since nobody has progressed with the idea much). -- **Mike**.....**almost ready for release**....BANNERMAKER.....see [[http://gmbowen.educ.unb.ca/wiki/wakka.php?wakka=SandBox2 here]] for an example of it at work....I'll tweak it a bit more, play with fonts some (to see how they work & where they need to be.....still having trouble with this) and then release the code to wikka. ''Mike, make sure you specify that GD is required for this - not every PHP installation has it! --JavaWoman'' Also in development.....""WikkaBlog""....so far the entry box and formatting are done, then need pagination added and then a commenting feature (per blog entry....but using wikka comment table).....see the progress at [[http://gmbowen.educ.unb.ca/wiki/wakka.php?wakka=BlogTest Here]] where it is demo'd to where developed so far (you won't see the entry window). The more I think of it, the more useful the action seems cuz it'll allow blog-farms to be developed....plus encourages diaries etc. I'm going to use it for teaching purposes (having students keep an on-line journal of events).
Deletions:
Many current mods in development...a "chat" that as an embedded flash chat (vchat modded from flatfile to database)....altho' it's difficult to pass to someone else cuz the fla file needs to be edited for each website (we've not been able to solve the absolute/relative path statement issue). Another action in development is the interactive table action which is a "big" one for our interests...it is like a //*very*// simple spreadsheet tool -- an interactive table actually -- that will do sum, count, frequency & average on the column entries....but we're currently having a problem with the foreach() statement which is why we've not released it yet). As we complete various tools I'll post them here when completed. Another thing we're working on is a wiki-based internal messaging system (both tikiwiki & the wakka derived comawiki have IMS's in place now)....but that'll be awhile before it shows up as I'm trying to do it myself from more or less scratch (it'll allow kids to send messages to each other w/o using email.....a security issue eh?) to help learn programming better. As you've probably noticed, I'm trying to develop tools that are portal-like but embedded in the wiki so it can expand beyond its traditional use. Another thing I'm playing with is graphing software.....see ([[http://gmbowen.educ.unb.ca/vhgraph/ here]] and [[http://gmbowen.educ.unb.ca/powergraphic/graphic.php?showform here]]) and trying to get the latter (a) working in wikka (b) able to save the graphic to the hard drive (c) save the form, etc to the hard drive so one can re-edit one's graphs.....no luck so far, even with (a) (sigh). We've "mostly" finished a "pagewatches" action that allows you to keep a list of pages that you're looking to see if changes have been made on. The code for the action and the table info for it will be posted soonish...... And what's my dream with regarding the wiki?? A rich text editor choice with wysiwyg (in addition to wikiedit)...it'll make it more user friendly for kids, but methinks that must be a hard thing to accomplish (since nobody has progressed with the idea much). -- **Mike**.....almost ready for release....BANNERMAKER.....see [[http://gmbowen.educ.unb.ca/wiki/wakka.php?wakka=SandBox2 here]] for an example of it at work....I'll tweak it a bit more, play with fonts some (to see how they work & where they need to be) and then release the code to wikka. ''Mike, make sure you specify that GD is required for this - not every PHP installation has it! --JavaWoman''


Revision [3201]

Edited on 2004-12-14 22:37:45 by GmBowen [example link of database status action]
Additions:
=====Database Status Action===== (see [[http://gmbowen.educ.unb.ca/wiki/wakka.php?wakka=Administration here]] for example.)
Deletions:
=====Database Status Action=====


Revision [3155]

Edited on 2004-12-14 16:20:59 by JavaWoman [note about bannermaker]
Additions:
Many current mods in development...a "chat" that as an embedded flash chat (vchat modded from flatfile to database)....altho' it's difficult to pass to someone else cuz the fla file needs to be edited for each website (we've not been able to solve the absolute/relative path statement issue). Another action in development is the interactive table action which is a "big" one for our interests...it is like a //*very*// simple spreadsheet tool -- an interactive table actually -- that will do sum, count, frequency & average on the column entries....but we're currently having a problem with the foreach() statement which is why we've not released it yet). As we complete various tools I'll post them here when completed. Another thing we're working on is a wiki-based internal messaging system (both tikiwiki & the wakka derived comawiki have IMS's in place now)....but that'll be awhile before it shows up as I'm trying to do it myself from more or less scratch (it'll allow kids to send messages to each other w/o using email.....a security issue eh?) to help learn programming better. As you've probably noticed, I'm trying to develop tools that are portal-like but embedded in the wiki so it can expand beyond its traditional use. Another thing I'm playing with is graphing software.....see ([[http://gmbowen.educ.unb.ca/vhgraph/ here]] and [[http://gmbowen.educ.unb.ca/powergraphic/graphic.php?showform here]]) and trying to get the latter (a) working in wikka (b) able to save the graphic to the hard drive (c) save the form, etc to the hard drive so one can re-edit one's graphs.....no luck so far, even with (a) (sigh). We've "mostly" finished a "pagewatches" action that allows you to keep a list of pages that you're looking to see if changes have been made on. The code for the action and the table info for it will be posted soonish...... And what's my dream with regarding the wiki?? A rich text editor choice with wysiwyg (in addition to wikiedit)...it'll make it more user friendly for kids, but methinks that must be a hard thing to accomplish (since nobody has progressed with the idea much). -- **Mike**.....almost ready for release....BANNERMAKER.....see [[http://gmbowen.educ.unb.ca/wiki/wakka.php?wakka=SandBox2 here]] for an example of it at work....I'll tweak it a bit more, play with fonts some (to see how they work & where they need to be) and then release the code to wikka. ''Mike, make sure you specify that GD is required for this - not every PHP installation has it! --JavaWoman''
Deletions:
Many current mods in development...a "chat" that as an embedded flash chat (vchat modded from flatfile to database)....altho' it's difficult to pass to someone else cuz the fla file needs to be edited for each website (we've not been able to solve the absolute/relative path statement issue). Another action in development is the interactive table action which is a "big" one for our interests...it is like a //*very*// simple spreadsheet tool -- an interactive table actually -- that will do sum, count, frequency & average on the column entries....but we're currently having a problem with the foreach() statement which is why we've not released it yet). As we complete various tools I'll post them here when completed. Another thing we're working on is a wiki-based internal messaging system (both tikiwiki & the wakka derived comawiki have IMS's in place now)....but that'll be awhile before it shows up as I'm trying to do it myself from more or less scratch (it'll allow kids to send messages to each other w/o using email.....a security issue eh?) to help learn programming better. As you've probably noticed, I'm trying to develop tools that are portal-like but embedded in the wiki so it can expand beyond its traditional use. Another thing I'm playing with is graphing software.....see ([[http://gmbowen.educ.unb.ca/vhgraph/ here]] and [[http://gmbowen.educ.unb.ca/powergraphic/graphic.php?showform here]]) and trying to get the latter (a) working in wikka (b) able to save the graphic to the hard drive (c) save the form, etc to the hard drive so one can re-edit one's graphs.....no luck so far, even with (a) (sigh). We've "mostly" finished a "pagewatches" action that allows you to keep a list of pages that you're looking to see if changes have been made on. The code for the action and the table info for it will be posted soonish...... And what's my dream with regarding the wiki?? A rich text editor choice with wysiwyg (in addition to wikiedit)...it'll make it more user friendly for kids, but methinks that must be a hard thing to accomplish (since nobody has progressed with the idea much). -- **Mike**.....almost ready for release....BANNERMAKER.....see [[http://gmbowen.educ.unb.ca/wiki/wakka.php?wakka=SandBox2 here]] for an example of it at work....I'll tweak it a bit more, play with fonts some (to see how they work & where they need to be) and then release the code to wikka.


Revision [3151]

Edited on 2004-12-14 05:12:29 by GmBowen [modification of administration action from wikini]
Additions:
=====Database Status Action=====
This action is modified from one by Charles Népote at wikini which is part of an [[http://www.wikini.net/wakka.php?wiki=InterfaceDAdministrationWikiNi administration interface]]. Simply, it shows you each table, the # of entries, and the total size of the table. Probably inessential, but interesting to monitor what's going on.
// dbstatus.php
// originally developed by Charles Népote (charles@nepote.org) for wikini
// Version 0.1 du 10/09/2004
// License GPL.
// slightly modified by GMBowen for wikka wiki. (if you want the action usable by only admin,
// remove the double slashes on line 17 & 46) Use: {{dbstatus [details="yes"]}}
/*
Si vous souhaitez avoir un tableau joliment encadré il faut ajouter
les styles suivant à wakka.css
.simple_table { border-collapse: collapse; }
.simple_table th, td { border: 1px solid #666; padding: 0.5em; }
*/
//if ($this->IsAdmin()) {
$status = $this->LoadAll('SHOW TABLE STATUS LIKE \''.$this->config["table_prefix"].'%\'');
echo "<strong>Status of Wiki Database....</strong><br><small>(if you want to see <strong>all</strong> the details, use {{dbstatus details=\"yes\"}})</small>\n",
"<table class=\"simple_table\">\n",
"<tr>\n",
"<th>Name</th>\n",
"<th># Records</th>\n",
"<th>Size</th>\n",
"</tr>\n";
foreach ($status as $table)
echo
"<tr>\n",
"<td>", $table['Name'], "</td>\n",
"<td>", $table['Rows'], "</td>\n",
"<td>", round($table['Data_length']/1024, 2), " Ko</td>\n",
"</tr>\n";
echo "</table>\n";
// Details
if ($details=="yes"){
echo "<pre>";
print_r ($status);
echo "</pre>";}
//}
%%


Revision [3149]

Edited on 2004-12-14 00:11:46 by GmBowen [added link to bannermaking example....]
Additions:
Many current mods in development...a "chat" that as an embedded flash chat (vchat modded from flatfile to database)....altho' it's difficult to pass to someone else cuz the fla file needs to be edited for each website (we've not been able to solve the absolute/relative path statement issue). Another action in development is the interactive table action which is a "big" one for our interests...it is like a //*very*// simple spreadsheet tool -- an interactive table actually -- that will do sum, count, frequency & average on the column entries....but we're currently having a problem with the foreach() statement which is why we've not released it yet). As we complete various tools I'll post them here when completed. Another thing we're working on is a wiki-based internal messaging system (both tikiwiki & the wakka derived comawiki have IMS's in place now)....but that'll be awhile before it shows up as I'm trying to do it myself from more or less scratch (it'll allow kids to send messages to each other w/o using email.....a security issue eh?) to help learn programming better. As you've probably noticed, I'm trying to develop tools that are portal-like but embedded in the wiki so it can expand beyond its traditional use. Another thing I'm playing with is graphing software.....see ([[http://gmbowen.educ.unb.ca/vhgraph/ here]] and [[http://gmbowen.educ.unb.ca/powergraphic/graphic.php?showform here]]) and trying to get the latter (a) working in wikka (b) able to save the graphic to the hard drive (c) save the form, etc to the hard drive so one can re-edit one's graphs.....no luck so far, even with (a) (sigh). We've "mostly" finished a "pagewatches" action that allows you to keep a list of pages that you're looking to see if changes have been made on. The code for the action and the table info for it will be posted soonish...... And what's my dream with regarding the wiki?? A rich text editor choice with wysiwyg (in addition to wikiedit)...it'll make it more user friendly for kids, but methinks that must be a hard thing to accomplish (since nobody has progressed with the idea much). -- **Mike**.....almost ready for release....BANNERMAKER.....see [[http://gmbowen.educ.unb.ca/wiki/wakka.php?wakka=SandBox2 here]] for an example of it at work....I'll tweak it a bit more, play with fonts some (to see how they work & where they need to be) and then release the code to wikka.
Deletions:
Many current mods in development...a "chat" that as an embedded flash chat (vchat modded from flatfile to database)....altho' it's difficult to pass to someone else cuz the fla file needs to be edited for each website (we've not been able to solve the absolute/relative path statement issue). Another action in development is the interactive table action which is a "big" one for our interests...it is like a //*very*// simple spreadsheet tool -- an interactive table actually -- that will do sum, count, frequency & average on the column entries....but we're currently having a problem with the foreach() statement which is why we've not released it yet). As we complete various tools I'll post them here when completed. Another thing we're working on is a wiki-based internal messaging system (both tikiwiki & the wakka derived comawiki have IMS's in place now)....but that'll be awhile before it shows up as I'm trying to do it myself from more or less scratch (it'll allow kids to send messages to each other w/o using email.....a security issue eh?) to help learn programming better. As you've probably noticed, I'm trying to develop tools that are portal-like but embedded in the wiki so it can expand beyond its traditional use. Another thing I'm playing with is graphing software.....see ([[http://gmbowen.educ.unb.ca/vhgraph/ here]] and [[http://gmbowen.educ.unb.ca/powergraphic/graphic.php?showform here]]) and trying to get the latter (a) working in wikka (b) able to save the graphic to the hard drive (c) save the form, etc to the hard drive so one can re-edit one's graphs.....no luck so far, even with (a) (sigh). We've "mostly" finished a "pagewatches" action that allows you to keep a list of pages that you're looking to see if changes have been made on. The code for the action and the table info for it will be posted soonish...... And what's my dream with regarding the wiki?? A rich text editor choice with wysiwyg (in addition to wikiedit)...it'll make it more user friendly for kids, but methinks that must be a hard thing to accomplish (since nobody has progressed with the idea much). -- Mike


Revision [3119]

Edited on 2004-12-12 19:04:38 by GmBowen [minor update]
Additions:
Many current mods in development...a "chat" that as an embedded flash chat (vchat modded from flatfile to database)....altho' it's difficult to pass to someone else cuz the fla file needs to be edited for each website (we've not been able to solve the absolute/relative path statement issue). Another action in development is the interactive table action which is a "big" one for our interests...it is like a //*very*// simple spreadsheet tool -- an interactive table actually -- that will do sum, count, frequency & average on the column entries....but we're currently having a problem with the foreach() statement which is why we've not released it yet). As we complete various tools I'll post them here when completed. Another thing we're working on is a wiki-based internal messaging system (both tikiwiki & the wakka derived comawiki have IMS's in place now)....but that'll be awhile before it shows up as I'm trying to do it myself from more or less scratch (it'll allow kids to send messages to each other w/o using email.....a security issue eh?) to help learn programming better. As you've probably noticed, I'm trying to develop tools that are portal-like but embedded in the wiki so it can expand beyond its traditional use. Another thing I'm playing with is graphing software.....see ([[http://gmbowen.educ.unb.ca/vhgraph/ here]] and [[http://gmbowen.educ.unb.ca/powergraphic/graphic.php?showform here]]) and trying to get the latter (a) working in wikka (b) able to save the graphic to the hard drive (c) save the form, etc to the hard drive so one can re-edit one's graphs.....no luck so far, even with (a) (sigh). We've "mostly" finished a "pagewatches" action that allows you to keep a list of pages that you're looking to see if changes have been made on. The code for the action and the table info for it will be posted soonish...... And what's my dream with regarding the wiki?? A rich text editor choice with wysiwyg (in addition to wikiedit)...it'll make it more user friendly for kids, but methinks that must be a hard thing to accomplish (since nobody has progressed with the idea much). -- Mike
Deletions:
Many current mods in development...a "chat" that as an embedded flash chat (vchat modded from flatfile to database)....altho' it's difficult to pass to someone else cuz the fla file needs to be edited for each website (we've not been able to solve the absolute/relative path statement issue). Another action in development is the interactive table action which is a "big" one for our interests...it is like a //*very*// simple spreadsheet tool -- an interactive table actually -- that will do sum, count, frequency & average on the column entries....but we're currently having a problem with the foreach() statement which is why we've not released it yet). As we complete various tools I'll post them here when completed. Another thing we're working on is a wiki-based internal messaging system (both tikiwiki & the wakka derived comawiki have IMS's in place now)....but that'll be awhile before it shows up as I'm trying to do it myself from more or less scratch (it'll allow kids to send messages to each other w/o using email.....a security issue eh?) to help learn programming better. As you've probably noticed, I'm trying to develop tools that are portal-like but embedded in the wiki so it can expand beyond its traditional use. Another thing I'm playing with is graphing software.....see [[http://gmbowen.educ.unb.ca/vhgraph/ here]] and [[http://gmbowen.educ.unb.ca/powergraphic/graphic.php?showform here]] and trying to get it (a) working in wikka (b) able to save the graphic to the hard drive (c) save the form, etc to the hard drive so one can re-edit one's graphs.....no luck so far, even with (a) (sigh). We've "mostly" finished a "pagewatches" action that allows you to keep a list of pages that you're looking to see if changes have been made on. The code for the action and the table info for it will be posted soonish...... And what's my dream with regarding the wiki?? A rich text editor choice with wysiwyg (in addition to wikiedit)...it'll make it more user friendly for kids, but methinks that must be a hard thing to accomplish (since nobody has progressed with the idea much). -- Mike


Revision [3118]

Edited on 2004-12-12 19:03:19 by GmBowen [minor update]
Additions:
Many current mods in development...a "chat" that as an embedded flash chat (vchat modded from flatfile to database)....altho' it's difficult to pass to someone else cuz the fla file needs to be edited for each website (we've not been able to solve the absolute/relative path statement issue). Another action in development is the interactive table action which is a "big" one for our interests...it is like a //*very*// simple spreadsheet tool -- an interactive table actually -- that will do sum, count, frequency & average on the column entries....but we're currently having a problem with the foreach() statement which is why we've not released it yet). As we complete various tools I'll post them here when completed. Another thing we're working on is a wiki-based internal messaging system (both tikiwiki & the wakka derived comawiki have IMS's in place now)....but that'll be awhile before it shows up as I'm trying to do it myself from more or less scratch (it'll allow kids to send messages to each other w/o using email.....a security issue eh?) to help learn programming better. As you've probably noticed, I'm trying to develop tools that are portal-like but embedded in the wiki so it can expand beyond its traditional use. Another thing I'm playing with is graphing software.....see [[http://gmbowen.educ.unb.ca/vhgraph/ here]] and [[http://gmbowen.educ.unb.ca/powergraphic/graphic.php?showform here]] and trying to get it (a) working in wikka (b) able to save the graphic to the hard drive (c) save the form, etc to the hard drive so one can re-edit one's graphs.....no luck so far, even with (a) (sigh). We've "mostly" finished a "pagewatches" action that allows you to keep a list of pages that you're looking to see if changes have been made on. The code for the action and the table info for it will be posted soonish...... And what's my dream with regarding the wiki?? A rich text editor choice with wysiwyg (in addition to wikiedit)...it'll make it more user friendly for kids, but methinks that must be a hard thing to accomplish (since nobody has progressed with the idea much). -- Mike
@@[GmBowenCalendar] [GmBowenCounter] [GmBowenRecentEditCheck] [GmBowenUnitConverter][Mod041fPageIndexByLetter][GmBowenAdminPageControlTool] [GmBowenSpellchecker] [GmBowenWikkaAsPIM]@@
Deletions:
Many current mods in development...a "chat" that as an embedded flash chat (vchat modded from flatfile to database)....altho' it's difficult to pass to someone else cuz the fla file needs to be edited for each website (we've not been able to solve the absolute/relative path statement issue). Another action in development is the interactive table action which is a "big" one for our interests...it is like a //*very*// simple spreadsheet tool -- an interactive table actually -- that will do sum, count, frequency & average on the column entries....but we're currently having a problem with the foreach() statement which is why we've not released it yet). As we complete various tools I'll post them here when completed. Another thing we're working on is a wiki-based private messaging system....but that'll be awhile before it shows up as I'm trying to do it myself from more or less scratch (it'll allow kids to send messages to each other w/o using email.....a security issue eh?) to help learn programming better. As you've probably noticed, I'm trying to develop tools that are portal-like but embedded in the wiki so it can expand beyond its traditional use. We've "mostly" finished a "pagewatches" action that allows you to keep a list of pages that you're looking to see if changes have been made on. The code for the action and the table info for it will be posted soonish.....on Monday/Tuesday next..... And what's my dream with regarding the wiki?? A rich text editor choice (in addition to wikiedit)...it'll make it more user friendly for kids, but methinks that must be a hard thing to accomplish (since nobody has progressed with the idea much). -- Mike
@@[GmBowenCalendar] [GmBowenCounter] [GmBowenRecentEditCheck] [GmBowenUnitConverter][Mod041fPageIndexByLetter][GmBowenAdminPageControlTool]@@


Revision [3051]

Edited on 2004-12-09 21:18:41 by GmBowen [remove scheduler & fix column actions...thanks JW]
Additions:
<table border="0" cellpadding="5" cellspacing="10" width="100%"><tr><td valign="top">
</td><td valign="top">
~''...and remove **##<td valign="top"><img src="/icons/blank.png" alt=" " width="10" height="1"></td>##**here - same effect, no silly blank image needed! ''(whoops....I'd taken that out elsewhere, forgot to here when I copied over)'' (Of course layout tables should be avoided, but if you //must//, do it cleanly!) --JavaWoman''
~thanks for the suggestions. Thought the code might help with the FormattingRules page. --GmBowen
Deletions:
=====Scheduler=====
Scheduler is an action which allows a person to keep a day calendar (or diary for that matter). Although the entry formatting is simple, at the same time it provides flexibility. A user can enter a day schedule.....
8:00 am - meeting with joe
9:00 am - coffee with angie
10:00 am - clients from budapest
or use it to keep a to-do list, or even a diary for the day. Right now one has to go to the scheduler to view the output, but I'm going to work on a "dayschedule" action which will allow a user to see the schedule (or other input) for any day for any user.....that will allow users to coordinate schedules or activities a bit more easily.
http://gmbowen.educ.unb.ca/wikitest/scheduler.jpg
Code for table in data base.....
CREATE TABLE `wakka_scheduler` (
`id` int(10) NOT NULL auto_increment,
`user` varchar(80) NOT NULL default '',
`day` tinyint(2) NOT NULL default '0',
`month` tinyint(2) NOT NULL default '0',
`year` mediumint(4) NOT NULL default '0',
`dayschedule` text,
PRIMARY KEY (`id`)
) TYPE=MyISAM;
below code added to actions directory as ##scheduler.php##
<div align="center">
<P><TABLE BORDER=0>
<TD>
<P>
// As far as it is possible to tell (because the code exists all over the web), we credit the original calendar code
// to Marcus Kazmierczak now released at www.blazonry.com, although the code in this script builds considerably on that code.
// The original parts of this script were developed by G. Michael Bowen And Mark Kasper for a SSHRC research project using wikka wiki.
// Version 1.1 - arrow bars for navigating days added (altho' max at 31 for all months)
// Code additions copyright GMBowen & Mark Kasper, 2004. Released to public domain under GPL. Modify, improve, change as you wish.
// A complementary action, showschedule.php allows anyone to designate an owner & date to see their schedule (in development) (see line 130)
$month = (!isset($_GET['month'])) ? date("n",mktime()) : $_GET['month'];
$year = (!isset($_GET['year'])) ? date("Y",mktime()) : $_GET['year'];
$today = (!isset($_GET['day'])) ? date("d",mktime()) : $_GET['day'];
<tr>
<td valign="top">
/*== get what weekday the first is on ==*/
$tmpd = getdate(mktime(0,0,0,$month,1,$year));
$monthname = $tmpd["month"];
$firstwday= $tmpd["wday"];
$lastday = mk_getLastDayofMonth($month,$year);
<table cellpadding="2" cellspacing="0" border="1">
<tr>
<td colspan="7">
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td width="20"><a href="<?php echo $this->href("", "", "month="); echo (($month-1)<1) ? 12 : $month-1 ; ?>&year=<?php echo (($month-1)<1) ? $year-1 : $year ; ?>"><<<</a></td>
<td align="center"><font size="2"><?php echo "$monthname $year"; ?></font></td>
<td width="20"><a href="<?php echo $this->href("", "", "month="); echo (($month+1)>12) ? 1 : $month+1 ; ?>&year=<?php echo (($month+1)>12) ? $year+1 : $year ; ?>">>>></a></td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="22">Su</td>
<td width="22">Mo</td>
<td width="22">Tu</td>
<td width="22">We</td>
<td width="22">Th</td>
<td width="22">Fr</td>
<td width="22">Sa</td>
</tr>
<?php
$day = 1;
$wday = $firstwday;
$firstweek = true;
/*== loop through all the days of the month ==*/
while ( $day <= $lastday)
/*== set up blank days for first week ==*/
if ($firstweek) {
print " <tr>";
for ($i=1; $i<=$firstwday; $i++)
{ print " <td><font size=\"2\"> </font></td>"; }
$firstweek = false;
/*== Sunday start week with <tr> ==*/
if ($wday==0) { print " <tr>\n"; }
/*== check for event ==*/
print " <td>";
if($day<10) {
if($month<10) {
$tag = "$year:0$month:0$day";
} else {
$tag = "$year:$month:0$day";
}
} else {
if($month<10) {
$tag = "$year:0$month:$day";
} else {
$tag = "$year:$month:$day";
}

$todaydate = date("Y:m:d",mktime());
if($tag==$todaydate)
{
$font1 = "<font color=\"#FF0000\"><b>";
$font2 = "</b></font>";
else
{
$font1 = "";
$font2 = "";
print "<a href=".$site_base."Scheduler&day=$day&month=$month&year=$year>$font1$day$font2</a>";
print "</td>\n";
/*== Saturday week with </tr> ==*/
if ($wday==6) { print " </tr>\n"; }
$wday++;
$wday = $wday % 7;
$day++;
</tr>
</td>
</tr>
/*== get the last day of the month ==*/
function mk_getLastDayofMonth($mon,$year)
for ($tday=28; $tday <= 31; $tday++)
{
$tdate = getdate(mktime(0,0,0,$mon,$tday,$year));
if ($tdate["mon"] != $mon) break;
}
$tday--;
return $tday;
?>
<!-- Line below commented out until action to show Todays Schedule is completed
<center><a href=/wiki/wakka.php?wakka=TodaysSchedule>Todays Schedule</a></center>
-->
</TD>
<TD WIDTH=500>
<P>
// badword array for replacing badwords (not initialized as currently using added function in wakka.php)
//$badwords = Array ('/motherfucker/i', '/cunt/i', '/fuck/i', '/cocksucker/i', '/bitch/i', '/son of a bitch/i', '/asshole/i', '/shit/i', '/fag/i', '/wank/i', '/dick/i', '/pussy/i', '/bastard/i', '/molester/i', '/molezter/i', '/cock/i');
//$changeto = '****';
// gets username
$username = $this->GetUserName();
// kasper
// NOTE VERY IMPORTANT, if the table is totally empty the function will not work, you
// must add one in maually, for this function to work
// I could add it in the code but very messy, will come up with better way.
$dayschedule = $_POST['dayscheduleX'];
$dayschedule = BadWordFunc($dayschedule);
// replace above function call with line below if wakka.php doesn't have a bad word function code in it
//$dayschedule = preg_replace($badwords, $changeto, $dayschedule);
$query = "select * from ".$this->config['table_prefix']."scheduler";
if ($_POST['save']){
// Kasper added to delete the empty schedule
$del = "delete from ".$this->config['table_prefix']."scheduler where dayschedule = ''";
$delresult = mysql_query($del);
$up = 0;
while ($row = mysql_fetch_object($result))
{
if($row->user == $username && $row->month == $month && $row->day == $today && $row->year == $year)
{
$up = 1;
$ro = $row->id;
}
if($up == 1)
{
$query = "UPDATE ".$this->config['table_prefix']."scheduler SET dayschedule='$dayschedule' WHERE user='$username' AND id='$ro'";
$result = mysql_query($query);
}else{
$query = "INSERT into ".$this->config['table_prefix']."scheduler (user,dayschedule,month,day,year) VALUES ('$username','$dayschedule','$month','$today','$year')";
$result = mysql_query($query);
// end kasper
$dayschedule = str_replace("\n", ",", $_POST['dayschedule']);
// title over textarea box
$printowner = $username."'s Schedule for ";
$dayschedule = $this->LoadSingle("SELECT dayschedule FROM ".$this->config["table_prefix"]."scheduler WHERE user='".$username."' AND day='".$today."' AND month='".$month."' AND year='".$year."'");
$dayschedule = str_replace(",", "\n", $dayschedule[dayschedule]);
$output = str_replace(",", " ", $dayschedule[dayschedule]);
<br><a href="<?php echo $this->href("", "", "day="); echo (($today-1)<1) ? 31 : $today-1 ; ?>&year=<?php echo $year; ?>&month=<?php echo $month; ?>"><<</a>
<b><? echo "$printowner$monthname $today, $year:"; ?></b>
<a href="<?php echo $this->href("", "", "day="); echo (($today+1)>31) ? 1 : $today+1 ; ?>&year=<?php echo $year; ?>&month=<?php echo $month; ?>">>></a>
<form action="" method="post">
<textarea cols="65" rows="12" name="dayscheduleX"><?php echo $dayschedule; ?></textarea>
<input type="submit" value="Submit" />
<input type="hidden" name="save" value="true" />
</form>
}
echo "<em>The Scheduler only works for logged-in users.</em>";
} ?>
</TD>
</div>
~''...and remove **##<td valign="top"><img src="/icons/blank.png" alt=" " width="10" height="1"></td>##** here - same effect, no silly blank image needed! (Of course layout tables should be avoided, but if you //must//, do it cleanly!) --JavaWoman''


Revision [3049]

Edited on 2004-12-09 21:02:26 by JavaWoman [suggestion for columns - and code highlighter selector added]
Additions:
%%(html)
~''replace **##cellspacing="0"##** by **##cellspacing="10"##** ...''
%%(html)
~''...and remove **##<td valign="top"><img src="/icons/blank.png" alt=" " width="10" height="1"></td>##** here - same effect, no silly blank image needed! (Of course layout tables should be avoided, but if you //must//, do it cleanly!) --JavaWoman''
%%(html)


Revision [3047]

Edited on 2004-12-09 20:39:10 by GmBowen [simple code for doing columns]
Additions:
=====Simple Column Codes=====
You can make columns with three simple actions (I originally got these at wakkawiki). You place ""{{colstart}}"" at the start of the text you want in a column, ""{{colmiddle}}"" in the middle where you want the break (or you can have more than one of these), and ""{{colend}}"" at the end of the text. When you save, voila, 2 (or more) columns.
save as ##colstart.php## in actions directory
save as ##colmid.php## in actions directory
save as ##colend.php## in actions directory


Revision [3031]

Edited on 2004-12-09 18:08:28 by GmBowen [update of scheduler code to add day navigation]
Additions:
below code added to actions directory as ##scheduler.php##
// As far as it is possible to tell (because the code exists all over the web), we credit the original calendar code
// to Marcus Kazmierczak now released at www.blazonry.com, although the code in this script builds considerably on that code.
// Version 1.1 - arrow bars for navigating days added (altho' max at 31 for all months)
<td width="20"><a href="<?php echo $this->href("", "", "month="); echo (($month-1)<1) ? 12 : $month-1 ; ?>&year=<?php echo (($month-1)<1) ? $year-1 : $year ; ?>"><<<</a></td>
<td width="20"><a href="<?php echo $this->href("", "", "month="); echo (($month+1)>12) ? 1 : $month+1 ; ?>&year=<?php echo (($month+1)>12) ? $year+1 : $year ; ?>">>>></a></td>
<br><a href="<?php echo $this->href("", "", "day="); echo (($today-1)<1) ? 31 : $today-1 ; ?>&year=<?php echo $year; ?>&month=<?php echo $month; ?>"><<</a>
<b><? echo "$printowner$monthname $today, $year:"; ?></b>
<a href="<?php echo $this->href("", "", "day="); echo (($today+1)>31) ? 1 : $today+1 ; ?>&year=<?php echo $year; ?>&month=<?php echo $month; ?>">>></a>
</div>
Many current mods in development...a "chat" that as an embedded flash chat (vchat modded from flatfile to database)....altho' it's difficult to pass to someone else cuz the fla file needs to be edited for each website (we've not been able to solve the absolute/relative path statement issue). Another action in development is the interactive table action which is a "big" one for our interests...it is like a //*very*// simple spreadsheet tool -- an interactive table actually -- that will do sum, count, frequency & average on the column entries....but we're currently having a problem with the foreach() statement which is why we've not released it yet). As we complete various tools I'll post them here when completed. Another thing we're working on is a wiki-based private messaging system....but that'll be awhile before it shows up as I'm trying to do it myself from more or less scratch (it'll allow kids to send messages to each other w/o using email.....a security issue eh?) to help learn programming better. As you've probably noticed, I'm trying to develop tools that are portal-like but embedded in the wiki so it can expand beyond its traditional use. We've "mostly" finished a "pagewatches" action that allows you to keep a list of pages that you're looking to see if changes have been made on. The code for the action and the table info for it will be posted soonish.....on Monday/Tuesday next..... And what's my dream with regarding the wiki?? A rich text editor choice (in addition to wikiedit)...it'll make it more user friendly for kids, but methinks that must be a hard thing to accomplish (since nobody has progressed with the idea much). -- Mike
Deletions:
// As far as it is possible to tell (because the code exists all over the web), we provide credit to the original calendar code for the
// to Marcus Kazmierczak and released at www.blazonry.com, although the code in this script builds considerably on that code.
<td width="20"><a href="<?php echo $this->href("", "", "month="); echo (($month-1)<1) ? 12 : $month-1 ; ?>&year=<?php echo (($month-1)<1) ? $year-1 : $year ; ?>"><<</a></td>
<td width="20"><a href="<?php echo $this->href("", "", "month="); echo (($month+1)>12) ? 1 : $month+1 ; ?>&year=<?php echo (($month+1)>12) ? $year+1 : $year ; ?>">>></a></td>
// replace list for bad words if one isn't going to use the badwordfunc that I placed in wikka....
<br><b><? echo "$printowner$monthname $today, $year:"; ?></b>
The one **idosyncracy** that I know of....when you "empty" a day and press the submit button, you cannot (for reasons I cannot figure out) re-enter data into that day. The first time you do so it disappears, but the second time it is entered in the database. Also, the current implementation checks for "bad words" using a function placed in wikka.php (code below). If you don't want to do that, you can comment out the reference to the function....and if you want to erase "bad words" (I work with kids remember) then you can uncomment the search/replace function. Feel free to add/modify/improve if you play with this. Oh, and you might have to manually enter one line in the database table before you use the function (comments from mark suggest this, altho' I don't know why and it's too late to test).
The following code is placed around line 25 (after the get microtime function) in wakka.php
// GMB remove bad word filter
function BadWordFunc($RemoveBadWordText) {
$RemoveBadWordText = eregi_replace("fuc?k|[kc]unt|motherfucker|cocksucker|bitch|son of a bitch|asshole|shit|fag|wank|dick|pu[zs]?[zs][yi]|bastard|s[kc]rew|mole[zs]ter|mole[sz]t|coc?k", "****", $RemoveBadWordText);
return $RemoveBadWordText;
Many current mods in development...a "chat" that as an embedded flash chat (vchat modded from flatfile to database)....altho' it's difficult to pass to someone else cuz the fla file needs to be edited for each website (we've not been able to solve the absolute/relative path statement issue). Another action in development is the interactive table action which is a "big" one for our interests...it is like a //*very*// simple spreadsheet tool -- an interactive table actually -- that will do sum, count, frequency & average on the column entries....but we're currently having a problem with the foreach() statement which is why we've not released it yet). As we complete various tools I'll post them here when completed. Also, I'm working on a simple scheduler partly based on GmBowenCalendar, but having problems with writing to the database consistently....but it will be useful for doing some PIM functions, and collaborating on timetables. Another thing we're working on is a wiki-based private messaging system....but that'll be awhile before it shows up as I'm trying to do it myself from more or less scratch (it'll allow kids to send messages to each other w/o using email.....a security issue eh?) to help learn programming better. As you've probably noticed, I'm trying to develop tools that are portal-like but embedded in the wiki so it can expand beyond its traditional use. We've "mostly" finished a "pagewatches" action that allows you to keep a list of pages that you're looking to see if changes have been made on. The code for the action and the table info for it will be posted soonish.....on Monday/Tuesday next..... And what's my dream with regarding the wiki?? A rich text editor choice (in addition to wikiedit)...it'll make it more user friendly for kids, but methinks that must be a hard thing to accomplish (since nobody has progressed with the idea much). -- Mike


Revision [2996]

Edited on 2004-12-09 05:29:30 by GmBowen [code for scheduler entered]
Additions:
=====Scheduler=====
Scheduler is an action which allows a person to keep a day calendar (or diary for that matter). Although the entry formatting is simple, at the same time it provides flexibility. A user can enter a day schedule.....
8:00 am - meeting with joe
9:00 am - coffee with angie
10:00 am - clients from budapest
or use it to keep a to-do list, or even a diary for the day. Right now one has to go to the scheduler to view the output, but I'm going to work on a "dayschedule" action which will allow a user to see the schedule (or other input) for any day for any user.....that will allow users to coordinate schedules or activities a bit more easily.
http://gmbowen.educ.unb.ca/wikitest/scheduler.jpg
Code for table in data base.....
CREATE TABLE `wakka_scheduler` (
`id` int(10) NOT NULL auto_increment,
`user` varchar(80) NOT NULL default '',
`day` tinyint(2) NOT NULL default '0',
`month` tinyint(2) NOT NULL default '0',
`year` mediumint(4) NOT NULL default '0',
`dayschedule` text,
PRIMARY KEY (`id`)
) TYPE=MyISAM;
<div align="center">
<P><TABLE BORDER=0>
<TD>
<P>
// As far as it is possible to tell (because the code exists all over the web), we provide credit to the original calendar code for the
// to Marcus Kazmierczak and released at www.blazonry.com, although the code in this script builds considerably on that code.
// The original parts of this script were developed by G. Michael Bowen And Mark Kasper for a SSHRC research project using wikka wiki.
// Code additions copyright GMBowen & Mark Kasper, 2004. Released to public domain under GPL. Modify, improve, change as you wish.
// A complementary action, showschedule.php allows anyone to designate an owner & date to see their schedule (in development) (see line 130)
$month = (!isset($_GET['month'])) ? date("n",mktime()) : $_GET['month'];
$year = (!isset($_GET['year'])) ? date("Y",mktime()) : $_GET['year'];
$today = (!isset($_GET['day'])) ? date("d",mktime()) : $_GET['day'];
<tr>
<td valign="top">
/*== get what weekday the first is on ==*/
$tmpd = getdate(mktime(0,0,0,$month,1,$year));
$monthname = $tmpd["month"];
$firstwday= $tmpd["wday"];
$lastday = mk_getLastDayofMonth($month,$year);
<table cellpadding="2" cellspacing="0" border="1">
<tr>
<td colspan="7">
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td width="20"><a href="<?php echo $this->href("", "", "month="); echo (($month-1)<1) ? 12 : $month-1 ; ?>&year=<?php echo (($month-1)<1) ? $year-1 : $year ; ?>"><<</a></td>
<td align="center"><font size="2"><?php echo "$monthname $year"; ?></font></td>
<td width="20"><a href="<?php echo $this->href("", "", "month="); echo (($month+1)>12) ? 1 : $month+1 ; ?>&year=<?php echo (($month+1)>12) ? $year+1 : $year ; ?>">>></a></td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="22">Su</td>
<td width="22">Mo</td>
<td width="22">Tu</td>
<td width="22">We</td>
<td width="22">Th</td>
<td width="22">Fr</td>
<td width="22">Sa</td>
</tr>
<?php
$day = 1;
$wday = $firstwday;
$firstweek = true;
/*== loop through all the days of the month ==*/
while ( $day <= $lastday)
/*== set up blank days for first week ==*/
if ($firstweek) {
print " <tr>";
for ($i=1; $i<=$firstwday; $i++)
{ print " <td><font size=\"2\"> </font></td>"; }
$firstweek = false;
/*== Sunday start week with <tr> ==*/
if ($wday==0) { print " <tr>\n"; }
/*== check for event ==*/
print " <td>";
if($day<10) {
if($month<10) {
$tag = "$year:0$month:0$day";
} else {
$tag = "$year:$month:0$day";
}
} else {
if($month<10) {
$tag = "$year:0$month:$day";
} else {
$tag = "$year:$month:$day";
}

$todaydate = date("Y:m:d",mktime());
if($tag==$todaydate)
{
$font1 = "<font color=\"#FF0000\"><b>";
$font2 = "</b></font>";
else
{
$font1 = "";
$font2 = "";
print "<a href=".$site_base."Scheduler&day=$day&month=$month&year=$year>$font1$day$font2</a>";
print "</td>\n";
/*== Saturday week with </tr> ==*/
if ($wday==6) { print " </tr>\n"; }
$wday++;
$wday = $wday % 7;
$day++;
</tr>
</td>
</tr>
/*== get the last day of the month ==*/
function mk_getLastDayofMonth($mon,$year)
for ($tday=28; $tday <= 31; $tday++)
{
$tdate = getdate(mktime(0,0,0,$mon,$tday,$year));
if ($tdate["mon"] != $mon) break;
}
$tday--;
return $tday;
?>
<!-- Line below commented out until action to show Todays Schedule is completed
<center><a href=/wiki/wakka.php?wakka=TodaysSchedule>Todays Schedule</a></center>
-->
</TD>
<TD WIDTH=500>
<P>
// replace list for bad words if one isn't going to use the badwordfunc that I placed in wikka....
// badword array for replacing badwords (not initialized as currently using added function in wakka.php)
//$badwords = Array ('/motherfucker/i', '/cunt/i', '/fuck/i', '/cocksucker/i', '/bitch/i', '/son of a bitch/i', '/asshole/i', '/shit/i', '/fag/i', '/wank/i', '/dick/i', '/pussy/i', '/bastard/i', '/molester/i', '/molezter/i', '/cock/i');
//$changeto = '****';
// gets username
$username = $this->GetUserName();
// kasper
// NOTE VERY IMPORTANT, if the table is totally empty the function will not work, you
// must add one in maually, for this function to work
// I could add it in the code but very messy, will come up with better way.
$dayschedule = $_POST['dayscheduleX'];
$dayschedule = BadWordFunc($dayschedule);
// replace above function call with line below if wakka.php doesn't have a bad word function code in it
//$dayschedule = preg_replace($badwords, $changeto, $dayschedule);
$query = "select * from ".$this->config['table_prefix']."scheduler";
if ($_POST['save']){
// Kasper added to delete the empty schedule
$del = "delete from ".$this->config['table_prefix']."scheduler where dayschedule = ''";
$delresult = mysql_query($del);
$up = 0;
while ($row = mysql_fetch_object($result))
{
if($row->user == $username && $row->month == $month && $row->day == $today && $row->year == $year)
{
$up = 1;
$ro = $row->id;
}
if($up == 1)
{
$query = "UPDATE ".$this->config['table_prefix']."scheduler SET dayschedule='$dayschedule' WHERE user='$username' AND id='$ro'";
$result = mysql_query($query);
}else{
$query = "INSERT into ".$this->config['table_prefix']."scheduler (user,dayschedule,month,day,year) VALUES ('$username','$dayschedule','$month','$today','$year')";
$result = mysql_query($query);
// end kasper
$dayschedule = str_replace("\n", ",", $_POST['dayschedule']);
// title over textarea box
$printowner = $username."'s Schedule for ";
$dayschedule = $this->LoadSingle("SELECT dayschedule FROM ".$this->config["table_prefix"]."scheduler WHERE user='".$username."' AND day='".$today."' AND month='".$month."' AND year='".$year."'");
$dayschedule = str_replace(",", "\n", $dayschedule[dayschedule]);
$output = str_replace(",", " ", $dayschedule[dayschedule]);
<br><b><? echo "$printowner$monthname $today, $year:"; ?></b>
<form action="" method="post">
<textarea cols="65" rows="12" name="dayscheduleX"><?php echo $dayschedule; ?></textarea>
<input type="submit" value="Submit" />
<input type="hidden" name="save" value="true" />
</form>
}
echo "<em>The Scheduler only works for logged-in users.</em>";
} ?>
</TD>
The one **idosyncracy** that I know of....when you "empty" a day and press the submit button, you cannot (for reasons I cannot figure out) re-enter data into that day. The first time you do so it disappears, but the second time it is entered in the database. Also, the current implementation checks for "bad words" using a function placed in wikka.php (code below). If you don't want to do that, you can comment out the reference to the function....and if you want to erase "bad words" (I work with kids remember) then you can uncomment the search/replace function. Feel free to add/modify/improve if you play with this. Oh, and you might have to manually enter one line in the database table before you use the function (comments from mark suggest this, altho' I don't know why and it's too late to test).
The following code is placed around line 25 (after the get microtime function) in wakka.php
// GMB remove bad word filter
function BadWordFunc($RemoveBadWordText) {
$RemoveBadWordText = eregi_replace("fuc?k|[kc]unt|motherfucker|cocksucker|bitch|son of a bitch|asshole|shit|fag|wank|dick|pu[zs]?[zs][yi]|bastard|s[kc]rew|mole[zs]ter|mole[sz]t|coc?k", "****", $RemoveBadWordText);
return $RemoveBadWordText;


Revision [2945]

Edited on 2004-12-07 23:41:04 by GmBowen [minor edit]
Additions:
""<small>[<A HREF="http://wikka.jsnx.com/GmBowen/showcode">Show Code</A>]</small>""
Deletions:
""<small>[<A HREF="http://wikka.jsnx.com/GmBowen/showpagecode">Show Code</A>]</small>""


Revision [2944]

Edited on 2004-12-07 23:37:56 by GmBowen [minor edit]
Additions:
place ##showpagecode.php## in the actions directory
''Ah, I see what your suggestion is now...and I can see for you guys how that would suit your purposes. From my perspective tho', that might need an ACLS feature then because there are some pages I'll code that I won't want them to see the code for....like, for instance, whatever I've called the action to automatically erase the history (see above).....I don't actually want them to know the name of that file because I don't want them being able to erase their own history''....I've subsequently solved this (see below) by having the "action" call for that file removed from the code being displayed through a simple modification of Jason's ShowPageCodeHandler -- Mike
I've modified Jason's modification to ignore a couple of files...and to add a return link and a bit of a title (so it works more transparently with the action described below...).....now called ##showcode.php## and placed in the handlers directory
Deletions:
''Ah, I see what your suggestion is now...and I can see for you guys how that would suit your purposes. From my perspective tho', that might need an ACLS feature then because there are some pages I'll code that I won't want them to see the code for....like, for instance, whatever I've called the action to automatically erase the history (see above).....I don't actually want them to know the name of that file because I don't want them being able to erase their own history''....I've subsequently solved this (see below) by having the "action" call for that file removed from the code being displayed through a simple modification of Jason's showpagecode handler -- Mike
I've modified Jason's modification to ignore a couple of files...and to add a return link and a bit of a title (so it works more transparently with the action described below...).


Revision [2917]

Edited on 2004-12-07 14:50:31 by GmBowen [minor comment]
Additions:
For a "user resources" page we created an action that would just list the graphical images in the directory (and let the user delete them if so desired).....**needs code added so ONLY works for registered & logged in user** (otherwise for unregistered users writes errors into the server logs)
Deletions:
For a "user resources" page we created an action that would just list the graphical images in the directory (and let the user delete them if so desired).....


Revision [2871]

Edited on 2004-12-06 03:53:41 by GmBowen [search for pages owned by others for addition to textsearch.php]
Additions:
$count = 0;
if ($count < 1)
echo "(oops, no pages yet)";
Deletions:
$count = "0";


Revision [2870]

Edited on 2004-12-06 03:28:37 by GmBowen [search for pages owned by others for addition to textsearch.php]
Additions:
Somebody, somewhere mentioned that they were interested in searching for pages owned by a particular user. I thought, why re-invent the whole wheel, and wrote some code that'll be part of the search page. It only shows results **IF** it's a user name that's entered (so, you'll see output for the presence in **comments**, in **pages**, and for page **ownership** with a single search).
The following is added at the **BOTTOM** of the ##textsearch.php## file....
Deletions:
Somebody, somewhere mentioned that they were interested in searching for pages owned by a particular user. I thought, why invent the wheel, and wrote some code that'll be part of the search engine. It only shows results IF it's a user name that's entered (so, you'll see presence in **comments**, presence in **pages**, and page **ownership** with a single search)
The following is added at the BOTTOM of the ##textsearch.php## file....


Revision [2869]

Edited on 2004-12-06 03:26:45 by GmBowen [search for pages owned by others for addition to textsearch.php]
Additions:
====Search for Pages Owned====
Somebody, somewhere mentioned that they were interested in searching for pages owned by a particular user. I thought, why invent the wheel, and wrote some code that'll be part of the search engine. It only shows results IF it's a user name that's entered (so, you'll see presence in **comments**, presence in **pages**, and page **ownership** with a single search)
The following is added at the BOTTOM of the ##textsearch.php## file....
if (($phrase = $_REQUEST["phrase"]) && ($phrase = $this->LoadUser( $phrase )))
$pageowner2 = $_REQUEST["phrase"];
$site_base = $this->GetConfigValue("base_url");
$count = "0";
$query = "SELECT tag,owner,latest FROM ".$this->config['table_prefix']."pages WHERE latest = 'Y' ORDER BY tag asc";
$result = mysql_query($query);
echo "</p><strong>".$pageowner2." owns these pages.....</strong>";
$pageowner2 = strtolower($pageowner2);
echo "<BR><TABLE width='200' border='0'>";
while($row=mysql_fetch_array($result)) {
$pageowner = strtolower($row['owner']);
if ($pageowner == $pageowner2){
$count = ($count + 1);
$urltag = $site_base.$row['tag'];
echo "<TR BGCOLOR='#DDDDDD'><TD valign='top' ALIGN='center'> ".$count." </TD>";
echo "<TD ALIGN='left'> <A HREF=\"".$urltag."\">".$row['tag']."</a> </TD>";
echo "</TR>";
echo "</table>";
""<small>[<A HREF="http://wikka.jsnx.com/GmBowen/showpagecode">Show Code</A>]</small>""
Deletions:
""<small>[<A HREF="http://wikka.jsnx.com/GmBowen/showpagecode">Show Code</A>]</small>""


Revision [2820]

Edited on 2004-12-04 01:09:06 by GmBowen [update of erase history action]
Additions:
@@[GmBowenCalendar] [GmBowenCounter] [GmBowenRecentEditCheck] [GmBowenUnitConverter][Mod041fPageIndexByLetter][GmBowenAdminPageControlTool]@@
Deletions:
@@[GmBowenCalendar] [GmBowenCounter] [GmBowenRecentEditCheck] [GmBowenUnitConverter][Mod041fPageIndexByLetter]@@


Revision [2819]

Edited on 2004-12-04 01:06:45 by GmBowen [update of erase history action]
Additions:
When I'm developing pages I find I generate lots of "history" that I don't care to remain in the database. Or, as is sometimes the case, sometimes some of the actions I'm developing cause the "history" feature to crap out. Rather than just erasing the rows manually, I thought it might be easier to do it from a simple menu. Another way this is useful for me is that I might have users who write "inappropriate" information in the wiki (racist, sexist etc) and I'd like to be able to easily expunge the record for this (I know, I know, this is anti-wiki....but things are different when you're working at a publicly funded institution and providing a site for kids to use). One action automatically erases history every time the page loads (for the "flakey" actions I've developed that cause the history feature to blow up (the task manager we're working on, for instance)). The other code (see GmBowenAdminPageControlTool now) is to support an administrator being able to delete the history of a page by clicking on a button.
//**auto erasing**// of history.....has the potential to be a security risk. The admin should probably name the file something obscure, place it in the actions directory, and then enter the file name into the showpagecode.php and pagecode.php actions (so that the filename is not displayed when those actions are used).
ANOTHER approach is to have an Erase History feature included as part of the footer code (for Admins only)....(moved to GmBowenAdminPageControlTool and extended in functionality to include "page hiding" and page erasing)
Deletions:
When I'm developing pages I find I generate lots of "history" that I don't care to remain in the database. Or, as is sometimes the case, sometimes some of the actions I'm developing cause the "history" feature to crap out. Rather than just erasing the rows manually, I thought it might be easier to have a couple of actions. The first one is one that can be embedded on the page and only erases history if an administrator clicks on the "erase history" button (otherwise it shows text saying only an administrator can use the action). Another way this is useful for me is that I might have kids who write "inappropriate" information in the wiki (racist, sexist etc) and I'd like to be able to easily expunge the record for this (I know, I know, this is anti-wiki....but things are different when you're working at a publicly funded institution and providing a site for kids to use). The second action automatically erases history every time the page loads (for the "flakey" actions I've developed that cause the history feature to blow up (the task manager we're working on, for instance)). I think the second is a bit of a "security risk" wrt wiki users using it, so I'd suggest calling it something that is non-obvious and embedding it only on pages that you don't care to have history for and that nobody else has write-access to.
// code developed by GMBowen & JGoguen to allow admins to erase history on a given page
if ($this->IsAdmin())
echo '<table><tr><td><form action="" method="post">
<input type="submit" name="erasehistory" value="Erase History of Page"></td></table> <br /></form>';
if ($_POST['erasehistory'] && $this->IsAdmin())
elseif ($_POST['erasehistory'] && !$this->IsAdmin())
echo "<i>History can only be erased by an administrator.</i>";
auto erasing of history.....
ANOTHER approach is to have an Erase History feature included as part of the footer code (for Admins only)....
code for php script adminerasehistory.php
// code developed by GMBowen & JGoguen to allow admins to erase history on a given page
if ($this->IsAdmin())
echo '<table><tr><td><form action="" method="post">
<input type="submit" name="erasehistory" value="Erase History of Page"></td></table> <br /></form>';
if ($_POST['erasehistory'] && $this->IsAdmin())
and the following code was added at the bottom of the footer.php script....
<? if ($this->IsAdmin())
{include("adminerasehistory.php");} ?>


Revision [2791]

Edited on 2004-12-03 00:50:33 by GmBowen [entered code for searching comments]
Additions:
And the following function added to ##wakka.php## (I added it right under the one for textsearch)**[SEE NOTE BELOW]**
**NOTE:** On the server running MYSQL 3.23.56 this code works just fine. But on a more recent version of MYSQL (4.0.20) it crashes. To make it work there one must remove the "If" statement (and all code in it) that checks the MYSQL version. Doesn't make any sense to me since the same code is in the page text search code and work there, but at least it works searching comments if I take it out. Note that the code still needs work....if the search word appears in 3 comments, then the pagename is listed 3 times. I tried to figure out how to get a MYSQL filter ("distinct") take care of this, but had no luck.
Deletions:
And the following function added to ##wakka.php## (I added it right under the one for textsearch)


Revision [2784]

Edited on 2004-12-02 20:29:50 by GmBowen [entered code for searching comments]
Additions:
""<small>[<A HREF="http://wikka.jsnx.com/GmBowen/showpagecode">Show Code</A>]</small>""


Revision [2782]

Edited on 2004-12-02 20:19:26 by GmBowen [code to enable comment searching]
Additions:
</td></tr></table>


Revision [2781]

Edited on 2004-12-02 20:08:32 by GmBowen [added code for searching comments]
Additions:
This code was used to replace the code in ##textsearch.php## and provides a separate listing for the pages and the comments (in two different columns)...
<table border="0" cellpadding="5" cellspacing="0" width="100%"><tr><td valign="top">
print("No pages contained the word(s) \"$phrase\". :-(");
</td><td valign="top"><img src="/icons/blank.png" alt=" " width="10" height="1"></td><td valign="top">
print("<strong>Search results for comments containing \"$phrase\":</strong><br /><br />\n");
print("No comments contained the word(s) \"$phrase\". :-(");
Deletions:
This code was used to replace the code in ##textsearch.php## and provides a separate listing for the pages and the comments...
print("No results for \"$phrase\". :-(");
print("<hr><strong>Search results for comments containing \"$phrase\":</strong><br /><br />\n");
//$link = $this->Link($page_tag["page_tag"]); //."&show_comments=1#comments"
//echo $link2;
// print(($i+1).". "."test"."<br />\n");
// print("<BR>Not sure which page to choose?<BR>Try the <a href=\"".$this->href("", "TextSearchExpanded", "phrase=$phrase")."\">Expanded Text Search</a> which shows surrounding text.");
print("No comments contained the phrase \"$phrase\". :-(");


Revision [2780]

Edited on 2004-12-02 19:59:45 by GmBowen [added code for searching comments]
Additions:
This code was used to replace the code in ##textsearch.php## and provides a separate listing for the pages and the comments...
$results = $this->FullTextSearch($phrase);
foreach ($results as $i => $page)
print(($i+1).". ".$this->Link($page["tag"])."<br />\n");
print("<BR>Not sure which page to choose?<BR>Try the <a href=\"".$this->href("", "TextSearchExpanded", "phrase=$phrase")."\">Expanded Text Search</a> which shows surrounding text.");
print("No results for \"$phrase\". :-(");
print("<hr><strong>Search results for comments containing \"$phrase\":</strong><br /><br />\n");
Deletions:
This code saved in the action directory as ##commentsearch.php##... (which you need to place on a page to be able to search)
<td>This page is used to search the Comments on pages. It will return a list of page names that have comments with the term.</p></td>


Revision [2778]

Edited on 2004-12-02 18:32:42 by GmBowen [adding code for a comment search action]
Additions:
=====Comment Search=====
As per my remarks on WikkaDevelopment, I think a "search comments" feature needs to be returned to wikka. Until a formal re-working of this, I present the following solution.....
This code saved in the action directory as ##commentsearch.php##... (which you need to place on a page to be able to search)
<?php echo $this->FormOpen("", "", "GET") ?>
<td>This page is used to search the Comments on pages. It will return a list of page names that have comments with the term.</p></td>
<td>Search for: </td>
<td><input name="phrase" size="35" value="<?php echo htmlspecialchars($_REQUEST["phrase"]) ?>" class="searchbox" /> <input type="submit" value="Search" class="btn" /></td>
<?php echo $this->FormClose();
if ($phrase = $_REQUEST["phrase"])
print("<br />");
$results = $this->CommentTextSearch($phrase);
if ($results)
print("<strong>Search results for pages containing \"$phrase\":</strong><br /><br />\n");
foreach ($results as $i => $page_tag)
//$link = $this->Link($page_tag["page_tag"]); //."&show_comments=1#comments"
$link = "<a href=".$this->GetConfigValue("base_url").$page_tag["page_tag"]."&show_comments=1#comments>".$page_tag["page_tag"]."</a>";
//echo $link2;
print(($i+1).". ".$link."<br />\n");
// print(($i+1).". "."test"."<br />\n");
// print("<BR>Not sure which page to choose?<BR>Try the <a href=\"".$this->href("", "TextSearchExpanded", "phrase=$phrase")."\">Expanded Text Search</a> which shows surrounding text.");
print("No comments contained the phrase \"$phrase\". :-(");
And the following function added to ##wakka.php## (I added it right under the one for textsearch)
function CommentTextSearch($phrase)
$data = "";
if ($this->CheckMySQLVersion(4,00,01))
{
$data = $this->LoadAll("(select * from "
.$this->config["table_prefix"]
."comments where page_tag like('%".mysql_escape_string($phrase)."%'))
UNION (select * from ".$this->config["table_prefix"]
."comments where match(page_tag, comment) against('".mysql_escape_string($phrase)."'))");
/* if no results perform a more general search */
if (!$data) {
$data = $this->LoadAll("select * from "
.$this->config["table_prefix"]
."comments where (page_tag like '%".mysql_escape_string($phrase)."%' or
comment like '%".mysql_escape_string($phrase)."%')
order by time DESC");
return($data);
Feel free to adapt and modify as you'd like.


Revision [2664]

Edited on 2004-11-30 06:39:44 by GmBowen [modifications of Jason's showpagecode handler...]
Additions:
I've modified Jason's modification to ignore a couple of files...and to add a return link and a bit of a title (so it works more transparently with the action described below...).
Echo "<strong>This is the wiki code that generated the original page....</strong></p>";
<P><small>[</small><A HREF="<? echo $site_base; ?>"><small><strong>Return To Original Page</strong></small></A><small>]</small></P>%%
And I wrote a small action (to go in the actions directory) that can be placed on a page to provide a link to call the code output (which I've called showpagecode.php)....
Deletions:
I've modified Jason's modification to ignore a couple of files...
And wrote a small action that can be placed on a page to provide a link to call the code output (which I've called showpagecode.php)....


Revision [2663]

Edited on 2004-11-30 06:15:12 by GmBowen [altering bits for showpagecode action & handler]
Additions:
One of our first modifications was completed by my programming guy (Mark Kasper) in June '04 and was a modification of the pageindex.php code that has now been modified and incorporated into wikka as part of the release [Mod041fPageIndexByLetter] .....it should make the wiki's more useable for high-use sites because it provides a letter index for pageindex.php. It can either be used as usual, ""{{pageindex}}"", or using a parameter indicating which letter you would like to see a listing for (for example, ""{{pageindex start="a"}}""...or whatever letter you wish to show a listing for). If you enter a letter that there is not yet a listing for, then it defaults to "all".
Deletions:
One of our first modifications was completed by my programming guy (Mark Kasper) in June '04 and was a modification of the pageindex.php code that has now been modified and incorporated into wikka as part of the release [Mod041fPageIndexByLetter] .....it should make the wiki's more useable for high-use sites because it provides a letter index for pageindex.php. It can either be used as usual, ""{{pageindex}}"", or using a parameter indicating which letter you would like to see a listing for (for example, ""{{pageindex start="a"}}""...or whatever letter you wish to show a listing for). If you enter a letter that there is not yet a listing for, then it defaults to "all".


Revision [2662]

Edited on 2004-11-30 06:13:51 by GmBowen [altering bits for showpagecode action & handler]
Additions:
Sometimes I want to know how the page creator did something in wikka code (like, how does Jason make the HomePage here so that there's that wizard lined up parallel with the text)...but the page isn't "open" for editing so I can't (logic being, that if users wanted to know they could note that in the comments and the page author could add the action eh). So, I hacked together this little action (it's kinda at the starting phase) so that it was possible for me to drop it in at the end of a page and let the reader see how the coding was done (my site is for kids remember....so "by example" will be better for many of them than a "how to" sheet....see what I mean at http://131.202.167.33/wiki/wakka.php?wakka=ExampleHomePage ). Another version (farther down) is available as a link so that the page code is visible (it requires the showpagecode.php handler code to be in the handler directory).
Deletions:
Sometimes I want to know how the page creator did something in wikka code (like, how does Jason make the HomePage here so that there's that wizard lined up parallel with the text)...but the page isn't "open" for editing so I can't (logic being, that if users wanted to know they could note that in the comments and the page author could add the action eh). So, I hacked together this little action (it's kinda at the starting phase) so that it was possible for me to drop it in at the end of a page and let the reader see how the coding was done (my site is for kids remember....so "by example" will be better for many of them than a "how to" sheet....see what I mean at http://131.202.167.33/wiki/wakka.php?wakka=ExampleHomePage ). Ultimately I intend to make this a "link" (or a small graphic on the page) so that the code "pops up" into a small window with a "close" button (this is a javascripting thing, probably that I have to put into the header file, that I don't know how to do yet) so they can just see the code when/if they want to (right now it's awkward eh....and can make a page quite long). I also have to figure out how to get it so the "read" of the database & how it's shown **maintains the line-wraps** shown in the wiki code there....I'm kinda stymied on that one right now (so it's not easy to look at). I was pretty impressed with myself that I could figure out how to remove the ""{{showcode}}"" code from the shown code.....LOL...and it's flexible enough that if there are other things I want removed I can do that too. Remember, this is just a start....


Revision [2661]

Edited on 2004-11-30 06:03:49 by GmBowen [altering bits for showpagecode action & handler]
Additions:
And wrote a small action that can be placed on a page to provide a link to call the code output (which I've called showpagecode.php)....
Deletions:
And wrote a small action that can be placed on a page to automatically call the code when a link is clicked on (which I've called showpagecode.php)....
which you can see in action here....{{showpagecode}}


Revision [2660]

Edited on 2004-11-30 06:02:54 by GmBowen [altering bits for showpagecode action & handler]
Additions:
which you can see in action here....{{showpagecode}}


Revision [2659]

Edited on 2004-11-30 06:01:43 by GmBowen [altering bits for showpagecode action & handler]
Additions:
''Ah, I see what your suggestion is now...and I can see for you guys how that would suit your purposes. From my perspective tho', that might need an ACLS feature then because there are some pages I'll code that I won't want them to see the code for....like, for instance, whatever I've called the action to automatically erase the history (see above).....I don't actually want them to know the name of that file because I don't want them being able to erase their own history''....I've subsequently solved this (see below) by having the "action" call for that file removed from the code being displayed through a simple modification of Jason's showpagecode handler -- Mike
So, I'm adding an handler to the standard Wikka distribution that does what you are looking for. See Mod042fShowPageCodeHandler :) -- JsnX (''thanks Jason'')
Deletions:
''Ah, I see what your suggestion is now...and I can see for you guys how that would suit your purposes. From my perspective tho', that might need an ACLS feature then because there are some pages I'll code that I won't want them to see the code for....like, for instance, whatever I've called the autoerasehistory action (see above).....I don't actually want them to know the name of that file because I don't want them being able to erase their own history'' -- Mike
So, I'm adding an handler to the standard Wikka distribution that does what you are looking for.
See Mod042fShowPageCodeHandler
Check http://wikka.jsnx.com/HomePage/showpagecode to see it in action! :) -- JsnX
and it **almost** works....if I leave "echo $body;" commented out then it'll enter the pagename into a popup window when you click on the ""ShowCode"" link on a page (when you put the showcode.php action on it). But, as soon as you un-comment the "echo $body;" then it starts giving me the error popup (for a code problem) and doesn't work at all. I've mucked with this forever and it's ALMOST working....I don't get it, cuz the database call works if it's put directly into an action (as the earlier example showed). Anybody have any ideas?? (when this is solved, I'm going to try and put the script code into the showcode.php file so it'll only access the database on pages where people want to provide this feature, and not all the time like it currently does when in the header) --Mike


Revision [2658]

Edited on 2004-11-30 05:58:30 by GmBowen [altering bits for showpagecode action & handler]
Additions:
$ignorecode = Array ('/{{simpleshowcode}}/i', '/{{showpagecode}}/i');
I've modified Jason's modification to ignore a couple of files...
if ($this->HasAccess("read") && $this->page) {
// display raw page, slightly formatted for viewing
$ignorecode = Array ('/{{nameoffiletoerasehistory}}/i', '/{{showpagecode}}/i');
print(nl2br(htmlspecialchars($thisbody, ENT_QUOTES)));
And wrote a small action that can be placed on a page to automatically call the code when a link is clicked on (which I've called showpagecode.php)....
<? $site_base = $this->GetConfigValue("base_url").$this->GetPageTag();?>
<P><small>[</small><A HREF="<? echo $site_base."/showpagecode"; ?>"><small>ShowCode</small></A><small>]</small></P>
Deletions:
$ignorecode = Array ('/{{simpleshowcode}}/i');
Further Development....
I can add this code into the header file (as a function, just under where the function fkeydown ends)
function showcode_window() {
myWindow = window.open("", "tinyWindow", 'width=350,height=500')
myWindow.document.write("<?php
echo $thispage;
$sql = "SELECT body FROM ".$this->config["table_prefix"]."pages WHERE tag='$thispage' AND latest='Y'";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result))
{
extract ($row);
//echo $body;
?>")
myWindow.document.bgColor="lightblue"
myWindow.document.close();
}
and this code into the actions directory (as showcode.php)
<P><A HREF="" onclick="showcode_window(''); return false;"><small>[ShowCode]</small></A></P>


Revision [2656]

Edited on 2004-11-30 02:03:03 by GmBowen [minor modification of the ShowPageCode action...]
Additions:
$ignorecode = Array ('/{{simpleshowcode}}/i');
<TABLE BORDER=1 WIDTH="90%">
<TD>
<P>The wiki code which generated this page...</P>
</TD>
<TD BGCOLOR="#FFFFCC">
<P>
<?php
$thisbody = preg_replace($ignorecode, $changeto, $this->page["body"]);
print(nl2br(htmlspecialchars($thisbody, ENT_QUOTES))); ?>
</TD>
(thanks to Jason who showed me a much much simpler way of accessing the body code....I gotta learn more about the functions etc in wikka)
Deletions:
$ignorecode = Array ('/{{showcode}}/i');
$result = mysql_query($sql) or die("Unable to process query: " . mysql_error());
while ($row = mysql_fetch_array($result))
{
extract ($row);
<TABLE BORDER=1 WIDTH="80%">
<TD>
<P>The code which has generated this page...</P>
</TD>
<TD BGCOLOR="#FFFFCC">
<P>
$body = preg_replace($ignorecode, $changeto, $body);
echo $body; ?>
</TD>


Revision [2653]

Edited on 2004-11-30 01:24:33 by JsnX [added link to Mod042fShowPageCodeHandler]
Additions:
See Mod042fShowPageCodeHandler
Deletions:
handlers/page/showpagecode.php
%%(php) <?php
if ($this->HasAccess("read")) {
if (!$this->page) {
return;
} else {
// display raw page, slightly formatted for viewing
print(nl2br(htmlspecialchars($this->page["body"], ENT_QUOTES)));
} else {
return;


Revision [2648]

Edited on 2004-11-30 00:54:28 by JsnX [handlers/page/showpagecode.php]
Additions:
JsnX says: It's interesting to me above you say that "like, how does Jason make the HomePage here so that there's that wizard lined up parallel with the text". It's interesting because Hendrik Mans used to have a hotscripts.com voting dropdown on the Wakka homepage and I used to wonder how he did it. I never did find out how he did it....
So, I'm adding an handler to the standard Wikka distribution that does what you are looking for.
handlers/page/showpagecode.php
%%(php) <?php
if ($this->HasAccess("read")) {
if (!$this->page) {
return;
} else {
// display raw page, slightly formatted for viewing
print(nl2br(htmlspecialchars($this->page["body"], ENT_QUOTES)));
} else {
return;
Check http://wikka.jsnx.com/HomePage/showpagecode to see it in action! :) -- JsnX


Revision [2647]

Edited on 2004-11-30 00:31:34 by GmBowen [turning ShowCode into a popup....improvements but still a problem]
Additions:
<P><A HREF="" onclick="showcode_window(''); return false;"><small>[ShowCode]</small></A></P>
and it **almost** works....if I leave "echo $body;" commented out then it'll enter the pagename into a popup window when you click on the ""ShowCode"" link on a page (when you put the showcode.php action on it). But, as soon as you un-comment the "echo $body;" then it starts giving me the error popup (for a code problem) and doesn't work at all. I've mucked with this forever and it's ALMOST working....I don't get it, cuz the database call works if it's put directly into an action (as the earlier example showed). Anybody have any ideas?? (when this is solved, I'm going to try and put the script code into the showcode.php file so it'll only access the database on pages where people want to provide this feature, and not all the time like it currently does when in the header) --Mike
Deletions:
<P><A HREF="" onclick="showcode_window(''); return false;"><tiny>ShowCode</tiny></A></P>
and it **almost** works....if I leave "echo $body;" commented out then it'll enter the pagename into a popup window when you click on the ""ShowCode"" link on a page (when you put the showcode.php action on it). But, as soon as you un-comment the "echo $body;" then it starts giving me the error popup (for a code problem) and doesn't work at all. I've mucked with this forever and it's ALMOST working. Anybody have any ideas?? (when this is solved, I'm going to try and put the script code into the showcode.php file so it'll only access the database on pages where people want to provide this feature, and not all the time like it currently does when in the header) --Mike


Revision [2644]

Edited on 2004-11-29 23:59:13 by GmBowen [turning ShowCode into a popup....improvements but still a problem]
Additions:
Further Development....
I can add this code into the header file (as a function, just under where the function fkeydown ends)
function showcode_window() {
myWindow = window.open("", "tinyWindow", 'width=350,height=500')
myWindow.document.write("<?php
echo $thispage;
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result))
{
extract ($row);
//echo $body;
?>")
myWindow.document.bgColor="lightblue"
myWindow.document.close();
}
and this code into the actions directory (as showcode.php)
<P><A HREF="" onclick="showcode_window(''); return false;"><tiny>ShowCode</tiny></A></P>
and it **almost** works....if I leave "echo $body;" commented out then it'll enter the pagename into a popup window when you click on the ""ShowCode"" link on a page (when you put the showcode.php action on it). But, as soon as you un-comment the "echo $body;" then it starts giving me the error popup (for a code problem) and doesn't work at all. I've mucked with this forever and it's ALMOST working. Anybody have any ideas?? (when this is solved, I'm going to try and put the script code into the showcode.php file so it'll only access the database on pages where people want to provide this feature, and not all the time like it currently does when in the header) --Mike


Revision [2643]

Edited on 2004-11-29 18:32:10 by GmBowen [reply to DarTar]
Additions:
''Ah, I see what your suggestion is now...and I can see for you guys how that would suit your purposes. From my perspective tho', that might need an ACLS feature then because there are some pages I'll code that I won't want them to see the code for....like, for instance, whatever I've called the autoerasehistory action (see above).....I don't actually want them to know the name of that file because I don't want them being able to erase their own history'' -- Mike


Revision [2638]

Edited on 2004-11-29 16:14:07 by DarTar [Replying to GMBowen]
Additions:
''Mike, the idea is intriguing: I proposed something in this direction in this draft for [[IncludeRemote fetching online Wikka Documentation]].
Basically, if a //rawcontent// method (identical to the current //raw// method, but with header and footer //stripped//) is available, you can get the source of the page by simply appending "/rawcontent" to the pagename (much as you append "/edit" to edit the page). -- DarTar''


Revision [2636]

Edited on 2004-11-29 16:01:45 by GmBowen [code to "show page code"....]
Additions:
Sometimes I want to know how the page creator did something in wikka code (like, how does Jason make the HomePage here so that there's that wizard lined up parallel with the text)...but the page isn't "open" for editing so I can't (logic being, that if users wanted to know they could note that in the comments and the page author could add the action eh). So, I hacked together this little action (it's kinda at the starting phase) so that it was possible for me to drop it in at the end of a page and let the reader see how the coding was done (my site is for kids remember....so "by example" will be better for many of them than a "how to" sheet....see what I mean at http://131.202.167.33/wiki/wakka.php?wakka=ExampleHomePage ). Ultimately I intend to make this a "link" (or a small graphic on the page) so that the code "pops up" into a small window with a "close" button (this is a javascripting thing, probably that I have to put into the header file, that I don't know how to do yet) so they can just see the code when/if they want to (right now it's awkward eh....and can make a page quite long). I also have to figure out how to get it so the "read" of the database & how it's shown **maintains the line-wraps** shown in the wiki code there....I'm kinda stymied on that one right now (so it's not easy to look at). I was pretty impressed with myself that I could figure out how to remove the ""{{showcode}}"" code from the shown code.....LOL...and it's flexible enough that if there are other things I want removed I can do that too. Remember, this is just a start....
Deletions:
Sometimes I want to know how the page creator did something in wikka code (like, how does Jason make the HomePage here so that there's that wizard lined up parallel with the text)...but the page isn't "open" for editing so I can't (logic being, that if users wanted to know they could note that in the comments and the page author could add the action eh). So, I hacked together this little action (it's kinda at the starting phase) so that it was possible for me to drop it in at the end of a page and let the reader see how the coding was done (my site is for kids remember....so "by example" will be better for many of them than a "how to" sheet....see what I mean at http://131.202.167.33/wiki/wakka.php?wakka=ExampleHomePage ). Ultimately I intend to make this a "link" (or a small graphic on the page) so that the code "pops up" into a small window with a "close" button (this is a javascripting thing, probably that I have to put into the header file, that I don't know how to do yet) so they can just see the code when/if they want to (right now is awkward eh....and can make a page quite long). I also have to figure out how to get it so the "read" of the database maintains the line-wrap shown in the wiki code there. I was pretty impressed with myself that I could figure out how to remove the ""{{showcode}}"" code from the shown code.....LOL. Remember, this is just a start....


Revision [2635]

Edited on 2004-11-29 15:59:07 by GmBowen [code to "show page code"....]
Additions:
Sometimes I want to know how the page creator did something in wikka code (like, how does Jason make the HomePage here so that there's that wizard lined up parallel with the text)...but the page isn't "open" for editing so I can't (logic being, that if users wanted to know they could note that in the comments and the page author could add the action eh). So, I hacked together this little action (it's kinda at the starting phase) so that it was possible for me to drop it in at the end of a page and let the reader see how the coding was done (my site is for kids remember....so "by example" will be better for many of them than a "how to" sheet....see what I mean at http://131.202.167.33/wiki/wakka.php?wakka=ExampleHomePage ). Ultimately I intend to make this a "link" (or a small graphic on the page) so that the code "pops up" into a small window with a "close" button (this is a javascripting thing, probably that I have to put into the header file, that I don't know how to do yet) so they can just see the code when/if they want to (right now is awkward eh....and can make a page quite long). I also have to figure out how to get it so the "read" of the database maintains the line-wrap shown in the wiki code there. I was pretty impressed with myself that I could figure out how to remove the ""{{showcode}}"" code from the shown code.....LOL. Remember, this is just a start....
Deletions:
Sometimes I want to know how the page creator did something in wikka code (like, how does Jason make the HomePage here so that there's that wizard lined up parallel with the text)...but the page isn't "open" for editing so I can't (logic being, that if users wanted to know they could note that in the comments and the page author could add the action eh). So, I hacked together this little action (it's kinda at the starting phase) so that it was possible for me to drop it in at the end of a page and let the reader see how the coding was done (my site is for kids remember....so "by example" will be better for many of them than a "how to" sheet....see what I mean at http://131.202.167.33/wiki/wakka.php?wakka=ExampleHomePage). Ultimately I intend to make this a "link" (or a small graphic on the page) so that the code "pops up" into a small window with a "close" button (this is a javascripting thing, probably that I have to put into the header file, that I don't know how to do yet) so they can just see the code when/if they want to (right now is awkward eh....and can make a page quite long). I also have to figure out how to get it so the "read" of the database maintains the line-wrap shown in the wiki code there. I was pretty impressed with myself that I could figure out how to remove the ""{{showcode}}"" code from the shown code.....LOL. Remember, this is just a start....


Revision [2634]

Edited on 2004-11-29 15:57:40 by GmBowen [code to "show page code"....]
Additions:
=====Show Code=====
Sometimes I want to know how the page creator did something in wikka code (like, how does Jason make the HomePage here so that there's that wizard lined up parallel with the text)...but the page isn't "open" for editing so I can't (logic being, that if users wanted to know they could note that in the comments and the page author could add the action eh). So, I hacked together this little action (it's kinda at the starting phase) so that it was possible for me to drop it in at the end of a page and let the reader see how the coding was done (my site is for kids remember....so "by example" will be better for many of them than a "how to" sheet....see what I mean at http://131.202.167.33/wiki/wakka.php?wakka=ExampleHomePage). Ultimately I intend to make this a "link" (or a small graphic on the page) so that the code "pops up" into a small window with a "close" button (this is a javascripting thing, probably that I have to put into the header file, that I don't know how to do yet) so they can just see the code when/if they want to (right now is awkward eh....and can make a page quite long). I also have to figure out how to get it so the "read" of the database maintains the line-wrap shown in the wiki code there. I was pretty impressed with myself that I could figure out how to remove the ""{{showcode}}"" code from the shown code.....LOL. Remember, this is just a start....
// if there is any code you want to be ignored by this action
$ignorecode = Array ('/{{showcode}}/i');
$changeto = ' ';
$sql = "SELECT body FROM ".$this->config["table_prefix"]."pages WHERE tag='$thispage' AND latest='Y'";
$result = mysql_query($sql) or die("Unable to process query: " . mysql_error());
while ($row = mysql_fetch_array($result))
{
extract ($row);
<TABLE BORDER=1 WIDTH="80%">
<TR>
<TD>
<P>The code which has generated this page...</P>
</TD>
</TR>
<TR>
<TD BGCOLOR="#FFFFCC">
<P>
$body = preg_replace($ignorecode, $changeto, $body);
echo $body; ?>
</P>
</TD>
</TR>
</TABLE>


Revision [2504]

Edited on 2004-11-26 18:29:05 by GmBowen [updated info on language translation...]
Additions:
One of our first modifications was completed by my programming guy (Mark Kasper) in June '04 and was a modification of the pageindex.php code that has now been modified and incorporated into wikka as part of the release [Mod041fPageIndexByLetter] .....it should make the wiki's more useable for high-use sites because it provides a letter index for pageindex.php. It can either be used as usual, ""{{pageindex}}"", or using a parameter indicating which letter you would like to see a listing for (for example, ""{{pageindex start="a"}}""...or whatever letter you wish to show a listing for). If you enter a letter that there is not yet a listing for, then it defaults to "all".
Deletions:
One of our first modifications was completed by my programming guy (Mark Kasper) in June '04 and was a modification of the pageindex.php code that has now been modified and incorporated into wikka as part of the release [Mod041fPageIndexByLetter] .....it should make the wiki's more useable for high-use sites because it provides a letter index for pageindex.php. It can either be used as usual, ""{{pageindex}}"", or using a parameter indicating which letter you would like to see a listing for (for example, ""{{pageindex start="a"}}""...or whatever letter you wish to show a listing for). If you enter a letter that there is not yet a listing for, then it defaults to "all".


Revision [2503]

Edited on 2004-11-26 18:27:58 by GmBowen [updated info on language translation...]
Additions:
(Thanks to [[http://tufat.com/wiki/wikka.php?wakka=HomePage FlashChatWiki]]for evidence this was possible)


Revision [2501]

Edited on 2004-11-26 18:26:24 by GmBowen [updated info on language translation]
Additions:
**Um, okay, weird. This works fine on my version of wikka 1.0.2, but not at all on 1.1.5.3 ....anybody have any sense as to why?? I'd appreciate any insights.** On further investigation, even if I go to http://babelfish.altavista.com/ and enter http://131.202.167.33/helpwiki/wikka.php?wakka=HomePage it won't translate the page, whereas if I enter http://wikka.jsnx.com/HomePage (which are both the same version of Wikka) it will translate that page. Since my using the feature that allows Jason to have the "shortform" of the web address is not an option for me (as far as I know...although I'm happy to be corrected on this), is there any solution?? [I chatted with the people at SYSTRAN who provide the engine and they say there's no reason that they know of that it shouldn't work]
Okay, hey, it works using a different "engine" for translation (google). I've put the following code into my footer.php file (and associated images in the images directory in the wiki root) and everything works just peachy. (it goes after line 44 after </div> and before <div class="smallprint">)
<?
// Added by GMB to provide language translation
echo "<a href='"."http://translate.google.com/translate?u=".$this->GetConfigValue("base_url").$this->MiniHref($method, $tag)."&show_comments=1&langpair=en%7Cfr&hl=en&ie=UTF-8&oe=UTF-8&prev=%2Flanguage_tools"."' title=\"Translate Page to French from English.\"><IMG SRC=\"./images/frflag.gif\" BORDER=0></a>";
echo "<a href='"."http://translate.google.com/translate?u=".$this->GetConfigValue("base_url").$this->MiniHref($method, $tag)."&show_comments=1&langpair=fr%7Cen&hl=en&ie=UTF-8&oe=UTF-8&prev=%2Flanguage_tools"."' title=\"Translate Page to English from French.\"><IMG SRC=\"./images/gb.png\" BORDER=0></a>";
Deletions:
**Um, okay, weird. This works fine on my version of wikka 1.0.2, but not at all on 1.1.5.3 ....anybody have any sense as to why?? I'd appreciate any insights.** On further investigation, even if I go to http://babelfish.altavista.com/ and enter http://131.202.167.33/helpwiki/wikka.php?wakka=HomePage it won't translate the page, whereas if I enter http://wikka.jsnx.com/HomePage (which are both the same version of Wikka) it will translate that page. Since my using the feature that allows Jason to have the "shortform" of the web address is not an option for me (as far as I know...although I'm happy to be corrected on this), is there any solution??


Revision [2241]

Edited on 2004-11-16 19:50:25 by GmBowen [updated info on language translation]
Additions:
@@[GmBowenCalendar] [GmBowenCounter] [GmBowenRecentEditCheck] [GmBowenUnitConverter][Mod041fPageIndexByLetter]@@
----
CategoryUsers
Deletions:
@@[GmBowenCalendar] [GmBowenCounter] [GmBowenRecentEditCheck] [GmBowenUnitConverter][Mod041fPageIndexByLetter]@@


Revision [2236]

Edited on 2004-11-16 15:35:10 by GmBowen [code for adding "erase history" button for designated admins at bottom of footer]
Additions:
ANOTHER approach is to have an Erase History feature included as part of the footer code (for Admins only)....
code for php script adminerasehistory.php
and the following code was added at the bottom of the footer.php script....
<? if ($this->IsAdmin())
{include("adminerasehistory.php");} ?>


Revision [2024]

Edited on 2004-10-26 14:26:09 by GmBowen [language translation tools....um, and an issue with wikka versions with them]

No Differences

Revision [2023]

Edited on 2004-10-26 14:25:13 by GmBowen [language translation tools....um, and an issue with wikka versions with them]
Additions:
**Um, okay, weird. This works fine on my version of wikka 1.0.2, but not at all on 1.1.5.3 ....anybody have any sense as to why?? I'd appreciate any insights.** On further investigation, even if I go to http://babelfish.altavista.com/ and enter http://131.202.167.33/helpwiki/wikka.php?wakka=HomePage it won't translate the page, whereas if I enter http://wikka.jsnx.com/HomePage (which are both the same version of Wikka) it will translate that page. Since my using the feature that allows Jason to have the "shortform" of the web address is not an option for me (as far as I know...although I'm happy to be corrected on this), is there any solution??
Deletions:
**Um, okay, weird. This works fine on my version of wikka 1.0.2, but not at all on 1.1.5.3 ....anybody have any sense as to why?? I'd appreciate any insights.**


Revision [2021]

Edited on 2004-10-26 14:08:04 by GmBowen [language translation tools....um, and an issue with wikka versions with them]
Additions:
**Um, okay, weird. This works fine on my version of wikka 1.0.2, but not at all on 1.1.5.3 ....anybody have any sense as to why?? I'd appreciate any insights.**


Revision [1979]

Edited on 2004-10-25 14:48:35 by GmBowen [language translation tools...]
Additions:
(I used the translation tool to translate into the French in the second one. If it's incorrect, please feel free to fix it)
Deletions:
(I used the translation tool to translate into the French in the second one. If it's incorrect, please feel free to fix it)


Revision [1978]

Edited on 2004-10-25 14:47:20 by GmBowen [language translation tools...]
Additions:
=====Language Translation=====
Hmmm....neat. I found that you can include two small actions that allow you to have your page translated using alta vista's SYSTRAN service. You can just include both in your actions directory. Kinda inelegant, but better than paying for your own translation service.
translateenglish.php
<hr>
<table>
<tr><strong><font size="-2">English Translation</font></strong></tr>
<tr><script language="JavaScript1.2" src="http://www.altavista.com/static/scripts/translate_engl.js"></script></tr>
<tr><font size="-2">Note that translation sometimes works better if you right-click the flag and open the translation in a new window.</font></tr>
</table>
translatefrench.php
<hr>
<table>
<tr><strong><font size="-2">Traduction Française</font></strong></tr>
<tr><script language="JavaScript1.2" src="http://www.altavista.com/static/scripts/translate_french.js"></script></tr>
<tr><font size="-2">Notez que la traduction semble fonctionner mieux si vous right-clic le drapeau et ouvrir la traduction dans une nouvelle fenêtre.</font></tr>
</table>
(I used the translation tool to translate into the French in the second one. If it's incorrect, please feel free to fix it)


Revision [1928]

Edited on 2004-10-19 14:20:59 by GmBowen [2 simple "erase history" actions & a modded mypages action]
Additions:
One of our first modifications was completed by my programming guy (Mark Kasper) in June '04 and was a modification of the pageindex.php code that has now been modified and incorporated into wikka as part of the release [Mod041fPageIndexByLetter] .....it should make the wiki's more useable for high-use sites because it provides a letter index for pageindex.php. It can either be used as usual, ""{{pageindex}}"", or using a parameter indicating which letter you would like to see a listing for (for example, ""{{pageindex start="a"}}""...or whatever letter you wish to show a listing for). If you enter a letter that there is not yet a listing for, then it defaults to "all".
Deletions:
One of our first modifications was completed by my programming guy (Mark Kasper) in June '04 and was a modification of the pageindex.php code that has now been modified and incorporated into wikka as part of the release.....it should make the wiki's more useable for high-use sites because it provides a letter index for pageindex.php. It can either be used as usual, ""{{pageindex}}"", or using a parameter indicating which letter you would like to see a listing for (for example, ""{{pageindex start="a"}}""...or whatever letter you wish to show a listing for). If you enter a letter that there is not yet a listing for, then it defaults to "all".


Revision [1923]

Edited on 2004-10-18 23:38:49 by GmBowen [2 simple "erase history" actions & a modded mypages action]
Additions:
I have a modified file-upload utility (just for graphic images)......The "upload" script is a mod of one of the ones at wakka or wikka (can't remember which)....I've made it available at http://131.202.167.33/wiki/actions/uploadimage.phps .... to use it you will of course have to change phps to php. This script only allows 10 uploaded files with the users prefix in the upload directory (although you can change that easily), and checks the wikka_users database to see (a) how many files are allowed in total and (b) what number the user is at.
The changes in the wikka_users table are adding these two fields....
For a "user resources" page we created an action that would just list the graphical images in the directory (and let the user delete them if so desired).....
Many current mods in development...a "chat" that as an embedded flash chat (vchat modded from flatfile to database)....altho' it's difficult to pass to someone else cuz the fla file needs to be edited for each website (we've not been able to solve the absolute/relative path statement issue). Another action in development is the interactive table action which is a "big" one for our interests...it is like a //*very*// simple spreadsheet tool -- an interactive table actually -- that will do sum, count, frequency & average on the column entries....but we're currently having a problem with the foreach() statement which is why we've not released it yet). As we complete various tools I'll post them here when completed. Also, I'm working on a simple scheduler partly based on GmBowenCalendar, but having problems with writing to the database consistently....but it will be useful for doing some PIM functions, and collaborating on timetables. Another thing we're working on is a wiki-based private messaging system....but that'll be awhile before it shows up as I'm trying to do it myself from more or less scratch (it'll allow kids to send messages to each other w/o using email.....a security issue eh?) to help learn programming better. As you've probably noticed, I'm trying to develop tools that are portal-like but embedded in the wiki so it can expand beyond its traditional use. We've "mostly" finished a "pagewatches" action that allows you to keep a list of pages that you're looking to see if changes have been made on. The code for the action and the table info for it will be posted soonish.....on Monday/Tuesday next..... And what's my dream with regarding the wiki?? A rich text editor choice (in addition to wikiedit)...it'll make it more user friendly for kids, but methinks that must be a hard thing to accomplish (since nobody has progressed with the idea much). -- Mike
Deletions:
I have a modified file-upload utility (just for graphic images)......The "upload" script is a mod of one of the ones at wakka or wikka (can't remember which)....I've made it available at http://131.202.167.33/wiki/actions/uploadimage.phps .... to use it you will of course have to change phps to php. This script only allows 10 uploaded files with the users prefix in the upload directory (although you can change that easily), and checks the wikka_users database to see (a) how many files are allowed in total and (b) what number the user is at. Currently, the changes in wikka_users is....
For a "resources" page we created an action that would just list the graphical images in the directory (and let the user delete them if so desired).....
Two current mods in development...a "chat" that as an embedded flash chat (vchat modded from flatfile to database)....altho' it's difficult to pass to someone else cuz the fla file needs to be edited for each website (we've not been able to solve the absolute/relative path statement issue).....and the interactive table mod (kinda a mini-spreadsheet).
The programmer is working on some other issues for me right now (most interesting is a //*very*// simple spreadsheet-like interactive table tool actually....we're currently having a problem with the foreach() statement which is why we've not released it yet). I'll post the other things my programmer is working on here when completed. Also, I'm working on a simple scheduler partly based on GmBowenCalendar, but having problems with writing to the database consistently....but will be useful for doing some PIM functions, and collaborating on timetables. Another thing we're working on is a wiki-based private messaging system....but that'll be awhile before it shows up as I'm trying to do it myself from more or less scratch (it'll allow kids to send messages to each other w/o using email.....a security issue eh?). As you've probably guessed, I'm trying to develop tools that are portal-like but embedded in the wiki so it can expand beyond its traditional use. We've "mostly" finished another action for "pagewatches".....so that you can keep a list of pages that you're looking to see if changes have been made on. The code for the action and the table info for it will be posted on Monday/Tuesday next..... What's my dream with the wiki?? A rich text editor choice (in addition to wikiedit), but methinks that must be a hard thing to accomplish (since nobody has progressed with the idea much). -- Mike


Revision [1921]

Edited on 2004-10-18 22:54:40 by GmBowen [2 simple "erase history" actions & a modded mypages action]
Deletions:
=====Mods in Development=====


Revision [1920]

Edited on 2004-10-18 22:53:02 by GmBowen [2 simple "erase history" actions & a modded mypages action]

No Differences

Revision [1919]

Edited on 2004-10-18 22:48:48 by GmBowen [2 simple "erase history" actions & a modded mypages action]
Additions:
=====Other Recent Code Releases/Submissions=====
@@[GmBowenCalendar] [GmBowenCounter] [GmBowenRecentEditCheck] [GmBowenUnitConverter][Mod041fPageIndexByLetter]@@
Deletions:
=====Other Recent Code Releases=====
@@[GmBowenCalendar] [GmBowenCounter] [GmBowenRecentEditCheck] [GmBowenUnitConverter]@@


Revision [1918]

Edited on 2004-10-18 19:30:33 by GmBowen [2 simple "erase history" actions & a modded mypages action]
Additions:
@@[GmBowenCalendar] [GmBowenCounter] [GmBowenRecentEditCheck] [GmBowenUnitConverter]@@
Deletions:
**[GmBowenCalendar] [GmBowenCounter] [GmBowenRecentEditCheck] [GmBowenUnitConverter]**


Revision [1917]

Edited on 2004-10-18 19:29:38 by GmBowen [2 simple "erase history" actions * a modded mypages action]
Additions:
The programmer is working on some other issues for me right now (most interesting is a //*very*// simple spreadsheet-like interactive table tool actually....we're currently having a problem with the foreach() statement which is why we've not released it yet). I'll post the other things my programmer is working on here when completed. Also, I'm working on a simple scheduler partly based on GmBowenCalendar, but having problems with writing to the database consistently....but will be useful for doing some PIM functions, and collaborating on timetables. Another thing we're working on is a wiki-based private messaging system....but that'll be awhile before it shows up as I'm trying to do it myself from more or less scratch (it'll allow kids to send messages to each other w/o using email.....a security issue eh?). As you've probably guessed, I'm trying to develop tools that are portal-like but embedded in the wiki so it can expand beyond its traditional use. We've "mostly" finished another action for "pagewatches".....so that you can keep a list of pages that you're looking to see if changes have been made on. The code for the action and the table info for it will be posted on Monday/Tuesday next..... What's my dream with the wiki?? A rich text editor choice (in addition to wikiedit), but methinks that must be a hard thing to accomplish (since nobody has progressed with the idea much). -- Mike
=====Other Recent Code Releases=====
**[GmBowenCalendar] [GmBowenCounter] [GmBowenRecentEditCheck] [GmBowenUnitConverter]**
Deletions:
The programmer is working on some other issues for me right now (most interesting is a //*very*// simple spreadsheet-like interactive table tool actually....we're currently having a problem with the foreach() statement which is why we've not released it yet). I'll post the other things my programmer is working on here when completed. Also, I'm working on a simple scheduler partly based on GmBowenCalendar, but having problems with writing to the database consistently....but will be useful for doing some PIM functions, and collaborating on timetables. Another thing we're working on is a wiki-based private messaging system....but that'll be awhile before it shows up as I'm trying to do it myself from more or less scratch (it'll allow kids to send messages to each other w/o using email.....a security issue eh?). As you've probably guessed, I'm trying to develop tools that are portal-like but embedded in the wiki so it can expand beyond its traditional use. We've "mostly" finished another action for "pagewatches".....so that you can keep a list of pages that you're looking to see if changes have been made on. The code for the action and the table info for it will be posted on Monday/Tuesday next..... What's my dream with the wiki?? A rich text editor choice (in addition to wikiedit), but methinks that must be a hard thing to accomplish (since nobody has progressed with the idea much). -- Mike


Revision [1916]

Edited on 2004-10-18 19:24:29 by GmBowen [2 simple "erase history" actions, & a modded mypages action]
Additions:
The action uses a javascript tool (in the actions directory on my system) that allows a "hover" window in bright red that shows that the "x" is to delete the files. The wz_tooltip.js allows "better" tooltips (in this case, more visible) & is available at http://www.walterzorn.com/tooltip/tooltip_e.htm as a free download.
Much of what we do is designed to help students work collaboratively in teams. I modified the mypages action into one that students can use as a simple menu....which I've called mypagesmenu.php .... basically it just lists the pages you own horizontally (although you can designate not having a title AND specify a menu list for a specific user....for us the latter will allow a listing of pages owned by different members all on the same project by just listing the action multiple times with different owners). It's not anything that the DarTar's & Jason's and JavaWoman's of the world couldn't do....but nine months ago I couldn't have done it myself & so I'm posting it for the more "casual" wikka user that I used to be (and, the DT's etc are welcome to do any fixes that they see necessary {grin}). -- Mike
Deletions:
The action uses a javascript tool that allows a "hover" window in bright red that shows that the "x" is to delete the files. If you search google on wz_tooltip.js you can find the source.
Much of what we do is designed to help students work collaboratively in teams. I modified the mypages action into one that students can use as a menu....which I've called mypagesmenu.php .... basically it just lists the pages you own in a different way (although you can designate not having a title AND a menu list for a specific user....for us the latter will allow a listing of pages owned by different members all on the same project by just listing the action multiple times with different owners. It's not anything that the DarTar's & Jason's and JavaWoman's of the world couldn't do....but nine months ago I couldn't have either & so I'm posting it for the more "casual" wikka user (and, the DT's etc are welcome to do any fixes that they see necessary). -- Mike


Revision [1915]

Edited on 2004-10-18 19:17:24 by GmBowen [2 simple "erase history" actions, & a modded mypages action]
Additions:
The programmer is working on some other issues for me right now (most interesting is a //*very*// simple spreadsheet-like interactive table tool actually....we're currently having a problem with the foreach() statement which is why we've not released it yet). I'll post the other things my programmer is working on here when completed. Also, I'm working on a simple scheduler partly based on GmBowenCalendar, but having problems with writing to the database consistently....but will be useful for doing some PIM functions, and collaborating on timetables. Another thing we're working on is a wiki-based private messaging system....but that'll be awhile before it shows up as I'm trying to do it myself from more or less scratch (it'll allow kids to send messages to each other w/o using email.....a security issue eh?). As you've probably guessed, I'm trying to develop tools that are portal-like but embedded in the wiki so it can expand beyond its traditional use. We've "mostly" finished another action for "pagewatches".....so that you can keep a list of pages that you're looking to see if changes have been made on. The code for the action and the table info for it will be posted on Monday/Tuesday next..... What's my dream with the wiki?? A rich text editor choice (in addition to wikiedit), but methinks that must be a hard thing to accomplish (since nobody has progressed with the idea much). -- Mike
Deletions:
The programmer is working on some other issues for me right now (other mods for wakka.....a //*very*// simple spreadsheet-like interactive table tool actually....we're currently having a problem with the foreach() statement which is why we've not released it yet). Since my system is set up to provide "personal" (user name based) image directories, we've developed a modified version of the wikka-based gallery tool so that kids can have on-line presentations of their pictures (it'll only come from their personal file areas, not on a per-page basis)). I'll post the other things my programmer is working on here when completed. Also working on a simple scheduler partly based on GmBowenCalendar, but having problems with writing to the database consistently....but will be useful for doing some PIM functions, and collaborating on timetables -- Mike
=====Other Soon-To-Be Released Actions=====
We've "mostly" finished another action for "pagewatches".....so that you can keep a list of pages that you're looking to see if changes have been made on. The code for the action and the table info for it will be posted on Monday/Tuesday next.....


Revision [1914]

Edited on 2004-10-18 19:06:57 by GmBowen [2 simple "erase history" actions & a modded mypages action]
Deletions:
?php


Revision [1913]

Edited on 2004-10-18 19:05:49 by GmBowen [2 simple "erase history" actions & a mod'd mypages action]
Additions:
The action uses a javascript tool that allows a "hover" window in bright red that shows that the "x" is to delete the files. If you search google on wz_tooltip.js you can find the source.
Deletions:
The action uses a javascript tool that allows a "hover" window to show the graphic.


Revision [1912]

Edited on 2004-10-18 19:03:27 by GmBowen [2 simple "erase history" actions & a mod'd mypages action]
Additions:
For a "resources" page we created an action that would just list the graphical images in the directory (and let the user delete them if so desired).....
?php
$dst = '../../../approvalgallery/userdeletegallery/';
if(empty($owner)){ $username = $this->GetUserName();} else {$username = $owner;}
if(empty($owner)){ $username2 = $this->GetUserName();} else {$username2 = $owner;}
$username = strtolower($username);
$fl = substr($username,0,1);
$homelink = $this->config["base_url"].$this->MiniHref($method, $tag);
$imgstr = "graphicsgallery/".$fl."/".$username."/";
$tmbstr = "thumbnailgallery/".$fl."/".$username."/";
if(!empty($_REQUEST[action])){
$file = $_REQUEST['file'];
chdir($imgstr);
unlink($file);
chdir("../../../");
chdir($tmbstr);
unlink($file);
chdir("../../../");
/// if(!empty($_REQUEST[image])){
// $file = $_REQUEST['file'];
// echo "<div align=left><img src=".$imgstr.$file."></div>";
// }
$dir = opendir($imgstr);
echo "<b>$username2's Image Files: </b>";
while ($file = readdir($dir)) {
if ($file != '.' && $file != '..') {
$num++;
if ($this->HasAccess('write')) {
// if ($this->IsAdmin()) {
$delete_link = "<a href=\"$homelink&action=delete&file=$file&tmbnail=\" onmouseover=\"this.T_WIDTH=130;this.T_BGCOLOR='#FF3300';this.T_FONTCOLOR='#000000';this.T_FONTWEIGHT='bold';return escape('Delete this image file')\">x</a>";
// $delete_link = "<a href=\"".$this->href('files.xml',$this->GetPageTag(),'action=delete&file='.urlencode($file))."\">x</a>";
} else {
$delete_link = "";
}
// <a href='$homelink&image=show&file=$file' onmouseover=\"return escape('<img src='$imgstr'.'$file'>')\">{$file}</a>
print "
<tr>
<td valign='top' align='center'>
 
{$delete_link}
{$file}
 
</td>
</tr>
";
}
- closedir($dir);
// below added by GMB
echo "<script language=\"JavaScript\" type=\"text/javascript\" src=\"./actions/wz_tooltip.js\"></script>";
// print n/a if no files currently exist
if (!$num) print "<tr><td> </td><td colspan='3' align='center'><font color='gray' size='-1'><i>You have no image files yet!</i></font></td></tr>";
else print "<tr><td> </td></tr>";
The action uses a javascript tool that allows a "hover" window to show the graphic.


Revision [1911]

Edited on 2004-10-18 18:42:10 by GmBowen [2 simple "erase history" actions & a mod'd mypages action]
Additions:
The current max allowed image upload is "30"...set at the database level. When the images are uploaded to the directory the username is concatonated to the front of the filename. I have a modified version of [[http://sourceforge.net/projects/otfgallery/ OTF Gallery]] that allows you to preview and "approve" each image and will then copy the files to a directory that exists for each individual user and strip the user name from the front of the file (this is from a modification of a registration script extraneous to Wikka that makes a directory for each registrant)""[""[[http://131.202.167.33/wiki/OTFGalleryMod.zip Modified OTF]]""]"" (note that this will require some fiddling as they were not really modified for release purposes....I've included comments about the things we've changed in the PHP scripts, but you should probably read the instructions for OTF gallery in general). Or, if you're not interested in doing that, I have a modified version of the "gallery" action available for wikka that you could change so it would just shows thumbnails of images of the logged in user and allows erasing images...currently it just goes to the users personal directory, but you could change that (my programming guy modded this so it generates thumbnails using GD....the original version of the gallery required you to generate the thumbnails yourself)""[""[[http://wiki.samuelooi.com/wikka.php?wakka=Mod02Gallery Code Available Here]]""]"". Hope this helps. If you're interested in the gallery software for wikka let me know....you'd be on your own for modifying it to only show files with the username prefix cuz my php skills aren't good enough to do those changes.
Deletions:
The current max allowed image upload is "30"...set at the database level. When the images are uploaded to the directory the username is concatonated to the front of the filename. I have a modified version of [[http://sourceforge.net/projects/otfgallery/ OTF Gallery]] that allows you to preview and "approve" each image and will then copy the files to a directory that exists for each individual user and strip the user name from the front of the file (this is from a modification of a registration script extraneous to Wikka that makes a directory for each registrant). Or, if you're not interested in doing that, I have a modified version of the "gallery" action available for wikka that you could change so it would just shows thumbnails of images of the logged in user and allows erasing images...currently it just goes to the users personal directory, but you could change that (my programming guy modded this so it generates thumbnails using GD....the original version of the gallery required you to generate the thumbnails yourself)""[""[[http://wiki.samuelooi.com/wikka.php?wakka=Mod02Gallery Code Available Here]]""]"". Hope this helps. If you're interested in the gallery software for wikka let me know....you'd be on your own for modifying it to only show files with the username prefix cuz my php skills aren't good enough to do those changes.


Revision [1910]

Edited on 2004-10-18 18:30:49 by GmBowen [two simple "erase history" actions & a modded mypages action]
Additions:
=====Mods in Development=====
=====Graphic Oriented Mods=====
The current max allowed image upload is "30"...set at the database level. When the images are uploaded to the directory the username is concatonated to the front of the filename. I have a modified version of [[http://sourceforge.net/projects/otfgallery/ OTF Gallery]] that allows you to preview and "approve" each image and will then copy the files to a directory that exists for each individual user and strip the user name from the front of the file (this is from a modification of a registration script extraneous to Wikka that makes a directory for each registrant). Or, if you're not interested in doing that, I have a modified version of the "gallery" action available for wikka that you could change so it would just shows thumbnails of images of the logged in user and allows erasing images...currently it just goes to the users personal directory, but you could change that (my programming guy modded this so it generates thumbnails using GD....the original version of the gallery required you to generate the thumbnails yourself)""[""[[http://wiki.samuelooi.com/wikka.php?wakka=Mod02Gallery Code Available Here]]""]"". Hope this helps. If you're interested in the gallery software for wikka let me know....you'd be on your own for modifying it to only show files with the username prefix cuz my php skills aren't good enough to do those changes.
====="Erase History" Actions=====
=====Other Mods in development=====
=====Calendar Action=====
=====Modified Mypages action --> menu=====
=====Other Soon-To-Be Released Actions=====
Deletions:
----
The current max allowed image upload is "30"...set at the database level. When the images are uploaded to the directory the username is concatonated to the front of the filename. I have a modified version of [[http://sourceforge.net/projects/otfgallery/ OTF Gallery]] that allows you to preview and "approve" each image and will then copy the files to a directory that exists for each individual user and strip the user name from the front of the file (this is from a modification of a registration script extraneous to Wikka that makes a directory for each registrant). Or, if you're not interested in doing that, I have a modified version of the "gallery" action available for wikka that you could change so it would just shows thumbnails of images of the logged in user and allows erasing images...currently it just goes to the users personal directory, but you could change that (my programming guy modded this so it generates thumbnails using GD....the original version of the gallery required you to generate the thumbnails yourself)[[http://wiki.samuelooi.com/wikka.php?wakka=Mod02Gallery Code Available Here]]. Hope this helps. If you're interested in the gallery software for wikka let me know....you'd be on your own for modifying it to only show files with the username prefix cuz my php skills aren't good enough to do those changes.
----
----
----
----


Revision [1909]

Edited on 2004-10-18 18:27:22 by GmBowen [two simple "erase history" actions & a modded mypages action]
Additions:
The current max allowed image upload is "30"...set at the database level. When the images are uploaded to the directory the username is concatonated to the front of the filename. I have a modified version of [[http://sourceforge.net/projects/otfgallery/ OTF Gallery]] that allows you to preview and "approve" each image and will then copy the files to a directory that exists for each individual user and strip the user name from the front of the file (this is from a modification of a registration script extraneous to Wikka that makes a directory for each registrant). Or, if you're not interested in doing that, I have a modified version of the "gallery" action available for wikka that you could change so it would just shows thumbnails of images of the logged in user and allows erasing images...currently it just goes to the users personal directory, but you could change that (my programming guy modded this so it generates thumbnails using GD....the original version of the gallery required you to generate the thumbnails yourself)[[http://wiki.samuelooi.com/wikka.php?wakka=Mod02Gallery Code Available Here]]. Hope this helps. If you're interested in the gallery software for wikka let me know....you'd be on your own for modifying it to only show files with the username prefix cuz my php skills aren't good enough to do those changes.
Deletions:
The current max allowed image upload is "30"...set at the database level. When the images are uploaded to the directory the username is concatonated to the front of the filename. I have a modified version of [[http://sourceforge.net/projects/otfgallery/ OTF Gallery]] that allows you to preview and "approve" each image and will then copy the files to a directory that exists for each individual user and strip the user name from the front of the file (this is from a modification of a registration script extraneous to Wikka that makes a directory for each registrant). Or, if you're not interested in doing that, I have a modified version of the "gallery" action available for wikka that you could change so it would just shows thumbnails of images of the logged in user and allows erasing images...currently it just goes to the users personal directory, but you could change that (my programming guy modded this so it generates thumbnails using GD....the original version of the gallery required you to generate the thumbnails yourself). Hope this helps. If you're interested in the gallery software for wikka let me know....you'd be on your own for modifying it to only show files with the username prefix cuz my php skills aren't good enough to do those changes.


Revision [1907]

Edited on 2004-10-18 15:45:08 by NilsLindenberg [highlighter for last syntax corrected]
Deletions:
%%(PHP)


Revision [1905]

Edited on 2004-10-18 15:26:32 by GmBowen [Two simple "erase history" actions, and a modded my pages action....]
Additions:
Much of what we do is designed to help students work collaboratively in teams. I modified the mypages action into one that students can use as a menu....which I've called mypagesmenu.php .... basically it just lists the pages you own in a different way (although you can designate not having a title AND a menu list for a specific user....for us the latter will allow a listing of pages owned by different members all on the same project by just listing the action multiple times with different owners. It's not anything that the DarTar's & Jason's and JavaWoman's of the world couldn't do....but nine months ago I couldn't have either & so I'm posting it for the more "casual" wikka user (and, the DT's etc are welcome to do any fixes that they see necessary). -- Mike
%%(PHP)
<?php /*dotmg modifications : contact m.randimbisoa@dotmg.net*/ ?>
<?php
// modification by GMBowen of actions/mypages.php written by Carlo Zottmann for wakkawiki
// parameter title="no" or title="off"; can list pages for a specific person by using parameter owner="username"
$title = strtolower($title);
$username = $this->UserName();
if ($owner != '')
$username=$owner;
if ($user = $this->GetUser())
if ($title != 'off' && $title !='no')
{
print("<strong>Pages owned by $username:</strong>\n");
}
$my_pages_count = 0;
if ($pages = $this->LoadAllPages())
{
foreach ($pages as $page)
{
//#dotmg [1 line modified]: added [0-9]+$ to regular expression
if ($username == $page["owner"] && !preg_match("/^Comment[0-9]+$/", $page["tag"]))
{
print("[".$this->Link($page["tag"])."]"."\n");

$my_pages_count++;
}
}

if ($my_pages_count == 0)
{
print("<em>$username does not own any pages.</em>");
}
}
else
{
print("<em>No pages found.</em>");
}
else
print("<em>You're not logged in, thus the list of your pages couldn't be retrieved.</em>");


Revision [1904]

Edited on 2004-10-18 14:25:53 by GmBowen [two simple "erase history" actions....]
Additions:
When I'm developing pages I find I generate lots of "history" that I don't care to remain in the database. Or, as is sometimes the case, sometimes some of the actions I'm developing cause the "history" feature to crap out. Rather than just erasing the rows manually, I thought it might be easier to have a couple of actions. The first one is one that can be embedded on the page and only erases history if an administrator clicks on the "erase history" button (otherwise it shows text saying only an administrator can use the action). Another way this is useful for me is that I might have kids who write "inappropriate" information in the wiki (racist, sexist etc) and I'd like to be able to easily expunge the record for this (I know, I know, this is anti-wiki....but things are different when you're working at a publicly funded institution and providing a site for kids to use). The second action automatically erases history every time the page loads (for the "flakey" actions I've developed that cause the history feature to blow up (the task manager we're working on, for instance)). I think the second is a bit of a "security risk" wrt wiki users using it, so I'd suggest calling it something that is non-obvious and embedding it only on pages that you don't care to have history for and that nobody else has write-access to.
Deletions:
When I'm developing pages I find I generate lots of "history" that I don't care to remain in the database. Or, as is sometimes the case, sometimes some of the actions I'm developing cause the "history" feature to crap out. Rather than just erasing the rows, I thought it might be easier to have a couple of actions. The first one is one that can be embedded on the page and only erases history if an administrator clicks on the button. Another way this is useful for me is that I might have kids write "inappropriate" information in the wiki (racist, sexist etc) and I'd like to be able to easily expunge the record for this. The second action automatically erases history every time the page loads (for the "flakey" actions I have that cause history to blow up). I think the second is a bit of a "security risk" wrt wiki users using it, so I'd suggest calling it something that is non-obvious and embedding it only on pages that you don't care to have history for and that nobody else has write-access to.


Revision [1878]

Edited on 2004-10-16 22:52:52 by GmBowen [Two simple "erase history" actions useful for development, etc....]
Additions:
The current max allowed image upload is "30"...set at the database level. When the images are uploaded to the directory the username is concatonated to the front of the filename. I have a modified version of [[http://sourceforge.net/projects/otfgallery/ OTF Gallery]] that allows you to preview and "approve" each image and will then copy the files to a directory that exists for each individual user and strip the user name from the front of the file (this is from a modification of a registration script extraneous to Wikka that makes a directory for each registrant). Or, if you're not interested in doing that, I have a modified version of the "gallery" action available for wikka that you could change so it would just shows thumbnails of images of the logged in user and allows erasing images...currently it just goes to the users personal directory, but you could change that (my programming guy modded this so it generates thumbnails using GD....the original version of the gallery required you to generate the thumbnails yourself). Hope this helps. If you're interested in the gallery software for wikka let me know....you'd be on your own for modifying it to only show files with the username prefix cuz my php skills aren't good enough to do those changes.
Deletions:
The current max allowed image upload is "30"...set at the database level. When the images are uploaded to the directory the username is concatonated to the front of the filename. I have a modified version of OTF Gallery that allows you to preview and "approve" each image and will then copy the files to a directory that exists for each individual user and strip the user name from the front of the file (this is from a modification of a registration script extraneous to Wikka that makes a directory for each registrant). Or, if you're not interested in doing that, I have a modified version of the "gallery" action available for wikka that you could change so it would just shows thumbnails of images of the logged in user and allows erasing images...currently it just goes to the users personal directory, but you could change that (my programming guy modded this so it generates thumbnails using GD....the original version of the gallery required you to generate the thumbnails yourself). Hope this helps. If you're interested in the gallery software for wikka let me know....you'd be on your own for modifying it to only show files with the username prefix cuz my php skills aren't good enough to do those changes.


Revision [1877]

Edited on 2004-10-16 22:48:59 by GmBowen [Two simple "erase history" actions useful for development, etc....]
Additions:
The programmer is working on some other issues for me right now (other mods for wakka.....a //*very*// simple spreadsheet-like interactive table tool actually....we're currently having a problem with the foreach() statement which is why we've not released it yet). Since my system is set up to provide "personal" (user name based) image directories, we've developed a modified version of the wikka-based gallery tool so that kids can have on-line presentations of their pictures (it'll only come from their personal file areas, not on a per-page basis)). I'll post the other things my programmer is working on here when completed. Also working on a simple scheduler partly based on GmBowenCalendar, but having problems with writing to the database consistently....but will be useful for doing some PIM functions, and collaborating on timetables -- Mike
A useful little action is found at GmBowenCalendar....it's a calendar that you can embed in a wikipage....
Deletions:
If anybody has any suggestions, or sees any security issues, for this script please let me know. Mark is working on some other issues for me right now (other mods for wakka.....a //*very*// simple spreadsheet-like interactive table tool actually....we're currently having a problem with the foreach() statement which is why we've not released it yet. Since my system is set up to provide "personal" (user name based) image directories, we've developed a modified version of the wikka-based gallery tool so that kids can have on-line presentations of their pictures (it'll only come from their personal file areas, not on a per-page basis)). I'll post the other things my programmer is working on here when completed. -- Mike Bowen
A useful little action is found at GmBowenCalendar....it's a calendar that you can embed in a wikipage.


Revision [1876]

Edited on 2004-10-16 22:46:12 by GmBowen [Two little "erase history" actions that are useful for development purposes]

No Differences

Revision [1875]

Edited on 2004-10-16 22:44:16 by GmBowen [Two little "erase history" actions that are useful for development purposes]
Additions:
One of our first modifications was completed by my programming guy (Mark Kasper) in June '04 and was a modification of the pageindex.php code that has now been modified and incorporated into wikka as part of the release.....it should make the wiki's more useable for high-use sites because it provides a letter index for pageindex.php. It can either be used as usual, ""{{pageindex}}"", or using a parameter indicating which letter you would like to see a listing for (for example, ""{{pageindex start="a"}}""...or whatever letter you wish to show a listing for). If you enter a letter that there is not yet a listing for, then it defaults to "all".
Two current mods in development...a "chat" that as an embedded flash chat (vchat modded from flatfile to database)....altho' it's difficult to pass to someone else cuz the fla file needs to be edited for each website (we've not been able to solve the absolute/relative path statement issue).....and the interactive table mod (kinda a mini-spreadsheet).
I have a modified file-upload utility (just for graphic images)......The "upload" script is a mod of one of the ones at wakka or wikka (can't remember which)....I've made it available at http://131.202.167.33/wiki/actions/uploadimage.phps .... to use it you will of course have to change phps to php. This script only allows 10 uploaded files with the users prefix in the upload directory (although you can change that easily), and checks the wikka_users database to see (a) how many files are allowed in total and (b) what number the user is at. Currently, the changes in wikka_users is....
The current max allowed image upload is "30"...set at the database level. When the images are uploaded to the directory the username is concatonated to the front of the filename. I have a modified version of OTF Gallery that allows you to preview and "approve" each image and will then copy the files to a directory that exists for each individual user and strip the user name from the front of the file (this is from a modification of a registration script extraneous to Wikka that makes a directory for each registrant). Or, if you're not interested in doing that, I have a modified version of the "gallery" action available for wikka that you could change so it would just shows thumbnails of images of the logged in user and allows erasing images...currently it just goes to the users personal directory, but you could change that (my programming guy modded this so it generates thumbnails using GD....the original version of the gallery required you to generate the thumbnails yourself). Hope this helps. If you're interested in the gallery software for wikka let me know....you'd be on your own for modifying it to only show files with the username prefix cuz my php skills aren't good enough to do those changes.
When I'm developing pages I find I generate lots of "history" that I don't care to remain in the database. Or, as is sometimes the case, sometimes some of the actions I'm developing cause the "history" feature to crap out. Rather than just erasing the rows, I thought it might be easier to have a couple of actions. The first one is one that can be embedded on the page and only erases history if an administrator clicks on the button. Another way this is useful for me is that I might have kids write "inappropriate" information in the wiki (racist, sexist etc) and I'd like to be able to easily expunge the record for this. The second action automatically erases history every time the page loads (for the "flakey" actions I have that cause history to blow up). I think the second is a bit of a "security risk" wrt wiki users using it, so I'd suggest calling it something that is non-obvious and embedding it only on pages that you don't care to have history for and that nobody else has write-access to.
If anybody has any suggestions, or sees any security issues, for this script please let me know. Mark is working on some other issues for me right now (other mods for wakka.....a //*very*// simple spreadsheet-like interactive table tool actually....we're currently having a problem with the foreach() statement which is why we've not released it yet. Since my system is set up to provide "personal" (user name based) image directories, we've developed a modified version of the wikka-based gallery tool so that kids can have on-line presentations of their pictures (it'll only come from their personal file areas, not on a per-page basis)). I'll post the other things my programmer is working on here when completed. -- Mike Bowen
Deletions:
++This code is now compatible with 1.1.5.1 - I've replicated the "* indicated pages that you own" behaviour and hopefully it'll convince the authorities :) to include this useful mod in the next Wikka version. What needs to be done is increased use of caching (I haven't looked at the wikka.php in detail, I'm afriad) and to format the syntax better. You can see a working version [[http://wiki.samuelooi.com/wikka.php?wakka=PageIndex here]] (albeit, heavily under construction).
Mike, thanks for letting us look at the upload script. Your site has many mods that I aim to take a look at soon :) Sorry about messing your User page up, just clean it up when you feel like it! ++--Sam ...I think the two coolest mods are the "chat" that as an embedded flash chat (vchat modded from flatfile to database)....altho' it's difficult to pass to someone else cuz the fla file needs to be edited.....and the interactive table mod (kinda a mini-spreadsheet). If you want to log in to use the wiki the regular login won't work, you have to go to the "front end" for the site at the base IP address. Have fun snooping. -- Mike
++This code is now compatible with 1.1.5.0 - I changed the self-ownership label to "*". All that needs to be done is to remove the display of Ownership when a page is Public, and to generally make it more sexier. Waiting for your file-upload utility.++--Sam
++Hi Sam. Geez, thanks for the mods. My programmer is now teaching math at an Indian reserve on an island in the middle of a lake in the far North of Ontario near Hudson's Bay and is kinda outta touch. Meanwhile, I've changed universities (from Thunder Bay (above Minnesota) to Fredericton (beside Maine)) and haven't been able to find a new guy to work on my stuff yet. Hence some of the delays. The "upload" script is a mod of one of the ones at wakka or wikka (can't remember which)....I've made it available for you at http://131.202.167.33/wiki/actions/uploadimage.phps .... to use it you will of course have to change phps to php. This script only allows 10 uploaded files with the users prefix in the upload directory (although you can change that easily), and checks the wikka_users database to see (a) how many files are allowed in total and (b) what number the user is at. Currently, the changes in wikka_users is ++
++As you'll note, the current max allowed upload is "30"...which is set at the database level. When the images are uploaded to the directory the username is concatonated to the front of the filename. I have a modified version of OTF Gallery that allows you to preview and "approve" each image and will then copy the files to a directory that exists for each individual user and strip the user name from the front of the file (this is from a modification of a registration script extraneous to Wikka that makes a directory for each registrant). Or, if you're not interested in doing that, I have a modified version of the "gallery" action available for wikka that you could change so it would just shows thumbnails of images of the logged in user and allows erasing images...currently it just goes to the users personal directory, but you could change that (my programming guy modded this so it generates thumbnails using GD....the original version of the gallery required you to generate the thumbnails yourself). Hope this helps. If you're interested in the gallery software for wikka let me know....you'd be on your own for modifying it to only show files with the username prefix cuz my php skills aren't good enough to do those changes. cheers, Mike B++
My programming guy (Mark Kasper) completed a modification of the pageindex.php code that has now been modified and incorporated into wikka as part of the release.....it should make the wiki's more useable for high-use sites. It can either be used as usual, ""{{pageindex}}"", or using a parameter indicating which letter you would like to see a listing for (for example, ""{{pageindex start="a"}}""...or whatever letter you wish to show a listing for). If you enter a letter that there is not yet a listing for, then it defaults to "all".
When I'm developing pages I find I generate lots of "history" that I don't care to remain in the database. Or, as is sometimes the case, sometimes some of the actions I'm developing cause the "history" feature to crap out. Rather than just erasing the rows, I thought it might be easier to have a couple of actions. The first one is one that can be embedded on the page and only erases history if an administrator clicks on the button. Another way this is useful for me is that I might have kids write "inappropriate" information in the wiki (racist, sexist etc) and I'd like to be able to expunge the record for this. The second action automatically erases history every time the page loads (for the "flakey" actions I have that cause history to blow up). I think the second is a bit of a "security risk" wrt wiki users using it, so I'd suggest calling it something that is non-obvious.
If anybody has any suggestions, or sees any security issues, for this script please let me know. Mark is working on some other issues for me right now (other mods for wakka.....a //*very*// simple spreadsheet-like interactive table tool actually, and a file upload tool so kids can upload pix.....but the pix will go to a central area for approval first after which they'll be sent to each kids personal file area so they can be embedded in wikka pages. I'm going to integrate a modified version of the wikka-based gallery tool into this so that kids can have on-line presentations of their pictures (it'll only come from their personal file areas, not on a per-page basis)) but if there are useful suggestions for the pageindex action then he might be able to look at them before his contract ends. I'll post the other things he's working on here when he's done. -- Mike Bowen
The edit of 17 June was to force the script to accept upper or lower case letters when designating a letter to start with. -- Mike Bowen


Revision [1874]

Edited on 2004-10-16 22:19:25 by GmBowen [small "erase history" action...useful for development]
Additions:
When I'm developing pages I find I generate lots of "history" that I don't care to remain in the database. Or, as is sometimes the case, sometimes some of the actions I'm developing cause the "history" feature to crap out. Rather than just erasing the rows, I thought it might be easier to have a couple of actions. The first one is one that can be embedded on the page and only erases history if an administrator clicks on the button. Another way this is useful for me is that I might have kids write "inappropriate" information in the wiki (racist, sexist etc) and I'd like to be able to expunge the record for this. The second action automatically erases history every time the page loads (for the "flakey" actions I have that cause history to blow up). I think the second is a bit of a "security risk" wrt wiki users using it, so I'd suggest calling it something that is non-obvious.
Deletions:
When I'm developing pages I find I generate lots of "history" that I don't care to remain in the database. Or, as is sometimes the case, sometimes some of the actions I'm developing cause the "history" feature to crap out. Rather than just erasing the rows, I thought it might be easier to have a couple of actions. The first one is one that can be embedded on the page and only erases history if an administrator clicks on the button. The second automatically erases history every time the page loads. I think the second is a bit of a "security risk" wrt wiki users using it, so I'd suggest calling it something that is non-obvious.


Revision [1873]

Edited on 2004-10-16 21:37:57 by GmBowen [small "erase history" action...useful for development]
Additions:
My programming guy (Mark Kasper) completed a modification of the pageindex.php code that has now been modified and incorporated into wikka as part of the release.....it should make the wiki's more useable for high-use sites. It can either be used as usual, ""{{pageindex}}"", or using a parameter indicating which letter you would like to see a listing for (for example, ""{{pageindex start="a"}}""...or whatever letter you wish to show a listing for). If you enter a letter that there is not yet a listing for, then it defaults to "all".
Deletions:
My programming guy (Mark Kasper) has completed a modification of the pageindex.php code that should make it more useable for high-use wakka/wikka sites (such as can now be seen at the original wakka site). It can either be used as usual, ""{{pageindex}}"", or using a parameter indicating which letter you would like to see a listing for (for example, ""{{pageindex start="a"}}""...or whatever letter you wish to show a listing for). If you enter a letter that there is not yet a listing for, then it defaults to "all".


Revision [1872]

Edited on 2004-10-16 21:36:04 by GmBowen [small "erase history" action...useful for development]
Additions:
When I'm developing pages I find I generate lots of "history" that I don't care to remain in the database. Or, as is sometimes the case, sometimes some of the actions I'm developing cause the "history" feature to crap out. Rather than just erasing the rows, I thought it might be easier to have a couple of actions. The first one is one that can be embedded on the page and only erases history if an administrator clicks on the button. The second automatically erases history every time the page loads. I think the second is a bit of a "security risk" wrt wiki users using it, so I'd suggest calling it something that is non-obvious.
<?
// code developed by GMBowen & JGoguen to allow admins to erase history on a given page
if ($this->IsAdmin())
echo '<table><tr><td><form action="" method="post">
<input type="submit" name="erasehistory" value="Erase History of Page"></td></table> <br /></form>';
if ($_POST['erasehistory'] && $this->IsAdmin())
$thispage=$this->GetPageTag();
$sql = "DELETE FROM ".$this->config["table_prefix"]."pages WHERE tag='$thispage' AND latest='N'";
mysql_query($sql) or die("Unable to process query: " . mysql_error());
elseif ($_POST['erasehistory'] && !$this->IsAdmin())
echo "<i>History can only be erased by an administrator.</i>";
?>
auto erasing of history.....
<?
// code developed by GMBowen to allow automatically erasing the history of a given page
$thispage=$this->GetPageTag();
$sql = "DELETE FROM ".$this->config["table_prefix"]."pages WHERE tag='$thispage' AND latest='N'";
mysql_query($sql) or die("Unable to process query: " . mysql_error());
?>
Deletions:
<?php /*dotmg modifications : contact m.randimbisoa@dotmg.net*/ ?>
<?php
$a = array(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z);
$start = strtoupper($start);
if ($pages = $this->LoadAllPages())
{
$owns_pages = false;
$link = $this->config["base_url"].$this->MiniHref($method, $tag);
print("<strong><a href='$link&var=ALL'>ALL</a>  </strong> \n");

foreach ($pages as $page){
if (!preg_match("/^Comment[0-9]+$/", $page["tag"])) {
$firstChar = strtoupper($page["tag"][0]);
if (!preg_match("/[A-Z,a-z]/", $firstChar)) {
$firstChar = "#";
}
if ($firstChar != $curChar) {
if ($curChar) print("\n");
print("<strong><a href='$link&var=$firstChar'>$firstChar</a> </strong> \n");
$curChar = $firstChar;
}
}
}
print("<br><br>");
$curChar = "";

foreach ($pages as $page)
{

//#dotmg [1 line modified]: added [0-9]+$ to regular expression
if (!preg_match("/^Comment[0-9]+$/", $page["tag"])) {
$firstChar = strtoupper($page["tag"][0]);

$st = htmlspecialchars(urldecode($_GET['var']));

if($st == ''){
if($start == 'ALL')
{$st='';}
elseif($start != '')
{
for($i=0; $i<27; $i++)
{
if($start == $a[$i])
{
$st = $a[$i];
}
}
}
}

if($firstChar == $st)
{
if (!preg_match("/[A-Z,a-z]/", $firstChar)) {
$firstChar = "#";
}
if ($firstChar != $curChar) {
if ($curChar) print("<br />\n");
print("<strong>$firstChar</strong><br />\n");
$curChar = $firstChar;
}
if ($this->HasAccess("read", $page["tag"])) {
print($this->Link($page["tag"]));
}
else {
print($page["tag"]);
}
if ($page['owner'] != '' && $page['owner'] != '(Public)')
{
if ($this->GetUserName() == $page['owner'])
{
print("*");
$owns_pages = true;
}
else {
if ($this->HasAccess("read", $page["owner"])) {
print(" . . . . Owner: ".$this->Format($page['owner']));
}
else {
print(" . . . . Owner: ".$page['owner']);
}
}
}
print("<br />\n");

}
elseif ('' == $st || $st == 'ALL')
{
if ($firstChar != $curChar) {
if ($curChar) print("<br />\n");
print("<strong>$firstChar</strong><br />\n");
$curChar = $firstChar;
}
if ($this->HasAccess("read", $page["tag"])) {
print($this->Link($page["tag"]));
}
else {
print($page["tag"]);
}
if ($page['owner'] != '' && $page['owner'] != '(Public)')
{
if ($this->GetUserName() == $page['owner'])
{
print("*");
$owns_pages = true;
}
else {
if ($this->HasAccess("read", $page["owner"])) {
print(" . . . . Owner: ".$this->Format($page['owner']));
}
else {
print(" . . . . Owner: ".$page['owner']);
}
}
}
print("<br />\n");
}
}
}
if ($owns_pages) print("<br />\n* Indicates a page that you own.<br />\n");
else
print("<em>No pages found.</em>");
?>


Revision [1348]

Edited on 2004-09-21 03:38:02 by GmBowen [small "erase history" action...useful for development]
Additions:
A useful little action is found at GmBowenCalendar....it's a calendar that you can embed in a wikipage.


Revision [1341]

Edited on 2004-09-20 13:12:48 by AherdfTurtles [Behaviour replication bug fixed ('*' and 'Indicates a page that you own' appear when necessary)]
Additions:
$owns_pages = true;
else {
{
print("*");
$owns_pages = true;
}
?>
Deletions:
print("*");
$owns_pages = true;
?>


Revision [1336]

Edited on 2004-09-20 01:55:07 by GmBowen [Behaviour replication bug fixed ('*' and 'Indicates a page that you own' appear when necessary)]
Additions:
Mike, thanks for letting us look at the upload script. Your site has many mods that I aim to take a look at soon :) Sorry about messing your User page up, just clean it up when you feel like it! ++--Sam ...I think the two coolest mods are the "chat" that as an embedded flash chat (vchat modded from flatfile to database)....altho' it's difficult to pass to someone else cuz the fla file needs to be edited.....and the interactive table mod (kinda a mini-spreadsheet). If you want to log in to use the wiki the regular login won't work, you have to go to the "front end" for the site at the base IP address. Have fun snooping. -- Mike
Deletions:
Mike, thanks for letting us look at the upload script. Your site has many mods that I aim to take a look at soon :) Sorry about messing your User page up, just clean it up when you feel like it!
++ --Sam


Revision [1335]

Edited on 2004-09-19 22:16:15 by AherdfTurtles [Look at this please! Improved code]
Additions:
++This code is now compatible with 1.1.5.1 - I've replicated the "* indicated pages that you own" behaviour and hopefully it'll convince the authorities :) to include this useful mod in the next Wikka version. What needs to be done is increased use of caching (I haven't looked at the wikka.php in detail, I'm afriad) and to format the syntax better. You can see a working version [[http://wiki.samuelooi.com/wikka.php?wakka=PageIndex here]] (albeit, heavily under construction).
Mike, thanks for letting us look at the upload script. Your site has many mods that I aim to take a look at soon :) Sorry about messing your User page up, just clean it up when you feel like it!
++ --Sam
{
$owns_pages = false;
print("<strong><a href='$link&var=ALL'>ALL</a>  </strong> \n");
if (!preg_match("/^Comment[0-9]+$/", $page["tag"])) {
$firstChar = strtoupper($page["tag"][0]);
if (!preg_match("/[A-Z,a-z]/", $firstChar)) {
$firstChar = "#";
}
if ($firstChar != $curChar) {
if ($curChar) print("\n");
print("<strong><a href='$link&var=$firstChar'>$firstChar</a> </strong> \n");
$curChar = $firstChar;
}
}
//#dotmg [1 line modified]: added [0-9]+$ to regular expression
if (!preg_match("/^Comment[0-9]+$/", $page["tag"])) {
$firstChar = strtoupper($page["tag"][0]);

$st = htmlspecialchars(urldecode($_GET['var']));

if($st == ''){
if($start == 'ALL')
{$st='';}
elseif($start != '')
{
for($i=0; $i<27; $i++)
{
if($start == $a[$i])
{
$st = $a[$i];
}
}
}
}

if($firstChar == $st)
{
if (!preg_match("/[A-Z,a-z]/", $firstChar)) {
$firstChar = "#";
}
if ($firstChar != $curChar) {
if ($curChar) print("<br />\n");
print("<strong>$firstChar</strong><br />\n");
$curChar = $firstChar;
}
if ($this->HasAccess("read", $page["tag"])) {
print($this->Link($page["tag"]));
}
else {
print($page["tag"]);
}
if ($page['owner'] != '' && $page['owner'] != '(Public)')
{
if ($this->GetUserName() == $page['owner'])
print("*");
else {
if ($this->HasAccess("read", $page["owner"])) {
print(" . . . . Owner: ".$this->Format($page['owner']));
}
else {
print(" . . . . Owner: ".$page['owner']);
}
}
}
print("<br />\n");

}
elseif ('' == $st || $st == 'ALL')
{
if ($firstChar != $curChar) {
if ($curChar) print("<br />\n");
print("<strong>$firstChar</strong><br />\n");
$curChar = $firstChar;
}
if ($this->HasAccess("read", $page["tag"])) {
print($this->Link($page["tag"]));
}
else {
print($page["tag"]);
}
if ($page['owner'] != '' && $page['owner'] != '(Public)')
{
if ($this->GetUserName() == $page['owner'])
{
print("*");
$owns_pages = true;
}
else {
if ($this->HasAccess("read", $page["owner"])) {
print(" . . . . Owner: ".$this->Format($page['owner']));
}
else {
print(" . . . . Owner: ".$page['owner']);
}
}
}
print("<br />\n");
}
if ($owns_pages) print("<br />\n* Indicates a page that you own.<br />\n");
?>
Deletions:
{
print("<strong><a href='$link&var=ALL'>ALL</a>  </strong> \n");
if (!preg_match("/^Comment[0-9]+$/", $page["tag"])) {
$firstChar = strtoupper($page["tag"][0]);
if (!preg_match("/[A-Z,a-z]/", $firstChar)) {
$firstChar = "#";
}
if ($firstChar != $curChar) {
if ($curChar) print("\n");
print("<strong><a href='$link&var=$firstChar'>$firstChar</a> </strong> \n");
$curChar = $firstChar;
}
}
//#dotmg [1 line modified]: added [0-9]+$ to regular expression
if (!preg_match("/^Comment[0-9]+$/", $page["tag"])) {
$firstChar = strtoupper($page["tag"][0]);

$st = htmlspecialchars(urldecode($_GET['var']));

if($st == ''){
if($start == 'ALL')
{$st='';}
elseif($start != '')
{
for($i=0; $i<27; $i++)
{
if($start == $a[$i])
{
$st = $a[$i];
}
}
}
}

if($firstChar == $st)
{
if (!preg_match("/[A-Z,a-z]/", $firstChar)) {
$firstChar = "#";
}
if ($firstChar != $curChar) {
if ($curChar) print("<br />\n");
print("<strong>$firstChar</strong><br />\n");
$curChar = $firstChar;
}
if ($this->HasAccess("read", $page["tag"])) {
print($this->Link($page["tag"]));
}
else {
print($page["tag"]);
}
if ($page['owner'] != '')
{
if ($this->GetUserName() == $page['owner'])
print("*");
else {
if ($this->HasAccess("read", $page["owner"])) {
print(" . . . . Owner: ".$this->Format($page['owner']));
}
else {
print(" . . . . Owner: ".$page['owner']);
}
}
}
print("<br />\n");

}
elseif ('' == $st || $st == 'ALL')
{
if ($firstChar != $curChar) {
if ($curChar) print("<br />\n");
print("<strong>$firstChar</strong><br />\n");
$curChar = $firstChar;
}
if ($this->HasAccess("read", $page["tag"])) {
print($this->Link($page["tag"]));
}
else {
print($page["tag"]);
}
if ($page['owner'] != '')
{
if ($this->GetUserName() == $page['owner'])
print("*");
else {
if ($this->HasAccess("read", $page["owner"])) {
print(" . . . . Owner: ".$this->Format($page['owner']));
}
else {
print(" . . . . Owner: ".$page['owner']);
}
}
}
print("<br />\n");
}
?>


Revision [1330]

Edited on 2004-09-19 04:24:09 by GmBowen [Look at this please! Improved code]
Additions:
++Hi Sam. Geez, thanks for the mods. My programmer is now teaching math at an Indian reserve on an island in the middle of a lake in the far North of Ontario near Hudson's Bay and is kinda outta touch. Meanwhile, I've changed universities (from Thunder Bay (above Minnesota) to Fredericton (beside Maine)) and haven't been able to find a new guy to work on my stuff yet. Hence some of the delays. The "upload" script is a mod of one of the ones at wakka or wikka (can't remember which)....I've made it available for you at http://131.202.167.33/wiki/actions/uploadimage.phps .... to use it you will of course have to change phps to php. This script only allows 10 uploaded files with the users prefix in the upload directory (although you can change that easily), and checks the wikka_users database to see (a) how many files are allowed in total and (b) what number the user is at. Currently, the changes in wikka_users is ++
++As you'll note, the current max allowed upload is "30"...which is set at the database level. When the images are uploaded to the directory the username is concatonated to the front of the filename. I have a modified version of OTF Gallery that allows you to preview and "approve" each image and will then copy the files to a directory that exists for each individual user and strip the user name from the front of the file (this is from a modification of a registration script extraneous to Wikka that makes a directory for each registrant). Or, if you're not interested in doing that, I have a modified version of the "gallery" action available for wikka that you could change so it would just shows thumbnails of images of the logged in user and allows erasing images...currently it just goes to the users personal directory, but you could change that (my programming guy modded this so it generates thumbnails using GD....the original version of the gallery required you to generate the thumbnails yourself). Hope this helps. If you're interested in the gallery software for wikka let me know....you'd be on your own for modifying it to only show files with the username prefix cuz my php skills aren't good enough to do those changes. cheers, Mike B++
Deletions:
++Hi Sam. Geez, thanks for the mods. My programmer is now teaching math on an island in the middle of a lake in the far North of Ontario near Hudson's Bay. Meanwhile, I've changed universities (from Thunder Bay (above Minnesota) to Fredericton (beside Maine)) and haven't been able to find a new guy to work on my stuff yet. Hence some of the delays. The "upload" script is a mod of one of the ones at wakka or wikka (can't remember which)....I've made it available for you at http://131.202.167.33/wiki/actions/uploadimage.phps .... This script only allows 10 uploaded files with the users prefix in the upload directory, and checks the wikka_users database to see (a) how many files are allowed in total and (b) what number the user is at. Currently, the changes in wikka_users is ++
++When the images are uploaded to the directory their username is appended to the front. I have a modified version of OTF Gallery that allows you to previer and "approve" each image and will then copy the files to a directory that exists for each individual user and strip the user name from the front of the file (this is from a modification of a registration script extraneous to Wikka that makes a directory for each registrant). Or, if you're not interested in doing that, I have a modified version of the "gallery" action available for wikka that you could change so it would just show the images of the logged in user. Hope this helps. MikeB++


Revision [1329]

Edited on 2004-09-19 04:18:50 by GmBowen [Look at this please! Improved code]
Additions:
++When the images are uploaded to the directory their username is appended to the front. I have a modified version of OTF Gallery that allows you to previer and "approve" each image and will then copy the files to a directory that exists for each individual user and strip the user name from the front of the file (this is from a modification of a registration script extraneous to Wikka that makes a directory for each registrant). Or, if you're not interested in doing that, I have a modified version of the "gallery" action available for wikka that you could change so it would just show the images of the logged in user. Hope this helps. MikeB++
Deletions:
++Hope this helps. MikeB++


Revision [1328]

Edited on 2004-09-19 04:12:52 by GmBowen [Look at this please! Improved code]
Deletions:
%%code


Revision [1327]

Edited on 2004-09-19 04:12:40 by GmBowen [Look at this please! Improved code]
Additions:
++Hi Sam. Geez, thanks for the mods. My programmer is now teaching math on an island in the middle of a lake in the far North of Ontario near Hudson's Bay. Meanwhile, I've changed universities (from Thunder Bay (above Minnesota) to Fredericton (beside Maine)) and haven't been able to find a new guy to work on my stuff yet. Hence some of the delays. The "upload" script is a mod of one of the ones at wakka or wikka (can't remember which)....I've made it available for you at http://131.202.167.33/wiki/actions/uploadimage.phps .... This script only allows 10 uploaded files with the users prefix in the upload directory, and checks the wikka_users database to see (a) how many files are allowed in total and (b) what number the user is at. Currently, the changes in wikka_users is ++
Deletions:
++Hi Sam. Geez, thanks for the mods. My programmer is now teaching math on an island in the middle of a lake in the far North of Ontario near Hudson's Bay. Meanwhile, I've changed universities (from Thunder Bay (above Minnesota) to Fredericton (beside Maine) and haven't been able to find a new guy to work on my stuff yet. Hence some of the delays. The "upload" script is a mod of one of the ones at wakka or wikka (can't remember which)....I've made it available for you at http://131.202.167.33/wiki/actions/uploadimage.phps .... This script only allows 10 uploaded files with the users prefix in the upload directory, and checks the wikka_users database to see (a) how many files are allowed in total and (b) what number the user is at. Currently, the changes in wikka_users is ++


Revision [1326]

Edited on 2004-09-19 04:12:06 by GmBowen [Look at this please! Improved code]
Additions:
++Hi Sam. Geez, thanks for the mods. My programmer is now teaching math on an island in the middle of a lake in the far North of Ontario near Hudson's Bay. Meanwhile, I've changed universities (from Thunder Bay (above Minnesota) to Fredericton (beside Maine) and haven't been able to find a new guy to work on my stuff yet. Hence some of the delays. The "upload" script is a mod of one of the ones at wakka or wikka (can't remember which)....I've made it available for you at http://131.202.167.33/wiki/actions/uploadimage.phps .... This script only allows 10 uploaded files with the users prefix in the upload directory, and checks the wikka_users database to see (a) how many files are allowed in total and (b) what number the user is at. Currently, the changes in wikka_users is ++
%%code
+-----------------------------------------------------------------------------------------------------------+
| wikka_users |
+-----------------------------------------------------------------------------------------------------------+
+-----------------+------------------+------+-----+-------------------------------------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+------------------+------+-----+-------------------------------------------------+-------+
+ images_allowed + smallint(4) + + + 30 + +
+ images_uploaded + int(6) + + PRI + 0 + +
+-----------------+------------------+------+-----+-------------------------------------------------+-------+
++Hope this helps. MikeB++


Revision [1288]

Edited on 2004-09-18 00:39:12 by SdfdsfaSdasd [Made code compatible with 1.1.5.0.]
Additions:
++This code is now compatible with 1.1.5.0 - I changed the self-ownership label to "*". All that needs to be done is to remove the display of Ownership when a page is Public, and to generally make it more sexier. Waiting for your file-upload utility.++--Sam
if ($this->GetUserName() == $page['owner'])
print("*");
if ($this->GetUserName() == $page['owner'])
print("*");
Deletions:
++FOR REASONS I'm not clear on, this doesn't work with this version of wikka (did with 1.0.2, but not 1.0.3.8)....I'll work on fixing that and will re-post the code++--Mike Bowen
if ($this->UserName() == $page['owner'])
print(" . . . . one of your pages.");
if ($this->UserName() == $page['owner'])
print(" . . . . one of your pages.");


Revision [1285]

Edited on 2004-09-17 23:47:20 by SdfdsfaSdasd [I fucked up the initial edit! Sorry!]
Additions:
%%(php)
Deletions:
%%php


Revision [1284]

Edited on 2004-09-17 23:46:19 by SdfdsfaSdasd [Added syntax highlighting]
Additions:
++FOR REASONS I'm not clear on, this doesn't work with this version of wikka (did with 1.0.2, but not 1.0.3.8)....I'll work on fixing that and will re-post the code++--Mike Bowen

I'm a university prof who is modifying parts of wikka so that it can be used by high school kids to collaborate on school project work and writing. I chose wakka/wikka because it seemed to be the wiki with the most flexibility for doing the sorts of things I was interested in. I'm not a programmer myself, although I do understand lots about programming, and so I've hired a recent grad from my university to implement some features for me that I think my target audience for using the wiki will need. The wiki is only one of the central tools they'll be using, and has to coordinate with numerous other tools (such as a graph drawing and an on-line drawing tool).

My programming guy (Mark Kasper) has completed a modification of the pageindex.php code that should make it more useable for high-use wakka/wikka sites (such as can now be seen at the original wakka site). It can either be used as usual, ""{{pageindex}}"", or using a parameter indicating which letter you would like to see a listing for (for example, ""{{pageindex start="a"}}""...or whatever letter you wish to show a listing for). If you enter a letter that there is not yet a listing for, then it defaults to "all".

%%php
<?php /*dotmg modifications : contact m.randimbisoa@dotmg.net*/ ?>
<?php
$a = array(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z);
$start = strtoupper($start);

if ($pages = $this->LoadAllPages())
{
$link = $this->config["base_url"].$this->MiniHref($method, $tag);
print("<strong><a href='$link&var=ALL'>ALL</a>  </strong> \n");

foreach ($pages as $page){
if (!preg_match("/^Comment[0-9]+$/", $page["tag"])) {
$firstChar = strtoupper($page["tag"][0]);
if (!preg_match("/[A-Z,a-z]/", $firstChar)) {
$firstChar = "#";
}

if ($firstChar != $curChar) {
if ($curChar) print("\n");
print("<strong><a href='$link&var=$firstChar'>$firstChar</a> </strong> \n");
$curChar = $firstChar;
}
}
}
print("<br><br>");
$curChar = "";

foreach ($pages as $page)
{

//#dotmg [1 line modified]: added [0-9]+$ to regular expression
if (!preg_match("/^Comment[0-9]+$/", $page["tag"])) {
$firstChar = strtoupper($page["tag"][0]);

$st = htmlspecialchars(urldecode($_GET['var']));

if($st == ''){
if($start == 'ALL')
{$st='';}
elseif($start != '')
{
for($i=0; $i<27; $i++)
{
if($start == $a[$i])
{
$st = $a[$i];
}
}
}
}

if($firstChar == $st)
{
if (!preg_match("/[A-Z,a-z]/", $firstChar)) {
$firstChar = "#";
}

if ($firstChar != $curChar) {
if ($curChar) print("<br />\n");
print("<strong>$firstChar</strong><br />\n");
$curChar = $firstChar;
}

if ($this->HasAccess("read", $page["tag"])) {
print($this->Link($page["tag"]));
}
else {
print($page["tag"]);
}
if ($page['owner'] != '')
{
if ($this->UserName() == $page['owner'])
print(" . . . . one of your pages.");
else {
if ($this->HasAccess("read", $page["owner"])) {
print(" . . . . Owner: ".$this->Format($page['owner']));
}
else {
print(" . . . . Owner: ".$page['owner']);
}
}
}

print("<br />\n");

}
elseif ('' == $st || $st == 'ALL')
{
if ($firstChar != $curChar) {
if ($curChar) print("<br />\n");
print("<strong>$firstChar</strong><br />\n");
$curChar = $firstChar;
}

if ($this->HasAccess("read", $page["tag"])) {
print($this->Link($page["tag"]));
}
else {
print($page["tag"]);
}
if ($page['owner'] != '')
{
if ($this->UserName() == $page['owner'])
print(" . . . . one of your pages.");
else {
if ($this->HasAccess("read", $page["owner"])) {
print(" . . . . Owner: ".$this->Format($page['owner']));
}
else {
print(" . . . . Owner: ".$page['owner']);
}
}
}

print("<br />\n");
}
}
}

}
else
{
print("<em>No pages found.</em>");
}

?>
%%

If anybody has any suggestions, or sees any security issues, for this script please let me know. Mark is working on some other issues for me right now (other mods for wakka.....a //*very*// simple spreadsheet-like interactive table tool actually, and a file upload tool so kids can upload pix.....but the pix will go to a central area for approval first after which they'll be sent to each kids personal file area so they can be embedded in wikka pages. I'm going to integrate a modified version of the wikka-based gallery tool into this so that kids can have on-line presentations of their pictures (it'll only come from their personal file areas, not on a per-page basis)) but if there are useful suggestions for the pageindex action then he might be able to look at them before his contract ends. I'll post the other things he's working on here when he's done. -- Mike Bowen

The edit of 17 June was to force the script to accept upper or lower case letters when designating a letter to start with. -- Mike Bowen

----

Deletions:
++FOR REASONS I'm not clear on, this doesn't work with this version of wikka (did with 1.0.2, but not 1.0.3.8)....I'll work on fixing that and will re-post the code++--Mike Bowen

I'm a university prof who is modifying parts of wikka so that it can be used by high school kids to collaborate on school project work and writing. I chose wakka/wikka because it seemed to be the wiki with the most flexibility for doing the sorts of things I was interested in. I'm not a programmer myself, although I do understand lots about programming, and so I've hired a recent grad from my university to implement some features for me that I think my target audience for using the wiki will need. The wiki is only one of the central tools they'll be using, and has to coordinate with numerous other tools (such as a graph drawing and an on-line drawing tool).

My programming guy (Mark Kasper) has completed a modification of the pageindex.php code that should make it more useable for high-use wakka/wikka sites (such as can now be seen at the original wakka site). It can either be used as usual, ""{{pageindex}}"", or using a parameter indicating which letter you would like to see a listing for (for example, ""{{pageindex start="a"}}""...or whatever letter you wish to show a listing for). If you enter a letter that there is not yet a listing for, then it defaults to "all".

%%
<?php /*dotmg modifications : contact m.randimbisoa@dotmg.net*/ ?>
<?php
$a = array(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z);
$start = strtoupper($start);

if ($pages = $this->LoadAllPages())
{
$link = $this->config["base_url"].$this->MiniHref($method, $tag);
print("<strong><a href='$link&var=ALL'>ALL</a>  </strong> \n");

foreach ($pages as $page){
if (!preg_match("/^Comment[0-9]+$/", $page["tag"])) {
$firstChar = strtoupper($page["tag"][0]);
if (!preg_match("/[A-Z,a-z]/", $firstChar)) {
$firstChar = "#";
}

if ($firstChar != $curChar) {
if ($curChar) print("\n");
print("<strong><a href='$link&var=$firstChar'>$firstChar</a> </strong> \n");
$curChar = $firstChar;
}
}
}
print("<br><br>");
$curChar = "";

foreach ($pages as $page)
{

//#dotmg [1 line modified]: added [0-9]+$ to regular expression
if (!preg_match("/^Comment[0-9]+$/", $page["tag"])) {
$firstChar = strtoupper($page["tag"][0]);

$st = htmlspecialchars(urldecode($_GET['var']));

if($st == ''){
if($start == 'ALL')
{$st='';}
elseif($start != '')
{
for($i=0; $i<27; $i++)
{
if($start == $a[$i])
{
$st = $a[$i];
}
}
}
}

if($firstChar == $st)
{
if (!preg_match("/[A-Z,a-z]/", $firstChar)) {
$firstChar = "#";
}

if ($firstChar != $curChar) {
if ($curChar) print("<br />\n");
print("<strong>$firstChar</strong><br />\n");
$curChar = $firstChar;
}

if ($this->HasAccess("read", $page["tag"])) {
print($this->Link($page["tag"]));
}
else {
print($page["tag"]);
}
if ($page['owner'] != '')
{
if ($this->UserName() == $page['owner'])
print(" . . . . one of your pages.");
else {
if ($this->HasAccess("read", $page["owner"])) {
print(" . . . . Owner: ".$this->Format($page['owner']));
}
else {
print(" . . . . Owner: ".$page['owner']);
}
}
}

print("<br />\n");

}
elseif ('' == $st || $st == 'ALL')
{
if ($firstChar != $curChar) {
if ($curChar) print("<br />\n");
print("<strong>$firstChar</strong><br />\n");
$curChar = $firstChar;
}

if ($this->HasAccess("read", $page["tag"])) {
print($this->Link($page["tag"]));
}
else {
print($page["tag"]);
}
if ($page['owner'] != '')
{
if ($this->UserName() == $page['owner'])
print(" . . . . one of your pages.");
else {
if ($this->HasAccess("read", $page["owner"])) {
print(" . . . . Owner: ".$this->Format($page['owner']));
}
else {
print(" . . . . Owner: ".$page['owner']);
}
}
}

print("<br />\n");
}
}
}

}
else
{
print("<em>No pages found.</em>");
}

?>
%%

If anybody has any suggestions, or sees any security issues, for this script please let me know. Mark is working on some other issues for me right now (other mods for wakka.....a //*very*// simple spreadsheet-like interactive table tool actually, and a file upload tool so kids can upload pix.....but the pix will go to a central area for approval first after which they'll be sent to each kids personal file area so they can be embedded in wikka pages. I'm going to integrate a modified version of the wikka-based gallery tool into this so that kids can have on-line presentations of their pictures (it'll only come from their personal file areas, not on a per-page basis)) but if there are useful suggestions for the pageindex action then he might be able to look at them before his contract ends. I'll post the other things he's working on here when he's done. -- Mike Bowen

The edit of 17 June was to force the script to accept upper or lower case letters when designating a letter to start with. -- Mike Bowen

----


Revision [973]

Edited on 2004-08-12 15:38:54 by GmBowen [Added syntax highlighting]
Additions:
++FOR REASONS I'm not clear on, this doesn't work with this version of wikka (did with 1.0.2, but not 1.0.3.8)....I'll work on fixing that and will re-post the code++--Mike Bowen
Deletions:
++FOR REASONS I'm not clear on, this doesn't work with this version of wikka (did with 1.0.2, but not 1.0.3.8)....I'll work on fixing that and will re-post the code++


Revision [972]

Edited on 2004-08-12 15:38:43 by GmBowen [Added syntax highlighting]
Additions:
++FOR REASONS I'm not clear on, this doesn't work with this version of wikka (did with 1.0.2, but not 1.0.3.8)....I'll work on fixing that and will re-post the code++


Revision [695]

Edited on 2004-07-01 04:27:02 by GmBowen [Added syntax highlighting]
Additions:
We've "mostly" finished another action for "pagewatches".....so that you can keep a list of pages that you're looking to see if changes have been made on. The code for the action and the table info for it will be posted on Monday/Tuesday next.....
Deletions:
We've "mostly" finished another action for "pagewatches".....the code for the action and the table info for it is below
// get current user
$username = $this->GetUserName();
$urldest = $this->config["base_url"];
$thislink = $this->config["base_url"].$this->MiniHref($method, $tag);
$str = 'SELECT tag, user, time, timesaved ';
$str .= "FROM ".$this->config["table_prefix"]."pagewatches ";
$str .= "WHERE user='$username'";
$pn = '';
$renew=$_REQUEST['renew'];
$pn=$_REQUEST['pn'];
$update=$_REQUEST['update'];
$deleterow=$_REQUEST['del'];
//DELETE row in database pagewatches
if ($deleterow == "yes")
$this->query("DELETE from ".$this->config['table_prefix']."pagewatches WHERE user='$username' AND tag = '$pn' ");
// DELETE code is ended
// UPDATE of information on when chosen wikipages were last edited...
if ($update == "yes")
$query = "$str";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result))
extract ($row);
$query2 = "SELECT time, tag, latest FROM wakka_pages WHERE tag = '$tag' AND latest = 'Y'";
$result2 = mysql_query($query2);
while ($row2 = mysql_fetch_array($result2))
extract ($row2);
$this->query("UPDATE ".$this->config['table_prefix']."pagewatches SET timesaved = '$time' WHERE user='$username' AND tag = '$tag' ");
// UPDATE code is finished
// DO RENEWAL if in URL line (depends on variables being passed across)...
if ($renew == "yes")
// obtain info from _pages table so that can determine time of last edit
$time = '';
$query = "SELECT time, tag, latest FROM wakka_pages WHERE tag = '$pn' AND latest = 'Y'";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result))
extract ($row);
// update timestamp
$timesubmitted = date("Y-m-d H:i:s");
$this->query("UPDATE ".$this->config['table_prefix']."pagewatches SET time = '$timesubmitted',timesaved = '$time' WHERE user='$username' AND tag = '$pn' ");
// RENEWAL Code is finished here
// Submit Wikipages For Monitoring +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
<b><font size='-2'>Enter Wikipage names that you want to monitor for changes</font></b><br />
<form action="" method="post">
<input type="text" size="25" name="wikipages" style="padding: 0px; margin: 0px; font-size: 10px; height: 12px; font-style:verdana">
<input type="button" value="Submit" style="padding: 0px; margin: 0px; font-size: 10px; height: 20px; font-style:verdana; ALIGN=center">
<input type="hidden" name="save" value="true">
</form>
$wikipages = $_POST["wikipages"];
// The stuff below is to figure out if an entry is to update or insert into the pagewatches table.
// This section is to determine if a wiki page has been entered before into wakka_pagewatches
if ($wikipages != '')
// this section determines if the wikipagename had been entered in watchedpages before...if not then sets $donotdelete to "1"
// reset donotdelete to null
$donotdelete = '';
$query = "SELECT tag, user, donotdelete FROM wakka_pagewatches WHERE tag = '$wikipages' AND user = '$username'";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result))
extract ($row);
// echo $donotdelete;
// THIS SECTION WORKS TO HERE...it produces a score for $donotdelete which indicates if wikiname is in pagewatches table
// NEW SECTION....This section is to extract the time a wiki page was last saved ... it's saved at $time
$time = '';
$query = "SELECT time, tag, latest FROM wakka_pages WHERE tag = '$wikipages' AND latest = 'Y'";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result))
extract ($row);
// THIS SECTION WORKS to HERE.....it extracts the last time that the wikipage was saved to wakka_pages
// Need another "if" statement....logic is....if "exist" in database then UPDATE else INSERT.
if ($donotdelete == '1')
{
// update timestamp
$timesubmitted = date("Y-m-d H:i:s");
// GMB This line below updates a "new" time to start watching into an already existing row.
$this->query("UPDATE ".$this->config['table_prefix']."pagewatches SET time = '$timesubmitted',timesaved = '$time' WHERE user='$username' AND tag = '$wikipages' ");
if ($donotdelete == '')
$timesubmitted = date("Y-m-d H:i:s");
// This query will INSERT new information into the table.
$this->query("INSERT INTO ".$this->config['table_prefix']."pagewatches (user, tag, time, timesaved) VALUES ('$username', '$wikipages', '$timesubmitted', '$time') ");
// I need to reset $wikipages to null (so it doesn't keep the same variable in if you re-load the page) ... but this doesn't work??
$wikipages = '';
?>
$query = "$str";
$result = mysql_query($query);
echo "<table cellspacing='0' cellpadding='0'>";
echo "<tr><td bgcolor='gray' valign='bottom' align='center' colspan='9'><font color='white' size='-2'><b>List of Watched WikiPages</b></font></td></tr>\n";
echo "<tr>
<td bgcolor='gray' valign='bottom' align='center'><font color='white' size='-2'> Renew? </font><td>
<td bgcolor='gray' valign='bottom' align='center'><font color='white' size='-2'>Wiki Page</font><td>
<td bgcolor='gray' valign='bottom' align='center'><font color='white' size='-2'>When Submitted</font><td>
<td bgcolor='gray' valign='bottom' align='center'><font color='white' size='-2'>Changed?</font><td>
<td bgcolor='gray' valign='bottom' align='center'><font color='white' size='-2'> Delete? </font><td>
</tr>";
while ($row = mysql_fetch_array($result))
extract ($row);
// need comparison of dates in here....if one in this database greater then "Not Changed", if less...
// Have last entered date from wakka_pages entered
// when pagename typed in, & then current one compared with that one. So working out that data-out code allows me to do the comparison bit.
$tagdest = $urldest.$tag;
$renewtime = $thislink.'&renew=yes'.'&pn='.$tag;
$delpglnk = $thislink.'&del=yes'.'&pn='.$tag;
$edtimeupdate = $thislink.'&update=yes';
// "CHANGED" determination
$timesubnohyphens = str_replace("-", "", $time);
$timesubnohyphens = str_replace(":", "", $timesubnohyphens);
$timesubnohyphens = str_replace(" ", "", $timesubnohyphens);
$timesavnohyphens = str_replace("-", "", $timesaved);
$timesavnohyphens = str_replace(":", "", $timesavnohyphens);
$timesavnohyphens = str_replace(" ", "", $timesavnohyphens);
$timediff = $timesubnohyphens - $timesavnohyphens;
if ($timediff < 0)
$changed = "<b>File Changed!</b>";
$changed = "File Not Changed";
// "CHANGED" determination goes to here
echo "<tr>
<td valign='top' align='center'><font color='gray' size='-2'><a href=\"$renewtime\">Renew</a></font><td>
<td valign='top'><font size='-2' color='gray'><b><a href=\"$tagdest\">$tag</a></b></font><td>
<td valign='top' align='center'><font color='gray' size='-2'> $time </font><td>
<td valign='top' align='center'><font color='gray' size='-2'> $changed </font><td>
<td valign='top' align='center'><font color='gray' size='-2'><a href=\"$delpglnk\">Delete</a></font><td>
</tr>";
}
echo "<tr><td bgcolor='gray' valign='bottom' align='center' colspan='9'><font color='white' size='-2'><a href=\"$edtimeupdate\"><b>  Update  </b></a> Check to see if pages have been edited.</font></td></tr>\n";
echo "</table>";


Revision [694]

Edited on 2004-07-01 04:18:43 by GmBowen [Added syntax highlighting]
Additions:
----
We've "mostly" finished another action for "pagewatches".....the code for the action and the table info for it is below
Deletions:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
We've "mostly" finished another action for "pagewatches".....the code and the table info for it is below


Revision [693]

Edited on 2004-07-01 04:17:50 by GmBowen [Added syntax highlighting]
Additions:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
We've "mostly" finished another action for "pagewatches".....the code and the table info for it is below
// get current user
$username = $this->GetUserName();
$urldest = $this->config["base_url"];
$thislink = $this->config["base_url"].$this->MiniHref($method, $tag);
$str = 'SELECT tag, user, time, timesaved ';
$str .= "FROM ".$this->config["table_prefix"]."pagewatches ";
$str .= "WHERE user='$username'";
$pn = '';
$renew=$_REQUEST['renew'];
$pn=$_REQUEST['pn'];
$update=$_REQUEST['update'];
$deleterow=$_REQUEST['del'];
//DELETE row in database pagewatches
if ($deleterow == "yes")
$this->query("DELETE from ".$this->config['table_prefix']."pagewatches WHERE user='$username' AND tag = '$pn' ");
// DELETE code is ended
// UPDATE of information on when chosen wikipages were last edited...
if ($update == "yes")
$query = "$str";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result))
extract ($row);
$query2 = "SELECT time, tag, latest FROM wakka_pages WHERE tag = '$tag' AND latest = 'Y'";
$result2 = mysql_query($query2);
while ($row2 = mysql_fetch_array($result2))
extract ($row2);
$this->query("UPDATE ".$this->config['table_prefix']."pagewatches SET timesaved = '$time' WHERE user='$username' AND tag = '$tag' ");
// UPDATE code is finished
// DO RENEWAL if in URL line (depends on variables being passed across)...
if ($renew == "yes")
// obtain info from _pages table so that can determine time of last edit
$time = '';
$query = "SELECT time, tag, latest FROM wakka_pages WHERE tag = '$pn' AND latest = 'Y'";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result))
extract ($row);
// update timestamp
$timesubmitted = date("Y-m-d H:i:s");
$this->query("UPDATE ".$this->config['table_prefix']."pagewatches SET time = '$timesubmitted',timesaved = '$time' WHERE user='$username' AND tag = '$pn' ");
// RENEWAL Code is finished here
// Submit Wikipages For Monitoring +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
<b><font size='-2'>Enter Wikipage names that you want to monitor for changes</font></b><br />
<form action="" method="post">
<input type="text" size="25" name="wikipages" style="padding: 0px; margin: 0px; font-size: 10px; height: 12px; font-style:verdana">
<input type="button" value="Submit" style="padding: 0px; margin: 0px; font-size: 10px; height: 20px; font-style:verdana; ALIGN=center">
<input type="hidden" name="save" value="true">
</form>
$wikipages = $_POST["wikipages"];
// The stuff below is to figure out if an entry is to update or insert into the pagewatches table.
// This section is to determine if a wiki page has been entered before into wakka_pagewatches
if ($wikipages != '')
// this section determines if the wikipagename had been entered in watchedpages before...if not then sets $donotdelete to "1"
// reset donotdelete to null
$donotdelete = '';
$query = "SELECT tag, user, donotdelete FROM wakka_pagewatches WHERE tag = '$wikipages' AND user = '$username'";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result))
extract ($row);
// echo $donotdelete;
// THIS SECTION WORKS TO HERE...it produces a score for $donotdelete which indicates if wikiname is in pagewatches table
// NEW SECTION....This section is to extract the time a wiki page was last saved ... it's saved at $time
$time = '';
$query = "SELECT time, tag, latest FROM wakka_pages WHERE tag = '$wikipages' AND latest = 'Y'";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result))
extract ($row);
// THIS SECTION WORKS to HERE.....it extracts the last time that the wikipage was saved to wakka_pages
// Need another "if" statement....logic is....if "exist" in database then UPDATE else INSERT.
if ($donotdelete == '1')
{
// update timestamp
$timesubmitted = date("Y-m-d H:i:s");
// GMB This line below updates a "new" time to start watching into an already existing row.
$this->query("UPDATE ".$this->config['table_prefix']."pagewatches SET time = '$timesubmitted',timesaved = '$time' WHERE user='$username' AND tag = '$wikipages' ");
if ($donotdelete == '')
$timesubmitted = date("Y-m-d H:i:s");
// This query will INSERT new information into the table.
$this->query("INSERT INTO ".$this->config['table_prefix']."pagewatches (user, tag, time, timesaved) VALUES ('$username', '$wikipages', '$timesubmitted', '$time') ");
// I need to reset $wikipages to null (so it doesn't keep the same variable in if you re-load the page) ... but this doesn't work??
$wikipages = '';
?>
$query = "$str";
$result = mysql_query($query);
echo "<table cellspacing='0' cellpadding='0'>";
echo "<tr><td bgcolor='gray' valign='bottom' align='center' colspan='9'><font color='white' size='-2'><b>List of Watched WikiPages</b></font></td></tr>\n";
echo "<tr>
<td bgcolor='gray' valign='bottom' align='center'><font color='white' size='-2'> Renew? </font><td>
<td bgcolor='gray' valign='bottom' align='center'><font color='white' size='-2'>Wiki Page</font><td>
<td bgcolor='gray' valign='bottom' align='center'><font color='white' size='-2'>When Submitted</font><td>
<td bgcolor='gray' valign='bottom' align='center'><font color='white' size='-2'>Changed?</font><td>
<td bgcolor='gray' valign='bottom' align='center'><font color='white' size='-2'> Delete? </font><td>
</tr>";
while ($row = mysql_fetch_array($result))
extract ($row);
// need comparison of dates in here....if one in this database greater then "Not Changed", if less...
// Have last entered date from wakka_pages entered
// when pagename typed in, & then current one compared with that one. So working out that data-out code allows me to do the comparison bit.
$tagdest = $urldest.$tag;
$renewtime = $thislink.'&renew=yes'.'&pn='.$tag;
$delpglnk = $thislink.'&del=yes'.'&pn='.$tag;
$edtimeupdate = $thislink.'&update=yes';
// "CHANGED" determination
$timesubnohyphens = str_replace("-", "", $time);
$timesubnohyphens = str_replace(":", "", $timesubnohyphens);
$timesubnohyphens = str_replace(" ", "", $timesubnohyphens);
$timesavnohyphens = str_replace("-", "", $timesaved);
$timesavnohyphens = str_replace(":", "", $timesavnohyphens);
$timesavnohyphens = str_replace(" ", "", $timesavnohyphens);
$timediff = $timesubnohyphens - $timesavnohyphens;
if ($timediff < 0)
$changed = "<b>File Changed!</b>";
$changed = "File Not Changed";
// "CHANGED" determination goes to here
echo "<tr>
<td valign='top' align='center'><font color='gray' size='-2'><a href=\"$renewtime\">Renew</a></font><td>
<td valign='top'><font size='-2' color='gray'><b><a href=\"$tagdest\">$tag</a></b></font><td>
<td valign='top' align='center'><font color='gray' size='-2'> $time </font><td>
<td valign='top' align='center'><font color='gray' size='-2'> $changed </font><td>
<td valign='top' align='center'><font color='gray' size='-2'><a href=\"$delpglnk\">Delete</a></font><td>
</tr>";
}
echo "<tr><td bgcolor='gray' valign='bottom' align='center' colspan='9'><font color='white' size='-2'><a href=\"$edtimeupdate\"><b>  Update  </b></a> Check to see if pages have been edited.</font></td></tr>\n";
echo "</table>";


Revision [676]

Edited on 2004-06-17 20:21:29 by GmBowen [Added syntax highlighting]
Additions:
The edit of 17 June was to force the script to accept upper or lower case letters when designating a letter to start with. -- Mike Bowen


Revision [675]

Edited on 2004-06-17 20:20:36 by GmBowen [Added syntax highlighting]
Additions:
$start = strtoupper($start);


Revision [668]

Edited on 2004-06-16 04:16:13 by GmBowen [Added syntax highlighting]
Additions:
If anybody has any suggestions, or sees any security issues, for this script please let me know. Mark is working on some other issues for me right now (other mods for wakka.....a //*very*// simple spreadsheet-like interactive table tool actually, and a file upload tool so kids can upload pix.....but the pix will go to a central area for approval first after which they'll be sent to each kids personal file area so they can be embedded in wikka pages. I'm going to integrate a modified version of the wikka-based gallery tool into this so that kids can have on-line presentations of their pictures (it'll only come from their personal file areas, not on a per-page basis)) but if there are useful suggestions for the pageindex action then he might be able to look at them before his contract ends. I'll post the other things he's working on here when he's done. -- Mike Bowen
Deletions:
If anybody has any suggestions, or sees any security issues, for this script please let me know. Mark is working on some other issues for me right now (other mods for wakka.....a //*very*// simple spreadsheet-like interactive table tool actually, and a file upload tool so kids can upload pix but they pix will go to a central area for approval first after which they'll be sent to each kids personal file area so they can be embedded in wikka pages. I'm going to integrate a modified version of the wikka-based gallery tool into this so that kids can have on-line presentations of their pictures (it'll only come from their personal file areas, not on a per-page basis)) but if there are useful suggestions for the pageindex action then he might be able to look at them before his contract ends. I'll post the other things he's working on here when he's done. -- Mike Bowen


Revision [659]

Edited on 2004-06-16 00:27:53 by GmBowen [Added syntax highlighting]
Additions:
If anybody has any suggestions, or sees any security issues, for this script please let me know. Mark is working on some other issues for me right now (other mods for wakka.....a //*very*// simple spreadsheet-like interactive table tool actually, and a file upload tool so kids can upload pix but they pix will go to a central area for approval first after which they'll be sent to each kids personal file area so they can be embedded in wikka pages. I'm going to integrate a modified version of the wikka-based gallery tool into this so that kids can have on-line presentations of their pictures (it'll only come from their personal file areas, not on a per-page basis)) but if there are useful suggestions for the pageindex action then he might be able to look at them before his contract ends. I'll post the other things he's working on here when he's done. -- Mike Bowen
Deletions:
If anybody has any suggestions, or sees any security issues, for this script please let me know. Mark is working on some other issues for me right now (other mods for wakka.....a //*very*// simple spreadsheet-like interactive table tool actually, and a file upload tool so kids can upload pix but they pix will go to a central area for approval first after which they'll be sent to each kids personal file area so they can be embedded in wikka pages) but if there are useful suggestions for the pageindex action then he might be able to look at them before his contract ends. I'll post the other things he's working on here when he's done. -- Mike Bowen


Revision [658]

Edited on 2004-06-16 00:25:22 by GmBowen [Added syntax highlighting]
Additions:
I'm a university prof who is modifying parts of wikka so that it can be used by high school kids to collaborate on school project work and writing. I chose wakka/wikka because it seemed to be the wiki with the most flexibility for doing the sorts of things I was interested in. I'm not a programmer myself, although I do understand lots about programming, and so I've hired a recent grad from my university to implement some features for me that I think my target audience for using the wiki will need. The wiki is only one of the central tools they'll be using, and has to coordinate with numerous other tools (such as a graph drawing and an on-line drawing tool).
If anybody has any suggestions, or sees any security issues, for this script please let me know. Mark is working on some other issues for me right now (other mods for wakka.....a //*very*// simple spreadsheet-like interactive table tool actually, and a file upload tool so kids can upload pix but they pix will go to a central area for approval first after which they'll be sent to each kids personal file area so they can be embedded in wikka pages) but if there are useful suggestions for the pageindex action then he might be able to look at them before his contract ends. I'll post the other things he's working on here when he's done. -- Mike Bowen
Deletions:
If anybody has any suggestions, or sees any security issues, please let me know. Mark is working on some other issues for me right now (other mods for wakka.....a //*very*// simple spreadsheet-like interactive table tool actually, and a file upload tool so kids [the target group for my wikka implementation] can upload pix but they pix will go to a central area for approval first after which they'll be sent to each kids personal file area so they can be embedded in wikka pages) but if there are useful suggestions for the pageindex action then he might be able to look at them before his contract ends. I'll post the other things he's working on here when he's done. -- Mike Bowen


Revision [655]

Edited on 2004-06-16 00:21:50 by GmBowen [Added syntax highlighting]
Additions:
If anybody has any suggestions, or sees any security issues, please let me know. Mark is working on some other issues for me right now (other mods for wakka.....a //*very*// simple spreadsheet-like interactive table tool actually, and a file upload tool so kids [the target group for my wikka implementation] can upload pix but they pix will go to a central area for approval first after which they'll be sent to each kids personal file area so they can be embedded in wikka pages) but if there are useful suggestions for the pageindex action then he might be able to look at them before his contract ends. I'll post the other things he's working on here when he's done. -- Mike Bowen
Deletions:
If anybody has any suggestions, or sees any security issues, please let me know. Mark is working on some other issues for me right now (other mods for wakka.....a //*very*// simple spreadsheet-like interactive table tool actually, and a file upload tool so kids [the target group for my wikka implementation] can upload pix but they pix will go to a central area for approval first after which they'll be sent to each kids personal file area so they can be embedded in wikka pages) but if there are useful suggestions for the pageindex action then he might be able to look at them before his contract ends -- Mike Bowen


Revision [654]

Edited on 2004-06-16 00:21:02 by GmBowen [Added syntax highlighting]
Additions:
If anybody has any suggestions, or sees any security issues, please let me know. Mark is working on some other issues for me right now (other mods for wakka.....a //*very*// simple spreadsheet-like interactive table tool actually, and a file upload tool so kids [the target group for my wikka implementation] can upload pix but they pix will go to a central area for approval first after which they'll be sent to each kids personal file area so they can be embedded in wikka pages) but if there are useful suggestions for the pageindex action then he might be able to look at them before his contract ends -- Mike Bowen
Deletions:
If anybody has any suggestions, or sees any security issues, please let me know. Mark is working on some other issues for me right now (other mods for wakka.....a //*very*// simple spreadsheet-like interactive table tool actually, and a file upload tool so kids [the target group for my wikka implementation] can upload pix but they'll go to a central area for approval first after which they'll be sent to a personal file area so they can be embedded in wikka pages) but if there are useful suggestions for the pageindex action then he might be able to look at them before his contract ends -- Mike Bowen


Revision [653]

Edited on 2004-06-16 00:20:23 by GmBowen [Added syntax highlighting]
Additions:
If anybody has any suggestions, or sees any security issues, please let me know. Mark is working on some other issues for me right now (other mods for wakka.....a //*very*// simple spreadsheet-like interactive table tool actually, and a file upload tool so kids [the target group for my wikka implementation] can upload pix but they'll go to a central area for approval first after which they'll be sent to a personal file area so they can be embedded in wikka pages) but if there are useful suggestions for the pageindex action then he might be able to look at them before his contract ends -- Mike Bowen
Deletions:
If anybody has any suggestions, or sees any security issues, please let me know. Mark is working on some other issues for me right now (other mods for wakka.....a //*very*// simple spreadsheet-like interactive table tool actually, and a file upload tool so kids [the target group for my wikka implementation] can upload pix but they'll go to a central area for approval first after which they'll be sent to a personal file area) but if there are useful suggestions for the pageindex action then he might be able to look at them before his contract ends -- Mike Bowen


Revision [652]

Edited on 2004-06-16 00:19:50 by GmBowen [Added syntax highlighting]
Additions:
If anybody has any suggestions, or sees any security issues, please let me know. Mark is working on some other issues for me right now (other mods for wakka.....a //*very*// simple spreadsheet-like interactive table tool actually, and a file upload tool so kids [the target group for my wikka implementation] can upload pix but they'll go to a central area for approval first after which they'll be sent to a personal file area) but if there are useful suggestions for the pageindex action then he might be able to look at them before his contract ends -- Mike Bowen
Deletions:
If anybody has any suggestions, or sees any security issues, please let me know. Mark is working on some other issues for me right now (another mod for wakka.....a //*very*// simple spreadsheet like table tool actually) but if there are useful suggestions for the pageindex action then he might be able to look at them before his contract ends -- Mike Bowen


Revision [650]

Edited on 2004-06-16 00:17:23 by GmBowen [Added syntax highlighting]
Additions:
If anybody has any suggestions, or sees any security issues, please let me know. Mark is working on some other issues for me right now (another mod for wakka.....a //*very*// simple spreadsheet like table tool actually) but if there are useful suggestions for the pageindex action then he might be able to look at them before his contract ends -- Mike Bowen
Deletions:
If anybody has any suggestions, or sees any security issues, please let me know. -- Mike Bowen


Revision [649]

Edited on 2004-06-16 00:15:17 by GmBowen [Added syntax highlighting]
Additions:
If anybody has any suggestions, or sees any security issues, please let me know. -- Mike Bowen


Revision [643]

Edited on 2004-06-15 19:24:32 by GmBowen [Added syntax highlighting]
Additions:
My programming guy (Mark Kasper) has completed a modification of the pageindex.php code that should make it more useable for high-use wakka/wikka sites (such as can now be seen at the original wakka site). It can either be used as usual, ""{{pageindex}}"", or using a parameter indicating which letter you would like to see a listing for (for example, ""{{pageindex start="a"}}""...or whatever letter you wish to show a listing for). If you enter a letter that there is not yet a listing for, then it defaults to "all".
Deletions:
My programming guy (Mark Kasper) has completed a modification of the pageindex.php code that should make it more useable for high-use wakka/wikka sites (such as can now be seen at the original wakka site). It can either be used as usual,
""{{pageindex}}"", or using a parameter indicating which letter you would like to see a listing for (for example, ""{{pageindex start="a"}}""...or whatever letter you wish to show a listing for). If you enter a letter that there is not yet a listing for, then it defaults to "all".


Revision [642]

Edited on 2004-06-15 18:55:37 by GmBowen [Added syntax highlighting]
Additions:
My programming guy (Mark Kasper) has completed a modification of the pageindex.php code that should make it more useable for high-use wakka/wikka sites (such as can now be seen at the original wakka site). It can either be used as usual,
""{{pageindex}}"", or using a parameter indicating which letter you would like to see a listing for (for example, ""{{pageindex start="a"}}""...or whatever letter you wish to show a listing for). If you enter a letter that there is not yet a listing for, then it defaults to "all".
Deletions:
My programming guy (Mark Kasper) has completed a modification of the pageindex.php code that should make it more useable for high-use wakkawiki sites. It can either be used as usual,
""{{pageindex}}"", or using a parameter indicating which letter you would like to see a listing for (for example, ""{{pageindex start="a"}}""...or whatever letter you wish to show a listing for).


Revision [641]

Edited on 2004-06-15 18:54:14 by GmBowen [Added syntax highlighting]
Additions:
My programming guy (Mark Kasper) has completed a modification of the pageindex.php code that should make it more useable for high-use wakkawiki sites. It can either be used as usual,
""{{pageindex}}"", or using a parameter indicating which letter you would like to see a listing for (for example, ""{{pageindex start="a"}}""...or whatever letter you wish to show a listing for).
%%
<?php /*dotmg modifications : contact m.randimbisoa@dotmg.net*/ ?>
<?php
$a = array(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z);
if ($pages = $this->LoadAllPages())
{
$link = $this->config["base_url"].$this->MiniHref($method, $tag);
print("<strong><a href='$link&var=ALL'>ALL</a>  </strong> \n");

foreach ($pages as $page){
if (!preg_match("/^Comment[0-9]+$/", $page["tag"])) {
$firstChar = strtoupper($page["tag"][0]);
if (!preg_match("/[A-Z,a-z]/", $firstChar)) {
$firstChar = "#";
}
if ($firstChar != $curChar) {
if ($curChar) print("\n");
print("<strong><a href='$link&var=$firstChar'>$firstChar</a> </strong> \n");
$curChar = $firstChar;
}
}
}
print("<br><br>");
$curChar = "";

foreach ($pages as $page)
{

//#dotmg [1 line modified]: added [0-9]+$ to regular expression
if (!preg_match("/^Comment[0-9]+$/", $page["tag"])) {
$firstChar = strtoupper($page["tag"][0]);

$st = htmlspecialchars(urldecode($_GET['var']));

if($st == ''){
if($start == 'ALL')
{$st='';}
elseif($start != '')
{
for($i=0; $i<27; $i++)
{
if($start == $a[$i])
{
$st = $a[$i];
}
}
}
}

if($firstChar == $st)
{
if (!preg_match("/[A-Z,a-z]/", $firstChar)) {
$firstChar = "#";
}
if ($firstChar != $curChar) {
if ($curChar) print("<br />\n");
print("<strong>$firstChar</strong><br />\n");
$curChar = $firstChar;
}
if ($this->HasAccess("read", $page["tag"])) {
print($this->Link($page["tag"]));
}
else {
print($page["tag"]);
}
if ($page['owner'] != '')
{
if ($this->UserName() == $page['owner'])
print(" . . . . one of your pages.");
else {
if ($this->HasAccess("read", $page["owner"])) {
print(" . . . . Owner: ".$this->Format($page['owner']));
}
else {
print(" . . . . Owner: ".$page['owner']);
}
}
}
print("<br />\n");

}
elseif ('' == $st || $st == 'ALL')
{
if ($firstChar != $curChar) {
if ($curChar) print("<br />\n");
print("<strong>$firstChar</strong><br />\n");
$curChar = $firstChar;
}
if ($this->HasAccess("read", $page["tag"])) {
print($this->Link($page["tag"]));
}
else {
print($page["tag"]);
}
if ($page['owner'] != '')
{
if ($this->UserName() == $page['owner'])
print(" . . . . one of your pages.");
else {
if ($this->HasAccess("read", $page["owner"])) {
print(" . . . . Owner: ".$this->Format($page['owner']));
}
else {
print(" . . . . Owner: ".$page['owner']);
}
}
}
print("<br />\n");
}
}
}
}
else
{
print("<em>No pages found.</em>");
}
?>
%%
Deletions:
My programming guy (Mark Kasper) has completed a modification of the pageindex.php code that should make it more useable for high-use wakkawiki sites. It can either be used as usual..
""{{pageindex}}"" or using a parameter indicating which letter you would like to see a listing for (for example, ""{{pageindex start="a"}}""...or whatever letter you wish to show a listing for).


Revision [640]

The oldest known version of this page was created on 2004-06-15 18:53:26 by GmBowen [Added syntax highlighting]
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki