Login   Register  
PHP Classes
elePHPant
Icontem

File: sample1.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Herman Veluwenkamp  >  HV WDDX Metadata  >  sample1.php  >  Download  
File: sample1.php
Role: Example script
Content type: text/plain
Description: Sample PHP for XUL form generation and validation
Class: HV WDDX Metadata
Generates XUL and HTML forms based on XML config.
Author: By
Last change: Use 'file' and 'implode' instead of 'file_get_contents' for older php versions.
Put '<?xml' in echos instead of inline, to avoid parser problems.
Date: 2003-12-07 13:35
Size: 1,965 bytes
 

Contents

Class file image Download
<?php
error_reporting
(E_ALL);

include 
'PEAR.php';
include 
'HV_WDDX_Metadata.php';

$xml_config implode(file('events.xml'),"\n");     // file holds WDDX metdata.
$xsl        implode(file('edit.xsl'),"\n");       // form for editing.
$xsl_js     implode(file('javascript.xsl'),"\n"); // for creating javascript array for client-side processing.
      
// instantiate class. use var_dump for error reporting.
$data  = new HV_WDDX_Metadata(PEAR_ERROR_CALLBACK'var_dump');

// set config
$data->setConfig($xml_config);


// if form has already been submitted, parse request and insert it back into config.
if (isset($_REQUEST['_action'])) {
  
$data->parse($_REQUEST);
  
$xml_config $data->conf;
}


// define arguments for XSLT processor.
$arguments        = array('/_xml' => $xml_config'/_xsl' => $xsl'/_xsl_js' => $xsl_js);

// action for form submission.
$parameters       = array('action' => $_SERVER["PHP_SELF"]);

$xslt_transformer xslt_create();

// create javascript array for client-side validation.
$javascript       xslt_process($xslt_transformer'arg:/_xml''arg:/_xsl_js'NULL$arguments ); 

// create XUL form markup.
$xul              xslt_process($xslt_transformer'arg:/_xml''arg:/_xsl',    NULL$arguments$parameters ); 

// free object
xslt_free($xslt_transformer);



// display form
header('Content-Type: application/vnd.mozilla.xul+xml');
echo(
'<?xml version="1.0" encoding="ISO-8859-15"?>'."\n");
echo(
'<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>'."\n");
echo(
'<?xml-stylesheet href="xbl.css" type="text/css"?>'."\n");
?>


<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" 
        xmlns:html="http://www.w3.org/1999/xhtml">
        
<script type="application/x-javascript" src="validate.js"/>

<script type="application/x-javascript">
<?php echo $javascript?>
</script>

<?php echo $xul?>

</window>