DokuWiki

It's better when it's simple

User Tools

Site Tools


plugin:pagemod

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
plugin:pagemod [2015-12-01 09:30] – old revision restored (2015-09-13 17:55) 141.65.129.192plugin:pagemod [2020-07-03 03:15] – [Form Syntax] winakeytoheaven
Line 7: Line 7:
 type       : syntax type       : syntax
 lastupdate : 2014-11-10 lastupdate : 2014-11-10
-compatible : Hrun, Ponder Stibbons+compatible : 2016-06-26, Detritus, Hrun, Ponder Stibbons
 depends    : bureaucracy depends    : bureaucracy
 conflicts  conflicts 
Line 22: Line 22:
 ===== Download and Installation ===== ===== Download and Installation =====
  
-Download and install the plugin using the [[plugin:extension|Extension Manager]]. Refer to [[:Plugins]] on how to install plugins manually.+Search and install the plugin using the [[plugin:extension|Extension Manager]]. Refer to [[:Plugins]] on how to install plugins manually. 
 + 
 +\\ 
 +\\
  
 ===== Overview ===== ===== Overview =====
Line 35: Line 38:
       * this placeholder is enclosed by the ''<pagemod> </pagemod>'' tags       * this placeholder is enclosed by the ''<pagemod> </pagemod>'' tags
     - The form is filled in and submitted. Subsequently the pagemod action extends the target page by including a copy of the placeholder wherein the variables are replaced with the form values.      - The form is filled in and submitted. Subsequently the pagemod action extends the target page by including a copy of the placeholder wherein the variables are replaced with the form values. 
- 
  
 So here are the features: So here are the features:
Line 42: Line 44:
   * Each ''<pagemod>'' enclosure has an id, so multiple forms can be used to update different parts of a page.   * Each ''<pagemod>'' enclosure has an id, so multiple forms can be used to update different parts of a page.
   * The form can update multiple sections of a page.     * The form can update multiple sections of a page.  
-    * All the sections needs to have the same ''pagemod_id'' as the submitting form +    * All the sections need to have the same ''pagemod_id'' as the submitting form 
-  * A person can update page that they **don't** have write access to.  +  * A person can update page that they **don't** have write access to.  
     * Only read access is required to modify a page via the form.  (This is not a bug, its a feature.)     * Only read access is required to modify a page via the form.  (This is not a bug, its a feature.)
     * It means you can prevent people from modifying a page unless they do it via a form.     * It means you can prevent people from modifying a page unless they do it via a form.
-    * If want people to only have access to read the resultant page, but not change it, protect the **form** page.+    * If you want people to only have access to read the resultant page, but not change it, protect the **form** page.
     * No read access to result page for a user, prevents modifying it via form.     * No read access to result page for a user, prevents modifying it via form.
   * Updating more pages at once is possible by adding an action field for each page   * Updating more pages at once is possible by adding an action field for each page
  
 That's it. That's it.
 +\\
 +\\
  
 ===== Usage ===== ===== Usage =====
 +\\
 +
 ==== Form Syntax ==== ==== Form Syntax ====
  
Line 71: Line 77:
     * Relative pageids, which are solved with respect to current page (e.g. ''.:neighbourpage'')     * Relative pageids, which are solved with respect to current page (e.g. ''.:neighbourpage'')
     * **_self** to denote the same page as the form     * **_self** to denote the same page as the form
-  * ''pagemod_id'' : If using multiple pagemod enclosures in a page, this is to identify which enclosure to fill and include in the page. +  * ''pagemod_id'' : If using multiple pagemod enclosures in a page, this is to identify which enclosure to fill and include in the page. **NOTE: the ''pagemod_id'' value cannot include a dash character ("-"). A dash character will break the ''<pagemod>...</pagemod>'' section such that it will render as mere text and not function. The underscore character ("_") works.** 
-    +\\ 
 +   
 ==== Template Syntax ==== ==== Template Syntax ====
  
Line 94: Line 101:
 </pagemod> </pagemod>
 </code> </code>
 +
 +**Note:** If the resulting table is later edited with [[plugin:edittable|EditTable Plugin]], then the above pagemod code will disappear (only existing contents remain).
 +
  
 The pagemod enclosure starts with: The pagemod enclosure starts with:
Line 111: Line 121:
  
 and the contents are not shown when the wiki page is viewed.  Converting of the contents of the pagemod enclosure is done with the [[plugin:bureaucracy]] plugin's replacements function. So similar patterns are available. and the contents are not shown when the wiki page is viewed.  Converting of the contents of the pagemod enclosure is done with the [[plugin:bureaucracy]] plugin's replacements function. So similar patterns are available.
 +\\
  
 ===Meta variables=== ===Meta variables===
