On 03/29/2012 04:01 AM, du du wrote:
Hi, Anca,
Thanks very much for your response, I understand how data are saved to
database now, but I got another question:
In the following code from BlogPostSheet
<dl>
<dt>$msg.get('xe.blog.sheet.title')</dt>
<dd>$doc.display('title', 'edit', $entryObj)</dd>
<dt>$msg.get('xe.blog.sheet.content')</dt>
<dd>$doc.display('content', 'edit', $entryObj)</dd>
<dt>Feature ID:</dt>
<dd>$doc.display('FID', 'view', $entryObj)</dd>
<dt>Package ID:</dt>
<dd>$doc.display('PID', 'view', $entryObj)</dd>
<div class="clearfloats"></div>
</dd>
</dl>
If I change the 'view' to 'edit' for both FID and PID, then both of FID and
PID will be saved to database, and I can query retrieve them, but I have
use view, then they are not saved to database. the problem is I donot want
these two fields editable, so I have to use view, any workaround for this?
so the bottom line is I want them to be saved to database and not editable
from the inline form.
well, when you use view, the generated html does not contain any html
form controls such as inputs, selects, etc (because the display is for
visualizing)
so it's normal that they are not saved, because they are not sent to the
server by the form submit.
What you want / need is a html form control which is not editable by the
user, and there you have 2 choices:
input type=hidden
input with disabled attribute set
In the XWiki Api there's no display function to generate that kind of
html, so you're gonna have to do it yourself, using the API for
properties values to get the value of the property and prefill the field
with the actual current value of the field.
Have fun,
Anca
Thanks again for your help.
Dave
On Wed, Mar 28, 2012 at 4:47 AM, Anca Luca<[email protected]> wrote:
Hi Dave,
You should read http://platform.xwiki.org/**xwiki/bin/view/DevGuide/**
Architecture<http://platform.xwiki.org/xwiki/bin/view/DevGuide/Architecture>,
but I understand that it might be cryptic for a first time usage so here
we go:
must know that xwiki is a java engine, so there is some java code that
does things, it's not all done in velocity.
Basically, there is a java "platform" that can handle documents, objects
in documents, classes, etc (load, save) and then there is the velocity
scripting that you can do in wiki pages which **uses** this core (injected
variables like $xwiki, $doc). See here about how this scripting in pages
works:
http://platform.xwiki.org/**xwiki/bin/view/DevGuide/**Scripting<http://platform.xwiki.org/xwiki/bin/view/DevGuide/Scripting>.
Also, there are some interesting information about the data model here
http://platform.xwiki.org/**xwiki/bin/view/DevGuide/**DataModel<http://platform.xwiki.org/xwiki/bin/view/DevGuide/DataModel>.
The 'platform' project on git contains all this 'platform' code: java
sources, default templates, default js, css, etc, which you can enhance in
wiki pages (but we don't do everything in wiki pages, so you should not
look for it only in wiki pages).
Also, there are a bunch of "default" velocity templates that handle the
default layout and actions for the wiki (in the webapps/xwiki/templates
folder of the installation). For example, the save and view button is
generated by these templates, along with the url to which the data in the
form is posted.
I recommend firebug and LiveHttpheaders extensions of firefox to study
what data is posted to which URL, etc what data is received. from then on,
with the help of http://platform.xwiki.org/**xwiki/bin/view/DevGuide/**
Architecture#**HUnderstandinghowHTTPrequestsa**rehandled<http://platform.xwiki.org/xwiki/bin/view/DevGuide/Architecture#HUnderstandinghowHTTPrequestsarehandled>,
you should be able to find the code that actually does the save.
Have fun,
Anca
On 03/28/2012 05:42 AM, du du wrote:
Also from the following BlogPostSheet wiki code, after users type in
message from the inline form, users click Save& View button, how are the
messages saved to database?
see the attached code:
{{include document="Blog.BlogCode"/}}
{{include document="Blog.CategoriesCode"**/}}
{{velocity filter="none"}}
{{html clean="false" wiki="true"}}
$xwiki.jsx.use('Blog.**ManageCategories', {'mode' : 'select'})##
$xwiki.ssx.use('Blog.**ManageCategories')##
#getEntryObject($doc $entryObj)
#if("$!entryObj" == '')
#warning($msg.get('xe.blog.**sheet.notpost'))
## Keep testing the inline action for backward compatibility with older
blog posts.
#elseif($xcontext.action != 'edit'&& $xcontext.action != 'inline')
## View mode
#isPublished($entryObj $isPublished)
#isHidden($entryObj $isHidden)
## displayBlog requires a list of documents, and whether to display only
an extract or the full entry.
#displayBlog([$tdoc] 'single' false false)
#else
<dl>
<dt>$msg.get('xe.blog.sheet.**title')</dt>
<dd>$doc.display('title', 'edit', $entryObj)</dd>
<dt>$msg.get('xe.blog.sheet.**content')</dt>
<dd>$doc.display('content', 'edit', $entryObj)</dd>
<dt>$msg.get('xe.blog.sheet.**summary')</dt>
<dd>$doc.display('extract', 'edit', $entryObj)</dd>
<dt>$msg.get('xe.blog.sheet.**category')</dt>
<dd>
#**displayCategoryManagementTree(**'' 'selectable')
<div class="clearfloats"></div>
</dd>
</dl>
#template('tagedit.vm')
#isPublished($entryObj $isPublished)
#if($isPublished)
#if($doc.creator == $xcontext.user)
#publishMessageBox($msg.get('**xe.blog.sheet.publicationdate'**,
[${doc.display('publishDate', 'view', $entryObj)}]))
#set($hideArticle = ${doc.display('hidden', 'edit', $entryObj)})
#hideMessageBox($msg.get('xe.**blog.sheet.hidearticle',
[${hideArticle}]))
#end
#else
#set($defaultDate =
$xwiki.getDocument($**blogPostTemplate).getObject($**blogPostClassname).*
*getProperty('publishDate').**value.time)
#if($entryObj.getProperty('**publishDate').value.time ==
$defaultDate)
## The publish date was not set, force it to be the creation date
$entryObj.set('publishDate', $doc.creationDate)
#end
#publishMessageBox("$msg.get('**xe.blog.sheet.notpublished')
<label>**$msg.get('xe.blog.**sheet.publish') ${doc.display('published',
'edit', $entryObj)}**</label>\\<label>**$msg.get('xe.blog.sheet.**
setdate')
${doc.display('publishDate', 'edit', $entryObj)}</label>")
#end
#end
{{/html}}
{{/velocity}}
Thanks
Dave
On Tue, Mar 27, 2012 at 11:36 PM, du du<[email protected]> wrote:
Hi, all
I am studying the BlogClass, BlogPostClass, I checked the Blog.BlogCode,
there are alot of velocity scripts, I can see the search documents from
db,
but could not find any code related to insert document records into
database, so how is the document created from blog saved into database?
please point me to the script code in the Blog.BlogCode.
Thanks
Dave
______________________________**_________________
users mailing list
[email protected]
http://lists.xwiki.org/**mailman/listinfo/users<http://lists.xwiki.org/mailman/listinfo/users>
______________________________**_________________
devs mailing list
[email protected]
http://lists.xwiki.org/**mailman/listinfo/devs<http://lists.xwiki.org/mailman/listinfo/devs>
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs