You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@lenya.apache.org by stevecam <st...@geometryit.com> on 2007/11/29 03:10:28 UTC

Using Flowscript and JXTemplates in Lenya

I want to make use of Flowscript and JXTemplates from Lenya.

My requirement is to create pages that incorporate data from a database into
tables and allow users to select rows in the tables, their selection in turn
affecting what they see on the next page. Flowscript seems to be a simple
means to acheive this.

Also, I want to make use of the JDBi javascript database interface library
in the Cocoon "Easy SQL database access" demo in the forms block.

My task now is to find the best way to make use of these means in Lenya.
There is some information available on how to use CForms from Lenya but no
good example of Javaflow and JXTemplates. 

Specifically I want to generate the page body (that would normally come from
an index_en.xml file (or other language version of it)) via a JXTemplate and
to have a Flowscript use (call) a modified Lenya pipeline to aggregate the
body with my sites standard header, footer, breadcrumb. 

I presume that for the Lenya menu highlighting and breadcrumb functionality
to work then the page must be one in the Lenya sitetree.

I'll have a go at this now and add to this thread with my results, but if
anyone has already implemented such a thing I'd be happy for some help.

Thanks

Steve Cameron
-- 
View this message in context: http://www.nabble.com/Using-Flowscript-and-JXTemplates-in-Lenya-tf4894710.html#a14018074
Sent from the Lenya - Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@lenya.apache.org
For additional commands, e-mail: user-help@lenya.apache.org


Re: Using Flowscript and JXTemplates in Lenya

Posted by stevecam <st...@geometryit.com>.

I've got this working now, I'll add my current code to the thread tomorrow,
once I've done some more testing.


