From: <rd...@us...> - 2007-03-06 22:23:47
|
Revision: 279 http://digir.svn.sourceforge.net/digir/?rev=279&view=rev Author: rdg Date: 2007-03-06 14:23:41 -0800 (Tue, 06 Mar 2007) Log Message: ----------- * Custom <skin> element now has its own namespace. * Created new "darwin" skin with RSS feeds for any inventory result.. Modified Paths: -------------- tapirlink/trunk/classes/TpResponse.php tapirlink/trunk/www/skins/default/capabilities.xsl tapirlink/trunk/www/skins/default/inventory.xsl tapirlink/trunk/www/skins/default/metadata.xsl tapirlink/trunk/www/skins/default/search.xsl Added Paths: ----------- tapirlink/trunk/www/skins/darwin/ tapirlink/trunk/www/skins/darwin/capabilities.xsl tapirlink/trunk/www/skins/darwin/inventory.xsl tapirlink/trunk/www/skins/darwin/metadata.xsl tapirlink/trunk/www/skins/darwin/rss_template.xml.php tapirlink/trunk/www/skins/darwin/search.xsl tapirlink/trunk/www/skins/darwin/styles.css tapirlink/trunk/www/skins/default/model.xml.php Removed Paths: ------------- tapirlink/trunk/www/model.xml.php Modified: tapirlink/trunk/classes/TpResponse.php =================================================================== --- tapirlink/trunk/classes/TpResponse.php 2007-03-04 23:55:19 UTC (rev 278) +++ tapirlink/trunk/classes/TpResponse.php 2007-03-06 22:23:41 UTC (rev 279) @@ -189,7 +189,10 @@ if ( defined( 'TP_SKIN') ) { - $h .= "\n<custom><skin>".TP_SKIN.'</skin></custom>'; + $h .= "\n<custom>". + '<skin xmlns="http://rs.tdwg.org/tapir/1.0/skin">'. + TP_SKIN. + '</skin></custom>'; } $h .= "\n</header>"; Deleted: tapirlink/trunk/www/model.xml.php =================================================================== --- tapirlink/trunk/www/model.xml.php 2007-03-04 23:55:19 UTC (rev 278) +++ tapirlink/trunk/www/model.xml.php 2007-03-06 22:23:41 UTC (rev 279) @@ -1,135 +0,0 @@ -<?php -/** - * $Id$ - * - * LICENSE INFORMATION - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details: - * - * http://www.gnu.org/copyleft/gpl.html - * - * - * @author Renato De Giovanni <renato [at] cria . org . br> - */ - -require_once('tapir_globals.php'); -require_once('TpRequest.php'); -require_once('TpResources.php'); -require_once('TpResource.php'); -require_once('TpLocalMapping.php'); - -if ( ! isset( $_REQUEST['a'] ) ) -{ - die('Parameter "a" (accesspoint) not specified'); -} -if ( ! isset( $_REQUEST['c'] ) ) -{ - die('Parameter "c" (concept id) not specified'); -} -if ( ! isset( $_REQUEST['v'] ) ) -{ - die('Parameter "v" (filter value) not specified'); -} - -// Instantiate request object to get resource code -$request = new TpRequest(); - -// If no resource was specified in the request URI, display error -if ( ! $request->ExtractResourceCode( $_REQUEST['a'] ) ) -{ - die('Could not determine resource'); -} - -// Get resource code and check if it's valid -$resource_code = $request->GetResourceCode(); - -$r_resources =& TpResources::GetInstance(); - -$raise_errors = false; -$r_resource =& $r_resources->GetResource( $resource_code, $raise_errors ); - -if ( $r_resource == null ) -{ - die('Could not find resource "'.$resource_code.'"'); -} - -// Get all mapped concepts -$r_local_mapping =& $r_resource->GetLocalMapping(); - -$r_local_mapping->LoadFromXml( $r_resource->GetConfigFile() ); - -$r_mapped_schemas =& $r_local_mapping->GetMappedSchemas(); - -$concepts = array(); - -foreach ( $r_mapped_schemas as $ns => $conceptual_schema ) -{ - $r_concepts =& $r_mapped_schemas[$ns]->GetConcepts(); - - foreach ( $r_concepts as $concept_id => $concept ) - { - if ( $r_concepts[$concept_id]->IsMapped() ) - { - $concepts[$concept_id] = $r_concepts[$concept_id]->GetName(); - } - } -} - -header ( 'Content-type: text/xml' ); - -?><outputModel xmlns="http://rs.tdwg.org/tapir/1.0" - xmlns:xs="http://www.w3.org/2001/XMLSchema" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://rs.tdwg.org/tapir/1.0 - http://rs.tdwg.org/tapir/1.0/tapir.xsd - http://www.w3.org/2001/XMLSchema - http://www.w3.org/2001/XMLSchema.xsd"> - <structure> - <xs:schema targetNamespace="http://tapirlink/model/search/default"> - <xs:element name="records"> - <xs:complexType> - <xs:sequence> - <xs:element name="record" minOccurs="0" maxOccurs="unbounded"> - <xs:complexType> - <xs:sequence> - <?php $i = 0; ?> - <?php foreach ( $concepts as $concept_id => $alias ): ?> - <?php ++$i; ?> - <xs:element name="field<?php print($i); ?>"> - <xs:complexType> - <xs:sequence> - <xs:element name="name" type="xs:string" default="<?php print($alias); ?>"/> - <xs:element name="value" type="xs:string" nillable="true"/> - </xs:sequence> - </xs:complexType> - </xs:element> - <?php endforeach; ?> - </xs:sequence> - </xs:complexType> - </xs:element> - </xs:sequence> - <xs:attribute name="concept" type="xs:string" use="required" default="<?php print($_REQUEST['c']); ?>"/> - <xs:attribute name="value" type="xs:string" use="required" default="<?php print($_REQUEST['v']); ?>"/> - </xs:complexType> - </xs:element> - </xs:schema> - </structure> - <indexingElement path="/records/record"/> - <mapping> - <?php $i = 0; ?> - <?php foreach ( $concepts as $concept_id => $alias ): ?> - <?php ++$i; ?> - <node path="/records/record/field<?php print($i); ?>/value"> - <concept id="<?php print($concept_id); ?>"/> - </node> - <?php endforeach; ?> - </mapping> - </outputModel> Added: tapirlink/trunk/www/skins/darwin/capabilities.xsl =================================================================== --- tapirlink/trunk/www/skins/darwin/capabilities.xsl (rev 0) +++ tapirlink/trunk/www/skins/darwin/capabilities.xsl 2007-03-06 22:23:41 UTC (rev 279) @@ -0,0 +1,87 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<xsl:stylesheet version="1.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:tapir="http://rs.tdwg.org/tapir/1.0" + xmlns:skin="http://rs.tdwg.org/tapir/1.0/skin"> +<xsl:output method="html" encoding="us-ascii"/> +<xsl:template match="/"> + <xsl:variable name="accesspoint" select="tapir:response/tapir:header/tapir:source/@accesspoint" /> + <xsl:variable name="base-url" select="substring-before($accesspoint, 'tapir.php')" /> + <xsl:variable name="skin" select="tapir:response/tapir:header/tapir:custom/skin:skin" /> + <html> + <head> + <title>TAPIR capabilities</title> + <link rel="StyleSheet" href="{$base-url}skins/{$skin}/styles.css" type="text/css"/> + </head> + <body> + <span class="Title">Capabilities</span><br/> + <br/> + + <span class="Label">Operations</span><br/> + <span class="RegularText">ping, metadata, capabilities<xsl:if test="tapir:response/tapir:capabilities/tapir:operations/tapir:inventory">, inventory</xsl:if><xsl:if test="tapir:response/tapir:capabilities/tapir:operations/tapir:search">, search</xsl:if></span><br/> + <br/> + + <span class="Label">Request encoding</span><br/> + <span class="RegularText">KVP<xsl:if test="tapir:response/tapir:capabilities/tapir:requests/tapir:encoding/tapir:xml">, XML</xsl:if></span><br/> + <br/> + + <span class="Label">Inventory capabilities</span><br/> + <span class="RegularText">any concepts</span><br/> + <br/> + + <span class="Label">Search capabilities</span><br/> + <span class="RegularText">any output models (basic schema language)</span><br/> + <br/> + + <span class="Label">Filters</span><br/> + <span class="RegularText"> + <xsl:choose> + <xsl:when test="tapir:response/tapir:capabilities/tapir:requests/tapir:filter/tapir:encoding">supported ("like" operators case-<xsl:if test='tapir:response/tapir:capabilities/tapir:requests/tapir:filter/tapir:encoding/tapir:booleanOperators/tapir:comparative/tapir:like/@caseSensitive="false"'>in</xsl:if>sensitive / "equals" operators case-<xsl:if test='tapir:response/tapir:capabilities/tapir:requests/tapir:filter/tapir:encoding/tapir:booleanOperators/tapir:comparative/tapir:equals/@caseSensitive="false"'>in</xsl:if>sensitive)</xsl:when> + <xsl:otherwise>not supported</xsl:otherwise> + </xsl:choose> + </span><br/> + <br/> + + <span class="Label">Environment variables</span><br/> + <span class="RegularText"> + <xsl:for-each select="tapir:response/tapir:capabilities/tapir:variables/tapir:environment/*"> + <xsl:value-of select="name()"/><xsl:if test="not(position()=last())">, </xsl:if> + </xsl:for-each> + </span><br/> + <br/> + + <span class="Label">Log-only requests</span><br/> + <span class="RegularText"><xsl:value-of select="tapir:response/tapir:capabilities/tapir:requests/tapir:globalParameters/tapir:logOnly"/></span><br/> + <br/> + + <span class="Label">XSLT on server side</span><br/> + <span class="RegularText">not supported</span><br/> + <br/> + + <span class="Label">Response limitations</span><br/> + <span class="RegularText">Maximum element repetitions: <xsl:value-of select="tapir:response/tapir:capabilities/tapir:settings/tapir:maxElementRepetitions"/></span><br/> + <span class="RegularText">Maximum element levels: <xsl:value-of select="tapir:response/tapir:capabilities/tapir:settings/tapir:maxElementLevels"/></span><br/> + <br/> + + <span class="Label">Concept name servers</span><br/> + <span class="RegularText">none</span><br/> + <br/> + + <span class="Label">Mapped schemas</span><br/> + <xsl:for-each select="tapir:response/tapir:capabilities/tapir:concepts/tapir:schema"> + <br/> + <table border="0" cellspacing="0" cellpadding="2"> + <tr bgcolor="#FFFFFF"> + <th bgcolor="#FFFFFF" align="left" class="SubLabel"><xsl:value-of select="@namespace"/></th> + </tr> + <xsl:for-each select="tapir:mappedConcept"> + <tr bgcolor="#FFFFFF" align="left"> + <td><a href="{$accesspoint}?op=i&xslt={$base-url}skins/{$skin}/inventory.xsl&s=0&l=20&cnt=1&c={text()}"><xsl:value-of select="text()"/></a></td> + </tr> + </xsl:for-each> + </table> + </xsl:for-each> + </body> + </html> +</xsl:template> +</xsl:stylesheet> Added: tapirlink/trunk/www/skins/darwin/inventory.xsl =================================================================== --- tapirlink/trunk/www/skins/darwin/inventory.xsl (rev 0) +++ tapirlink/trunk/www/skins/darwin/inventory.xsl 2007-03-06 22:23:41 UTC (rev 279) @@ -0,0 +1,43 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<xsl:stylesheet version="1.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:tapir="http://rs.tdwg.org/tapir/1.0" + xmlns:skin="http://rs.tdwg.org/tapir/1.0/skin"> +<xsl:output method="html" encoding="us-ascii"/> +<xsl:template match="/"> + <xsl:variable name="accesspoint" select="tapir:response/tapir:header/tapir:source/@accesspoint" /> + <xsl:variable name="base-url" select="substring-before($accesspoint, 'tapir.php')" /> + <xsl:variable name="skin" select="tapir:response/tapir:header/tapir:custom/skin:skin" /> + <html> + <head> + <title>TAPIR inventory result</title> + <link rel="StyleSheet" href="{$base-url}skins/{$skin}/styles.css" type="text/css"/> + </head> + <body> + <span class="Title">Inventory result</span><br/> + <br/> + <span class="RegularText">Total matched: <xsl:value-of select="tapir:response/tapir:inventory/tapir:summary/@totalMatched"/></span><br/> + <br/> + <xsl:variable name="concept-id" select="tapir:response/tapir:inventory/tapir:concepts/tapir:concept/@id" /> + <table border="0" cellspacing="1" cellpadding="3" bgcolor="#999999"> + <tr bgcolor="#FFFFFF"> + <th align="left" bgcolor="#FFFFFF"><b><xsl:value-of select="tapir:response/tapir:inventory/tapir:concepts/tapir:concept/@id"/></b></th> + <th align="center" bgcolor="#FFFFFF"><b>count</b></th> + <th align="center" bgcolor="#FFFFFF"><b>RSS link</b></th> + </tr> + <xsl:for-each select="tapir:response/tapir:inventory/tapir:record"> + <tr bgcolor="#FFFFFF"> + <td align="left"><a href="{$accesspoint}?op=s&xslt={$base-url}skins/{$skin}/search.xsl&s=0&l=20&cnt=1&e=1&f={$concept-id}%20equals%20%22{tapir:value}%22&m={$base-url}skins/default/model.xml.php%3Fc%3D{$concept-id}%26v%3D{tapir:value}%26a%3D{$accesspoint}"><xsl:value-of select="tapir:value"/></a></td> + <td align="center"><xsl:value-of select="@count"/></td> + <td align="center"><a href="{$accesspoint}?op=s&s=0&l=20&e=0&t={$base-url}skins/{$skin}/rss_template.xml.php%3Fc%3D{$concept-id}&v={tapir:value}">rss</a></td> + </tr> + </xsl:for-each> + </table> + <xsl:variable name="next" select="tapir:response/tapir:inventory/tapir:summary/@next" /> + <xsl:if test="$next >= 0"> + <br/><a href="{$accesspoint}?op=i&xslt={$base-url}skins/{$skin}/inventory.xsl&s={$next}&l=20&cnt=1&c={$concept-id}">next</a> + </xsl:if> + </body> + </html> +</xsl:template> +</xsl:stylesheet> Added: tapirlink/trunk/www/skins/darwin/metadata.xsl =================================================================== --- tapirlink/trunk/www/skins/darwin/metadata.xsl (rev 0) +++ tapirlink/trunk/www/skins/darwin/metadata.xsl 2007-03-06 22:23:41 UTC (rev 279) @@ -0,0 +1,102 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<xsl:stylesheet version="1.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:tapir="http://rs.tdwg.org/tapir/1.0" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:dct="http://purl.org/dc/terms/" + xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" + xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#" + xmlns:skin="http://rs.tdwg.org/tapir/1.0/skin"> +<xsl:output method="html" encoding="us-ascii"/> +<xsl:template match="/"> + <xsl:variable name="accesspoint" select="tapir:response/tapir:header/tapir:source/@accesspoint" /> + <xsl:variable name="base-url" select="substring-before($accesspoint, 'tapir.php')" /> + <xsl:variable name="skin" select="tapir:response/tapir:header/tapir:custom/skin:skin" /> + <html> + <head> + <title>TAPIR metadata</title> + <link rel="StyleSheet" href="{$base-url}skins/{$skin}/styles.css" type="text/css"/> + </head> + <body bgcolor="#FFFFFF"> + + <span class="Title"><xsl:value-of select="tapir:response/tapir:metadata/dc:title"/></span><br/> + + <br/> + <span class="RegularText"><xsl:value-of select="tapir:response/tapir:metadata/dc:description"/></span><br/> + <br/> + + <xsl:variable name="language" select="tapir:response/tapir:metadata/dc:language" /> + <span class="Label">Main language</span><br/><span class="RegularText"> + <xsl:choose> + <xsl:when test='$language="en"'>english</xsl:when> + <xsl:when test='$language="fr"'>french</xsl:when> + <xsl:when test='$language="de"'>german</xsl:when> + <xsl:when test='$language="pt"'>portuguese</xsl:when> + <xsl:when test='$language="es"'>spanish</xsl:when> + <xsl:when test='$language="it"'>italian</xsl:when> + <xsl:otherwise>unknown (<xsl:value-of select="$language"/>)</xsl:otherwise> + </xsl:choose> + </span><br/> + <br/> + + <xsl:if test="tapir:response/tapir:metadata/dc:rights"> + <span class="Label">Rights</span><br/><span class="RegularText"><xsl:value-of select="tapir:response/tapir:metadata/dc:rights"/></span><br/> + <br/> + </xsl:if> + + <xsl:if test="tapir:response/tapir:metadata/dc:bibliographicCitation"> + <span class="Label">Citation</span><br/><span class="RegularText"><xsl:value-of select="tapir:response/tapir:metadata/dc:bibliographicCitation"/></span><br/> + <br/> + </xsl:if> + + <xsl:if test="tapir:response/tapir:metadata/dc:subject"> + <span class="Label">Keywords</span><br/><span class="RegularText"><xsl:value-of select="tapir:response/tapir:metadata/dc:subject"/></span><br/> + </xsl:if> + <br/> + + <span class="Label">Related entities</span><br/> + <br/> + <xsl:for-each select="tapir:response/tapir:metadata/tapir:relatedEntity"> + + <span class="Section"><xsl:value-of select="tapir:entity/tapir:name"/> (<xsl:value-of select="tapir:entity/tapir:acronym"/>)</span><br/> + <br/> + + <xsl:if test="tapir:entity/tapir:description"> + <span class="RegularText"><xsl:value-of select="tapir:entity/tapir:description"/></span><br/> + </xsl:if> + <br/> + <xsl:if test="tapir:entity/tapir:relatedInformation"> + <xsl:variable name="related-info" select="tapir:entity/tapir:relatedInformation" /> + <a href="{$related-info}"><xsl:value-of select="tapir:entity/tapir:relatedInformation"/></a><br/><br/> + </xsl:if> + + <span class="SubLabel">Roles</span><br/> + <xsl:for-each select="tapir:role"> + <span class="RegularText"><xsl:value-of select="text()"/><xsl:if test="not(position()=last())">, </xsl:if></span> + </xsl:for-each><br/> + <br/> + + <span class="SubLabel">Address</span><br/><span class="RegularText"><xsl:value-of select="tapir:entity/tapir:address"/><xsl:if test="tapir:entity/geo:Point"><br/>(lat: <xsl:value-of select="tapir:entity/geo:Point/geo:lat"/>, long: <xsl:value-of select="tapir:entity/geo:Point/geo:long"/>)</xsl:if></span><br/> + + <br/> + <span class="SubLabel">Contacts</span><br/> + <xsl:for-each select="tapir:entity/tapir:hasContact"> + <span class="RegularText"><xsl:value-of select="vcard:VCARD/vcard:FN"/></span><br/> + <span class="RegularText"><xsl:value-of select="vcard:VCARD/vcard:TITLE"/> (<xsl:for-each select="tapir:role"><xsl:value-of select="text()"/><xsl:if test="not(position()=last())">, </xsl:if></xsl:for-each>)</span><br/> <span class="RegularText"><xsl:value-of select="vcard:VCARD/vcard:EMAIL"/></span><br/> + <span class="RegularText"><xsl:value-of select="vcard:VCARD/vcard:TEL"/></span><br/> + + </xsl:for-each> + <br/> + </xsl:for-each> + + <hr/> + <span class="RegularText">Created in <xsl:value-of select="tapir:response/tapir:metadata/dct:created"/></span><br/> + <span class="RegularText">Last modified in <xsl:value-of select="tapir:response/tapir:metadata/dct:modified"/></span><br/> + <br/> + + <a href="{$accesspoint}?op=c&xslt={$base-url}skins/{$skin}/capabilities.xsl">See TAPIR capabilities</a> + + </body> + </html> +</xsl:template> +</xsl:stylesheet> Added: tapirlink/trunk/www/skins/darwin/rss_template.xml.php =================================================================== --- tapirlink/trunk/www/skins/darwin/rss_template.xml.php (rev 0) +++ tapirlink/trunk/www/skins/darwin/rss_template.xml.php 2007-03-06 22:23:41 UTC (rev 279) @@ -0,0 +1,49 @@ +<?php +/** + * $Id: $ + * + * LICENSE INFORMATION + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details: + * + * http://www.gnu.org/copyleft/gpl.html + * + * + * @author Renato De Giovanni <renato [at] cria . org . br> + */ + +if ( ! isset( $_REQUEST['c'] ) ) +{ + die('Parameter "c" (concept id) not specified'); +} + +$concept_id = $_REQUEST['c']; + +header ( 'Content-type: text/xml' ); + +?><searchTemplate xmlns="http://rs.tdwg.org/tapir/1.0" + xmlns:xs="http://www.w3.org/2001/XMLSchema" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://rs.tdwg.org/tapir/1.0 + http://rs.tdwg.org/tapir/1.0/tapir.xsd + http://www.w3.org/2001/XMLSchema + http://www.w3.org/2001/XMLSchema.xsd"> + <externalOutputModel location="http://rs.tdwg.org/tapir/cs/dwc2/model/rss2.xml"/> + <filter> + <equals> + <concept id="<?php print($concept_id); ?>"/> + <parameter name="v"/> + </equals> + </filter> + <orderBy> + <concept id="http://rs.tdwg.org/dwc/dwcore/DateLastModified" descend="true"/> + </orderBy> + </searchTemplate> Added: tapirlink/trunk/www/skins/darwin/search.xsl =================================================================== --- tapirlink/trunk/www/skins/darwin/search.xsl (rev 0) +++ tapirlink/trunk/www/skins/darwin/search.xsl 2007-03-06 22:23:41 UTC (rev 279) @@ -0,0 +1,55 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<xsl:stylesheet version="1.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:tapir="http://rs.tdwg.org/tapir/1.0" + xmlns:x="http://tapirlink/model/search/default" + xmlns:skin="http://rs.tdwg.org/tapir/1.0/skin"> +<xsl:output method="html" encoding="us-ascii"/> +<xsl:template match="/"> + <xsl:variable name="accesspoint" select="tapir:response/tapir:header/tapir:source/@accesspoint" /> + <xsl:variable name="base-url" select="substring-before($accesspoint, 'tapir.php')" /> + <xsl:variable name="skin" select="tapir:response/tapir:header/tapir:custom/skin:skin" /> + <html> + <head> + <title>TAPIR search result</title> + <link rel="StyleSheet" href="{$base-url}skins/{$skin}/styles.css" type="text/css"/> + </head> + <body> + <span class="Title">Search result</span><br/> + <br/> + <span class="RegularText">Total matched: <xsl:value-of select="tapir:response/tapir:search/tapir:summary/@totalMatched"/></span><br/> + <br/> + <table border="0" cellspacing="1" cellpadding="3" bgcolor="#999999"> + <tr bgcolor="#FFFFFF"> + <xsl:for-each select="tapir:response/tapir:search/x:records/x:record[1]/*/x:name"> + <th align="left" bgcolor="#FFFFFF"><b><xsl:value-of select="text()"/></b></th> + </xsl:for-each> + </tr> + <xsl:for-each select="tapir:response/tapir:search/x:records/x:record"> + <tr bgcolor="#FFFFFF"> + <xsl:for-each select="*/x:value"> + <xsl:variable name="value" select="text()" /> + <td align="left" nowrap="nowrap"> + <xsl:choose> + <xsl:when test="*|text()"> + <xsl:value-of select="$value"/> + </xsl:when> + <xsl:otherwise> + <xsl:text> </xsl:text> + </xsl:otherwise> + </xsl:choose> + </td> + </xsl:for-each> + </tr> + </xsl:for-each> + </table> + <xsl:variable name="next" select="tapir:response/tapir:search/tapir:summary/@next" /> + <xsl:variable name="concept-id" select="tapir:response/tapir:search/x:records/@concept" /> + <xsl:variable name="value" select="tapir:response/tapir:search/x:records/@value" /> + <xsl:if test="$next >= 0"> + <br/><a href="{$accesspoint}?op=s&xslt={$base-url}skins/{$skin}/search.xsl&s={$next}&l=20&cnt=1&e=1&f={$concept-id}%20equals%20%22{$value}%22&m={$base-url}skins/default/model.xml.php%3Fc%3D{$concept-id}%26v%3D{$value}%26a%3D{$accesspoint}">next</a> + </xsl:if> + </body> + </html> +</xsl:template> +</xsl:stylesheet> Added: tapirlink/trunk/www/skins/darwin/styles.css =================================================================== --- tapirlink/trunk/www/skins/darwin/styles.css (rev 0) +++ tapirlink/trunk/www/skins/darwin/styles.css 2007-03-06 22:23:41 UTC (rev 279) @@ -0,0 +1,59 @@ +body +{ + margin-top: 5px; + margin-left: 20px; + margin-right: 400px; +} + +a +{ + font-size: 12px; + font-weight: normal; + font-family: Arial,Helvetica,sans-serif; +} + +td,th +{ + font-family: Arial,Helvetica,sans-serif; + font-size: 13px; + color: black; +} + +.Title +{ + font-size: 18px; + font-weight: bold; + font-family: Arial,Helvetica,sans-serif; +} + +.Section +{ + color: #000000; + font-size: 13px; + font-weight: normal; + font-style: italic; + text-decoration: underline; + font-family: Arial,Helvetica,sans-serif; +} + +.Label +{ + font-size: 12px; + font-weight: bold; + font-family: Arial,Helvetica,sans-serif; +} + +.RegularText +{ + font-size: 12px; + font-weight: normal; + font-family: Arial,Helvetica,sans-serif; +} + +.SubLabel +{ + font-size: 11px; + font-weight: bold; + font-style: italic; + font-family: Arial,Helvetica,sans-serif; +} Modified: tapirlink/trunk/www/skins/default/capabilities.xsl =================================================================== --- tapirlink/trunk/www/skins/default/capabilities.xsl 2007-03-04 23:55:19 UTC (rev 278) +++ tapirlink/trunk/www/skins/default/capabilities.xsl 2007-03-06 22:23:41 UTC (rev 279) @@ -1,12 +1,13 @@ <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" - xmlns:tapir="http://rs.tdwg.org/tapir/1.0"> + xmlns:tapir="http://rs.tdwg.org/tapir/1.0" + xmlns:skin="http://rs.tdwg.org/tapir/1.0/skin"> <xsl:output method="html" encoding="us-ascii"/> <xsl:template match="/"> <xsl:variable name="accesspoint" select="tapir:response/tapir:header/tapir:source/@accesspoint" /> <xsl:variable name="base-url" select="substring-before($accesspoint, 'tapir.php')" /> - <xsl:variable name="skin" select="tapir:response/tapir:header/tapir:custom/tapir:skin" /> + <xsl:variable name="skin" select="tapir:response/tapir:header/tapir:custom/skin:skin" /> <html> <head> <title>TAPIR capabilities</title> Modified: tapirlink/trunk/www/skins/default/inventory.xsl =================================================================== --- tapirlink/trunk/www/skins/default/inventory.xsl 2007-03-04 23:55:19 UTC (rev 278) +++ tapirlink/trunk/www/skins/default/inventory.xsl 2007-03-06 22:23:41 UTC (rev 279) @@ -1,12 +1,13 @@ <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" - xmlns:tapir="http://rs.tdwg.org/tapir/1.0"> + xmlns:tapir="http://rs.tdwg.org/tapir/1.0" + xmlns:skin="http://rs.tdwg.org/tapir/1.0/skin"> <xsl:output method="html" encoding="us-ascii"/> <xsl:template match="/"> <xsl:variable name="accesspoint" select="tapir:response/tapir:header/tapir:source/@accesspoint" /> <xsl:variable name="base-url" select="substring-before($accesspoint, 'tapir.php')" /> - <xsl:variable name="skin" select="tapir:response/tapir:header/tapir:custom/tapir:skin" /> + <xsl:variable name="skin" select="tapir:response/tapir:header/tapir:custom/skin:skin" /> <html> <head> <title>TAPIR inventory result</title> @@ -25,7 +26,7 @@ </tr> <xsl:for-each select="tapir:response/tapir:inventory/tapir:record"> <tr bgcolor="#FFFFFF"> - <td align="left"><a href="{$accesspoint}?op=s&xslt={$base-url}skins/{$skin}/search.xsl&s=0&l=20&cnt=1&e=1&f={$concept-id}%20equals%20%22{tapir:value}%22&m={$base-url}model.xml.php%3Fc%3D{$concept-id}%26v%3D{tapir:value}%26a%3D{$accesspoint}"><xsl:value-of select="tapir:value"/></a></td> + <td align="left"><a href="{$accesspoint}?op=s&xslt={$base-url}skins/{$skin}/search.xsl&s=0&l=20&cnt=1&e=1&f={$concept-id}%20equals%20%22{tapir:value}%22&m={$base-url}skins/{$skin}/model.xml.php%3Fc%3D{$concept-id}%26v%3D{tapir:value}%26a%3D{$accesspoint}"><xsl:value-of select="tapir:value"/></a></td> <td align="center"><xsl:value-of select="@count"/></td> </tr> </xsl:for-each> Modified: tapirlink/trunk/www/skins/default/metadata.xsl =================================================================== --- tapirlink/trunk/www/skins/default/metadata.xsl 2007-03-04 23:55:19 UTC (rev 278) +++ tapirlink/trunk/www/skins/default/metadata.xsl 2007-03-06 22:23:41 UTC (rev 279) @@ -5,12 +5,13 @@ xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dct="http://purl.org/dc/terms/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" - xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#"> + xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#" + xmlns:skin="http://rs.tdwg.org/tapir/1.0/skin"> <xsl:output method="html" encoding="us-ascii"/> <xsl:template match="/"> <xsl:variable name="accesspoint" select="tapir:response/tapir:header/tapir:source/@accesspoint" /> <xsl:variable name="base-url" select="substring-before($accesspoint, 'tapir.php')" /> - <xsl:variable name="skin" select="tapir:response/tapir:header/tapir:custom/tapir:skin" /> + <xsl:variable name="skin" select="tapir:response/tapir:header/tapir:custom/skin:skin" /> <html> <head> <title>TAPIR metadata</title> Copied: tapirlink/trunk/www/skins/default/model.xml.php (from rev 278, tapirlink/trunk/www/model.xml.php) =================================================================== --- tapirlink/trunk/www/skins/default/model.xml.php (rev 0) +++ tapirlink/trunk/www/skins/default/model.xml.php 2007-03-06 22:23:41 UTC (rev 279) @@ -0,0 +1,135 @@ +<?php +/** + * $Id$ + * + * LICENSE INFORMATION + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details: + * + * http://www.gnu.org/copyleft/gpl.html + * + * + * @author Renato De Giovanni <renato [at] cria . org . br> + */ + +require_once('../../tapir_globals.php'); +require_once('TpRequest.php'); +require_once('TpResources.php'); +require_once('TpResource.php'); +require_once('TpLocalMapping.php'); + +if ( ! isset( $_REQUEST['a'] ) ) +{ + die('Parameter "a" (accesspoint) not specified'); +} +if ( ! isset( $_REQUEST['c'] ) ) +{ + die('Parameter "c" (concept id) not specified'); +} +if ( ! isset( $_REQUEST['v'] ) ) +{ + die('Parameter "v" (filter value) not specified'); +} + +// Instantiate request object to get resource code +$request = new TpRequest(); + +// If no resource was specified in the request URI, display error +if ( ! $request->ExtractResourceCode( $_REQUEST['a'] ) ) +{ + die('Could not determine resource'); +} + +// Get resource code and check if it's valid +$resource_code = $request->GetResourceCode(); + +$r_resources =& TpResources::GetInstance(); + +$raise_errors = false; +$r_resource =& $r_resources->GetResource( $resource_code, $raise_errors ); + +if ( $r_resource == null ) +{ + die('Could not find resource "'.$resource_code.'"'); +} + +// Get all mapped concepts +$r_local_mapping =& $r_resource->GetLocalMapping(); + +$r_local_mapping->LoadFromXml( $r_resource->GetConfigFile() ); + +$r_mapped_schemas =& $r_local_mapping->GetMappedSchemas(); + +$concepts = array(); + +foreach ( $r_mapped_schemas as $ns => $conceptual_schema ) +{ + $r_concepts =& $r_mapped_schemas[$ns]->GetConcepts(); + + foreach ( $r_concepts as $concept_id => $concept ) + { + if ( $r_concepts[$concept_id]->IsMapped() ) + { + $concepts[$concept_id] = $r_concepts[$concept_id]->GetName(); + } + } +} + +header ( 'Content-type: text/xml' ); + +?><outputModel xmlns="http://rs.tdwg.org/tapir/1.0" + xmlns:xs="http://www.w3.org/2001/XMLSchema" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://rs.tdwg.org/tapir/1.0 + http://rs.tdwg.org/tapir/1.0/tapir.xsd + http://www.w3.org/2001/XMLSchema + http://www.w3.org/2001/XMLSchema.xsd"> + <structure> + <xs:schema targetNamespace="http://tapirlink/model/search/default"> + <xs:element name="records"> + <xs:complexType> + <xs:sequence> + <xs:element name="record" minOccurs="0" maxOccurs="unbounded"> + <xs:complexType> + <xs:sequence> + <?php $i = 0; ?> + <?php foreach ( $concepts as $concept_id => $alias ): ?> + <?php ++$i; ?> + <xs:element name="field<?php print($i); ?>"> + <xs:complexType> + <xs:sequence> + <xs:element name="name" type="xs:string" default="<?php print($alias); ?>"/> + <xs:element name="value" type="xs:string" nillable="true"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <?php endforeach; ?> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attribute name="concept" type="xs:string" use="required" default="<?php print($_REQUEST['c']); ?>"/> + <xs:attribute name="value" type="xs:string" use="required" default="<?php print($_REQUEST['v']); ?>"/> + </xs:complexType> + </xs:element> + </xs:schema> + </structure> + <indexingElement path="/records/record"/> + <mapping> + <?php $i = 0; ?> + <?php foreach ( $concepts as $concept_id => $alias ): ?> + <?php ++$i; ?> + <node path="/records/record/field<?php print($i); ?>/value"> + <concept id="<?php print($concept_id); ?>"/> + </node> + <?php endforeach; ?> + </mapping> + </outputModel> Modified: tapirlink/trunk/www/skins/default/search.xsl =================================================================== --- tapirlink/trunk/www/skins/default/search.xsl 2007-03-04 23:55:19 UTC (rev 278) +++ tapirlink/trunk/www/skins/default/search.xsl 2007-03-06 22:23:41 UTC (rev 279) @@ -2,12 +2,13 @@ <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:tapir="http://rs.tdwg.org/tapir/1.0" + xmlns:skin="http://rs.tdwg.org/tapir/1.0/skin" xmlns:x="http://tapirlink/model/search/default"> <xsl:output method="html" encoding="us-ascii"/> <xsl:template match="/"> <xsl:variable name="accesspoint" select="tapir:response/tapir:header/tapir:source/@accesspoint" /> <xsl:variable name="base-url" select="substring-before($accesspoint, 'tapir.php')" /> - <xsl:variable name="skin" select="tapir:response/tapir:header/tapir:custom/tapir:skin" /> + <xsl:variable name="skin" select="tapir:response/tapir:header/tapir:custom/skin:skin" /> <html> <head> <title>TAPIR search result</title> @@ -46,7 +47,7 @@ <xsl:variable name="concept-id" select="tapir:response/tapir:search/x:records/@concept" /> <xsl:variable name="value" select="tapir:response/tapir:search/x:records/@value" /> <xsl:if test="$next >= 0"> - <br/><a href="{$accesspoint}?op=s&xslt={$base-url}skins/{$skin}/search.xsl&s={$next}&l=20&cnt=1&e=1&f={$concept-id}%20equals%20%22{$value}%22&m={$base-url}model.xml.php%3Fc%3D{$concept-id}%26v%3D{$value}%26a%3D{$accesspoint}">next</a> + <br/><a href="{$accesspoint}?op=s&xslt={$base-url}skins/{$skin}/search.xsl&s={$next}&l=20&cnt=1&e=1&f={$concept-id}%20equals%20%22{$value}%22&m={$base-url}skins/{$skin}/model.xml.php%3Fc%3D{$concept-id}%26v%3D{$value}%26a%3D{$accesspoint}">next</a> </xsl:if> </body> </html> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |