I released a new photo browser today, one that makes it a little easier to browse photos on this site. To see the photos, just click on one of them in any entry with photos ( here's one ), and you'll be taken to the new photos page. Then browse around.

For all you symphonians, here's the template for the photo page. The only trick there is to make the page handle entry/photo. The only change in the Entries DS is to replace the existing link to photos with this:

            <xsl:template match="fields/photo/item">
<xsl:param name="path" select="substring-after(path,'workspace/')"/>
<xsl:param name="file" select="substring-after(path,'upload/')"/>

<a href="{$root}/photo/{../../../@handle}/{$file}">
    <xsl:choose>
        <xsl:when test="width &lt; height">
            <img src="{$root}/image/0/100/1/fff/{$path}" alt="Image Associated to {../../title}"/>
        </xsl:when>
        <xsl:when test="width &gt; height">
            <img src="{$root}/image/100/0/1/fff/{$path}" alt="Image Associated to {../../title}"/>
        </xsl:when>
        <xsl:otherwise>
            <img src="{$root}/image/100/0/1/fff/{$path}" alt="Image Associated to {../../title}"/>
        </xsl:otherwise>
    </xsl:choose>
</a>
</xsl:template>

          

And here's the photos page

            <xsl:template match="data">
    <h3>Photos from 
        <a href="{$root}/entries/{entries/entry/@handle}/"><xsl:value-of select="entries/entry/fields/title"/></a>
        </h3>

    <xsl:if test="entries/entry/fields/photo/item">

        <xsl:for-each select="entries/entry/fields/photo/item">

            <xsl:choose>
                <xsl:when test="$photo = substring-after(path,'upload/')">
                    <xsl:param name="num_prev" select="number(position() - 1)"/>
                    <xsl:param name="num_next" select="number(position() + 1)"/>

                    <xsl:param name="prev_image" select="substring-after(//entries/entry/fields/photo/item[$num_prev]/path, 'upload/')" />
                    <xsl:param name="next_image" select="substring-after(//entries/entry/fields/photo/item[$num_next]/path, 'upload/')" />

                    <div id="photo_nav">
                        <xsl:if test="position() != 1">
                            <div id="photo_prev">
                                <a href="{$root}/photo/{$entry}/{$prev_image}">&#171; Previous</a>
                            </div>
                        </xsl:if>
                        <xsl:if test="position() != last()">
                            <div id="photo_next">
                                <a href="{$root}/photo/{$entry}/{$next_image}">Next &#187;  </a>
                            </div>
                        </xsl:if>
                    </div>

                    <xsl:param name="path" select="substring-after(path,'workspace/')"/>
                    <img id="photo" src="{$root}/image/600/0/1/fff/{$path}" alt="{$photo}" />
                </xsl:when>

                <xsl:when test="$photo = '' and position() = 1">
                    <xsl:param name="num_next" select="2"/>

                    <xsl:param name="next_image" select="substring-after(//entries/entry/fields/photo/item[2]/path, 'upload/')" />

                    <div id="photo_nav">
                        <xsl:if test="position() != last()">
                            <div id="photo_next">
                                <a href="{$root}/photo/{$entry}/{$next_image}">Next &#187;</a>
                            </div>
                        </xsl:if>
                    </div>

                    <xsl:param name="path" select="substring-after(path,'workspace/')"/>
                    <img id="photo" src="{$root}/image/600/0/1/fff/{$path}" alt="{$photo}" />
                </xsl:when>

            </xsl:choose>

        </xsl:for-each>


        <div id="image-block">
            <xsl:apply-templates select="entries/entry/fields/photo/item"/>
        </div>
    </xsl:if>
</xsl:template>