Small bug fix for Foundry

git-svn-id: https://svn.libreccm.org/ccm/trunk@3803 8810af33-2d31-482b-a856-94f89814c4df
master
jensp 2016-01-19 08:48:22 +00:00
parent db7bd72bdf
commit 3d85523feb
4 changed files with 44 additions and 4 deletions

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<registry> <registry>
<!-- nothing yet --> <config class="com.arsdigita.cms.formbuilder.FormItemConfig"
storage="ccm-cms-types-formitem/formitem.properties"/>
</registry> </registry>

View File

@ -52,7 +52,9 @@ import com.arsdigita.cms.dispatcher.SimpleXMLGenerator;
import com.arsdigita.web.URL; import com.arsdigita.web.URL;
import com.arsdigita.web.Web; import com.arsdigita.web.Web;
import java.io.IOException;
import java.math.BigDecimal; import java.math.BigDecimal;
import javax.servlet.http.HttpServletResponse;
public class FormItem extends ContentPage implements XMLGenerator { public class FormItem extends ContentPage implements XMLGenerator {
@ -212,6 +214,15 @@ public class FormItem extends ContentPage implements XMLGenerator {
public void generateXML(PageState state, public void generateXML(PageState state,
Element parent, Element parent,
String useContext) { String useContext) {
if (FormItemConfig.getConfig().isHoneypotEnabled()) {
final String honeypotName = FormItemConfig.getConfig().getHoneypotName();
final String honeypotValue = state.getRequest().getParameter(honeypotName);
if (honeypotValue != null
&& !honeypotValue.isEmpty()) {
throw new UncheckedWrapperException("");
}
}
PersistentForm form = getForm(); PersistentForm form = getForm();
Component c = null; Component c = null;
try { try {
@ -262,6 +273,18 @@ public class FormItem extends ContentPage implements XMLGenerator {
element.addAttribute(FormBuilderUtil.FORM_ACTION, action); element.addAttribute(FormBuilderUtil.FORM_ACTION, action);
if (FormItemConfig.getConfig().isHoneypotEnabled()) {
final Element honeypot = element.newChildElement("honeypot");
honeypot.addAttribute("name", "your-homepage");
}
if (FormItemConfig.getConfig().isMinTimeCheckEnabled()) {
final Element minTimeCheck = element.newChildElement("minTimeCheck");
minTimeCheck.addAttribute(
"generated",
Long.toString(System.currentTimeMillis()));
}
FormBuilderXMLRenderer renderer = new FormBuilderXMLRenderer(element); FormBuilderXMLRenderer renderer = new FormBuilderXMLRenderer(element);
renderer.setWrapAttributes(true); renderer.setWrapAttributes(true);
renderer.setWrapRoot(false); renderer.setWrapRoot(false);

View File

@ -75,6 +75,22 @@
else $data-tree//cms:item/@formAction}" else $data-tree//cms:item/@formAction}"
accept-charset="utf-8"> accept-charset="utf-8">
<xsl:if test="$contentitem-tree/honeypot">
<div class="formitem-hidden">
<label for="{$contentitem-tree/honeypot/@name}">
<xsl:value-of select="foundry:get-static-text('form-item', 'honeypot-label')"/>
</label>
<input type="text" name="{$contentitem-tree/honeypot/@name}"/>
</div>
</xsl:if>
<xsl:if test="$contentitem-tree/minTimeCheck">
<input type="hidden"
name="minTimeCheck"
value="{$contentitem-tree/minTimeCheck/@generated}"/>
</xsl:if>
<xsl:if test="not($contentitem-tree/remote = 'true')"> <xsl:if test="not($contentitem-tree/remote = 'true')">
<input type="hidden" <input type="hidden"
value="visited" value="visited"

View File

@ -1454,12 +1454,12 @@
<xsl:value-of select="foundry:get-static-text('', ./@title, false())"/> <xsl:value-of select="foundry:get-static-text('', ./@title, false())"/>
</xsl:attribute> </xsl:attribute>
</xsl:if> </xsl:if>
<xsl:if test="$width &gt; 0"> <xsl:if test="$width != '' and $width &gt; 0">
<xsl:attribute name="width"> <xsl:attribute name="width">
<xsl:value-of select="$width"/> <xsl:value-of select="$width"/>
</xsl:attribute> </xsl:attribute>
</xsl:if> </xsl:if>
<xsl:if test="$height &gt; 0"> <xsl:if test="$height != '' and $height &gt; 0">
<xsl:attribute name="height"> <xsl:attribute name="height">
<xsl:value-of select="$height"/> <xsl:value-of select="$height"/>
</xsl:attribute> </xsl:attribute>