version=pmwiki-2.2.70 ordered=1 urlencoded=1
author=Petko
charset=UTF-8
csum=note about $EditFunctions
name=PmWiki.EditVariables
rev=77
targets=Cookbook.EditTemplates,PmWiki.Drafts,Cookbook.ROEPatterns,Cookbook.ROSPatterns,Category.PmWikiDeveloper
text=(:Summary:variables used when editing pages:)%0aTo set many of the variables below specify them in @@config.php@@.%0a%0a:$AutoCreate:Used in conjunction with the AutoCreateTargets edit function, this array records any sets of pages which should be created automatically if they don't exist.  The syntax is %0a->        [@$AutoCreate[REGEXP] = PAGE_PARAMETERS;@]%0a->        where @@REGEXP@@ is a regular expression which will identify the pages to be autocreated, and @@PAGE_PARAMETERS@@ is an array of attributes for the page to be created.  For example, %0a->        [@$AutoCreate['/^Category\\./'] = array('ctime' => $Now);@]%0a->        will create a blank page with a current creation time for any missing Category page.%0a%0a:$DefaultPageTextFmt:The text that should be displayed when browsing non-existent pages. As default PmWiki uses the contents of Site.PageNotFound %0a->        [@$DefaultPageTextFmt = '(:include $[{$SiteGroup}.PageNotFound]:)';@] %0a%0a:$DeleteKeyPattern:The pattern used to determine if a page should be deleted.  The default is to remove pages that contain only the single word "delete" (and optional spaces).%0a->        # change delete word to "remove"%0a->        $DeleteKeyPattern = "^\\s*remove\\s*$";%0a->        # delete any page with no visible text, i.e., empty%0a->        $DeleteKeyPattern = "^\\s*$";%0a%0a:$DiffKeepDays:The $DiffKeepDays variable sets the minimum length of time that a page's revision history is kept. By default it is set to 3650 days, or a little less than ten years. You can change this value in a customization file to be something smaller, e.g.:%0a->        $DiffKeepDays = 30; # keep revisions at least 30 days%0a: :Note that a specific page revision isn't removed from the page until the first edit after the time specified by $DiffKeepDays has elapsed. Thus, it's still possible for some pages to have revisions older than $DiffKeepDays -- such revisions will be removed the next time those pages are edited.%0a%0a:$DiffKeepNum:This variable contains the minimum number of changes to be kept in the page history, even if some of them are older than the limit defined by $DiffKeepDays. It prevents lost history of pages that are older, but have few changes.%0a->        $DiffKeepNum = 50; # keep at least 50 revisions (default is 20)%0a%0a:$DraftActionsPattern:The actions which allow full loading of the draft.php functionnality for custom actions. Default is 'edit'. You can enable drafts for other actions like:%0a-> [@$DraftActionsPattern = 'edit|pmform|translate';@] # Enable drafts for actions 'edit', 'pmform' and 'translate'.%0a%0a:$DraftSuffix:The suffix to use for draft versions of pages (default "-Draft").%0a%0a:$EditFunctions: This array contains the sequence of functions that are called when a page is edited.  It can be customized to provide additional functions to be called as part of the editing process.  The standard setting is:%0a->        [@$EditFunctions = array('EditTemplate', 'RestorePage', 'ReplaceOnSave',%0a  'SaveAttributes', 'PostPage', 'PostRecentChanges', 'AutoCreateTargets', 'PreviewPage'); @]%0a%0a: : Many recipes manipulate this array, so it is recommended, instead of redefining the complete array to add your custom functions, to use functions like array_unshift(), array_push() and array_splice().%0a%0a:$EditRedirectFmt: The page to which an author is sent after pressing "Save" or "Cancel" from an edit form.  Defaults to "$FullName", which sends the author to the page just edited, but can be changed to specify another page.%0a->      [@# redirect to Main.HomePage%0a$EditRedirectFmt = 'Main.HomePage';  %0a# redirect to HomePage of current group%0a$EditRedirectFmt = '{$Group}.HomePage';%0a@]%0a%0a:$EditTemplatesFmt:Name of the page (or an array of names) to be used as the default text for any newly created pages.%0a->     [@# Use 'Main.NewPageTemplate' as default text of all new pages%0a$EditTemplatesFmt = 'Main.NewPageTemplate';%0a# Use 'Template' in the current group for new pages%0a$EditTemplatesFmt = '$Group.Template';%0a# Use 'Template' in the current group if it exists, otherwise%0a# use 'Main.NewPageTemplate'%0a$EditTemplatesFmt = array('$Group.Template', 'Main.NewPageTemplate');@]%0a-> See [[Cookbook:EditTemplates]] for more information.%0a%0a%0a:$EnableDrafts:When set to '1', enables the "Save draft" button and built-in handling of "draft" versions of pages, where: %0a## initial "Save draft" of an existing page ("PageName") saves changes to a new name ("PageName-Draft")%0a## subsequent attempts to edit PageName causes PageName-Draft to be edited%0a## subsequent selections of "Save draft" cause PageName-Draft to be saved%0a## pressing "Publish" causes PageName-Draft to be posted to PageName, and deleted.%0a->        # turn on draft edits%0a->        $EnableDrafts = 1;%0a%0a->A related variable, $EnablePublishAttr, adds a new "publish" authorization level to distinguish editing of drafts from publishing them.%0a%0a:$EnableDraftAtomicDiff:When set to 1, "publishing" a draft version will clear the "draft" history, leaving a single "diff" between the latest and the previous "published" versions. Note that this will delete the author names, dates and contributions of the intermediate, unpublished versions. ([[Drafts]] need to be enabled, see $EnableDrafts.)%0a%0a:$EnableGUIButtons:When set to '1', turns on the graphical buttons in the "Edit Page" form.%0a->        # turn on graphical edit buttons%0a->        $EnableGUIButtons = 1;%0a%0a:$EnablePostAuthorRequired:When set to '1', posting of pages requires the author to provide an author name.  Otherwise, authors can post without a name.%0a->        # require authors to provide a name%0a->        $EnablePostAuthorRequired = 1; %0a%0a:$GUIButtons:Allows the configuration of the buttons which appear at the top of the text area when editing a page.  See scripts/guiedit.php for the default definition.  Note that the 5th element can be HTML code rather than just the url of a gif - this allows more flexibility in defining the related javascript.%0a%0a:$HandleEditFmt: Like $HandleBrowseFmt, this specifies the entire output format for ?action=edit for a page.%0a%0a:$IsPagePosted: Set to a true value if the page is actually saved (e.g., this is used to tell the RecentChanges handlers if they need to update).%0a    %0a:$PageEditFmt: By default, this is the HTML to be displayed for an edit form.%0a%0a:$PageEditForm: Specifies the edit form for ?action=edit.  Defaults to '$SiteGroup.EditForm'.%0a%0a:$ROEPatterns: With this array you can add a pattern as ''key'' and set a text ''value'' which replace it on every edit request, using preg_replace function. Specifically it is replaced when the page is loaded into the editform, whenever a preview is done, and when the page is saved (from PmWiki 2.2.0beta45). See Cookbook:ROEPatterns for examples.%0a%0a:$ROSPatterns: With this array you can add patterns as ''key'' and set a text ''value'' which will replace it when the edited page is posted (as signaled by $EnablePost).  It is not replaced when the page is loaded into the editform nor when a preview is done, but it is replaced only when the page is saved.  See Cookbook:ROSPatterns for examples.%0a%0aCategories: [[!PmWiki Developer]]
time=1415817435