stevecam wrote:
> 
> 
> stevecam wrote:
>> 
>> Small point of clarification to my first post, I am talking about
>> Javascript Flow (i.e. Flowscript), see *** below.
>> 
>> 
>> Andreas Hartmann wrote:
>>> 
>>> Jörn Nettingsmeier schrieb:
>>>> stevecam wrote:
>>>>> I want to make use of Flowscript and JXTemplates from Lenya.
>>>>>
>>>>> My requirement is to create pages that incorporate data from a 
>>>>> database into
>>>>> tables and allow users to select rows in the tables, their selection 
>>>>> in turn
>>>>> affecting what they see on the next page. Flowscript seems to be a
>>>>> simple
>>>>> means to acheive this.
>>>>>
>>>>> Also, I want to make use of the JDBi javascript database interface 
>>>>> library
>>>>> in the Cocoon "Easy SQL database access" demo in the forms block.
>>>>>
>>>>> My task now is to find the best way to make use of these means in
>>>>> Lenya.
>>>>> There is some information available on how to use CForms from Lenya 
>>>>> but no
>>>>> good example of Javaflow and JXTemplates.
>>> 
>>> *** I should have said Javascript flow (Flowscript) and JXTemplates
>>> here!
>>> 
>>>>> Specifically I want to generate the page body (that would normally 
>>>>> come from
>>>>> an index_en.xml file (or other language version of it)) via a 
>>>>> JXTemplate and
>>>>> to have a Flowscript use (call) a modified Lenya pipeline to aggregate 
>>>>> the
>>>>> body with my sites standard header, footer, breadcrumb.
>>>>> I presume that for the Lenya menu highlighting and breadcrumb 
>>>>> functionality
>>>>> to work then the page must be one in the Lenya sitetree.
>>> 
>>> That's true, but in your case the page would only be a placeholder for 
>>> the content which is generated dynamically by the usecase or resource 
>>> type module sitemap (whatever approach you choose).
>>> 
>>>>> I'll have a go at this now and add to this thread with my results, but
>>>>> if
>>>>> anyone has already implemented such a thing I'd be happy for some
>>>>> help.
>>>> 
>>>> if you need flow, you should implement it as a usecase.
>>>> in lenya 2.0, there is a document type called "usecasedocument", which 
>>>> allows you to disguise a usecase (which normally has a view that's 
>>>> orthogonal to documents) as a plain document, which you can include in 
>>>> your navigation menu and handle it as if it were just another xhtml
>>>> doc.
>>>> perhaps andreas can chime in with more details here?
>>> 
>>> http://lenya.apache.org/docs/modules/usecasedocument/index.html
>>> 
>>>> alternatively, you could create a custom doctype that will just contain 
>>>> a database query and a link to a special xslt that renders it to the 
>>>> desired xhtml output. i've done that for accessing an xml database, and 
>>>> it worked ok. i'd be glad to help out, but i only know lenya 2.0...
>>> 
>>> I'd also use a resource type rather than a usecase because
>>> 
>>> - it is a read-only operation
>>> - custom flow is required
>>> 
>>> I guess I'd start with a resource type module (there's a tutorial in the 
>>> documentation) and add the stuff from the "Easy SQL database access" 
>>> tutorial in the module sitemap.
>>> 
>>> -- Andreas
>>> 
>>> 
>>> -- 
>>> Andreas Hartmann, CTO
>>> BeCompany GmbH
>>> http://www.becompany.ch
>>> Tel.: +41 (0) 43 818 57 01
>>> 
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: user-unsubscribe@lenya.apache.org
>>> For additional commands, e-mail: user-help@lenya.apache.org
>>> 
>>> 
>>> 
>> 
>> 
> 
> I've implemented a partial solution to my requirement but it does not seem
> to be fully functional, so I'm now looking at the creation of a new
> resource type (document_type) 'jxtemplate'.
> 
> I've followed the instructions in the tutorial but have one problem that I
> cannot solve. When creating a new page from the menu (using the "New
> JXTemplate" option I've added), the new page has the default type of
> 'xhtml' rather that 'jxtemplate'. This kind of problem is mentioned in the
> tutorial (see 'Resource type matcher') and I've checked what I have done
> but cannot see an error.
> 
> It seems to be partly working as my new default jxtemplate.xml sample file
> is used but the wrong stylesheet selection is made.
> 
> By using a resource-type I think things are simplified a little as
> follows:
> 
> (1)Create entry points for the Flowscript/Continuations to take over page
> generation from the pipeline.
> (2)Get the dynamic data from the database into javascript objects and then
> pass control back to the pipeline.
> (3)For my 'jxtemplate' resource type, generate the content with a
> different pipeline than the default xhtml
> resource type.
> 
> These steps are described in more detail as below;
> 
> (1)Create entry points for the Flowscript/Continuations.
> 
> I add to the publication-sitemap.xml the following.
> 
> <!-- add components for JXTemplate use --> 
>   <map:components>
> 
>     <map:generators default="file">
>       <map:generator label="content" logger="sitemap.generator.jx"
> name="jx" pool-grow="2" pool-max="16" pool-min="2" 
>       src="org.apache.cocoon.generation.JXTemplateGenerator"/>
>     </map:generators>
> 
>     <map:transformers default="xslt">
>       <map:transformer logger="sitemap.transformer.jx" name="jx"
> pool-grow="2" pool-max="16" pool-min="2" 
>         src="org.apache.cocoon.transformation.JXTemplateTransformer"/>
>       <map:transformer logger="forms" name="forms"
> src="org.apache.cocoon.forms.transformation.FormsTemplateTransformer"/>
>     </map:transformers>
> 
>   </map:components>
> 
> <!-- reference flowscript -->
>   <map:flow language="javascript">
>     <map:script src="flow/application_flow.js"/>
>     <map:script src="flow/jdbi.js"/>    
>   </map:flow>
> 
> <!-- enable continuations -->
>     <map:pipeline>
>       <!-- Continue a scenario. The continuation id is passed in the URL
>           (typically used for GET requests) -->
>       <map:match pattern="**/*.continue">
>         <map:call continuation="{1}">
>           <map:parameter name="publication_id"
> value="{page-envelope:publication-id}"/>
>           <map:parameter name="area" value="{page-envelope:area}"/>
>           <map:parameter name="document_type"
> value="{page-envelope:document-type}"/>
>           <map:parameter name="document_url"
> value="{page-envelope:document-url}"/>
>         </map:call>                
>       </map:match>
> 
>       <!-- Continue a scenario. The continuation id is passed as a request
>           parameter (typically used for POST request) -->
>         <map:call continuation="{request-param:continuation-id}">
>           <map:parameter name="publication_id"
> value="{page-envelope:publication-id}"/>
>           <map:parameter name="area" value="{page-envelope:area}"/>
>           <map:parameter name="document_type"
> value="{page-envelope:document-type}"/>
>           <map:parameter name="document_url"
> value="{page-envelope:document-url}"/>
>         </map:call>
>       </map:match> -->
>     </map:pipeline>
>  
> <!-- create an flowscript entry point  -->
>       <map:match pattern="*/**/FIRST.html">
>         <map:call function="do_first_page">
>           <map:parameter name="publication_id"
> value="{page-envelope:publication-id}"/>
>           <map:parameter name="area" value="{page-envelope:area}"/>
>           <map:parameter name="document_type"
> value="{page-envelope:document-type}"/>
>           <map:parameter name="document_url"
> value="{page-envelope:document-url}"/>
>         </map:call>
>       </map:match> 
> 
> (2)Get the dynamic data into javascript objects and return control to
> pipeline
> 
> In my javascript I have the do_first_page function as follows:
> 
> function do_first_page() {
>     //get a list of occupations
>     var list = dao.occupation.getAll();
>    
>     //return control to lenya page creation pipeline
>    
> cocoon.sendPage("lenyabody-view/"+cocoon.parameters["publication_id"]+"/"+
>     cocoon.parameters["area"] +"/"+cocoon.parameters["document_type"]+"/"+
>     cocoon.parameters["document_url"], { occupations: list });
> }
> 
> (3) Generate my 'jxtemplate' resource type (document type) content.
> 
> The page body content is generated in the aggregate as below:
> 
>     <!-- This is the pipeline that builds the page. It aggregates all
>     the navigational elements (breadcrumb, tabs, menu) with the actual
>     content of the document. -->
>     <map:pipeline>
>       <!-- /lenyabody-{rendertype}/{publication-id}/{area}/{doctype}/{url}
> -->
>       <map:match pattern="lenyabody-*/*/*/*/**">
>         <map:aggregate element="cmsbody">
>           <map:part src="cocoon://navigation/{2}/{3}/breadcrumb/{5}.xml"/>
>           <map:part src="cocoon://navigation/{2}/{3}/tabs/{5}.xml"/>
>           <map:part src="cocoon://navigation/{2}/{3}/menu/{5}.xml"/>
>           <map:part src="cocoon://navigation/{2}/{3}/search/{5}.xml"/>
>           <map:part
> src="cocoon:/lenya-document-{1}/{3}/{4}/{page-envelope:document-path}"/>
>         </map:aggregate>
> 
> 
> The last 'map:part' line calls another 'mounted' pipeline in the
> doctypes.xmp file and this is where I need to add my jxtemplate rendering
> pipeline. The standard pipeline is as follows:
> 
>       <!-- parametrized doctype matcher -->
>       <!-- pattern="{rendertype}/{area}/{doctype}/{document-path}" -->
>       <map:match pattern="*/*/*/**.xml">
>         <map:generate
> src="{content-dir:{page-envelope:publication-id},{2}}/{4}.xml"/>
>         <map:transform src="xslt/{3}2xhtml.xsl">
>           <map:parameter name="rendertype" value="{1}"/>
>           <map:parameter name="nodeid"
> value="{page-envelope:document-node-id}"/>
>           <map:parameter name="language"
> value="{page-envelope:document-language}"/>
>         </map:transform>
>         <map:serialize type="xml"/>
>       </map:match>
> 
> I have not test this part yet but I think the modification needed is:
> 
>       <!-- parametrized doctype matcher -->
>       <!-- pattern="{rendertype}/{area}/{doctype}/{document-path}" -->
>       <map:match pattern="*/*/*/**.xml">
>          <map:select>
>             <map:when test="{3}='jxtemplate'">
>                 <map:generate type="jx"
> src="{content-dir:{page-envelope:publication-id},{2}}/{4}.xml"/>
>             </map:when>
>            <map:otherwise>
>                <map:generate
> src="{content-dir:{page-envelope:publication-id},{2}}/{4}.xml"/>
>            </map:otherwise>
>         </map:select>
>         <map:transform src="xslt/{3}2xhtml.xsl">
>           <map:parameter name="rendertype" value="{1}"/>
>           <map:parameter name="nodeid"
> value="{page-envelope:document-node-id}"/>
>           <map:parameter name="language"
> value="{page-envelope:document-language}"/>
>         </map:transform>
>         <map:serialize type="xml"/>
>       </map:match> 
> 
> So finally if I can get my resource-type (doctype) set up correctly I
> should be able to test all this out. 
> I'm presuming I can move between pages using flowscript and Lenya will
> handle all the menu-highlighting and breadcrumb for me (I hope).
> 
>  
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Using-Flowscript-and-JXTemplates-in-Lenya-tf4894710.html#a14123963
Sent from the Lenya - Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@lenya.apache.org
For additional commands, e-mail: user-help@lenya.apache.org


Re: Using Flowscript and JXTemplates in Lenya

Posted by stevecam <st...@geometryit.com>.

stevecam wrote:
> 
> Small point of clarification to my first post, I am talking about
> Javascript Flow (i.e. Flowscript), see *** below.
> 
> 
> Andreas Hartmann wrote:
>> 
>> Jörn Nettingsmeier schrieb:
>>> stevecam wrote:
>>>> I want to make use of Flowscript and JXTemplates from Lenya.
>>>>
>>>> My requirement is to create pages that incorporate data from a 
>>>> database into
>>>> tables and allow users to select rows in the tables, their selection 
>>>> in turn
>>>> affecting what they see on the next page. Flowscript seems to be a
>>>> simple
>>>> means to acheive this.
>>>>
>>>> Also, I want to make use of the JDBi javascript database interface 
>>>> library
>>>> in the Cocoon "Easy SQL database access" demo in the forms block.
>>>>
>>>> My task now is to find the best way to make use of these means in
>>>> Lenya.
>>>> There is some information available on how to use CForms from Lenya 
>>>> but no
>>>> good example of Javaflow and JXTemplates.
>> 
>> *** I should have said Javascript flow (Flowscript) and JXTemplates here!
>> 
>>>> Specifically I want to generate the page body (that would normally 
>>>> come from
>>>> an index_en.xml file (or other language version of it)) via a 
>>>> JXTemplate and
>>>> to have a Flowscript use (call) a modified Lenya pipeline to aggregate 
>>>> the
>>>> body with my sites standard header, footer, breadcrumb.
>>>> I presume that for the Lenya menu highlighting and breadcrumb 
>>>> functionality
>>>> to work then the page must be one in the Lenya sitetree.
>> 
>> That's true, but in your case the page would only be a placeholder for 
>> the content which is generated dynamically by the usecase or resource 
>> type module sitemap (whatever approach you choose).
>> 
>>>> I'll have a go at this now and add to this thread with my results, but
>>>> if
>>>> anyone has already implemented such a thing I'd be happy for some help.
>>> 
>>> if you need flow, you should implement it as a usecase.
>>> in lenya 2.0, there is a document type called "usecasedocument", which 
>>> allows you to disguise a usecase (which normally has a view that's 
>>> orthogonal to documents) as a plain document, which you can include in 
>>> your navigation menu and handle it as if it were just another xhtml doc.
>>> perhaps andreas can chime in with more details here?
>> 
>> http://lenya.apache.org/docs/modules/usecasedocument/index.html
>> 
>>> alternatively, you could create a custom doctype that will just contain 
>>> a database query and a link to a special xslt that renders it to the 
>>> desired xhtml output. i've done that for accessing an xml database, and 
>>> it worked ok. i'd be glad to help out, but i only know lenya 2.0...
>> 
>> I'd also use a resource type rather than a usecase because
>> 
>> - it is a read-only operation
>> - custom flow is required
>> 
>> I guess I'd start with a resource type module (there's a tutorial in the 
>> documentation) and add the stuff from the "Easy SQL database access" 
>> tutorial in the module sitemap.
>> 
>> -- Andreas
>> 
>> 
>> -- 
>> Andreas Hartmann, CTO
>> BeCompany GmbH
>> http://www.becompany.ch
>> Tel.: +41 (0) 43 818 57 01
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@lenya.apache.org
>> For additional commands, e-mail: user-help@lenya.apache.org
>> 
>> 
>> 
> 
> 

