commit c28d11cac8e25d9b0cf8322cf284fe05ce715d50 (tag: v0.40) Author: Aaron J. Graves <cajunman4life@gmail.com> Date: Thu Nov 13 16:02:07 2014 -0600 aneuch.pl - DoRequest: Removed some commented code commit 8d4a4ec810ad43722a77e628f40676c10b4301ce Author: Aaron J. Graves <cajunman4life@gmail.com> Date: Thu Nov 13 16:00:17 2014 -0600 config.pl.dist - Added $PurgeDeletedPage commit 0d026f7c267980c68be08ae2e73075846f8907f6 Author: Aaron J. Graves <cajunman4life@gmail.com> Date: Thu Nov 13 15:51:22 2014 -0600 neuch.pl - InitVars: Check if a revision exists before offering to edit it, remove RegCommand on 'revision' - MarkupImage: Use $Url instead of $ShortUrl - DoSpecialPage: Return if a revision is involved - DoEdit: Show if currently editing the latest revision, also let the user know if the page is a special page - AdminForm: Form() now returns instead of prints - DoAdminBlock: Form() now returns instead of prints - DoAdminBannedContent: Form() now returns instead of prints - DoAdminCSS: Form() now returns instead of prints - DoAdminRobotsTxt: Form() now returns instead of prints - RedHerringForm: Return instead of print - Form: Return instead of print - DoDiscuss: RedHerringForm() now returns instead of prints - DoHistory: Instead of calling CommandLink for 'revision', call a blank CommandLink (DoRequest() now handles revisions) - PageExists: Allow revisions as well - Removed sub DoRevision - Now handled by DoRequest() - CommandLink: Change to allow for blank command - DoRequest: Removed some commented code, now handle displaying revisions of pages and files commit 5e7a7ab66427d69ead5d25eb5081f361ea03d6ad Author: Aaron J. Graves <cajunman4life@gmail.com> Date: Fri Nov 7 13:41:32 2014 -0600 htaccess.dist - Removed RewriteCond that QUERY_STRING be empty. commit 09a8edabdd506b06c843446459a4850aac6737ac Author: Aaron J. Graves <cajunman4life@gmail.com> Date: Fri Nov 7 13:38:01 2014 -0600 aneuch.pl - Removed some unneeded variables, changed @Plugins to %Plugins - Introduced $VERSIONID - Use $Url instead of $ShortUrl in several places throughout the script - InitVars: Changed the way $EditText was built, $RevisionsText and $RandomText now use CommandLink() and $AdminText uses AdminLink(). Changed call on RegCommand for 'revision'. Removed RegAdminPage 'getbannedcontentfile'. Removed RegShortCode call on 'blog'. - Removed sub DoBlog - MarkupBuildLink: Use CGI.pm methods to generate links. Call CommandLink() for the edit link. - Markup: Introduced triple-braces to generate <pre> tags, began preparing for triple-brace around inline no-wiki - Wrote sub RegPlugin - Registers a plugin and its description - GetPage: Added comment - Removed unneeded sub GetArchivePage - RefreshLock: Call StringToFile instead of manually writing. - UnLock: Untaint $pg - DoArchive: Untaint $file, $archive, and $F{revision} - WritePage: Corrected test for file upload - WriteDB: Untaint $filename - CommandDisplay: If there is a revision, append it to the end of the line - AdminForm: Call Form() now - DoAdminVersion: Change for @Plugins -> %Plugins - DoAdminIndex: Use CGI.pm methods for links - DoAdminRemoveLocks: Untaint variables - DoAdminClearVisits: Use CGI.pm methods, and call AdminLink() - DoAdminListVisitors: Call AdminLink() for removing limit - Removed unneeded sub DoAdminUnlock - DoAdminBlock: Add <br/> before save button - DoAdminBannedContent: Remove bit about pre-populating with default BannedContentFile, add <br/> before save button - DoAdminCSS: Call AdminLink() to restore default CSS, add <br/> before save button - DoAdminListFiles: Use CGI.pm methods for list and link - DoAdminRobotsTxt: Add <br/> before save button - Commented out sub DoAdminGetBannedContentFile - It wasn't working anyways. - DoAdmin: Minor change to back link, call AdminLink() for it, use CGI.pm methods for list - DoRecentChanges: Call CommandLink() - DoDownload: Now can handle revisions as well - DoHistory: Use CGI.pm methods, inform if page is scheduled to be deleted, call CommandLink() - DoVisit: If param 'revision' is set but $PageRevision is not, then populate the variable with the parameter - DoRevision: Properly display past revisions of uploaded files - Wrote sub CommandLink - will return a link to the command specified - Wrote sub AdminLink - will return an admin link to the admin page specified - CSS: Changed the <pre> style commit 933add01c420629e4f3e5b8e13eb355068fb32e2 Author: Aaron J. Graves <cajunman4life@gmail.com> Date: Tue Oct 28 14:53:22 2014 -0500 aneuch.pl - Added variable $PurgeDeletedPage - timestamp for how long a page marked DeletedPage should hang around - InitVars: Initialize $PurgeDeletedPage to 2 weeks - InitVars: Include the quotes in 'search' RegCommand - InitVars: Removed the RegCommand for 'delete', added RegMaintAction 'deletepages' - GetPage: Changed the way variables are passed - DoEdit: Moved the preview above the start of the editing form, removed the link to "Delete Page" - WritePage: Check if the content is a file upload, and if it is, don't try to do signatures. Same thing for the diff - ReadDB: Introduced variable to increase readability of code - AppendPage: Pass along first 200 characters of comment instead of "Comment by" - DoRecentChanges: Don't split the summary onto its own line - DoHistory: Changed intro line to page - DoPostingUpload: Fixed bug that was causing upload revisions to not work. The fix was in the record separator. - Wrote sub DoMaintDeletePages - Deletes pages that have been marked DeletedPage and are older than $PurgeDeletedPage - DoDiff: Link to current revision of page (at the top), also don't show plain text contents if it's a file - Removed sub DoDelete commit 3e9f78139f6aead5fba2110d3c355093bd4346a7 Author: Aaron J. Graves <cajunman4life@gmail.com> Date: Fri Oct 24 10:45:53 2014 -0500 aneuch.pl - Added var %CommandsDisplay - Display options for the given command in the visitor log - InitVars: If do=revision, we still want discussion and edit links. Also, if revision number specified, edit text will now include that. - InitVars: Changed all RegCommand calls to include display variables. - InitVars: Instead of building %MaintActions manually, use the new RegMaintAction API - DoHeader: Use "searchbox" as the id for the div around the search form. - MarkupBuildLink: Underline the page name in red dashed line if it doesn't yet exist - Markup: #NOWIKI is handled a little differently - RegCommand: Allow $display variable now, add that to %CommandsDisplay - UnRegCommand: Delete from %CommandsDisplay also - Wrote sub RegMaintAction - registers a maintenance action - Wrote sub UnregMaintAction - unregisters a maintenance action - GetPage: allow a revision to be passed to the sub, and if there is one, retrieve the revision instead of the latest version of a page - IsLoggedIn: Added additional comments - DoEdit: Allow revisions to be edited, use WriteDB and ReadDB instead of the hokey way temp files were being stored before. - WritePage: Instead of using GetParam('revision'), use NextRevision() - Wrote sub LatestRevision - Returns the latest revision number of a page. - Wrote sub NextRevision - Returns LatestRevision() + 1 - Wrote sub CommandDisplay - will return the display text for a given command - DoAdminListVisitors: Removed all hard-coded command translation, call CommandDisplay now - DoSearchShortCode: Allow "extras" to be included that will be tacked on to the URL, such as "summary=0" etc - DoSearch: If param summary=0, don't show the text from the page (simply show the list of pages and their last modified time) - DoHistory: The revert button now sends you to edit for the particular revision - Preview: Changed to use the WriteDB function - DoRevision: use param 'revision' instead of 'rev' - Removed sub DoRevert - now handled by DoEdit with revision param set - DoRequest: Use param 'revision' instead of 'rev' - CSS: Rename #search to #searchbox commit 6a019013c66e2495c6d8bd0be0b74afe3269f84e Author: Aaron J. Graves <cajunman4life@gmail.com> Date: Wed Oct 15 10:43:12 2014 -0500 aneuch.pl - ADDED VARS $SpamLog and $LogSpam - InitVars: defined $LogSpam and $SpamLog - DoSearch: Remove "Nothing found!" comment, changed page titles to use <big> tag, added suggestion at the bottom of the search page to create a page if no results found. - DoRevert: Check for IsAdmin() while reverting (TEMPORARY FIX!!!) commit 6a48c1a5cbd1c4896d44754346b64e075c63fbbd Author: Aaron J. Graves <cajunman4life@gmail.com> Date: Tue Jun 10 16:02:51 2014 -0500 - Added variable %HTTPHeader - InitConfig: $ConfFile is now './config.pl' due to some strange issues observed in another installation - InitVars: $ENV{'PATH'} now includes /usr/local/bin and /usr/pkg/bin, just in case. - InitVars: Check for %3B in requests, convert them to semicolons. - InitVars: Call RegCommand() for robotstxt, points to DoRobotsTxt() - InitVars: Call RegAdminPage for robotstxt and getbannedcontentfile - InitVars: Call RegPostAction for robotstxt, points to DoPostingRobotsTxt - InitVars: Call RegRawHandler for robotstxt, also if $Page eq "robots.txt" then call SetParam on 'do' to 'robotstxt' - ReadCookie: Re-written to use CGI - SetCookie: Re-written to use CGI - DoEdit: Don't call QuoteHTML on $contents for the default text of the textarea. - Wrote sub CountAllComments - Determines the list of discussion pages, and walks through them calling DiscussCount, returns total count - DoAdminListVisitors: Don't show the seperate list of IP's, changed the way the data break-out is done with named variables - DoAdminBlock: Surround the blocked count with <strong> - DoAdminBannedContent: Surround the blocked count with <strong>, added link to call getbannedcontentfile - DoAdminListFiles: Move the printing of the intro text down - Wrote sub DoAdminRobotsTxt - Admin page for editing the robots.txt file - Wrote sub DoAdminGetBannedContentFile - Supposed to retrieve the distrubted BannedContentFile from aneuch.org (not working yet) - DoAdmin: If the descriptive text for an admin page is empty, don't display it in the list - Wrote sub DoRobotsTxt - Sends text/plain robots.txt - QuoteHTML: Commented the & exchange for &, don't recall why right now - DoHistory: Only show page view count if $CountPageVisits is set - ReDirect: Include %HTTPHeader with $q->redirect() call - Wrote sub DoPostingRobotsTxt - Handles saving the robots.txt file - DoPosting: SetParam() do = 'posting' - DoVisit: Log entries are very simple now - ErrorPage: Changed the way the HTTP Status is set - DoRequest: Commented out the block that bans searching from outside the site. This really isn't a bad thing I don't think. It was just being abused previously. - DoRequest: If param 'do' is set, but a sub not associated with it, call 501 not implemented - DoRequest: Now use %HTTPStatus with $q->header() - CSS: Added "font-size: 1.05em;" to #content declaration commit 8770d87d6623b14289412815147d92271aba557d Author: Aaron J. Graves <cajunman4life@gmail.com> Date: Thu Apr 24 15:46:09 2014 -0500 aneuch.pl - Removed %FORM from use vars statement - Defined variables %ShortCodes and $BlogPattern - InitVars: Grab $Aneuch::VERSION instead of $VERSION in adding Aneuch to @Plugins - InitVars: Define $BlogPattern - InitVars: Removed unneeded code - InitVars: Changed the way $NavBar is built - InitVars: Register short codes 'blog' and 'search' - Wrote sub DoBlog - Returns a listing of blog entries - MarkupBuildLink: Add quotes around page name when building create page link - Wrote sub MarkupShortcode - Searches for defined shortcodes, then executes the associated sub - Markup: Check for shortcodes at the end - Wrote sub RegShortCode - Registers a shortcode and its associated sub - Wrote sub UnregShortCode - Unregisters a previously registered shortcode - DoEdit: Added checkbox to select if the page is a template (not complete yet) - DoEdit: Only show the link to upload a file if CanUpload() - DoAdminBlock: Call Form() instead of manually building the form - DoAdminBannedContent: Call Form() instead of manually building the form - DoAdminCSS: Call Form() instead of manually building the form - DoAdmin: If $CountPageVisits then show total page view count - Wrote sub Form - Generates an HTML form element based on input received - Wrote sub DoSearchShortCode - Returns a link to search for the text within the shortcode - DoPostingDiscuss: Check for attempted file upload - DiscussCount: Operate on a page name passed to the sub (if one is) rather than $Page - DoRevert: Add rel='nofollow' on "YES" link - StripMarkup: Added "-" to the list of items acceptable. - DoRequest: Removed hard-coded URL on $referer checking for search - CSS: Added .navigation li a.active block commit ef3d3535918af92b199cefd44e035ef1c81e34e2 Author: Aaron J. Graves <cajunman4life@gmail.com> Date: Thu Mar 13 15:13:38 2014 -0500 - InitVars: Strip leading slashes from $Page right after it grabs path_info() - InitVars: Call RegAdminPage on 'files', which points to DoAdminListFiles() - MarkupImage: Fixed bug whereby external images (with http://) were getting clobbered. Also call ReplaceSpaces() on image name if local file. - Wrote sub DoAdminListFiles - Shows a list of all pages which contain an uploaded file - DoRequest: Call PageExists() instead of a manual test. Also, if 'filename' is set on an uploaded file, display that instead of the page name. commit 686dd7561b92a09c8f0f9a624edb91af1027b377 Author: Aaron J. Graves <cajunman4life@gmail.com> Date: Tue Mar 11 21:12:50 2014 -0500 - Removed $Header and $Footer - Added $UploadsAllowed and @UploadTypes commit 8c0f22425256786a42a160ac6c751acc4935239e Author: Aaron J. Graves <cajunman4life@gmail.com> Date: Tue Mar 11 14:30:46 2014 -0500 - Changed hash-bang line to include the 'w' and 'T' switches. Not sure about keeping this in the future. - Added "use CGI" statement - Uncommented the "use CGI::Carp qw(fatalsToBrowser)" line. For now. - Added variables $q, $Hostname, @RawHandlers, $UploadsAllowed, and @UploadTypes - InitScript: Set $q = new CGI - InitVars: Set $UploadsAllowed to 0 by default, and set the default @UploadTypes to include 'image/gif', 'image/png', and 'image/jpeg' - InitVars: Removed a bunch of commented code, and changed the way $Page was determined - InitVars: Call SetParam on 'search' after replacing spaces - InitVars: Changed how redirect is done for trailing slash pages (for CGI) - InitVars: Attempt to determine $Hostname, set $Username to it if one isn't set already - InitVars: Call RegCommand on 'download', which calls DoDownload() - InitVars: Call RegPostAction on 'upload', which calls DoPoastingUpload() - InitVars: Call RegRawHandler on 'download' and 'random' - DoHeader: Change the call on PageExists from GetParam('page') to $Page... don't know if this is still needed. - MarkupBuildLink: Don't strip a query string from the link text anymore - Wrote sub MarkupImage - Handles the image stuff of the markup tag {{}} - Markup: Call MarkupImage() on image tags - Wrote sub PageIsFile - Returns 1 if the page is an uploaded file, 0 otherwise - Wrote sub IsRawHandler - Determines if an action should be done "raw" - Wrote sub RegRawHandler - Adds an action to the list of "raw" subroutines - GetParam: Changed to use CGI - Wrote sub SetParam - sets a named parameter to a value in CGI - SetCookie: Removed some commented code - Wrote sub CanUpload - Determines if uploads are allowed - DoEdit: Re-written to include the file upload form if 'upload' param = 1, and to utilize CGI calls - SetLock: Call StringToFile instead of writing directly to a file - WritePage: Remove all %FORM lookups, replace with GetParam (for CGI), also add 'hostname' and 'filename' elements - AppendPage: Added 'hostname' element - DoAdminPassword: Call CGI functions instead of direct printing HTML - DoAdminVersion: Call CGI functions instead of direct printing HTML - DoAdminListVisitors: Set the paragraph style to align left (instead of justify), added "download" to the list of items to word differently - DoAdmin: Instead of doing a javascript to go back, hard-link to ?do=admin - Removed sub ReadIn - No longer needed since the switch to CGI - Wrote sub StartForm - Returns the start of a multipart form - IsBannedContent: If the text is a file upload, return 0. Also replace %FORM with GetParam - PassesSpamCheck: Re-written to use GetParam (for CGI) - DoLinkedPages: If page does not exist, say so and return - Wrote sub DoDownload - Handles the sending out of uploaded files - DoSearch: Change to use 'grep -Prli' to get a list of pages that contain the search string, and then open only those pages (speeds up search) - StringToFile: Replace %FORM with GetParam (for CGI) - ReDirect: Re-written to use CGI - DoPostingSpam: use GetParam (for CGI) - DoPostingLogin: use GetParam (for CGI) - DoPostingEditing: use GetParam (for CGI), check if attempting to by-pass the ban on file uploads - DoPostingDiscuss: use GetParam (for CGI) - DoPostingBlockList: use GetParam (for CGI) - DoPostingBannedContent: use GetParam (for CGI) - DoPostinCSS: use GetParam (for CGI) - Wrote sub DoPostingUpload - Handles the file uploads - DoPosting: use GetParam (for CGI) - StringToFile: Attempt to untaint the file name (may need more work) - DoDiff: use GetParam (for CGI) - DoRevision: Instead of a giant header, use a smaller, friendlier paragraph to show revision number. Also link to the original. - DoRevert: use SetParam (for CGI) - ErrorPage: Added more http codes - DoRequest: Remove call to ReadIn(), remove hard-coded check for 'random' action, block any search request if referer isn't on the same domain (or is set to a blank search request), call IsRawHandler, and use GetParam (for CGI). Also if PageIsFile(), show a friendly page with a link to ?do=download rather than vomit on the screen. commit db3ced225ae63717abd53a73096f333bb3daa828 Author: Aaron J. Graves <cajunman4life@gmail.com> Date: Tue Mar 4 10:29:01 2014 -0600 - Updated $VERSION to 0.40 - InitVars: Changed the way $DiscussPrefix is determined, allowing a blank value (which will disable discussion pages) - InitVars: Only build $DiscussLink and $DiscussText if $DiscussPrefix is not blank - InitVars: Call RegCommand on 'links', which calls DoLinkedPages() - InitVars: Only call RegSpecialPage on "$DiscussPrefix.*" if $DiscussPrefix is not blank - DoFooter: Only add $DiscussText to the list if $DiscussPrefix is not blank - DoAdminListVisitors: Added "links" to the list of items to display differently - Wrote sub DoLinkedPages: Displays a list of pages that link back to $Page - DoHistory: Add a link to the 'links' action on the history page, which will then show backlinks - IsDiscussionPage: If $Page matches $DiscussPrefix and $DiscussPrefix is not blank (otherwise every page was turning in to a discussion page) commit a7920ed8eeb79243f0f88cb69684d1c9172ea8af Author: Aaron J. Graves <cajunman4life@gmail.com> Date: Tue Mar 4 10:13:24 2014 -0600 - Corrected a minor spelling mistake