On Thursday 24 January 2002 06:36 am, Tim Ward wrote:
> What is it you actually want to do? Add the current date/time or a
> timestamp entered on the submitting form? 

yes.  That is exactly what I wish to do.

See date() for the former. Once
> you've got your stamp in a format you want just add it to the front of the
> story before saving. Give us a bit more detail about what it is that isn't
> working, or the code that you want to modify.

The following is the savepage.php script.  It (in as much as I can figure) is 
 what is executed when one pushes or clicks on the "save" button when phpwiki 
is serving up the"editpage.html" file to a user on his or her browser, and 
the individual is finished editing, and wishes to save their entry.  The 
"save" button is at the bottom of the edit page.  What I wish to have happen 
is, to have the save button do what it does now, save the changes, but in 
addition to that, if I had my perfect world, I would like this savepage.php 
script prefix the edited text with a date and time stamp on the left side of 
the page, appearing as a (redundancy here) prefix to the typed material.  
That way each entry would have a date and time stamp.  I hope I am describing 
this in a fashon you can understand.  Let me give you an example.  One types 
...

This is a good day.

Then the individual pushes the save button.  The save is executed, and the 
user is bounced back to the preview page (the preview page part happens as a 
result simply of how the thing just works).  When the preview page is 
displayed, the newly added text appears, but looks like this...

2002 01/24 09:33:45  This is a good day.

The format of the date and time are really fluff to me, as long as it appears.

I hope my description is understandable.  I eagerly await your response.

Tim B.

Here's the script...

---------------------------------------------------------

s_id('$Id: savepage.php,v 1.17 2001/11/14 21:05:38 dairiki Exp $'); 
require_once('lib/Template.php'); 
require_once('lib/transform.php'); 
require_once('lib/ArchiveCleaner.php'); 
 
/* All page saving events take place here. All page info is also taken care 
of here. This is klugey. But it works. There's probably a slicker way of 
coding it. 
*/ 
 
// FIXME: some links so that it's easy to get back to someplace useful from 
these // error pages. 
 