I've implemented a partial solution to my requirement but it does not seem
to be fully functional, so I'm now looking at the creation of a new resource
type (document_type) 'jxtemplate'.

I've followed the instructions in the tutorial but have one problem that I
cannot solve. When creating a new page from the menu (using the "New
JXTemplate" option I've added), the new page has the default type of 'xhtml'
rather that 'jxtemplate'. This kind of problem is mentioned in the tutorial
(see 'Resource type matcher') and I've checked what I have done but cannot
see an error.

It seems to be partly working as my new default jxtemplate.xml sample file
is used but the wrong stylesheet selection is made.

By using a resource-type I think things are simplified a little as follows:

(1)Create entry points for the Flowscript/Continuations to take over page
generation from the pipeline.
(2)Get the dynamic data from the database into javascript objects and then
pass control back to the pipeline.
(3)For my 'jxtemplate' resource type, generate the content with a different
pipeline than the default xhtml
resource type.

These steps are described in more detail as below;

(1)Create entry points for the Flowscript/Continuations.

I add to the publication-sitemap.xml the following.

<!-- add components for JXTemplate use --> 
  <map:components>

    <map:generators default="file">
      <map:generator label="content" logger="sitemap.generator.jx" name="jx"
pool-grow="2" pool-max="16" pool-min="2" 
      src="org.apache.cocoon.generation.JXTemplateGenerator"/>
    </map:generators>

    <map:transformers default="xslt">
      <map:transformer logger="sitemap.transformer.jx" name="jx"
pool-grow="2" pool-max="16" pool-min="2" 
        src="org.apache.cocoon.transformation.JXTemplateTransformer"/>
      <map:transformer logger="forms" name="forms"
src="org.apache.cocoon.forms.transformation.FormsTemplateTransformer"/>
    </map:transformers>

  </map:components>

<!-- reference flowscript -->
  <map:flow language="javascript">
    <map:script src="flow/application_flow.js"/>
    <map:script src="flow/jdbi.js"/>    
  </map:flow>

<!-- enable continuations -->
    <map:pipeline>
      <!-- Continue a scenario. The continuation id is passed in the URL
          (typically used for GET requests) -->
      <map:match pattern="**/*.continue">
        <map:call continuation="{1}">
          <map:parameter name="publication_id"
value="{page-envelope:publication-id}"/>
          <map:parameter name="area" value="{page-envelope:area}"/>
          <map:parameter name="document_type"
value="{page-envelope:document-type}"/>
          <map:parameter name="document_url"
value="{page-envelope:document-url}"/>
        </map:call>                
      </map:match>

      <!-- Continue a scenario. The continuation id is passed as a request
          parameter (typically used for POST request) -->
        <map:call continuation="{request-param:continuation-id}">
          <map:parameter name="publication_id"
value="{page-envelope:publication-id}"/>
          <map:parameter name="area" value="{page-envelope:area}"/>
          <map:parameter name="document_type"
value="{page-envelope:document-type}"/>
          <map:parameter name="document_url"
value="{page-envelope:document-url}"/>
        </map:call>
      </map:match> -->
    </map:pipeline>
 
<!-- create an flowscript entry point  -->
      <map:match pattern="*/**/FIRST.html">
        <map:call function="do_first_page">
          <map:parameter name="publication_id"
value="{page-envelope:publication-id}"/>
          <map:parameter name="area" value="{page-envelope:area}"/>
          <map:parameter name="document_type"
value="{page-envelope:document-type}"/>
          <map:parameter name="document_url"
value="{page-envelope:document-url}"/>
        </map:call>
      </map:match> 

(2)Get the dynamic data into javascript objects and return control to
pipeline

In my javascript I have the do_first_page function as follows:

function do_first_page() {
    //get a list of occupations
    var list = dao.occupation.getAll();
   
    //return control to lenya page creation pipeline
   
cocoon.sendPage("lenyabody-view/"+cocoon.parameters["publication_id"]+"/"+
    cocoon.parameters["area"] +"/"+cocoon.parameters["document_type"]+"/"+
    cocoon.parameters["document_url"], { occupations: list });
}

(3) Generate my 'jxtemplate' resource type (document type) content.

The page body content is generated in the aggregate as below:

    <!-- This is the pipeline that builds the page. It aggregates all
    the navigational elements (breadcrumb, tabs, menu) with the actual
    content of the document. -->
    <map:pipeline>
      <!-- /lenyabody-{rendertype}/{publication-id}/{area}/{doctype}/{url}
-->
      <map:match pattern="lenyabody-*/*/*/*/**">
        <map:aggregate element="cmsbody">
          <map:part src="cocoon://navigation/{2}/{3}/breadcrumb/{5}.xml"/>
          <map:part src="cocoon://navigation/{2}/{3}/tabs/{5}.xml"/>
          <map:part src="cocoon://navigation/{2}/{3}/menu/{5}.xml"/>
          <map:part src="cocoon://navigation/{2}/{3}/search/{5}.xml"/>
          <map:part
src="cocoon:/lenya-document-{1}/{3}/{4}/{page-envelope:document-path}"/>
        </map:aggregate>


The last 'map:part' line calls another 'mounted' pipeline in the
doctypes.xmp file and this is where I need to add my jxtemplate rendering
pipeline. The standard pipeline is as follows:

      <!-- parametrized doctype matcher -->
      <!-- pattern="{rendertype}/{area}/{doctype}/{document-path}" -->
      <map:match pattern="*/*/*/**.xml">
        <map:generate
src="{content-dir:{page-envelope:publication-id},{2}}/{4}.xml"/>
        <map:transform src="xslt/{3}2xhtml.xsl">
          <map:parameter name="rendertype" value="{1}"/>
          <map:parameter name="nodeid"
value="{page-envelope:document-node-id}"/>
          <map:parameter name="language"
value="{page-envelope:document-language}"/>
        </map:transform>
        <map:serialize type="xml"/>
      </map:match>

I have not test this part yet but I think the modification needed is:

      <!-- parametrized doctype matcher -->
      <!-- pattern="{rendertype}/{area}/{doctype}/{document-path}" -->
      <map:match pattern="*/*/*/**.xml">
         <map:select>
            <map:when test="{3}='jxtemplate'">
                <map:generate type="jx"
src="{content-dir:{page-envelope:publication-id},{2}}/{4}.xml"/>
            </map:when>
           <map:otherwise>
               <map:generate
src="{content-dir:{page-envelope:publication-id},{2}}/{4}.xml"/>
           </map:otherwise>
        </map:select>
        <map:transform src="xslt/{3}2xhtml.xsl">
          <map:parameter name="rendertype" value="{1}"/>
          <map:parameter name="nodeid"
value="{page-envelope:document-node-id}"/>
          <map:parameter name="language"
value="{page-envelope:document-language}"/>
        </map:transform>
        <map:serialize type="xml"/>
      </map:match> 

So finally if I can get my resource-type (doctype) set up correctly I should
be able to test all this out. 
I'm presuming I can move between pages using flowscript and Lenya will
handle all the menu-highlighting and breadcrumb for me (I hope).

 


-- 
View this message in context: http://www.nabble.com/Using-Flowscript-and-JXTemplates-in-Lenya-tf4894710.html#a14102407
Sent from the Lenya - Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@lenya.apache.org
For additional commands, e-mail: user-help@lenya.apache.org


Re: Using Flowscript and JXTemplates in Lenya

Posted by stevecam <st...@geometryit.com>.
Small point of clarification to my first post, I am talking about Javascript
Flow (i.e. Flowscript), see *** below.


Andreas Hartmann wrote:
> 
> Jörn Nettingsmeier schrieb:
>> stevecam wrote:
>>> I want to make use of Flowscript and JXTemplates from Lenya.
>>>
>>> My requirement is to create pages that incorporate data from a 
>>> database into
>>> tables and allow users to select rows in the tables, their selection 
>>> in turn
>>> affecting what they see on the next page. Flowscript seems to be a
>>> simple
>>> means to acheive this.
>>>
>>> Also, I want to make use of the JDBi javascript database interface 
>>> library
>>> in the Cocoon "Easy SQL database access" demo in the forms block.
>>>
>>> My task now is to find the best way to make use of these means in Lenya.
>>> There is some information available on how to use CForms from Lenya 
>>> but no
>>> good example of Javaflow and JXTemplates.
> 
> *** I should have said Javascript flow (Flowscript) and JXTemplates here!
> 
>>> Specifically I want to generate the page body (that would normally 
>>> come from
>>> an index_en.xml file (or other language version of it)) via a 
>>> JXTemplate and
>>> to have a Flowscript use (call) a modified Lenya pipeline to aggregate 
>>> the
>>> body with my sites standard header, footer, breadcrumb.
>>> I presume that for the Lenya menu highlighting and breadcrumb 
>>> functionality
>>> to work then the page must be one in the Lenya sitetree.
> 
> That's true, but in your case the page would only be a placeholder for 
> the content which is generated dynamically by the usecase or resource 
> type module sitemap (whatever approach you choose).
> 
>>> I'll have a go at this now and add to this thread with my results, but
>>> if
>>> anyone has already implemented such a thing I'd be happy for some help.
>> 
>> if you need flow, you should implement it as a usecase.
>> in lenya 2.0, there is a document type called "usecasedocument", which 
>> allows you to disguise a usecase (which normally has a view that's 
>> orthogonal to documents) as a plain document, which you can include in 
>> your navigation menu and handle it as if it were just another xhtml doc.
>> perhaps andreas can chime in with more details here?
> 
> http://lenya.apache.org/docs/modules/usecasedocument/index.html
> 
>> alternatively, you could create a custom doctype that will just contain 
>> a database query and a link to a special xslt that renders it to the 
>> desired xhtml output. i've done that for accessing an xml database, and 
>> it worked ok. i'd be glad to help out, but i only know lenya 2.0...
> 
> I'd also use a resource type rather than a usecase because
> 
> - it is a read-only operation
> - custom flow is required
> 
> I guess I'd start with a resource type module (there's a tutorial in the 
> documentation) and add the stuff from the "Easy SQL database access" 
> tutorial in the module sitemap.
> 
> -- Andreas
> 
> 
> -- 
> Andreas Hartmann, CTO
> BeCompany GmbH
> http://www.becompany.ch
> Tel.: +41 (0) 43 818 57 01
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@lenya.apache.org
> For additional commands, e-mail: user-help@lenya.apache.org
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Using-Flowscript-and-JXTemplates-in-Lenya-tf4894710.html#a14036058
Sent from the Lenya - Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@lenya.apache.org
For additional commands, e-mail: user-help@lenya.apache.org


