Comment form extender documentation updated.
svn path=/plone.app.discussion/trunk/; revision=50078
This commit is contained in:
		
							parent
							
								
									7a7a708fc0
								
							
						
					
					
						commit
						1e331d957f
					
				| @ -1,29 +1,43 @@ | ||||
| ==================================================== | ||||
| Howto extend the comment form with additional fields | ||||
| ==================================================== | ||||
| 
 | ||||
| This document explains how to extend the plone.app.discussion comment form with | ||||
| additional fields in an add-on product. | ||||
| additional fields in an add-on product.  | ||||
| 
 | ||||
| .. seealso:: | ||||
| 
 | ||||
|     * See the github collective for the source code of this howto: | ||||
|       https://github.com/collective/collective.example.commentextender/ | ||||
| plone.app.discussion uses the  | ||||
| `plone.z3cform.fieldsets <http://pypi.python.org/pypi/plone.z3cform#fieldsets-and-form-extenders>`_  | ||||
| package which provides support for modifications via "extender" adapters. The  | ||||
| idea is that a third party component can modify the fields in a form and the  | ||||
| way that they are grouped and ordered. | ||||
| 
 | ||||
| .. note:: | ||||
| 
 | ||||
|   This howto applies only to plone.app.discussion >= 2.0.4 and >= 1.1.1. Prior | ||||
|   versions will not store the extended fields on the comment. | ||||
| 
 | ||||
| .. seealso:: | ||||
| 
 | ||||
|   The source code of this howto can be found here: | ||||
|   https://github.com/collective/collective.example.commentextender/ | ||||
| 
 | ||||
| 
 | ||||
| Howto extend the comment form with an additional "website" field | ||||
| ================================================================ | ||||
| 
 | ||||
| First, create a new plone package:: | ||||
| 
 | ||||
|     $ paster create -t plone my.commentextender | ||||
|     $ paster create -t plone example.commentextender | ||||
| 
 | ||||
| Go to the main directory of the package (my.commentextender/my/commentextender) | ||||
| and create a new file commentextender.py containing the ICommentExtenderFields  | ||||
| interface definition with an additional "website" field, a persistent | ||||
| CommentExtenderFields class to actually store the "website" value, a  | ||||
| CommentExtenderFactory to create the CommentExtenderFields, and CommentExtender | ||||
| class to actually extend the default comment form with the field::  | ||||
| Go to the main directory of the package  | ||||
| (example.commentextender/example/commentextender) and create a new file  | ||||
| *commentextender.py*. | ||||
| 
 | ||||
| This file contains the ICommentExtenderFields interface definition with a  | ||||
| "website" field, a persistent CommentExtenderFields class to store the value of | ||||
| the "website" field, a CommentExtenderFactory to create the  | ||||
| CommentExtenderFields, and a CommentExtender class to extend the default  | ||||
| comment form with the "website" field::  | ||||
| 
 | ||||
|     from persistent import Persistent | ||||
|      | ||||
| @ -79,8 +93,8 @@ class to actually extend the default comment form with the field:: | ||||
|     hide, and reorder fields:  | ||||
|     http://pypi.python.org/pypi/plone.z3cform#fieldsets-and-form-extenders | ||||
| 
 | ||||
| Now register the CommentExtenderFactory and CommentExtender Classes we just  | ||||
| created by adding the following lines to your configure.zcml:: | ||||
| Now register the CommentExtenderFactory and CommentExtender Classes that has | ||||
| been created by adding the following lines to your configure.zcml:: | ||||
| 
 | ||||
|     <adapter | ||||
|       factory=".commentextender.CommentExtenderFactory" | ||||
| @ -98,15 +112,17 @@ Since we do not only want to store the "website" value on the comments, but also | ||||
| to show these values for existing comments, we have to override the comments | ||||
| viewlet. The easiest way to do this is to use z3c.jbot. | ||||
| 
 | ||||
| First, add z3c.jbot to the setup.py of the my.commentextender package:: | ||||
| First, add `z3c.jbot <http://pypi.python.org/pypi/z3c.jbot>`_. to the setup.py  | ||||
| of the example.commentextender package:: | ||||
| 
 | ||||
|       install_requires=[ | ||||
|           ... | ||||
|           'z3c.jbot',           | ||||
|       ], | ||||
| 
 | ||||
| Next, create a new directory called "overrides" inside the my.commentextender | ||||
| package and register it together with z3c.jbot in your configure.zcml:: | ||||
| Next, create a new directory called "overrides" inside the  | ||||
| example.commentextender package and register it together with z3c.jbot in your  | ||||
| configure.zcml:: | ||||
| 
 | ||||
|     <configure | ||||
|         ... | ||||
| @ -137,5 +153,5 @@ You can now add code to show the website attribute to the documentByLine:: | ||||
|         </div> | ||||
|     </div> | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| Restart your Plone instance and you will see the "website" field in the  | ||||
| documentByLine next to the comments. | ||||
|  | ||||
| @ -1,7 +1,8 @@ | ||||
| ====== | ||||
| Howtos | ||||
| ====== | ||||
| 
 | ||||
| .. toctree:: | ||||
|    :maxdepth: 2 | ||||
|    :maxdepth: 1 | ||||
| 
 | ||||
|    howto_extend_the_comment_form.txt | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user