From b4892f9af387a40573b75c477365342de9a7ebc8 Mon Sep 17 00:00:00 2001
From: =?utf8?q?Beno=C3=AEt=20Pin?= <benoit.pin@gmail.com>
Date: Mon, 31 Mar 2014 09:53:28 +0200
Subject: [PATCH] =?utf8?q?Prise=20en=20compte=20du=20param=C3=A8tre=20thum?=
 =?utf8?q?b=5Fsize=20au=20moment=20de=20la=20fabrication.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit

---
 photo.py                       | 14 ++++++++++++--
 skins/photo_layout_macros.pt   |  4 ++--
 skins/portfolio_style.css.dtml |  8 ++++----
 3 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/photo.py b/photo.py
index c0c92c6..7cb8974 100755
--- a/photo.py
+++ b/photo.py
@@ -29,7 +29,7 @@ from Products.CMFCore.DynamicType import DynamicType
 from Products.CMFCore.CMFCatalogAware import CMFCatalogAware
 from Products.Photo.Photo import Photo as BasePhoto
 from Products.CMFDefault.DublinCore import DefaultDublinCoreImpl
-from Products.CMFCore.utils import getToolByName
+from Products.CMFCore.utils import getToolByName, getUtilityByInterfaceName
 from Products.Photo.cache import memoizedmethod
 from Products.DCWorkflow.utils import modifyRolesForPermission
 from interfaces import IPhoto
@@ -214,4 +214,14 @@ class Photo(DynamicType, CMFCatalogAware, BasePhoto, DefaultDublinCoreImpl) :
 	
 InitializeClass(Photo)
 
-PhotoFactory = Factory(Photo)
\ No newline at end of file
+class _PhotoFactory(Factory) :
+    def __call__(self, *args, **kw):
+        if not kw.has_key('thumb_height') or not kw.has_key('thumb_width') :
+            utool = getUtilityByInterfaceName('Products.CMFCore.interfaces.IURLTool')
+            portal = utool.getPortalObject()
+            size = portal.getProperty('thumb_size')
+            kw.update({'thumb_height' : size, 'thumb_width' : size })
+        return self._callable(*args, **kw)
+    
+
+PhotoFactory = _PhotoFactory(Photo)
\ No newline at end of file
diff --git a/skins/photo_layout_macros.pt b/skins/photo_layout_macros.pt
index 16571dd..48b8040 100644
--- a/skins/photo_layout_macros.pt
+++ b/skins/photo_layout_macros.pt
@@ -102,7 +102,7 @@
     <div metal:define-macro="film_bar" tal:omit-tag="">
       <div id="film_bar">
         <table cellspacing="0">
-          <tr tal:define="slide_size python:portal_object.thumb_height/2 + 10">
+          <tr tal:define="slide_size python:portal_object.thumb_size/2 + 10">
             <td tal:repeat="info contextInfos/infos">
                 <a href="." tal:attributes="href info/href;
                                             class info/className;
@@ -145,7 +145,7 @@
           })();
           ''' % {'filmLength': len(contextInfos['infos'])
                 ,'center': index
-                ,'slideSize': portal_object.thumb_width/2 + 11
+                ,'slideSize': portal_object.thumb_size/2 + 11
                 ,'reBaseCtxUrl':contextInfos['reBaseCtxUrl']
                 ,'canonicalUrl':contextInfos['canonicalUrl']
                 }">
diff --git a/skins/portfolio_style.css.dtml b/skins/portfolio_style.css.dtml
index e2aadab..f88048e 100755
--- a/skins/portfolio_style.css.dtml
+++ b/skins/portfolio_style.css.dtml
@@ -129,7 +129,7 @@ table.metadata_category select:focus {
   background: &dtml-portfolio_slide_background;;
   color: &dtml-fontColor;;
   display:block;
-  width: <dtml-var expr="thumb_width + 16">px;/*&dtml-slide_size;px;*/
+  width: <dtml-var expr="thumb_size + 16">px;/*&dtml-slide_size;px;*/
   height: 256px;
   display:block;
   text-align:center;
@@ -336,7 +336,7 @@ div.lightbox {
   overflow:hidden;
   position:relative;
   width:100%;
-  height: <dtml-var expr="thumb_height/2 + 12">px;;
+  height: <dtml-var expr="thumb_size/2 + 12">px;;
 }
 
 #film_bar table {
@@ -350,8 +350,8 @@ div.lightbox {
 }
 
 #film_bar a {
-  width: <dtml-var expr="thumb_width/2 + 10">px;;
-  height: <dtml-var expr="thumb_height/2 + 10">px;;
+  width: <dtml-var expr="thumb_size/2 + 10">px;;
+  height: <dtml-var expr="thumb_size/2 + 10">px;;
   display:block;
   text-align:center;
   vertical-align:middle;
-- 
2.20.1