function ConcurrentUpdates($pagename) { /* xgettext only knows about c/c++ 
line-continuation strings is does not know about php's dot operator. We want 
to translate this entire paragraph as one string, of course. 
*/ 
$html = "<p>"; $html .= gettext ("PhpWiki is unable to save your changes, 
because another user edited and saved the page while you were editing the 
page too. If saving proceeded now changes from the previous author would be 
lost."); 
$html .= "</p>\n<p>"; $html .= gettext ("In order to recover from this 
situation follow these steps:"); 
$html .= "\n<ol><li>"; $html .= gettext ("Use your browser's <b>Back</b> 
button to go back to the edit page."); 
$html .= "</li>\n<li>"; $html .= gettext ("Copy your changes to the clipboard 
or to another temporary place (e.g. text editor)."); 
$html .= "</li>\n<li>"; $html .= gettext ("<b>Reload</b> the page. You should 
now see the most current version of the page. Your changes are no longer 
there."); 
$html .= "</li>\n<li>"; $html .= gettext ("Make changes to the file again. 
Paste your additions from the clipboard (or text editor)."); 
$html .= "</li>\n<li>"; $html .= gettext ("Press <b>Save</b> again."); 
$html .= "</li></ol></p>\n"; $html .= QElement('p', gettext ("Sorry for the 
inconvenience.")); 
 
echo GeneratePage('MESSAGE', $html, sprintf (gettext ("Problem while updating 
%s"), $pagename)); 
ExitWiki(); 
} 
 
function PageIsLocked($pagename) { 
$html = QElement('p', gettext("This page has been locked by the administrator 
and cannot be edited.")); 
$html .= QElement('p', gettext ("Sorry for the inconvenience.")); 
 
echo GeneratePage('MESSAGE', $html, sprintf (gettext ("Problem while editing 
%s"), $pagename)); 
ExitWiki (""); 
} 
 
function NoChangesMade($pagename) { $html = QElement('p', gettext ("You have 
not made any changes.")); $html .= QElement('p', gettext ("New version not 
saved.")); 
echo GeneratePage('MESSAGE', $html, sprintf(gettext("Edit aborted: %s"), 
$pagename)); 
ExitWiki (""); 
} 
 
function BadFormVars($pagename) { $html = QElement('p', gettext ("Bad form 
submission")); $html .= QElement('p', gettext ("Required form variables are 
missing.")); 
echo GeneratePage('MESSAGE', $html, sprintf(gettext("Edit aborted: %s"), 
$pagename)); 
ExitWiki (""); 
} 
 
function savePreview($dbi, $request) { $pagename = 
$request->getArg('pagename'); $version = $request->getArg('version'); 
 
$page = $dbi->getPage($pagename); $selected = $page->getRevision($version); 
 
// FIXME: sanity checking about posted variables // FIXME: check for 
simultaneous edits. foreach (array('minor_edit', 'convert') as $key) 
$formvars[$key] = $request->getArg($key) ? 'checked' : ''; foreach 
(array('content', 'editversion', 'summary', 'pagename', 'version') as $key) 
@$formvars[$key] = htmlspecialchars($request->getArg($key)); 
 
$template = new WikiTemplate('EDITPAGE'); 
$template->setPageRevisionTokens($selected); $template->replace('FORMVARS', 
$formvars); $template->replace('PREVIEW_CONTENT', 
do_transform($request->getArg('content'))); 
echo $template->getExpansion(); 
} 
 
function savePage ($dbi, $request) { 
global $user; 
 
// FIXME: fail if this check fails? assert($request->get('REQUEST_METHOD') == 
'POST'); 
 
if ($request->getArg('preview')) return savePreview($dbi, $request); 
$pagename = $request->getArg('pagename'); $version = 
$request->getArg('version'); 
 
$page = $dbi->getPage($pagename); $current = $page->getCurrentRevision(); 
 
$content = $request->getArg('content'); $editversion = 
$request->getArg('editversion'); 
if ( $content === false || $editversion === false ) BadFormVars($pagename); 
// noreturn 
 
if ($page->get('locked') && !$user->is_admin()) 
PageIsLocked($args->pagename); // noreturn. 
 
$meta['author'] = $user->id(); $meta['author_id'] = 
$user->authenticated_id(); $meta['is_minor_edit'] = (bool) 
$request->getArg('minor_edit'); $meta['summary'] = 
trim($request->getArg('summary')); 
 
$content = preg_replace('/[ \t\r]+\n/', "\n", chop($content)); 
if ($request->getArg('convert')) $content = CookSpaces($content); 
 
if ($content == $current->getPackedContent()) { NoChangesMade($pagename); // 
noreturn } 
 
//////////////////////////////////////////////////////////////// 
// // From here on, we're actually saving. 
// $newrevision = $page->createRevision($editversion + 1, $content, $meta, 
ExtractWikiPageLinks($content)); 
if (!is_object($newrevision)) { 
// Save failed. 
ConcurrentUpdates($pagename); 
} 
 
// Clean out archived versions of this page. $cleaner = new 
ArchiveCleaner($GLOBALS['ExpireParams']); 
$cleaner->cleanPageRevisions($page); 
$warnings = $dbi->GenericWarnings(); 
if (empty($warnings)) { 
// Do redirect to browse page. // In this case, the user will most likely not 
see the rest of // the HTML we generate (below). 
$request->redirect(WikiURL($pagename, false, 'absolute_url')); } 
 
$html = sprintf(gettext("Thank you for editing %s."), 
LinkExistingWikiWord($pagename)); 
$html .= "<br>\n"; $html .= gettext ("Your careful attention to detail is 
much appreciated."); $html .= "\n"; 
 
if ($warnings) { $html .= Element('p', "<b>Warning!</b> " . 
htmlspecialchars($warnings) 
. "<br>\n"); 
} 
 
global $SignatureImg; 
if (!empty($SignatureImg)) $html .= sprintf("<P><img src=\"%s\"></P>\n", 
DataURL($SignatureImg)); 
 
$html .= "<hr noshade>\n"; $html .= do_transform($newrevision->getContent()); 
echo GeneratePage('BROWSE', $html, $pagename, $newrevision); } 
 
 
// Local Variables: 
// mode: php 
// tab-width: 8 
// c-basic-offset: 4 
// c-hanging-comment-ender-p: nil 
// indent-tabs-mode: nil 
// End: 
?> 

--------------------------------------------------------------


>
> (also) Tim
> www.chessish.com <http://www.chessish.com>
>
>       ----------
>       From:  Tim Bogart [SMTP:[EMAIL PROTECTED]]
>       Sent:  23 January 2002 17:47
>       To:  [EMAIL PROTECTED]
>       Subject:  phpwiki save button
>
>       Hello everybody.  My name is Tim and I am new to this list.  I am
> not a
>       programmer and don't even play one on tv.
>
>       I've recently installed and have started to attempt to customize
> phpwiki.  I
>       need to modify the way the "save" button works.  I not only need it
> to do the
>       save, but I would like it to append a date and time stamp to the
> text being
>       posted to the wiki.  My first choice would that the line of text
> being typed
>       would be prefixed with the stamp rather than slapping it on the end.
> This I
>       believe would be the most ergonomically convienient for those
> reading that
>       which has been posted.
>
>       Is there anybody out there willing to give me a hand.
>
>       TIA,
>
>       Tim B.

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to