Line 126: Line 137:
  
 New meta information tag requests should be sent to me for implementation. New meta information tag requests should be sent to me for implementation.
 +\\
  
 +==== Incrementing number (by 1) ====
  
-===== FAQ =====+The [[plugin:bureaucracy#number_field|bureaucracy plugin]] has the following fields working perfectly with Pagemod Plugin:  
 +  * ''number'' field, for example: 
 +    * ''number "Auto Incremental Nr. by one" ++ 0000 !'' where the field show up the following number, being able top modify it acording to your moment needs and 
 +  * ''hiddenautoinc'', a hidden field. Ex: 
 +    * ''hiddenautoinc "Hidden Auto incremental field" '' 
 +  *  Both of them has auto incrementing counter on each succesfull submit.
  
-==== Incrementing number possible? ==== +<file> 
-The [[plugin:bureaucracy|bureaucracy plugin]] has some an ''number'' field and a ''hiddenautoinc'' which has auto incrementing counter on each succesfull submit.+number "One" 
 +number "Two" ++ 
 +number "Third" >3 <40 
 +hiddenautoinc "Four (notice: conflicts with Two)" 
 +number "Fifth" 000 
 +number "Sixth" ++ 000 
 +</file>
  
 +\\
 +==== Upload ====
 +For the moment,  //2019-04-02 14:53// the pagemod upload do not work right of the box. it needs the patpatch offered here:
 +
 +[[https://github.com/BaselineIT/dokuwiki-pagemod/blob/891b6465a4b2a1db1d548611cc2584b49ec815c1/helper/pagemod.php]]
 +
 +
 +
 +**On the same page example:**
 +
 +<file>
 +<form>
 +action pagemod _self add_sale
 +
 +fieldset "Add your bits to the table" !
 +number "Nr. de ordine internă automat" ++
 +date "Data începerii melodiei"
 +select   "Supplier" "B&C|Computer Corporation|IT Vision|Compu Cable|Matrix"
 +textbox  "Our Cost (Single)" !
 +textbox  "Quantity Ordered" !
 +
 +
 +fieldset  "Your Order"
 +textbox   "Your Name" !
 +select    "What do you want"  "Car|Blimp" !
 +
 +fieldset  "Car Parameters" "What do you want" "Car"
 +number    "Number of Wheels" !
 +textbox   "Extras" !
 +
 +fieldset  "Blimp Parameters" "What do you want" "Blimp"
 +select    "Filling" "Helium|Hot Air"
 +number    "Size" !
 +
 +fieldset  "Payment" 
 +yesno     "Can you pay right now?" !
 +
 +fieldset  "Details" "Can you pay right now?"
 +textbox   "Name" !
 +number    "Amount" !
 +
 +
 +fieldset  ""
 +yesno     "Incarci un fisier?"
 +
 +fieldset  "" "Incarci un fisier?"
 +file "Incarca un fisier"
 +
 +hidden "acoldesch" "={{"
 +hidden "acolinch" "=}}"
 +
 +hidden "foldedin" "=++Upload|"
 +hidden "foldedout" "=++"
 +
 +fieldset  ""
 +submit "Salveaza"
 +</form>
 +</file>
 +
 +\\
 +
 +<file>
 +<sortable r2>
 +^ Nr.  ^ Data Automata  ^ Date Manuala  ^ Supplier  ^ Our Cost (Single)  ^ Rotile?  ^ Quantity Ordered  ^ Upload  ^
 +| a12 | 06 Nov 2018 | 2018-11-06  | B&C |       | ++Upload|{{..:10_fl.mid}}++ |
 +<pagemod add_sale>| a@@Nr. de ordine internă automat@@ | @@meta.date.format.d M Y@@ | @@Data începerii melodiei@@  | @@Supplier| @@ | @@Quantity Ordered| @@ | @@Filling| @@ | @@Quantity Ordered| @@ | @@foldedin| @@@@acoldesch| @@@@Incarca un fisier| @@@@acolinch| @@@@foldedout| @@ |
 +</pagemod>
 +</sortable>
 +</file>
 + --- [[user>florious|Florin C.]] //2019-04-02 15:10//
 +\\
 +\\
 +
 +
 +===== FAQ =====
  
 ===== Development ===== ===== Development =====
 +
 In November 2014 the pagemod plugin is updated to use a helper for the pagemod action. The Bureaucracy Plugin is updated in November 2014 as well, it will load this helper automatically if used in a form. The new version of Bureaucracy supports only the new version of Pagemod. In November 2014 the pagemod plugin is updated to use a helper for the pagemod action. The Bureaucracy Plugin is updated in November 2014 as well, it will load this helper automatically if used in a form. The new version of Bureaucracy supports only the new version of Pagemod.
  
 Remark: the file ''bureaucracy/actions/pagemod.php'' is now unused. You may remove it manually. Remark: the file ''bureaucracy/actions/pagemod.php'' is now unused. You may remove it manually.
  
-====Previous versions====+==== Previous versions ====
  
   * http://freecode.baselineit.net/dokuwiki/pagemod-latest.zip (previous version 1.2 - 2010-09-29)   * http://freecode.baselineit.net/dokuwiki/pagemod-latest.zip (previous version 1.2 - 2010-09-29)
Line 148: Line 248:
 To update the plugin, click "Update" in the Admin/Plugins section of your DokuWiki. To update the plugin, click "Update" in the Admin/Plugins section of your DokuWiki.
  
 +\\
 +\\
 +
 +=== Manual installation of previous version ===
  
-**Manual installation of previous version**\\  
 In ''[wiki-root]/lib/plugins/'' this plugin adds: In ''[wiki-root]/lib/plugins/'' this plugin adds:
 +
 <code> <code>
 pagemod/       pagemod/      
Line 158: Line 262:
 bureaucracy/actions/pagemod.php   bureaucracy/actions/pagemod.php  
 </code> </code>
 +
 (note: since November 2014 no files are copied to bureaucracy plugin folder anymore) (note: since November 2014 no files are copied to bureaucracy plugin folder anymore)
  
 ===== Bugs and feature requests===== ===== Bugs and feature requests=====
-The pagemod plugin is strong related with the bureaucracy plugin. For general questions and issues see also the [[bureaucracy|Bureaucracy plugin]] wiki page and the [[https://github.com/splitbrain/dokuwiki-plugin-bureaucracy/issues|Bureaucracy issue tracker]].+ 
 +The pagemod plugin is strongly intertwined with the bureaucracy plugin. For general questions and issues see also the [[bureaucracy|Bureaucracy plugin]] wiki page and the [[https://github.com/splitbrain/dokuwiki-plugin-bureaucracy/issues|Bureaucracy issue tracker]].
  
 Please report issues and requests for Pagemod Plugin at https://github.com/rendezz/dokuwiki-pagemod/issues Please report issues and requests for Pagemod Plugin at https://github.com/rendezz/dokuwiki-pagemod/issues
  
-QUESTION: Can pagemod be triggerd conditionaly? Let's say there is a form with a yesno field. Could pagemod be called only when the yesno field is checked?+QUESTION: Can pagemod be triggered conditionally? Let's say there is a form with a yesno field. Could pagemod be called only when the yesno field is checked? 
 +\\ 
 +\\
  
-\\ \\+==== Problem and solution ==== 
 + 
 +The standard pagemod helper code does not do any substitution of page names according to bureaucracy variables.  I have designed a form which contains: 
 +  textbox Hnode 
 +  action  smg:config:@@Hnode@@ add_hwchange 
 +the problem being that ''@@Hnode@@'' is interpreted as "Hnode" and not the entered value.  The problem seems to lie in the helper script in ''public function run'' I have added a call to ''$this->replace'' (as is done in ''public function parsePagemod'') just before the ''resolve_pageid'' call.  It now appears to be working. 
 + 
 +diff: 
 +  39,40d38 
 +  <             //Allow for the substitution os elements of the page name 
 +  <             $page_to_modify = $this->replace($page_to_modify); 
 +\\ 
 +\\
  
 ===== Example usecases ===== ===== Example usecases =====
 +
 An bundle of example pages is available: An bundle of example pages is available:
   * http://freecode.baselineit.net/dokuwiki/pagemod-namespace.tar.bz2   * http://freecode.baselineit.net/dokuwiki/pagemod-namespace.tar.bz2
Line 179: Line 300:
  
 ==== Minimalistic Guestbook ==== ==== Minimalistic Guestbook ====
 +
 I used this plugin for a minimalistic guestbook. Although my wiki can be edited by everyone, I think visitors would be more willing to leave a message through a little form. See http://windhoff.net/wiki/playground/playground how it works. An javascript based alternative to this is the [[plugin:disqus|plugin:disqus]]. I used this plugin for a minimalistic guestbook. Although my wiki can be edited by everyone, I think visitors would be more willing to leave a message through a little form. See http://windhoff.net/wiki/playground/playground how it works. An javascript based alternative to this is the [[plugin:disqus|plugin:disqus]].
 <file> <file>
Line 191: Line 313:
 submit submit
 </form> </form>
 +\\
 +\\
  
 ===== Comments ===== ===== Comments =====
plugin/pagemod.txt · Last modified: 2024-01-20 07:55 by Aleksandr

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki