> > I'll send you an example in a few minutes (I'm not sure the
> rest of the
> > mailing list would be interested)
>
> I would
OK, then:
this an old file I made to test something in the xml fragment I read from
the DB, and I've changed a few things between the working version and this
one.
It's a kind of draft, so don't take it too seriously
Anyway, the queries were OK when I first tested this file, and that's what
you're looking for.
Olivier
<?xml version="1.0" encoding="iso-8859-1"?>
<?cocoon-process type="xinclude"?>
<?cocoon-process type="xsp"?>
<?xml-logicsheet href="xsp/fragmentation-xsp.xsl"/?>
<?cocoon-process type="xslt"?>
<?xml-stylesheet href="xsl/page.xsl" type="text/xsl"?>
<xsp:page
xmlns:xsp="http://www.apache.org/1999/XSP/Core"
xmlns:auth="http://ulim.cocoonhost.com/auth"
xmlns:request="http://www.apache.org/1999/XSP/Request"
xmlns:session="http://www.apache.org/1999/XSP/Session"
xmlns:foo="http://localhost/foo"
xmlns:common="http://localhost/common"
xmlns:fragmentation="http://localhost/fragmentation"
xmlns:esql="http://apache.org/cocoon/SQL/v2"
xmlns:util="http://www.apache.org/1999/XSP/Util"
xmlns:xinclude="http://www.w3.org/1999/XML/xinclude"
>
<xsp:structure>
<xsp:include>localhost.basket.Basket</xsp:include>
</xsp:structure>
<xsp:logic>
public Basket basket;
</xsp:logic>
<foo:page>
<include xinclude:parse="xml"
xinclude:href="authentication-header.xml" />
<xsp:attribute name="xml:lang"><session:get-attribute
name='lang' /></xsp:attribute>
<xsp:attribute
name="foo:description"><xsp:expr>(Boolean)<session:get-attribute
name='description' /></xsp:expr></xsp:attribute>
<xsp:attribute
name="foo:promotion"><xsp:expr>(Boolean)<session:get-attribute
name='promotion' /></xsp:expr></xsp:attribute>
<foo:frag-page>
<xsp:logic>
if (<request:get-parameter name="fragID"/> != null)
{
if (<request:get-parameter name="quantity"/>
!= null <![CDATA[&&]]>
<request:get-parameter
name="product"/> != null <![CDATA[&&]]>
<request:get-parameter
name="price"/> != null <![CDATA[&&]]>
<request:get-parameter
name="promo"/> != null ) {
try {
if
(Integer.parseInt((String)<request:get-parameter name="quantity"/>) > 0) {
// nouvelle commande de ce
produit
if
(<session:get-attribute name="basket"/> == null) {
basket = new
Basket(5);
} else {
basket =
(Basket)<session:get-attribute name="basket"/>;
}
float promo;
try {
promo =
Float.parseFloat((String)<request:get-parameter name="promo"/>);
} catch
(NumberFormatException exc) {
promo =
Float.parseFloat((String)<request:get-parameter name="price"/>);
}
basket.addProduct(
Integer.parseInt((String)<request:get-parameter name="fragID"/>),
(String)<request:get-parameter name="product"/>,
Integer.parseInt((String)<request:get-parameter name="quantity"/>),
Float.parseFloat((String)<request:get-parameter name="price"/>),
promo
);
<session:set-attribute
name='basket'><xsp:expr>basket</xsp:expr></session:set-attribute>;
<!--
<esql:connection>
<esql:pool>foo</esql:pool>
<esql:execute-query>
<esql:query>
replace into basket
(user,idtitle, reference, quantity)
values ('<session:get-attribute name="user" />',
<xsp:expr>Integer.parseInt((String)<request:get-parameter
name="fragID"/>)</xsp:expr>,
'<request:get-parameter name="product"/>',
<request:get-parameter name="quantity"/>)
</esql:query>
</esql:execute-query>
</esql:connection>
-->
} else {
// supprime la commande de
ce produit
<!--
<esql:connection>
<esql:pool>foo</esql:pool>
<esql:execute-query>
<esql:query>
delete from basket
where user = '<session:get-attribute name="user" />'
and idtitle = <xsp:expr>Integer.parseInt((String)<request:get-parameter
name="fragID"/>)</xsp:expr>
and reference = '<request:get-parameter name="product"/>'
</esql:query>
<esql:results>
<esql:row-results>
<foo:promo>
<xsp:attribute name="ref"><esql:get-string column="ref"/></xsp:attribute>
<esql:get-float column="promo"/>
</foo:promo>
</esql:row-results>
</esql:results>
</esql:execute-query>
</esql:connection>
-->
}
} catch (NumberFormatException exc)
{
// ne fait rien
}
}
<!-- charge les promotions des articles -->
<!-- on charge toutes les promotions car
l'indexation de la table newprice ne permet pas
de récuppérer uniquement les références du
fragment courant -->
<esql:connection>
<esql:pool>foo</esql:pool>
<esql:execute-query>
<esql:query>
select p.promotion as promo,
p.reference as ref
from newprice p
</esql:query>
<esql:results>
<esql:row-results>
<foo:promo>
<xsp:attribute
name="ref"><esql:get-string column="ref"/></xsp:attribute>
<esql:get-float
column="promo"/>
</foo:promo>
</esql:row-results>
</esql:results>
</esql:execute-query>
</esql:connection>
<!-- charge les commandes des articles -->
<esql:connection>
<esql:pool>foo</esql:pool>
<esql:execute-query>
<esql:query>
select b.reference as ref,
b.quantity as nb
from basket b
where
b.user='<session:get-attribute name="user" />'
and b.idtitle =
<xsp:expr>Integer.parseInt((String)<request:get-parameter
name="fragID"/>)</xsp:expr>
</esql:query>
<esql:results>
<esql:row-results>
<foo:basket>
<foo:item-ref><esql:get-string column="ref"/></foo:item-ref>
<foo:item-nb><esql:get-int column="nb"/></foo:item-nb>
</foo:basket>
</esql:row-results>
</esql:results>
<esql:no-results/>
</esql:execute-query>
</esql:connection>
<common:form METHOD='get' NAME='orderform'>
<xsp:attribute
name="ACTION"><request:get-request-uri /></xsp:attribute>
<common:hidden-field name="product"
value="none" />
<common:hidden-field name="quantity"
value="0" />
<common:hidden-field name="price" />
<common:hidden-field name="promo"
value="0" />
<common:hidden-field name="fragID">
<xsp:attribute
name="value"><request:get-parameter name="fragID"/></xsp:attribute>
</common:hidden-field>
<fragmentation:get-fragment>
<fragmentation:name>identifiant</fragmentation:name>
<fragmentation:id><xsp:expr>Integer.parseInt((String)<request:get-parameter
name="fragID"/>)</xsp:expr></fragmentation:id>
</fragmentation:get-fragment>
</common:form>
} else {
<foo:error>fragID == null</foo:error>
}
</xsp:logic>
</foo:frag-page>
<foo:bottom-bar />
<foo:bottom-page-mention>
<foo:translate text="genere par" /> Cocoon 1.8.2
(<util:time format="dd/MM/yyyy - hh:mm:ss" />)
</foo:bottom-page-mention>
</foo:page>
</xsp:page>
---------------------------------------------------------------------
Please check that your question has not already been answered in the
FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>
To unsubscribe, e-mail: <[EMAIL PROTECTED]>
For additional commands, e-mail: <[EMAIL PROTECTED]>