From 9cea6703e01e8f5e8dd9a55840f2d23dc5c22455 Mon Sep 17 00:00:00 2001 From: gloas <gloas@afi-sa.fr> Date: Tue, 17 Oct 2017 10:56:23 +0200 Subject: [PATCH] dev #66057 fix test failire + add const for no url from webservice = NO --- .../admin/controllers/SystemeController.php | 4 +- .../classes/NoticeIntegrationDedupTest.php | 4 +- library/Class/Catalogue.php | 6 +- library/Class/Notice.php | 8 +-- library/Class/Notice/DublinCoreVisitor.php | 14 ++-- .../Notice/Thumbnail/ProviderAbstract.php | 2 +- library/Class/WebService/Vignette.php | 2 + .../ZendAfi/View/Helper/Notice/Vignette.php | 70 +++++++++++-------- .../controllers/AbonneControllerPretsTest.php | 2 +- 9 files changed, 63 insertions(+), 49 deletions(-) diff --git a/application/modules/admin/controllers/SystemeController.php b/application/modules/admin/controllers/SystemeController.php index edaa84c317d..cfac3df4724 100644 --- a/application/modules/admin/controllers/SystemeController.php +++ b/application/modules/admin/controllers/SystemeController.php @@ -42,7 +42,7 @@ class Admin_SystemeController extends Zend_Controller_Action { return $this; Zend_Registry::get('sql') - ->execute("update notices set url_vignette='',url_image='' where url_vignette='NO'"); + ->execute("update notices set url_vignette='',url_image='' where url_vignette='" . Class_WebService_Vignette::NO_DATA . "'"); } @@ -65,7 +65,7 @@ class Admin_SystemeController extends Zend_Controller_Action { $this->deleteUnknownImages(); $this->view->nb_notices = Class_Notice::count(); - $this->view->nb_pas_reconnu = Class_Notice::countBy(['url_vignette' =>'NO']); + $this->view->nb_pas_reconnu = Class_Notice::countBy(['url_vignette' => Class_WebService_Vignette::NO_DATA]); $this->view->nb_reconnu = $this->view->nb_notices - $this->view->nb_pas_reconnu - Class_Notice::countBy(['url_vignette' => '']); } diff --git a/cosmogramme/tests/php/classes/NoticeIntegrationDedupTest.php b/cosmogramme/tests/php/classes/NoticeIntegrationDedupTest.php index 173896368a1..8f3b325827a 100644 --- a/cosmogramme/tests/php/classes/NoticeIntegrationDedupTest.php +++ b/cosmogramme/tests/php/classes/NoticeIntegrationDedupTest.php @@ -161,8 +161,8 @@ class NoticeIntegrationDedupCaliceWithoutIsbnTest extends NoticeIntegrationTestC 'qualite' => 10, 'date_creation' => '2015-05-02 00:00:00', 'date_maj' => '2015-09-13 13:22:53', - 'url_vignette' => 'NO', - 'url_image' => 'NO']); + 'url_vignette' => Class_WebService_Vignette::NO_DATA, + 'url_image' => Class_WebService_Vignette::NO_DATA]); VariableCache::getInstance() ->setValeurCache(['filtrer_fulltext' => 1, diff --git a/library/Class/Catalogue.php b/library/Class/Catalogue.php index 5f52cd253d0..f379463ae8b 100644 --- a/library/Class/Catalogue.php +++ b/library/Class/Catalogue.php @@ -320,7 +320,7 @@ class CatalogueLoader extends Storm_Model_Loader { if(isset($preferences['only_img']) && ($preferences['only_img'] == 1) && (($catalogue && Class_Catalogue::getLoader()->hasFilters($preferences['id_catalogue'])) || !$catalogue)) - $conditions[] = "url_vignette > '' and url_vignette != 'NO'"; + $conditions[] = "url_vignette > '' and url_vignette != '" . Class_WebService_Vignette::NO_DATA . "'"; $join = (isset($preferences['avec_avis']) && ($preferences['avec_avis'] == 1)) ? ' INNER JOIN notices_avis ON notices.clef_oeuvre=notices_avis.clef_oeuvre ' @@ -432,7 +432,7 @@ class CatalogueLoader extends Storm_Model_Loader { $condition = (array_isset("only_img", $preferences) && $preferences["only_img"] == 1) - ? " and url_vignette > '' and url_vignette != 'NO' " + ? " and url_vignette > '' and url_vignette != '" . Class_WebService_Vignette::NO_DATA . "'" : ''; $join = (array_isset("avec_avis", $preferences) && $preferences["avec_avis"] == 1) @@ -806,7 +806,7 @@ class Class_Catalogue extends Storm_Model_Abstract { else $req.=" where "; - $req .= "url_vignette > '' and url_vignette != 'NO'"; + $req .= "url_vignette > '' and url_vignette != '" . Class_WebService_Vignette::NO_DATA . "'"; $ret["avec_vignettes"] = fetchOne($req); return $ret; } diff --git a/library/Class/Notice.php b/library/Class/Notice.php index d33fb36f2f0..08c029648c1 100644 --- a/library/Class/Notice.php +++ b/library/Class/Notice.php @@ -396,7 +396,7 @@ class Class_Notice extends Storm_Model_Abstract { public function fetchUrlVignette() { $url = $this->getUrlVignette(); - if ($url == 'NO') + if ($url == Class_WebService_Vignette::NO_DATA) return $this->_rawThumbnailUrl(); return $url @@ -413,7 +413,7 @@ class Class_Notice extends Storm_Model_Abstract { $url = $this->getUrlVignette(); } - return ($url=='NO') + return ($url == Class_WebService_Vignette::NO_DATA) ? $this->_rawThumbnailUrl() : $ws_vignette->writeImageCache($this, $url); } @@ -439,7 +439,7 @@ class Class_Notice extends Storm_Model_Abstract { $url = $this->getUrlImage(); } - if ($url=='NO') + if ($url == Class_WebService_Vignette::NO_DATA) return $this->fetchUrlLocalVignette(); return $url; @@ -455,7 +455,7 @@ class Class_Notice extends Storm_Model_Abstract { } catch (Exception $e) { return false; } - $has_vignette = (!empty($url) && ($url != 'NO')); + $has_vignette = (!empty($url) && ($url != Class_WebService_Vignette::NO_DATA)); return $has_vignette; } diff --git a/library/Class/Notice/DublinCoreVisitor.php b/library/Class/Notice/DublinCoreVisitor.php index 51421e4e0fa..0e22ceee810 100644 --- a/library/Class/Notice/DublinCoreVisitor.php +++ b/library/Class/Notice/DublinCoreVisitor.php @@ -16,7 +16,7 @@ * * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE * along with BOKEH; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ class Class_Notice_DublinCoreVisitor { @@ -65,7 +65,7 @@ class Class_Notice_DublinCoreVisitor { public function visitTitres($titres) { if (!is_array($titres) || empty($titres)) return; - + $this->_xml .= $this->_builder->title($this->cdata(strip_tags(implode('. ', $titres)))); } @@ -102,7 +102,7 @@ class Class_Notice_DublinCoreVisitor { public function visitResume($resume) { - if ($resume) + if ($resume) $this->_xml .= $this->_builder->description($this->cdata(html_entity_decode(strip_tags($resume)))); } @@ -130,7 +130,7 @@ class Class_Notice_DublinCoreVisitor { public function visitLangues($langues) { - if (!is_array($langues)) + if (!is_array($langues)) return; foreach ($langues as $langue) @@ -145,7 +145,7 @@ class Class_Notice_DublinCoreVisitor { if ($type = Class_TypeDoc::find($id)) $this->_xml .= $this->_builder->type($this->cdata($type->getLabel())); - if (in_array($id, [Class_TypeDoc::LIVRE_NUM, Class_TypeDoc::DIAPORAMA])) + if (in_array($id, [Class_TypeDoc::LIVRE_NUM, Class_TypeDoc::DIAPORAMA])) $this->visitFormat('image/jpeg'); } @@ -167,7 +167,7 @@ class Class_Notice_DublinCoreVisitor { $this->visitFormat($data); } - + public function visitFormat($data) { if (!$data) return; @@ -176,7 +176,7 @@ class Class_Notice_DublinCoreVisitor { public function visitVignette($url) { - if (!$url or 'NO' == $url ) + if (!$url or Class_WebService_Vignette::NO_DATA == $url ) return; $this->_xml .= $this->_builder->relation($this->cdata('vignette : ' . $url)); diff --git a/library/Class/Notice/Thumbnail/ProviderAbstract.php b/library/Class/Notice/Thumbnail/ProviderAbstract.php index 33af12f8bff..12c237542d8 100644 --- a/library/Class/Notice/Thumbnail/ProviderAbstract.php +++ b/library/Class/Notice/Thumbnail/ProviderAbstract.php @@ -50,7 +50,7 @@ abstract class Class_Notice_Thumbnail_ProviderAbstract { protected function noWebThumbRecord() { - return $this->_setRecordUrls('NO'); + return $this->_setRecordUrls(Class_WebService_Vignette::NO_DATA); } diff --git a/library/Class/WebService/Vignette.php b/library/Class/WebService/Vignette.php index aea3a993b17..62fdb6f830c 100644 --- a/library/Class/WebService/Vignette.php +++ b/library/Class/WebService/Vignette.php @@ -20,6 +20,8 @@ */ class Class_WebService_Vignette extends Class_WebService_Abstract { + const NO_DATA = 'NO'; + protected static $_file_system; /** @category testing */ diff --git a/library/ZendAfi/View/Helper/Notice/Vignette.php b/library/ZendAfi/View/Helper/Notice/Vignette.php index 0d2d7668356..ec97f638975 100644 --- a/library/ZendAfi/View/Helper/Notice/Vignette.php +++ b/library/ZendAfi/View/Helper/Notice/Vignette.php @@ -46,25 +46,32 @@ class ZendAfi_View_Helper_Notice_Vignette extends Zend_View_Helper_HtmlElement { abstract class ZendAfi_View_Helper_Notice_VignetteStrategy { use Trait_Translator; - protected $_view, $_record, $_preferences; + protected + $_view, + $_record, + $_preferences, + $_label; public function render($view, $record, $preferences) { $this->view = $view; $this->_record = $record; $this->_preferences = $preferences; + $this->_label = $this->_('Afficher "%s"', $record->getTitrePrincipal()); - $this->_ensureUrl(); + $this->_initImagesUrls(); - return 'NO' == $this->_record->getUrlVignette() + return Class_WebService_Vignette::NO_DATA == $this->_getUrl() ? $this->_renderNoThumbnail() : $this->_renderThumbnail(); } - protected function _ensureUrl() { - return $this->_record->hasUrlVignette() - ? $this->_record->getUrlVignette() - : $this->_record->fetchUrlVignette(); + protected function _initImagesUrls() { + if(!$this->_record->hasUrlVignette()) + $this->_record->fetchUrlVignette(); + + if(!$this->_record->hasUrlImage()) + $this->_record->fetchUrlImage(); } @@ -73,13 +80,16 @@ abstract class ZendAfi_View_Helper_Notice_VignetteStrategy { } - abstract protected function _renderThumbnail(); - abstract protected function _fetchUrlImage(); + protected function _renderThumbnail() { + return $this->view->tagAnchor($this->view->urlNotice($this->_record, + $this->_preferences), + $this->_renderImage(), + ['title' => $this->_label]); + } protected function _renderImage() { - $url = $this->_fetchUrlImage(); - return $this->view->tagImg($this->view->absoluteUrl($url), + return $this->view->tagImg($this->view->absoluteUrl($this->_fetchUrl()), array_merge(['alt' => $this->_record->getTitrePrincipal()], $this->_extraThumbnailParams())); } @@ -88,6 +98,10 @@ abstract class ZendAfi_View_Helper_Notice_VignetteStrategy { protected function _extraThumbnailParams() { return []; } + + + abstract protected function _getUrl(); + abstract protected function _fetchUrl(); } @@ -95,21 +109,6 @@ abstract class ZendAfi_View_Helper_Notice_VignetteStrategy { class ZendAfi_View_Helper_Notice_VignetteStrategyResult extends ZendAfi_View_Helper_Notice_VignetteStrategy { - protected $_label; - - public function render($view, $record, $preferences) { - $this->_label = $this->_('Afficher "%s"', $record->getTitrePrincipal()); - - return parent::render($view, $record, $preferences); - } - - - protected function _renderThumbnail() { - return $this->view->tagAnchor($this->view->urlNotice($this->_record, - $this->_preferences), - $this->_renderImage(), - ['title' => $this->_label]); - } protected function _extraThumbnailParams() { @@ -118,7 +117,12 @@ class ZendAfi_View_Helper_Notice_VignetteStrategyResult } - protected function _fetchUrlImage() { + protected function _getUrl() { + return $this->_record->getUrlVignette(); + } + + + protected function _fetchUrl() { return $this->_record->fetchUrlVignette(); } } @@ -130,11 +134,14 @@ class ZendAfi_View_Helper_Notice_VignetteStrategyView extends ZendAfi_View_Helper_Notice_VignetteStrategy { protected function _renderThumbnail() { + if(Class_WebService_Vignette::NO_DATA == $this->_record->getUrlImage()) + return parent::_renderThumbnail(); + Class_ScriptLoader::getInstance() ->loadButterflyLightbox() ->addJQueryReady('$("a#vignette").butterfly({closeButton:false});'); - return $this->view->tagAnchor($this->view->absoluteUrl($this->_record->getUrlImage()), + return $this->view->tagAnchor($this->view->absoluteUrl($this->_fetchUrl()), $this->_renderImage(), ['id' => 'vignette', 'title' => htmlentities($this->_record->getTitrePrincipal())]); @@ -146,7 +153,12 @@ class ZendAfi_View_Helper_Notice_VignetteStrategyView } - protected function _fetchUrlImage() { + protected function _fetchUrl() { return $this->_record->fetchUrlImage(); } + + + protected function _getUrl() { + return $this->_fetchUrl(); + } } \ No newline at end of file diff --git a/tests/application/modules/opac/controllers/AbonneControllerPretsTest.php b/tests/application/modules/opac/controllers/AbonneControllerPretsTest.php index 69d27d595e3..84fa560a330 100644 --- a/tests/application/modules/opac/controllers/AbonneControllerPretsTest.php +++ b/tests/application/modules/opac/controllers/AbonneControllerPretsTest.php @@ -972,7 +972,7 @@ class AbonneControllerPretsPeriodicalTitleTest extends AbstractAbonneControllerP /** @test */ public function imageForPetitsMainsShouldBePresent() { - $this->assertXPath('//td//a/img[contains(@src, "/recherche/vignette/clef/86b19239fb14b378dfde09a3cc83ecc0/id_notice/889")]'); + $this->assertXPath('//td//a/img[contains(@src, "/recherche/raw-thumbnail/id/889")]'); } -- GitLab