<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title></title>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
body {
  margin: 5px 5px 5px 5px;
  background-color: #ffffff;
}
/* ========== Text Styles ========== */
hr { color: #000000}
body, table /* Normal text */
{
 font-size: 14pt;
 font-family: 'Courier New';
 font-style: normal;
 font-weight: normal;
 color: #000000;
 text-decoration: none;
}
span.rvts1 /* Heading */
{
 font-size: 10pt;
 font-family: 'Arial';
 font-weight: bold;
 color: #0000ff;
}
span.rvts2 /* Subheading */
{
 font-size: 10pt;
 font-family: 'Arial';
 font-weight: bold;
 color: #000080;
}
span.rvts3 /* Keywords */
{
 font-size: 10pt;
 font-family: 'Arial';
 font-style: italic;
 color: #800000;
}
a.rvts4, span.rvts4 /* Jump 1 */
{
 font-size: 10pt;
 font-family: 'Arial';
 color: #008000;
 text-decoration: underline;
}
a.rvts5, span.rvts5 /* Jump 2 */
{
 font-size: 10pt;
 font-family: 'Arial';
 color: #008000;
 text-decoration: underline;
}
span.rvts6
{
 font-size: 11pt;
 font-family: 'tahoma';
 font-weight: bold;
 color: #ffffff;
 background-color: #0000ff;
}
span.rvts7
{
}
span.rvts8
{
 font-size: 9pt;
 font-weight: bold;
 color: #800000;
}
a.rvts9, span.rvts9
{
 color: #0000ff;
 text-decoration: underline;
}
/* ========== Para Styles ========== */
p,ul,ol /* Paragraph Style */
{
 text-align: left;
 text-indent: 0px;
 padding: 0px 0px 0px 0px;
 margin: 0px 0px 0px 0px;
}
.rvps1 /* Centered */
{
 text-align: center;
}
--></style>
</head>
<body>

<p><br></p>
<p>Monday, September 28, 2009, 5:43:30 AM, Simon wrote</p>
<p><br></p>
<p><span class=rvts8>Is there a way I can test and only do this if the page is bein</span></p>
<p><span class=rvts8>saved (rather than browsed, previewed, etc</span></p>
<p><br></p>
<p>Simon, it is hard to tell what you are trying to achieve with you</p>
<p>recipe. Therefor it is hard to tell if it would be better to use pag</p>
<p>variables or page text variables, for instance</p>
<p>Much of the answers here have been fairly unspecific, and may not b</p>
<p>too helpful for what you really trying to accomplish</p>
<p><br></p>
<p>For instance your question above: I have to guess what you mean</p>
<p>Just on what you say, I am tempted to answer</p>
<p>If a user edits a page, she can add a PTV, or modify a PTV, when sh</p>
<p>edits the page content</p>
<p>If you want to restrict editing to adding or modifying a PT</p>
<p>in the page content, you could use a recipe lik</p>
<p><a class=rvts9 href="http://www.pmwiki.org/wiki/Cookbook/PTVReplace">http://www.pmwiki.org/wiki/Cookbook/PTVReplace</a></p>
<p>or follow its approach in your own recipe, or follow Peter's approac</p>
<p>and use toolbox.php</p>
<p><br></p>
<p>To give you some overview on a specific mechanism, the PTVReplace work</p>
<p>consists this</p>
<p>There is a markup defined for creating a (:ptvreplace ..:) link</p>
<p>which can take some parameters. On rendering the markup causes&nbsp;</p>
<p>function to run, which produces valid HTML output for the link</p>
<p>including the parameters as part of the url the link targets</p>
<p><br></p>
<p>So when a user browses the page, she can see the link, but nothin</p>
<p>else is happening. Clicking the link will cause pmwiki to run, and&nbsp;</p>
<p>custom action=ptvreplace in the url will instruct pmwiki.php to ru</p>
<p>a custom function,w hich will do the main work, in this cae opens th</p>
<p>page, looks for the PTV, modifies it, saves the page and redirects t</p>
<p>view the changed page again</p>
<p><br></p>
<p>For action=ptvreplace to work the recipe define</p>
<p>$HandleActions['ptvreplace'] = 'PTVReplace'</p>
<p>PTVReplace is the name of the custom function doing all the work</p>
<p><br></p>
<p>So we got a markup function creating link HTML, and a 'Handle Action</p>
<p>function to run when the custom action is evoked, whichmay be throug</p>
<p>clicking the custom link, or may be through other means (for</p>
<p>submissions, other ways of supplying the url with the parameters</p>
<p>cookie requests)</p>
<p><br></p>
<p>A custom action via an entry to $HandleActions is one main way t</p>
<p>hook a recipe into PmWiki. It may also be useful for calling custom tes</p>
<p>functions. You won't need special custom link markup, but instea</p>
<p>you can create a standard link for instance lik</p>
<p><br></p>
<p>[[{$FullName}?action=myaction&amp;key1=value1&amp;key2=value2| do something]</p>
<p><br></p>
<p>so you got a link to click which will run your custom function vi</p>
<p>action=myaction. The function then can pick up the parameters in th</p>
<p>link url via the $_GET variable</p>
<p><br></p>
<p>Hope this helps, sorry if I gone into too much detail which you ma</p>
<p>know anyway</p>
<p><br></p>
<p>Hans</p>

</body></html>