Skip to content
Snippets Groups Projects
Commit deeebacd authored by llaffont's avatar llaffont
Browse files

Lettres d'information: lorsqu'une image est inclue dans la lettre, remplace...

Lettres d'information: lorsqu'une image est inclue dans la lettre, remplace les urls relatives par des urls absolues (contenant le nom du domaine) si nécessaire. Corrige un problème d'images non visibles dans les lettres d'information
parent 6839ee14
Branches
Tags
No related merge requests found
......@@ -31,11 +31,17 @@ class Class_CmsUrlTransformer {
* à l'édition on passe donc on URL absolu.
*/
public static function forEditing($content) {
return static::imgUrlRelativeToAbsolute($content);
}
public static function imgUrlRelativeToAbsolute($content) {
return preg_replace('/(< *img[^>]*src *= *["\']?)\/([^"\']*)/i',
'$1http://'.$_SERVER['HTTP_HOST'].'/$2',
$content);
}
/*
* A la sauvegarde de l'article, on passe les URL des images
* en relatif depuis la racine du site
......
......@@ -158,6 +158,15 @@ class Class_Newsletter extends Storm_Model_Abstract {
return implode("\n", $lines);
}
/**
* @return string
*/
public function getContenu() {
return Class_CmsUrlTransformer::imgUrlRelativeToAbsolute(parent::getContenu());
}
/**
* @param array $notices
* @return string
......
......@@ -54,6 +54,7 @@ class NewsletterTestFindAll extends ModelTestCase {
$this->assertEquals('Notre sélection du mois', $nouveaute->getContenu());
}
public function testSecondIsAnimations() {
$animations = $this->newsletters[1];
$this->assertEquals(2, $animations->getId());
......@@ -64,6 +65,7 @@ class NewsletterTestFindAll extends ModelTestCase {
class NewsletterTestFindById extends ModelTestCase {
public function testFindByIdOneReturnsNouveautes() {
$this->_setFindExpectation('Class_Newsletter', NewsletterFixtures::nouveautesClassique(), 1);
......@@ -80,6 +82,8 @@ class NewsletterTestFindById extends ModelTestCase {
}
class NewsletterTestNew extends ModelTestCase {
public function testGetUsersReturnsEmptyArray() {
$newsletter = new Class_Newsletter();
......@@ -88,6 +92,35 @@ class NewsletterTestNew extends ModelTestCase {
}
class NewsletterWithRelativeImgUrlTest extends ModelTestCase {
public function setUp() {
parent::setUp();
$_SERVER['HTTP_HOST'] = 'localhost';
$this->_newsletter = Class_Newsletter::newInstanceWithId(34,
['contenu' => 'Contert <img src="/userfiles/images/concert.jpg" />, <img src="http://monserveur/monlogo.png"/>']);
}
/** @test */
public function contenuShouldHaveConcertJpgUrlAbsolute() {
$this->assertContains('src="http://localhost/userfiles/images/concert.jpg"',
$this->_newsletter->getContenu());
}
/** @test */
public function contenuShouldHaveKeptMonLogoDotPngUrl() {
$this->assertContains('src="http://monserveur/monlogo.png"',
$this->_newsletter->getContenu());
}
}
class NewsletterTestSave extends ModelTestCase {
public function setUp() {
$this->tbl_newsletters = $this->_buildTableMock('Class_Newsletter',
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment