Help:COAP-3180/week5: Difference between revisions

The educational technology and digital learning wiki
Jump to navigation Jump to search
Line 28: Line 28:
* Install "Formidable" if not already done so
* Install "Formidable" if not already done so
** Best method is to click on ''Plugins'' in the Dashboard
** Best method is to click on ''Plugins'' in the Dashboard
** Else, use the [[http://wordpress.org/extend/plugins/formidable/installation/ "manual" method]] described by its developer.
** Else, use the [http://wordpress.org/extend/plugins/formidable/installation/ "manual" method] described by its developer.


'''(3) Produce XML output from an SQL query with php
'''(3) Produce XML output from an SQL query with php

Revision as of 10:51, 8 February 2010

Week 5 - COAP 3180

Topics Covered

Homework and mid-term exam
  • Quick feedback
Termproject
  • Each student should now have a "must-have" and "nice-to-have" list of features
  • Demonstration of the Wordpress extension "Formidable"
Crashcourse on XML
  • XML - The formalism
  • XML - where is it used
  • XSLT - XML transformations
  • XPath - identify elements in a tree (used by XPath and XQuery)

Classroom activities

(1) Term project

  • Must have and nice to have features
  • Remark: There must an embedded "database", i.e. a data-collection / presentation module

(2) Wordpress

  • Fire up MoWes and enter wordpress as admin
  • Install "Formidable" if not already done so
    • Best method is to click on Plugins in the Dashboard
    • Else, use the "manual" method described by its developer.

(3) Produce XML output from an SQL query with php

  • copy this code to a mowes/web/ directoty
  • call it for example: mysql-to-xml.php
  • configure and test
<?php
error_reporting(E_ALL);

// ---------------------------  Configuration section

// Fill in according to your db settings
// Make sure to keep the ; and the ""
$host       = "localhost";
$user       = "root";
$pass       = "";
$database   = "exam";

// replace by a real *.xsl file, e.g.
// $xslt_file = "exam.xsl";
$xslt_file  = FALSE;  

// Replace by a query that matches your database
$SQL_query = "SELECT * FROM question,response_item WHERE question.id = response_item.id_question";

// -------------------------- no changes needed below

$DB_link = mysql_connect($host, $user, $pass) or die("Could not connect to host.");
mysql_select_db($database, $DB_link) or die ("Could not find or access the database.");
$result = mysql_query ($SQL_query, $DB_link) or die ("Data not found. Your SQL query didn't work... ");

if ($xslt_file) {
  header("Content-type: text/xml");
  $XML = "<?xml version=\"1.0\"?>\n";
  $XML .= "<?xml-stylesheet href=\"$xslt_file\" type=\"text/xsl\" ?>";
  $XML .= "<result>\n";
}
 else {
   $XML = "Don't forget to create an XSLT file .... <p>";
   $XML .= "<pre>\n";
   $XML .= "&lt;result&gt;";
 }

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {    
  $XML .= "\t<row>\n";
  $i = 0;
  foreach ($row as $cell) {
    // Escaping illegal characters
    $cell = str_replace("&", "&amp;", $cell);
    $cell = str_replace("<", "&lt;", $cell);
    $cell = str_replace(">", "&gt;", $cell);
    $cell = str_replace("\"", "&quot;", $cell);
    $col_name = mysql_field_name($result,$i);
    if ($xslt_file)
      $XML .= "\t\t<$col_name>" . $cell . "</$col_name>\n";
    else
      $XML .= "\t\t&lt;$col_name&gt;" . $cell . "&lt;/$col_name&gt;\n";
    $i++;
  }
  $XML .= "\t</row>\n";
 }

echo $XML;
if (!$xslt_file)  { 
  echo "&lt;/result&gt;";
  echo "</pre>";
 }
 else
   echo "</result>";
    
?>

(4) Edit an XML file (Wednesday)

(5) Modify an XSLT file

  • Filter data with XSLT

Homework 5

Details to be announced on Wednesday ...

  • Pull out data in XML format from a database
  • Produce an XSLT file that will display the data (any maybe do some filtering)
  • Associate the XSLT file either server-side or client side.

The instructor will provide a php file that does the extraction.

Submission Dates

  • This homework is due at start of wed week 6
  • Students must provide the URL (where the instructor can see the widget) in the world classroom
  • Each homework counts 10% in your global evaluation. The four best homeworks will be taken into account.

Evaluation

Tips for the homework

Links and teaching materials

Software
  • A good XML editor, e.g. XML exchanger light
Online software
  • none
Teaching materials
Teaching materials (older slides)
Optional reading