Re: Using Flowscript and JXTemplates in Lenya

Posted by Andreas Hartmann <an...@apache.org>.
Jörn Nettingsmeier schrieb:
> stevecam wrote:
>> I want to make use of Flowscript and JXTemplates from Lenya.
>>
>> My requirement is to create pages that incorporate data from a 
>> database into
>> tables and allow users to select rows in the tables, their selection 
>> in turn
>> affecting what they see on the next page. Flowscript seems to be a simple
>> means to acheive this.
>>
>> Also, I want to make use of the JDBi javascript database interface 
>> library
>> in the Cocoon "Easy SQL database access" demo in the forms block.
>>
>> My task now is to find the best way to make use of these means in Lenya.
>> There is some information available on how to use CForms from Lenya 
>> but no
>> good example of Javaflow and JXTemplates.
>> Specifically I want to generate the page body (that would normally 
>> come from
>> an index_en.xml file (or other language version of it)) via a 
>> JXTemplate and
>> to have a Flowscript use (call) a modified Lenya pipeline to aggregate 
>> the
>> body with my sites standard header, footer, breadcrumb.
>> I presume that for the Lenya menu highlighting and breadcrumb 
>> functionality
>> to work then the page must be one in the Lenya sitetree.

That's true, but in your case the page would only be a placeholder for 
the content which is generated dynamically by the usecase or resource 
type module sitemap (whatever approach you choose).

