<html><body>
<p>Hi Rüdiger,<br>
<br>
long time ago you answered my request "Sorting of elements with cms:contentload". <br>
But not until today we tried to realize your proposal. And we encountered some problems:
<ol type="1">
<li>We wrote our own ResourceCollector by using <tt>org.opencms.file.collectors.CmsDefaultResourceCollector</tt> as template for our own,<br>
<br>
we added an additional parameter <font color="#3F8080" face="Courier New">"companySort"</font><font color="#3F8080"> to this collector, indicating the column we like to sort.<br>
<br>
and we copied the class into the class directory of the module:<br>
</font><font color="#3F8080">/system/modules/org.vug.templates/classes/org/vug/templates/</font>
<li>
<li>We added a line in the collectors-node of the opencms-vfs.xml.<br>
<collectors><br>
 <collector class="org.vug.templates.CmsVaterResourceCollector" order="90"/><br>
 <collector class="org.opencms.file.collectors.CmsPriorityResourceCollector" order="100"/><br>
 <collector class="org.opencms.file.collectors.CmsDefaultResourceCollector" order="110"/><br>
 <collector class="org.opencms.file.collectors.CmsDateResourceCollector" order="120"/><br>
 <collector class="org.opencms.file.collectors.CmsTimeFrameCategoryCollector" order="130"/><br>
 <collector class="org.opencms.file.collectors.CmsCategoryResourceCollector" order="140"/><br>
 </collectors>
<li>We added the collector "companySort" in the jsp, that creates the list:<br>
<cms:contentload collector="companySort" param="/inside/telefonliste/mitarbeiter/*.html|maentry" editable="false"><br>

<li>We wanted to test the result but somehow the jsp cannot find the new class, we received an error-message:<br>
<font size="2" face="Verdana">javax.servlet.jsp.JspException: org.opencms.main.CmsException: Collector "companySort" was not found.<br>
Der Grund: Collector "companySort" wurde nicht gefunden. <br>
</font></ol>

<ul type="disc">
<li><font size="2" face="Verdana">Do you have an idea which step is missing in order for the contentload-command to trigger the new collector-class?</font>
<li><font size="2" face="Verdana">It seems that it does not even enter the new class; how is the new "companySort"-collector linked to the new collector-class. Is there another xsd or xml, that needs to be amended?</font></ul>
<br>
<font size="2" face="Verdana">Thank you in advance for your kind support.</font><br>
<br>
<font size="2" face="Verdana">Frank Pertack</font><br>
<br>
<br>
<img width="16" height="16" src="cid:1__=4EBBFD37DFA0F3BB8f9e8a93@vater-gruppe.de" border="0" alt="Inactive hide details for Rüdiger Kurz ---20.05.2010 16:34:32---Frank, it is possible to write your own ResourceCollector by ex"><font color="#424282">Rüdiger Kurz ---20.05.2010 16:34:32---Frank, it is possible to write your own ResourceCollector by extending the</font><br>
<br>

<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr valign="top"><td width="1%"><img width="96" height="1" src="cid:2__=4EBBFD37DFA0F3BB8f9e8a93@vater-gruppe.de" border="0" alt=""><br>
<font size="2" color="#5F5F5F">Von:</font></td><td width="100%"><img width="1" height="1" src="cid:2__=4EBBFD37DFA0F3BB8f9e8a93@vater-gruppe.de" border="0" alt=""><br>
<font size="2">Rüdiger Kurz <r.kurz@alkacon.com></font></td></tr>

<tr valign="top"><td width="1%"><img width="96" height="1" src="cid:2__=4EBBFD37DFA0F3BB8f9e8a93@vater-gruppe.de" border="0" alt=""><br>
<font size="2" color="#5F5F5F">An:</font></td><td width="100%"><img width="1" height="1" src="cid:2__=4EBBFD37DFA0F3BB8f9e8a93@vater-gruppe.de" border="0" alt=""><br>
<font size="2">The OpenCms mailing list <opencms-dev@opencms.org></font></td></tr>

<tr valign="top"><td width="1%"><img width="96" height="1" src="cid:2__=4EBBFD37DFA0F3BB8f9e8a93@vater-gruppe.de" border="0" alt=""><br>
<font size="2" color="#5F5F5F">Datum:</font></td><td width="100%"><img width="1" height="1" src="cid:2__=4EBBFD37DFA0F3BB8f9e8a93@vater-gruppe.de" border="0" alt=""><br>
<font size="2">20.05.2010 16:34</font></td></tr>

<tr valign="top"><td width="1%"><img width="96" height="1" src="cid:2__=4EBBFD37DFA0F3BB8f9e8a93@vater-gruppe.de" border="0" alt=""><br>
<font size="2" color="#5F5F5F">Betreff:</font></td><td width="100%"><img width="1" height="1" src="cid:2__=4EBBFD37DFA0F3BB8f9e8a93@vater-gruppe.de" border="0" alt=""><br>
<font size="2">Re: [opencms-dev] Sorting of elements with cms:contentload</font></td></tr>

<tr valign="top"><td width="1%"><img width="96" height="1" src="cid:2__=4EBBFD37DFA0F3BB8f9e8a93@vater-gruppe.de" border="0" alt=""><br>
<font size="2" color="#5F5F5F">Gesendet von:</font></td><td width="100%"><img width="1" height="1" src="cid:2__=4EBBFD37DFA0F3BB8f9e8a93@vater-gruppe.de" border="0" alt=""><br>
<font size="2">opencms-dev-bounces@opencms.org</font></td></tr>
</table>
<hr width="100%" size="2" align="left" noshade style="color:#8091A5; "><br>
<br>
<br>
<tt>Frank,<br>
<br>
it is possible to write your own ResourceCollector by extending the <br>
abstract class A_CmsResourceCollector. You can use the class <br>
org.opencms.file.collectors.CmsDefaultResourceCollector as template for <br>
your individual collector. add an additional parameter to this collector <br>
which indicates the column you want to search for.<br>
<br>
Don't forget to add the new Collector into the <collectors> node of the <br>
file opencms-vfs.xml.<br>
<br>
For Implementation you need a comparator which compares the content of <br>
your XML Content. For performance reasons I would recommend you to map <br>
the Company name and the Location on a property because unmarshaling of <br>
XML contents is an expensive Task and very complicated.<br>
<br>
good luck ...<br>
<br>
<br>
Am 19.05.2010 16:51, schrieb Frank Pertack:<br>
> Hello,<br>
><br>
> I have a slight problem with sorting a list of xml-documents.<br>
> I constructed a jsp, that shows all employees of our company-group in<br>
> alphabetical order of their lastnames.<br>
><br>
> Additionally to that, I like to have a sorting by company<br>
> (=Gesellschaft) and by location (=Standort),how do I realize this?<br>
><br>
><br>
> When I use the following maentry.xsd, how can I change this, to make the<br>
> contentload sort the xml-files according to a different field?<br>
><br>
> code<br>
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<br>
> <!--<br>
> XSD file for the MaEntry content type<br>
> --><br>
> <!-- 1. Root Element --><br>
> <xsd:schema xmlns:xsd="</tt><tt><a href="http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchema</a></tt><tt>"<br>
> elementFormDefault="qualified"><br>
><br>
> <!-- 2. Define the location of the schema location --><br>
> <xsd:include schemaLocation="opencms://opencms-xmlcontent.xsd"/><br>
> <!--<xsd:include<br>
> schemaLocation="opencms://system/modules/org.vug.templates/schemas/maentry.xsd"/>--><br>
><br>
> <!-- 3. Root element name and type of our XML type --><br>
> <xsd:element name="MaEntrys" type="OpenCmsMaEntrys"/><br>
><br>
> <!-- 4. Definition of the type described above --><br>
> <xsd:complexType name="OpenCmsMaEntrys"><br>
> <xsd:sequence><br>
> <xsd:element name="MaEntry" type="OpenCmsMaEntry" minOccurs="0"<br>
> maxOccurs="unbounded"/><br>
> </xsd:sequence><br>
> </xsd:complexType><br>
><br>
> <!-- 5. Data field definitions --><br>
> <xsd:complexType name="OpenCmsMaEntry"><br>
> <xsd:sequence><br>
> <xsd:element name="Title" type="OpenCmsString" minOccurs="1"<br>
> maxOccurs="1" /><br>
> <!-- Personendaten:--><br>
> <xsd:element name="LastName" type="OpenCmsString" minOccurs="1"<br>
> maxOccurs="1" /><br>
> <xsd:element name="FirstName" type="OpenCmsString" minOccurs="1"<br>
> maxOccurs="1" /><br>
> <!-- Kontaktdaten:--><br>
> <xsd:element name="Phone" type="OpenCmsString" minOccurs="1"<br>
> maxOccurs="1" /><br>
> <xsd:element name="Fax" type="OpenCmsString" minOccurs="0" maxOccurs="1" /><br>
> <xsd:element name="Mobile" type="OpenCmsString" minOccurs="0"<br>
> maxOccurs="1" /><br>
> <xsd:element name="Email" type="OpenCmsString" minOccurs="1"<br>
> maxOccurs="1" /><br>
> <xsd:element name="PrivatePhone" type="OpenCmsString" minOccurs="0"<br>
> maxOccurs="1" /><br>
> <!-- Category named "Company":--><br>
> <xsd:element name="Company" type="OpenCmsString" minOccurs="0"<br>
> maxOccurs="20" /><br>
> <xsd:element name="Location" type="OpenCmsString" minOccurs="0"<br>
> maxOccurs="10" /><br>
> <xsd:element name="Function" type="OpenCmsString" minOccurs="0"<br>
> maxOccurs="1" /><br>
> <!-- Zusatzdaten:--><br>
> <xsd:element name="Image" type="OpenCmsVfsFile" minOccurs="0"<br>
> maxOccurs="1" /><br>
> <xsd:element name="Alignment" type="OpenCmsString" minOccurs="1"<br>
> maxOccurs="1" /><br>
> <xsd:element name="Birthday" type="OpenCmsDateTime" minOccurs="0"<br>
> maxOccurs="1" /><br>
> <xsd:element name="Date" type="OpenCmsDateTime" minOccurs="1"<br>
> maxOccurs="1" /><br>
> <xsd:element name="Comments" type="OpenCmsString" minOccurs="0"<br>
> maxOccurs="1" /><br>
> </xsd:sequence><br>
> <xsd:attribute name="language" type="OpenCmsLocale" use="required"/><br>
> </xsd:complexType><br>
><br>
> <!-- 6. Annotations are used to define additional settings for our<br>
> content type --><br>
> <xsd:annotation><br>
> <xsd:appinfo><br>
> <!-- 7. Mappings allow data fields to be mapped to content properties --><br>
> <mappings><br>
> <mapping element="LastName" mapto="property:Title" /><br>
> <mapping element="FirstName" mapto="property:Text" /><br>
> <mapping element="Date" mapto="attribute:datereleased" /><br>
> </mappings><br>
><br>
> <!-- 8. Validation rules may be create for field entry --><br>
> <validationrules><br>
> <!--<br>
> <rule element="BlogText" regex="!.*[Bl]og.*" type="warning"<br>
> message="${key.editor.warning.BlogEntry.dontallowblog|${validation.path}}"/><br>
> --><br>
> </validationrules><br>
><br>
> <!-- 9. Default values can be set for each field type --><br>
> <defaults><br>
> <default element="Date" value="${currenttime}"/><br>
> <default element="Alignment" value="left"/><br>
> </defaults><br>
><br>
> <!-- 10. This section controls which widgets are used to edit the data<br>
> fields --><br>
> <layouts><br>
> <layout element="Title" widget="StringWidget"/><br>
> <layout element="LastName" widget="StringWidget"/><br>
> <layout element="FirstName" widget="StringWidget"/><br>
> <layout element="Phone" widget="StringWidget"/><br>
> <layout element="Fax" widget="StringWidget"/><br>
> <layout element="Mobile" widget="StringWidget"/><br>
> <layout element="Email" widget="StringWidget"/><br>
> <layout element="PrivatePhone" widget="StringWidget"/><br>
> <layout element="Birthday" widget="DateTimeWidget"/><br>
> <layout element="Date" widget="DateTimeWidget"/><br>
> <layout element="Image" widget="ImageGalleryWidget"/><br>
> <layout element="Alignment" widget="SelectorWidget"<br>
> configuration="left|right|center" /><br>
> <layout element="Company" widget="SelectorWidget"<br>
> configuration="Vater 4Office GmbH|Vater Bankenberatung GmbH|Vater Bank<br>
> IT|Vater BizCon GmbH|Vater ERPteam GmbH|<br>
> Vater ESN Business Academy GmbH|Vater Holding GmbH|Vater KNS GmbH|Vater<br>
> NetCom GmbH|Vater pcs GmbH|<br>
> Vater Solution GmbH|Vater SysCon GmbH" /><br>
> <layout element="Location" widget="SelectorWidget"<br>
> configuration="Bremen, Herrmann-Ritter-Straße 106-114|Hamburg,<br>
> Schellingstraße 17|Kiel, Am Kiel-Kanal 1|Kiel, Boschstraße 5|<br>
> Kiel-Wellsee, Liebigstraße 26|Kiel-Schwentinental, Lise-Meitner-Straße<br>
> 25-29|<br>
> Kiel-Schwentinental, Wasserwerksweg 18" /><br>
> <layout element="Function" widget="StringWidget"/><br>
> <layout element="Comments" widget="TextareaWidget"/><br>
> </layouts><br>
><br>
> <!-- 11. UI Localization --><br>
> <resourcebundle name="org.vug.templates.workplace"/><br>
><br>
> <!-- 12. this section controls relationship checking --><br>
> <relations><br>
> <relation element="Image" type="strong" invalidate="node" /><br>
> </relations><br>
><br>
> <!-- 13. Previewing URI --><br>
> <preview uri="${previewtempfile}" /><br>
><br>
> <!-- 14. Model Folder --><br>
> <modelfolder uri="/system/modules/org.vug.templates/models/" /><br>
> </xsd:appinfo><br>
> </xsd:annotation><br>
><br>
> </xsd:schema><br>
><br>
> end of<br>
> code--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<br>
><br>
> Somehow I realized, it could be working by changing the mapping of the<br>
> title, but I don't know what to change here...:<br>
><br>
> Do you have any ideas?<br>
><br>
> Mit freundlichen Grüßen<br>
><br>
><br>
><br>
> Frank Pertack<br>
><br>
><br>
> Vater Solution GmbH<br>
> Liebigstraße 26<br>
> 24145 Kiel<br>
><br>
> Telefon: +49 431 20084-210<br>
> Telefax: +49 431 20084-222<br>
> Mobil: +49 151 16353519<br>
> mailto: fpertack@vater-gruppe.de<br>
> </tt><tt><a href="http://www.vater-gruppe.de">http://www.vater-gruppe.de</a></tt><tt><br>
><br>
><br>
><br>
> Amtsgericht Kiel, HRB 6403<br>
> Geschäftsführer:<br>
> Klaus-Hinrich Vater<br>
> Michael Wiese<br>
> -----<br>
> Diese Email enthält ggfs. vertrauliche und/oder rechtlich geschützte<br>
> Informationen. Wenn Sie nicht der richtige Adressat sind oder diese<br>
> Email irrtümlich erhalten haben, informieren Sie bitte sofort den<br>
> Absender und vernichten Sie diese Email. Das unerlaubte Kopieren sowie<br>
> die unbefugte Weitergabe dieser Email sind nicht gestattet.<br>
><br>
><br>
><br>
><br>
> _______________________________________________<br>
> This mail is sent to you from the opencms-dev mailing list<br>
> To change your list options, or to unsubscribe from the list, please visit<br>
> </tt><tt><a href="http://lists.opencms.org/mailman/listinfo/opencms-dev">http://lists.opencms.org/mailman/listinfo/opencms-dev</a></tt><tt><br>
<br>
-- <br>
Kind Regards,<br>
Rüdiger<br>
<br>
-------------------<br>
Rüdiger Kurz<br>
<br>
Alkacon Software GmbH  - The OpenCms Experts<br>
</tt><tt><a href="http://www.alkacon.com">http://www.alkacon.com</a></tt><tt> - </tt><tt><a href="http://www.opencms.org">http://www.opencms.org</a></tt><tt><br>
<br>
_______________________________________________<br>
This mail is sent to you from the opencms-dev mailing list<br>
To change your list options, or to unsubscribe from the list, please visit<br>
</tt><tt><a href="http://lists.opencms.org/mailman/listinfo/opencms-dev">http://lists.opencms.org/mailman/listinfo/opencms-dev</a></tt><tt><br>
</tt><br>
</body></html>