From a2b2a7419352c487e87b16b1eaa9b19acb08652b Mon Sep 17 00:00:00 2001 From: llaffont <llaffont@git-test.afi-sa.fr> Date: Mon, 20 Aug 2012 08:49:05 +0000 Subject: [PATCH] =?UTF-8?q?Am=C3=A9lioration=20partage=20r=C3=A9seaux=20so?= =?UTF-8?q?ciaux,=20prends=20la=20bonne=20url=20de=20la=20page=20courante?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/modules/opac/controllers/IndexController.php | 9 +++++---- library/Class/WebService/ReseauxSociaux.php | 3 ++- library/ZendAfi/View/Helper/SocialShare.php | 2 +- .../opac/controllers/ProfilOptionsControllerTest.php | 6 +++--- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/application/modules/opac/controllers/IndexController.php b/application/modules/opac/controllers/IndexController.php index 02d17ad15f6..d39432c7b71 100644 --- a/application/modules/opac/controllers/IndexController.php +++ b/application/modules/opac/controllers/IndexController.php @@ -50,15 +50,16 @@ class IndexController extends Zend_Controller_Action { public function shareAction() { - $this->_helper->getHelper('viewRenderer') - ->setNoRender(); + $this->_helper->getHelper('viewRenderer')->setNoRender(); - $profil = Class_Profil::getCurrentProfil(); + $url = urldecode($this->_getParam('url')); + $url .= (false === strpos($url, '?')) ? '?' : '&'; + $url .= 'id_profil='. Class_Profil::getCurrentProfil()->getId(); $rs = new Class_WebService_ReseauxSociaux(); $body = sprintf("window.open('%s','_blank','location=yes, width=800, height=410')", $rs->getUrl($this->_getParam('on'), - $this->view->url(array('id_profil' => $profil->getId()), null, true), + $url, urldecode($this->_getParam('titre')))); $this->getResponse()->setHeader('Content-Type', 'application/javascript; charset=utf-8'); diff --git a/library/Class/WebService/ReseauxSociaux.php b/library/Class/WebService/ReseauxSociaux.php index a69b57b2ab0..c40b3705935 100644 --- a/library/Class/WebService/ReseauxSociaux.php +++ b/library/Class/WebService/ReseauxSociaux.php @@ -48,7 +48,8 @@ class Class_WebService_ReseauxSociaux { //------------------------------------------------------------------------------------------------------ public function getUrl($id_reseau,$url_afi, $message = '') { // Short url - $url_afi="http://".$_SERVER["HTTP_HOST"].BASE_URL.$url_afi; + if (false === strpos($url_afi, 'http')) + $url_afi = "http://".$_SERVER["HTTP_HOST"].BASE_URL.$url_afi; // Url réseau return sprintf($this->reseaux[$id_reseau]["url"], diff --git a/library/ZendAfi/View/Helper/SocialShare.php b/library/ZendAfi/View/Helper/SocialShare.php index 3ed81b1fdc0..2e1d9ea8a56 100644 --- a/library/ZendAfi/View/Helper/SocialShare.php +++ b/library/ZendAfi/View/Helper/SocialShare.php @@ -49,7 +49,7 @@ class ZendAfi_View_Helper_SocialShare extends Zend_View_Helper_HtmlElement { public function addHeadScript() { Class_ScriptLoader::getInstance() ->addInlineScript(sprintf("function socialShare(network) {" - ."jQuery.getScript('%s/index/share/on/' + network + '/titre/' + $(\"title\").text());" + ."jQuery.getScript('%s/index/share/on/' + network + '/titre/' + $(\"title\").text() + '?url=' + encodeURIComponent(window.location));" ."}", BASE_URL)); } diff --git a/tests/application/modules/opac/controllers/ProfilOptionsControllerTest.php b/tests/application/modules/opac/controllers/ProfilOptionsControllerTest.php index c6af40452c6..3d31ba3bf6e 100644 --- a/tests/application/modules/opac/controllers/ProfilOptionsControllerTest.php +++ b/tests/application/modules/opac/controllers/ProfilOptionsControllerTest.php @@ -80,7 +80,7 @@ class ProfilOptionsControllerTwitterLinkWithProfilAdulteTest extends ProfilOptio $this->_mock_web_client ->whenCalled('open_url') ->with(sprintf('http://is.gd/api.php?longurl=%s', - urlencode('http://localhost' . BASE_URL . '/index/index/id_profil/2'))) + urlencode('http://localhost' . BASE_URL . '/index/index?id_profil=2'))) ->answers('http://is.gd/PkdNgD') ->beStrict(); } @@ -94,7 +94,7 @@ class ProfilOptionsControllerTwitterLinkWithProfilAdulteTest extends ProfilOptio /** @test */ public function twitterLinkShouldReturnJavascriptForTweet() { - $this->dispatch('/opac/index/share/on/twitter/titre/Profil+Adulte'); + $this->dispatch('/opac/index/share/on/twitter/titre/Profil+Adulte?url='.urlencode('http://localhost'.BASE_URL.'/index/index')); $this->assertContains(sprintf("window.open('http://twitter.com/home?status=%s','_blank','location=yes, width=800, height=410')", urlencode('Profil Adulte http://is.gd/PkdNgD')), $this->_response->getBody()); @@ -103,7 +103,7 @@ class ProfilOptionsControllerTwitterLinkWithProfilAdulteTest extends ProfilOptio /** @test */ public function facebookLinkShouldReturnJavascriptForTweet() { - $this->dispatch('/opac/index/share/on/facebook/titre/Profil+Adulte'); + $this->dispatch('/opac/index/share/on/facebook/titre/Profil+Adulte?url='.urlencode('/index/index'), true); $this->assertContains(sprintf("window.open('http://www.facebook.com/share.php?u=%s','_blank','location=yes, width=800, height=410')", urlencode('Profil Adulte http://is.gd/PkdNgD')), $this->_response->getBody()); -- GitLab