>> I'll have a go at this now and add to this thread with my results, but if
>> anyone has already implemented such a thing I'd be happy for some help.
> 
> if you need flow, you should implement it as a usecase.
> in lenya 2.0, there is a document type called "usecasedocument", which 
> allows you to disguise a usecase (which normally has a view that's 
> orthogonal to documents) as a plain document, which you can include in 
> your navigation menu and handle it as if it were just another xhtml doc.
> perhaps andreas can chime in with more details here?

http://lenya.apache.org/docs/modules/usecasedocument/index.html

> alternatively, you could create a custom doctype that will just contain 
> a database query and a link to a special xslt that renders it to the 
> desired xhtml output. i've done that for accessing an xml database, and 
> it worked ok. i'd be glad to help out, but i only know lenya 2.0...

I'd also use a resource type rather than a usecase because

- it is a read-only operation
- custom flow is required

I guess I'd start with a resource type module (there's a tutorial in the 
documentation) and add the stuff from the "Easy SQL database access" 
tutorial in the module sitemap.

-- Andreas


-- 
Andreas Hartmann, CTO
BeCompany GmbH
http://www.becompany.ch
Tel.: +41 (0) 43 818 57 01


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@lenya.apache.org
For additional commands, e-mail: user-help@lenya.apache.org


