[Home] [By Thread] [By Date] [Recent Entries]
I'm trying to make my life easier. This is something which invariables
leaves it more complicated. Anyway, our web stores run off an XSLT / XML
engine in PHP. It works well, but coding each of tables I needed for
different data types (users, configurations, etc., etc.) was a mess... so
I'm trying to abstract all that. The XML and XSLT for one thing I've already
got working is below.
My question is this: I now want to create a template that looks at the data types, creates a row for displaying such data, and displays it all. But that would require loops running through seperate nodes and I totally don't understand how to do that. Any comments about or help with the idea or the implementation would be appreciated. Johnathon <web_document> <web_store> <store_name>Test Site</store_name> <domain>testsite.com</domain> <checkout_url>http://www.testsite.com/</checkout_url> </web_store> <template> <public_template_name>test</public_template_name> <seller_template_name>llf</seller_template_name> </template> <environmental_variables> <short_date>2006-01-31</short_date> <long_date>Tuesday, January 31st, 2006</long_date> <year>2006</year> <visitor_session_id>27q6pucofq09dnej48kt2sd1q5</visitor_session_id> <cart_id></cart_id> </environmental_variables> <request> <display>manage</display> <display_type>user</display_type> <display_format>formatted_xml</display_format> <PHPSESSID>27q6pucofq09dnej48kt2sd1q5</PHPSESSID> </request> <form_template> <form_name>Add User</form_name> <description>Please be certain about the type of user you are creating. Also, be aware that adding a duplicate customer will cause an unsightly error.</description> <submit_details> <display>manage</display> <display_format>seller</display_format> <display_type>user</display_type> <action>add</action> <action_type_a>user</action_type_a> </submit_details> <define_field> <field_name>first_name</field_name> <field_name_formatted>First Name</field_name_formatted> <field_type>text</field_type> <max_length>100</max_length> </define_field> <define_field> <field_name>last_name</field_name> <field_name_formatted>Last Name</field_name_formatted> <field_type>text</field_type> <max_length>40</max_length> </define_field> <define_field> <field_name>username</field_name> <field_name_formatted>e-mail Address</field_name_formatted> <field_type>text</field_type> <max_length>100</max_length> </define_field> <define_field> <field_name>password</field_name> <field_name_formatted>Password</field_name_formatted> <field_type>password</field_type> <max_length>40</max_length> </define_field> <define_field> <field_name>seller_id</field_name> <field_name_formatted>Seller</field_name_formatted> <field_type>select</field_type> <options> <option> <name>a Smarter Buy</name> <value>1</value> </option> </options> </define_field> <define_field> <field_name>user_type</field_name> <field_name_formatted>User Type</field_name_formatted> <field_type>select</field_type> <options> <option> <name>Customer</name> <value>8</value> </option> <option> <name>Seller</name> <value>16</value> </option> <option> <name>Administrator</name> <value>32</value> </option> </options> </define_field> <define_field> <field_name>opt_in</field_name> <field_name_formatted>Mailing List</field_name_formatted> <field_type>select</field_type> <options> <option> <name>Yes - Receive all bulk emails</name> <value>1</value> </option> <option> <name>No - Do not received bulk emails</name> <value>0</value> </option> </options> </define_field> <data_set> <data> <username>jw@xxxxxxxxxxxxx</username> <first_name>Johnathon</first_name> <last_name>Wright</last_name> <user_type>032</user_type> <last_login>2006-01-31 10:43:32</last_login> <opt_in>0</opt_in> </data> <data> <username>lacy@xxxxxxxxxxxxx</username> <first_name>Lacy</first_name> <last_name>Tylock</last_name> <user_type>032</user_type> <last_login>2006-01-25 15:59:16</last_login> <opt_in>0</opt_in> </data> <data> <username>brian@xxxxxxxxxxxxx</username> <first_name>Brian Leleux</first_name> <last_name></last_name> <user_type>008</user_type> <last_login>0000-00-00 00:00:00</last_login> <opt_in>1</opt_in> </data> <data> <username>leslie@xxxxxxxxxxxxxxxxxxx</username> <first_name>Leslie</first_name> <last_name>Leonpacher</last_name> <user_type>016</user_type> <last_login>0000-00-00 00:00:00</last_login> <opt_in>0</opt_in> </data> <data> <username>derek@xxxxxxxxxxxxx</username> <first_name>Derek</first_name> <last_name>Hernandez</last_name> <user_type>000</user_type> <last_login>0000-00-00 00:00:00</last_login> <opt_in>1</opt_in> </data> <data> <username>kelly@xxxxxxxxxxxxx</username> <first_name>Kelly</first_name> <last_name>Fowler</last_name> <user_type>016</user_type> <last_login>0000-00-00 00:00:00</last_login> <opt_in>1</opt_in> </data> </data_set> </form_template> </web_document>XSLT for the ADD DATA form, which is called by another template, user/add.xslt (which explains why the template isn't web_document):<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:template match="form_template"><link href="/seller_templates/generic/basic.css" rel="stylesheet" type="text/css" /><div class="Main_Container"><h1><xsl:value-of select="form_name" /></h1><p><xsl:value-of select="description" /></p><form action="/" method="post"><input type="hidden" name="display" value="{submit_details/display}" /><input type="hidden" name="display_format" value="{submit_details/display_format}" /><input type="hidden" name="display_type" value="{submit_details/display_type}" /><input type="hidden" name="action" value="{submit_details/action}" /><input type="hidden" name="action_type_a" value="{submit_details/action_type_a}" /><input type="hidden" name="action_id_a1" value="{submit_details/action_id_a1}" /><input type="hidden" name="action_id_a2" value="{submit_details/action_id_a2}" /><xsl:if test="action_type_b"><input type="hidden" name="action_type_b" value="{submit_details/action_type_b}" /></xsl:if><xsl:if test="action_id_b1"><input type="hidden" name="action_id_b1" value="{submit_details/action_id_b1}" /></xsl:if><xsl:if test="action_id_b2"><input type="hidden" name="action_id_b2" value="{submit_details/action_id_b2}" /></xsl:if><table width="500" border="0" align="center" cellpadding="4" cellspacing="1"><xsl:for-each select="define_field"> <xsl:choose> <xsl:when test="field_type = 'text'"> <tr> <td align="right"><xsl:value-of select="field_name_formatted" /></td> <td align="left"><input type="text" name="{field_name}" value="{value}" /></td> </tr> </xsl:when> <xsl:when test="field_type = 'password'"> <tr> <td align="right"><xsl:value-of select="field_name_formatted" /></td> <td align="left"><input type="password" name="{field_name}" /></td> </tr> </xsl:when> <xsl:when test="field_type = 'select'"> <tr> <td align="right"><xsl:value-of select="field_name_formatted" /></td> <td align="left"> <select name="{field_name}"> <xsl:for-each select="options/option"> <option value="{value}"> <xsl:if test="selected"> <xsl:attribute name="selected">TRUE</xsl:attribute> </xsl:if> <xsl:value-of select="name" /> </option> </xsl:for-each> </select> </td> </tr> </xsl:when> <!-- SELECT BOX --> </xsl:choose></xsl:for-each> <tr> <td> </td> <td> <input type="submit" name="Submit" /> <xsl:for-each select="define_field"> <xsl:if test="field_type = 'hidden'"> <input type="hidden" name="{field_name}" value="{value}" /> </xsl:if> </xsl:for-each> </td> </tr> </table></form></div><!-- main container --></xsl:template></xsl:stylesheet>
|

Cart



