Hi Tim,
Did you manage to export submitted abstracts into a suitable software package to generate a proceedings booklet? Did you find your use of OCS OK for your needs in the end?
We're currently running a test conference using OCS 2.1.1 and I just managed to generate a book of abstract using the Paper XML Plugin. Please note that our OCS conference is abstracts only as we plan to use OJS for the refereed proceedings submission. Hence, the exported XML files may have only a few Mb compared to Gb if it contains 300 full papers. Here is the recipe:
- go to Conference Manager > Import/Export Data > Papers XML Plugin > Export Papers
- select the papers you want to export. (If clicking "select all" then "export" doesn't work, here is a patch: http://pkp.sfu.ca/bugzilla/show_bug.cgi?id=3999.)
- click export which will save the abstract info into a file named paper.xml (do not open it yet, save it). In our case, this file contains only the abstracts (usually pasted from MSWord) and the authors info as no papers are submitted with OCS.
- now, in the same directory as paper.xml, create an XSLT file, which is a style sheet/template for XML files. It allows you to select the parts of the informations contained in the XML file that you want to display.
For example, to generate a book of abstract, you can create a file
abstracts.xsl that contains:
- Code: Select all
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>Book of abstracts</h2>
<xsl:for-each select="papers">
<xsl:for-each select="paper">
<b><xsl:value-of select="title"/></b><br />
<xsl:for-each select="author">
<i><xsl:value-of select="firstname"/> <xsl:value-of select="lastname"/>, <xsl:value-of select="affiliation"/></i><br />
</xsl:for-each>
<br />
<xsl:value-of select="abstract" disable-output-escaping="yes"/><br /><br />
</xsl:for-each>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
(Note the use of
  as a space character; the usual
does not work in XML.) Then,
with a text editor (WordPad will do the job), open your
paper.xml file and add the following as the second line:
- Code: Select all
<?xml-stylesheet type="text/xsl" href="abstracts.xsl"?>
This instructs the program that opens the .xml file to use this .xsl file as a stylesheet. You can now open
paper.xml with MSWord or IE and they will display a list of all the selected papers with the titles in bold followed by the author names and their affliliation in italic and the abstract with all greek symbols, indices and exponents, italic and bold nicely conserved. (Sorry, I've not been able to make it work properly with Firefox or OpenOffice so far because all MS-specific HTML tags generated by Word when people pasted their abstract from an MSWord document show up. But you can cut and paste from IE to OOo.) If you received 350 abstracts, you are now ready for a couple of hours of paragraph formatting before printing!
If you want a table of authors and titles, you can instead use an XSLT file that will generate a table. Again create a .xsl file containing the following (and change the name of the .xsl file on the second line of your .xml file) :
- Code: Select all
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>list of abstract titles and authors</h2>
<xsl:for-each select="papers">
<table>
<tr>
<th>Authors last name</th>
<th>Title</th>
</tr>
<xsl:for-each select="paper">
<tr>
<td>
<xsl:for-each select="author">
<xsl:value-of select="lastname"/>,
</xsl:for-each>
</td>
<td><xsl:value-of select="title"/></td>
</tr>
</xsl:for-each>
</table>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
You can now open
paper.xml file with, e.g., Excel.
Finally, we rely quite a lot on the paper ID as a reference number, but the current Paper XML Plugin doesn't export the paper ID in the XML file. To make the plugin do it, you have to edit in the OCS directory the file
plugins/importexport/native/NativeExportDom.inc.php and add to
function generatePaperDom,
after the first line of code, the following:
- Code: Select all
/* --- PaperID --- */
XMLCustomWriter::createChildWithText($doc, $root, 'paper_id', $paper->getPaperId());
(Sorry, I never learned how to write patches.) Now, in the two previous .xsl files, you can add "
(<xsl:value-of select="paper_id"/>) " in front of the tags "
<xsl:value-of select="title"/>" so the paper ID will appear in parenthesis in front of the paper title.
Sorry for the long post, but I'm sure it will help a few people.
François