Re: Using Flowscript and JXTemplates in Lenya

Posted by Jörn Nettingsmeier <ne...@apache.org>.
stevecam wrote:
> I want to make use of Flowscript and JXTemplates from Lenya.
> 
> My requirement is to create pages that incorporate data from a database into
> tables and allow users to select rows in the tables, their selection in turn
> affecting what they see on the next page. Flowscript seems to be a simple
> means to acheive this.
> 
> Also, I want to make use of the JDBi javascript database interface library
> in the Cocoon "Easy SQL database access" demo in the forms block.
> 
> My task now is to find the best way to make use of these means in Lenya.
> There is some information available on how to use CForms from Lenya but no
> good example of Javaflow and JXTemplates. 
> 
> Specifically I want to generate the page body (that would normally come from
> an index_en.xml file (or other language version of it)) via a JXTemplate and
> to have a Flowscript use (call) a modified Lenya pipeline to aggregate the
> body with my sites standard header, footer, breadcrumb. 
> 
> I presume that for the Lenya menu highlighting and breadcrumb functionality
> to work then the page must be one in the Lenya sitetree.
> 
> I'll have a go at this now and add to this thread with my results, but if
> anyone has already implemented such a thing I'd be happy for some help.

if you need flow, you should implement it as a usecase.

in lenya 2.0, there is a document type called "usecasedocument", which 
allows you to disguise a usecase (which normally has a view that's 
orthogonal to documents) as a plain document, which you can include in 
your navigation menu and handle it as if it were just another xhtml doc.
perhaps andreas can chime in with more details here?

alternatively, you could create a custom doctype that will just contain 
a database query and a link to a special xslt that renders it to the 
desired xhtml output. i've done that for accessing an xml database, and 
it worked ok. i'd be glad to help out, but i only know lenya 2.0...



-- 
Jörn Nettingsmeier

"One of my most productive days was throwing away 1000 lines of code."
   - Ken Thompson.

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@lenya.apache.org
For additional commands, e-mail: user-help@lenya.apache.org


Re: Using Flowscript and JXTemplates in Lenya

Posted by Jörn Nettingsmeier <ne...@apache.org>.
stevecam wrote:
> I want to make use of Flowscript and JXTemplates from Lenya.
<snip>
> My task now is to find the best way to make use of these means in Lenya.
> There is some information available on how to use CForms from Lenya but no
> good example of Javaflow and JXTemplates. 

i should note that i have no experience with java flow. my remarks (and 
the lenya usecase framework) are about javascript flow exclusively.
i only realized you were talking about java flow when i read your 
cocoon-users post... sorry.


-- 
Jörn Nettingsmeier

"One of my most productive days was throwing away 1000 lines of code."
   - Ken Thompson.

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@lenya.apache.org
For additional commands, e-mail: user-help@lenya.apache.org