如何测试xslt中的字段是否存在图像?

时间:2011-08-25 15:27:38

标签: image xslt

我有一个表单,其中字段是上传的图像,工作正常。我现在想检查是否存在该字段的图像,如果没有显示默认的无图像

我现在有

<xsl:if test="fields/field_item_main_image/data/@original = ''"><span class="noimage"></span></xsl:if><xsl:copy-of select="fields/field_item_main_image/data" />

没有图像的范围只是提供了一个无图像png文件,当图像不存在时显示在图像中,但这不起作用,因为默认图像没有显示,即使该字段没有分配给它的图像

查看源代码,结果是

 <data></data>

我做错了什么?

附加信息

我想添加更多信息,但真的不确定您希望我添加什么来帮助我...让我知道需要什么,我会看看是否可以获得这些信息来帮助我。< / p>

相关的班级风格是

.noimage {display:block;width:100px;height:100px;background-image: url(../images/no-image-available.png);}

这与SobiPro a Joomla Compontent

有关

这是表单代码

<div>               
            <xsl:for-each select="entry/fields/*">
                <xsl:if test="( name() != 'save_button' ) and ( name() != 'cancel_button' )">
                    <xsl:variable name="fieldId">
                        <xsl:value-of select="data/*/@id" />
                    </xsl:variable>
                    <div id="{$fieldId}Container">
                        <xsl:attribute name="class">
                            <xsl:choose>
                                <xsl:when test="position() mod 2">spFormRowEven</xsl:when>
                                <xsl:otherwise>spFormRowOdd</xsl:otherwise>
                            </xsl:choose>
                        </xsl:attribute>
                        <xsl:if test="string-length( fee )">
                            <div class="spFormPaymentInfo">
                                <input name="{$fieldId}Payment" id="{$fieldId}Payment" value="" type="checkbox" class="SPPaymentBox" onclick="SP_ActivatePayment( this )"/>                             
                                <label for="{$fieldId}Payment">
                                    <xsl:value-of select="fee_msg"></xsl:value-of><br/>
                                </label>
                                <div style="margin-left:20px;">
                                    <xsl:value-of select="php:function( 'SobiPro::Txt', 'TP.PAYMENT_ADD' )" />
                                </div>
                            </div>
                        </xsl:if>
                        <div class="spFormRowLeft">
                            <label for="{$fieldId}">
                                <xsl:choose>
                                    <xsl:when test="string-length( description )">
                                        <xsl:variable name="desc">
                                            <xsl:value-of select="description" />
                                        </xsl:variable>
                                        <xsl:variable name="label">
                                            <xsl:value-of select="label" />
                                        </xsl:variable>
                                        <xsl:value-of select="php:function( 'SobiPro::Tooltip', $desc, $label )" disable-output-escaping="yes"/>                                        
                                    </xsl:when>
                                    <xsl:otherwise>
                                        <xsl:value-of select="label"/>
                                    </xsl:otherwise>
                                </xsl:choose>                               
                            </label>
                        </div>                                          
                        <div class="spFormRowRight">
                            <xsl:choose>
                                <xsl:when test="data/@escaped">
                                    <xsl:value-of select="data" disable-output-escaping="yes"/>
                                </xsl:when>
                                <xsl:otherwise>
                                    <xsl:copy-of select="data/*" disable-output-escaping="yes"/>
                                </xsl:otherwise>
                            </xsl:choose>                                                   
                            <xsl:text> </xsl:text><xsl:value-of select="@suffix"/>
                        </div>
                    </div>              
                </xsl:if>           
            </xsl:for-each>
        </div>

作为输入的一部分,我的一个字段是一个图像字段,我希望检查该字段以查看用户是否已将图像上传到该字段,如果他们已经显示该图像,如果没有那么显示默认无图像。

这有什么帮助?

GW

1 个答案:

答案 0 :(得分:1)

如果该字段的默认图像没有改变,那么我会在客户端执行所有这些操作。

Take a look at this answer to do that.