Skip to content
Snippets Groups Projects
Commit 41475dea authored by Ghislain Loas's avatar Ghislain Loas
Browse files

Merge branch...

Merge branch 'hotline#122291_lille_metropole_p1_ajouter_le_lien_vers_site_internet_dans_boite_bibliotheque' into 'hotline'

hotline MT #122291 : add badge website for library

See merge request !3739
parents a56f0079 1fa25698
Branches
Tags
1 merge request!3739hotline MT #122291 : add badge website for library
Pipeline #11734 canceled with stage
in 6 minutes and 40 seconds
- ticket #122291 : Magasin de thèmes : affichage d'un nouveau badge 'site internet' pour une bibliothèque.
\ No newline at end of file
......@@ -330,6 +330,7 @@ class Intonation_Library_Settings extends Intonation_System_Abstract {
'facebook' => 'class fab fa-facebook-f',
'twitter' => 'class fab fa-twitter',
'permalink' => 'class fas fa-link',
'external-link' => 'class fas fa-external-link-alt',
'tag' => 'class fas fa-tag',
'star' => 'class fas fa-star',
......
......@@ -137,38 +137,52 @@ class Intonation_Library_View_Wrapper_Library extends Intonation_Library_View_Wr
protected function _localFieldsBadges() {
return [
((new Intonation_Library_Badge)
->setTag('address')
->setClass('badge_address')
->setText(sprintf('%s %s %s',
$this->_model->getAdresse(),
$this->_model->getCp(),
$this->_model->getVille()))),
((new Intonation_Library_Badge)
->setTag('a')
->setClass('badge_phone')
->setText(str_replace([' ', '.', ','], ' ', $this->_model->getTelephone()))
->setUrl(sprintf('tel:%s',
str_replace([' ', '.', ',',], '', $this->_model->getTelephone())))
->setImage(Class_Template::current()->getIco($this->_view,
'phone',
'utils'))
->setTitle($this->_('téléphoner à la bibliothèque %s',
$this->_model->getLibelle()))),
((new Intonation_Library_Badge)
->setTag('a')
->setClass('badge_mail')
->setUrl(sprintf('mailto:%s', $this->_model->getMail()))
->setImage(Class_Template::current()->getIco($this->_view,
'email',
'utils'))
->setText($this->_model->getMail())
->setTitle($this->_('envoyer un e-mail à la bibliothèque %s',
$this->_model->getLibelle())))
$badges = [
((new Intonation_Library_Badge)
->setTag('address')
->setClass('badge_address')
->setText(sprintf('%s %s %s',
$this->_model->getAdresse(),
$this->_model->getCp(),
$this->_model->getVille()))),
((new Intonation_Library_Badge)
->setTag('a')
->setClass('badge_phone')
->setText(str_replace([' ', '.', ','], ' ', $this->_model->getTelephone()))
->setUrl(sprintf('tel:%s',
str_replace([' ', '.', ',',], '', $this->_model->getTelephone())))
->setImage(Class_Template::current()->getIco($this->_view,
'phone',
'utils'))
->setTitle($this->_('téléphoner à la bibliothèque %s',
$this->_model->getLibelle()))),
((new Intonation_Library_Badge)
->setTag('a')
->setClass('badge_mail')
->setUrl(sprintf('mailto:%s', $this->_model->getMail()))
->setImage(Class_Template::current()->getIco($this->_view,
'email',
'utils'))
->setText($this->_model->getMail())
->setTitle($this->_('envoyer un e-mail à la bibliothèque %s',
$this->_model->getLibelle()))),
];
if ($url = $this->_model->getUrlWeb())
$badges [] = ((new Intonation_Library_Badge)
->setTag('a')
->setClass('badge_website')
->setUrl($url)
->setText( $this->_('Site internet'))
->setImage(Class_Template::current()->getIco($this->_view,
'external-link',
'utils'))
->setTitle($this->_('Accéder au site %s dans un nouvel onglet',
$url
)));
return $badges;
}
......
......@@ -44,6 +44,7 @@ abstract class TemplatesLibraryTestCase extends Admin_AbstractControllerTestCase
'telephone' => '04 50 12 34 56',
'adresse' => '1 rue par là',
'cp' => '74000',
'url_web' => 'https://annecy.fr',
'ville' => 'Annecy',
'visibilite' => Class_Bib::V_DATA,
'rewrite_url' => 'annecy',
......@@ -260,6 +261,18 @@ class TemplatesLibraryReadMoreTest extends TemplatesLibraryWithLibrariansTestCas
}
/** @test */
public function badgeWebsiteShouldContainsAnnecyDotFr() {
$this->assertXPathContentContains('//a[contains(@class, "badge_tag badge_website")][@href="https://annecy.fr"]', 'Site internet');
}
/** @test */
public function badgeWebsiteShouldContainsExternalLinkIco() {
$this->assertXPath('//a[contains(@class, "badge_tag badge_website")]//i[contains(@class, fas-external-link-alt)]');
}
/** @test */
public function jumbotronTitleShouldContainsContactInfoWithAddress() {
$this->assertXPathContentContains('//div[contains(@class, "jumbotron_title")]//div[contains(@class, "badge-group")]//address[@class = "badge_tag badge_address text-left badge-secondary badge no_truncate"]',
......@@ -408,3 +421,19 @@ class TemplatesLibraryWidgetWithDescriptionLengthTest extends AbstractController
'La description s\'arrête ici …');
}
}
class TemplatesLibraryWithNoWebsiteReadMoreTest extends TemplatesLibraryWithLibrariansTestCase {
public function setUp() {
parent::setUp();
$this->dispatch('/opac/bib/en-lire-plus/id/2/id_profil/1');
}
/** @test */
public function badgeWebsiteShouldNotBePresent() {
$this->assertNotXPath('//a[contains(@class, "badge_tag badge_website")]');
}
}
\ No newline at end of file
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