PublicPersonalProfile: Optimierungen am XML

git-svn-id: https://svn.libreccm.org/ccm/trunk@1063 8810af33-2d31-482b-a856-94f89814c4df
master
jensp 2011-08-16 15:17:03 +00:00
parent a49000d94b
commit 618ff041d4
3 changed files with 119 additions and 56 deletions

View File

@ -14,7 +14,7 @@ public class PublicPersonalProfileConfig extends AbstractConfig {
private final Parameter homeNavItemLabels; private final Parameter homeNavItemLabels;
private final Parameter showPersonInfoEverywhere; private final Parameter showPersonInfoEverywhere;
private final Parameter contactType; // private final Parameter contactType;
public PublicPersonalProfileConfig() { public PublicPersonalProfileConfig() {
homeNavItemLabels = new StringParameter( homeNavItemLabels = new StringParameter(
@ -28,14 +28,14 @@ public class PublicPersonalProfileConfig extends AbstractConfig {
Parameter.REQUIRED, Parameter.REQUIRED,
false); false);
contactType = new StringParameter( /* contactType = new StringParameter(
"com.arsdigita.cms.publicpersonalprofile.contactType", "com.arsdigita.cms.publicpersonalprofile.contactType",
Parameter.REQUIRED, Parameter.REQUIRED,
"commonContact"); "commonContact");*/
register(homeNavItemLabels); register(homeNavItemLabels);
register(showPersonInfoEverywhere); register(showPersonInfoEverywhere);
register(contactType); // register(contactType);
loadInfo(); loadInfo();
} }
@ -47,8 +47,7 @@ public class PublicPersonalProfileConfig extends AbstractConfig {
public final Boolean getShowPersonInfoEverywhere() { public final Boolean getShowPersonInfoEverywhere() {
return (Boolean) get(showPersonInfoEverywhere); return (Boolean) get(showPersonInfoEverywhere);
} }
/* public final String getContactType() {
public final String getContactType() {
return (String) get(contactType); return (String) get(contactType);
} }*/
} }

View File

@ -8,8 +8,8 @@ com.arsdigita.cms.publicpersonalprofile.show_person_info_everywhere.purpose = If
com.arsdigita.cms.publicpersonalprofile.show_person_info_everywhere.example = false com.arsdigita.cms.publicpersonalprofile.show_person_info_everywhere.example = false
com.arsdigita.cms.publicpersonalprofile.show_person_info_everywhere.format = [Boolean] com.arsdigita.cms.publicpersonalprofile.show_person_info_everywhere.format = [Boolean]
com.arsdigita.cms.publicpersonalprofile.contactType.title = Contact type to use #com.arsdigita.cms.publicpersonalprofile.contactType.title = Contact type to use
com.arsdigita.cms.publicpersonalprofile.contactType.purpose = Determines the type of the contact to use in the profiles # com.arsdigita.cms.publicpersonalprofile.contactType.purpose = Determines the type of the contact to use in the profiles
com.arsdigita.cms.publicpersonalprofile.contactType.title.example = commonContact #com.arsdigita.cms.publicpersonalprofile.contactType.title.example = commonContact
com.arsdigita.cms.publicpersonalprofile.contactType.title.format = [String] #com.arsdigita.cms.publicpersonalprofile.contactType.title.format = [String]

View File

@ -5,6 +5,10 @@ import com.arsdigita.bebop.PageFactory;
import com.arsdigita.bebop.PageState; import com.arsdigita.bebop.PageState;
import com.arsdigita.cms.ContentItem; import com.arsdigita.cms.ContentItem;
import com.arsdigita.cms.contentassets.RelatedLink; import com.arsdigita.cms.contentassets.RelatedLink;
import com.arsdigita.cms.contenttypes.GenericAddress;
import com.arsdigita.cms.contenttypes.GenericContact;
import com.arsdigita.cms.contenttypes.GenericContactEntry;
import com.arsdigita.cms.contenttypes.GenericContactEntryCollection;
import com.arsdigita.cms.contenttypes.GenericPerson; import com.arsdigita.cms.contenttypes.GenericPerson;
import com.arsdigita.cms.contenttypes.GenericPersonContactCollection; import com.arsdigita.cms.contenttypes.GenericPersonContactCollection;
import com.arsdigita.cms.contenttypes.Link; import com.arsdigita.cms.contenttypes.Link;
@ -12,8 +16,10 @@ import com.arsdigita.cms.contenttypes.PublicPersonalProfile;
import com.arsdigita.cms.contenttypes.PublicPersonalProfileNavItem; import com.arsdigita.cms.contenttypes.PublicPersonalProfileNavItem;
import com.arsdigita.cms.contenttypes.PublicPersonalProfileNavItemCollection; import com.arsdigita.cms.contenttypes.PublicPersonalProfileNavItemCollection;
import com.arsdigita.dispatcher.DispatcherHelper; import com.arsdigita.dispatcher.DispatcherHelper;
import com.arsdigita.domain.DomainObject;
import com.arsdigita.domain.DomainObjectFactory; import com.arsdigita.domain.DomainObjectFactory;
import com.arsdigita.persistence.DataCollection; import com.arsdigita.persistence.DataCollection;
import com.arsdigita.persistence.DataObject;
import com.arsdigita.persistence.Session; import com.arsdigita.persistence.Session;
import com.arsdigita.persistence.SessionManager; import com.arsdigita.persistence.SessionManager;
import com.arsdigita.templating.PresentationManager; import com.arsdigita.templating.PresentationManager;
@ -23,6 +29,7 @@ import com.arsdigita.web.BaseApplicationServlet;
import com.arsdigita.xml.Document; import com.arsdigita.xml.Document;
import com.arsdigita.xml.Element; import com.arsdigita.xml.Element;
import java.io.IOException; import java.io.IOException;
import java.math.BigDecimal;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import javax.servlet.ServletException; import javax.servlet.ServletException;
@ -334,7 +341,7 @@ public class PublicPersonalProfilesServlet extends BaseApplicationServlet {
final PageState state) { final PageState state) {
Element profileOwnerElem = profileElem.newChildElement( Element profileOwnerElem = profileElem.newChildElement(
"profileOwner"); "profileOwner");
/*if ((owner.getSurname() != null) if ((owner.getSurname() != null)
&& !owner.getSurname().trim().isEmpty()) { && !owner.getSurname().trim().isEmpty()) {
Element surname = Element surname =
profileOwnerElem.newChildElement("surname"); profileOwnerElem.newChildElement("surname");
@ -356,29 +363,86 @@ public class PublicPersonalProfilesServlet extends BaseApplicationServlet {
Element titlePost = profileOwnerElem.newChildElement( Element titlePost = profileOwnerElem.newChildElement(
"titlePost"); "titlePost");
titlePost.setText(owner.getTitlePost()); titlePost.setText(owner.getTitlePost());
}*/ }
PublicPersonalProfileXmlGenerator personXml = /*PublicPersonalProfileXmlGenerator personXml =
new PublicPersonalProfileXmlGenerator( new PublicPersonalProfileXmlGenerator(
owner); owner);
personXml.generateXML(state, personXml.generateXML(state,
profileOwnerElem, profileOwnerElem,
""); "PublicPersonalProfile");*/
/*if (owner.hasContacts()) { if (owner.hasContacts()) {
final GenericPersonContactCollection contacts = owner.getContacts(); final GenericPersonContactCollection contacts = owner.getContacts();
final String contactType = config.getContactType(); //final String contactType = config.getContactType();
contacts.addFilter(String.format("link.link_key = '%s'", /*contacts.addFilter(String.format("link.link_key = '%s'",
contactType)); contactType));*/
if (contacts.size() > 0) { if (contacts.size() > 0) {
contacts.next(); contacts.next();
PublicPersonalProfileXmlGenerator contactXml = generateContactXml(profileOwnerElem,
contacts.getContact(),
state);
/*PublicPersonalProfileXmlGenerator contactXml =
new PublicPersonalProfileXmlGenerator( new PublicPersonalProfileXmlGenerator(
contacts.getContact()); contacts.getContact());
contactXml.generateXML(state, profileOwnerElem, ""); contactXml.generateXML(state, profileOwnerElem, "");*/
} }
}*/ }
DataCollection imgAttachments = (DataCollection) owner.get("imageAttachments");
if (imgAttachments.size() > 0) {
imgAttachments.next();
final DataObject imgAttachment = imgAttachments.getDataObject();
final DataObject image = (DataObject) imgAttachment.get("image");
final BigDecimal imageId = (BigDecimal) image.get("id");
Element imageElem = profileOwnerElem.newChildElement("image");
imageElem.addAttribute("id", imageId.toString());
}
}
private void generateContactXml(final Element profileOwnerElem,
final GenericContact contact,
final PageState state) {
final Element contactElem = profileOwnerElem.newChildElement("contact");
final Element entriesElem = contactElem.newChildElement("entries");
final GenericContactEntryCollection entries =
contact.getContactEntries();
Element entryElem;
GenericContactEntry entry;
while (entries.next()) {
entry = entries.getContactEntry();
entryElem = entriesElem.newChildElement("entry");
entryElem.addAttribute("key", entry.getKey());
entryElem.setText(entry.getValue());
}
if (contact.hasAddress()) {
final Element addressElem = contactElem.newChildElement("address");
final GenericAddress address = contact.getAddress();
final Element addressTxtElem = addressElem.newChildElement(
"addressTxt");
addressTxtElem.setText(address.getAddress());
final Element postalCodeElem = addressElem.newChildElement(
"postalCode");
postalCodeElem.setText(address.getPostalCode());
final Element cityElem = addressElem.newChildElement("city");
cityElem.setText(address.getCity());
final Element stateElem = addressElem.newChildElement("state");
stateElem.setText(address.getState());
final Element isoCodeElem = addressElem.newChildElement(
"isoCountryCode");
isoCodeElem.setText(address.getIsoCountryCode());
}
} }
} }