Mois : août 2016

[RBS Change 3.x] Effectuer une boucle tal:repeat qui rapporte l’ensemble des informations contenues dans une fonction

\\change30\alainflou\modules\project\persistentdocument\frame.class.php

\\change30\alainflou\themes\responsive\modules\project\templates\Project-Block-ProductItem-List.all.all.html


Récupérer une propriété contenue dans un objet

Dans Change, chaque module a un dossier persistentdocument/. Ce dossier contient un ou plusieurs fichiers XML listant un ensemble de propriétés contenues dans un objet.

Par exemple, dans /modules/parking/persistentdocument/parking.xml, sont listées toutes les propriétés de l’objet parking :

Si, dans mon template de bloc, je souhaite récupérer l’information de nom de l’objet parking, je procède comme suit :

[jQuery] Vérifier si au moins une case à cocher ou un bouton radio est coché

Source : CHECK IF ANY CHECKBOXES ARE SELECTED IN JQUERY

Cas un peu plus complexe :

Codes HTML et SASS purement indicatifs (ne pas copier/coller en l’état)

[CSS] Aligner un pseudo élément à droite d’un conteneur et le centrer verticalement avec Translate

Source : Align a pseudo element to the right and vertical center.

[jQuery] Empêcher un événement (un click) de s’exécuter à plusieurs reprises avec les méthodes On et Off

Source : Prevent jQuery events from firing multiple times, ou ma demo qui fonctionne sur jsFiddle.

Problème : ma demo qui ne fonctionne pas sur jsFiddle. J’attribue un événement Click sur un élément (dans ma demo, le lien « Lorem ipsum » par exemple). Lorsque je clique une première fois sur cet élément, l’événement Click se produit une fois. Lorsque je modifie la largeur de la fenêtre (passage à une autre vue) et que je clique une seconde fois sur ce même élément, l’événement Click se produit 2 fois, et ainsi de suite …

Solution :

[Ubuntu] Modifier le hostname après installation

Source : Ubuntu-fr – [résolu] comment modifier le « hostname » après installation.

Résumé de la problématique : durant la phase d’installation, il est demandé de donner un nom à la machine.
J’ai fait une conf au petits oignons destinée aux PC de l’école, qui sont tous identiques (un héritage de 8 « vieux » PC provenant d’une administration).
Je pense donc faire un clonage du Disque Dur pour préparer d’un coup les 7 autres machines. Seulement, j’amerais leur donner un nom différent (ce qui sera donc la seule différence).
COMMENT FAIRE ?

On a une machine nommée XXXXX qu’on veut nommer YYYY. il faut faire :

puis modifier /etc/hostname :

Avant :

Après :

puis le fichier /etc/hostname :

Avant :

Après :

[RBS Change 3.x] Afficher ou masquer des éléments du DOM en fonction d’une condition avec PHPTal

Doc officielle de PHPTal

alainflou\modules\responsive\lib\helpers\ResponsiveHelper.php

alainflou\themes\responsive\modules\website\templates\Website-Block-Xhtmltemplate-Customer-suggestion.all.all.html

[RBS Change 3.x] Utiliser var_dump pour récupérer en front l’ensemble des informations qu’un bloc est capable d’afficher

Tout au long de ce tuto, nous allons assumer que nous travaillons sur un bloc nommé Pushoffre appartenant à un module nommé responsive du projet nommé alainflou.

Pour commencer, nous allons localiser le bloc Pushoffre dans alainflou\modules\responsive\lib\blocks\BlockPushoffreAction.class.php. Une fois ouvert dans un éditeur, localiser la ligne $request->setAttribute('pushoffre', $this->getDocumentParameter()); et, juste en-dessous, placer notre var_dump var_dump($this->getDocumentParameter());.

Rendez-vous dans votre navigateur préféré et chargez une page qui contient le bloc Pushoffre. Le var_dump a normalement pour effet d’afficher tout un tas d’informations de ce type :

object(responsive_persistentdocument_pushoffre)#213 (27) { ["m_author":"responsive_persistentdocument_pushoffrebase":private]=> string(8) "wwwadmin" ["m_authorid":"responsive_persistentdocument_pushoffrebase":private]=> int(45063) ["m_creationdate":"responsive_persistentdocument_pushoffrebase":private]=> string(19) "2016-08-16 14:41:47" ["m_modificationdate":"responsive_persistentdocument_pushoffrebase":private]=> string(19) "2016-08-16 14:41:47" ...

Nous allons maintenant tenter d’afficher proprement en front certaines informations contenues dans ce bloc (libellé du bloc, cible d’une image associée à ce bloc, texte de contenu de ce bloc, et URL du lien associé au texte de ce bloc). Les informations affichées via le var_dump qui nous intéressent sont :

  • ["m_label":"responsive_persistentdocument_pushoffreI18n":private]=> string(29) "ezrr dffvds sdgrezgzthrytht r"
  • ["m_media":"responsive_persistentdocument_pushoffrebase":private]=> int(1370814)
  • ["m_text":"responsive_persistentdocument_pushoffreI18n":private]=> string(24) "ez grehggbhn-zrnggngn nn" } }
  • ["m_textLink":"responsive_persistentdocument_pushoffrebase":private]=> string(20) "http://www.google.fr"

Pour ce faire, localiser le template alainflou\modules\responsive\templates\Responsive-Block-Pushoffre-Success.all.all.html.

La manière de réexploiter les données du var_dump dans un tmplate de bloc est la suivante :

  • <h1>${pushoffre/getLabel}</h1>
  • <img class="one-offre-image" change:media="document pushoffre/getMedia; format 'modules.catalog.frontoffice/medium'" />
  • <p class="one-offre-text">${pushoffre/getText}</p>
  • <a class="link" href="${pushoffre/getTextLink}"></a>

Autre façon de récupérer et d’afficher des informations contenues dans une fonction :

\\change30\alainflou\modules\project\persistentdocument\framedeclination.class.php

\\change30\alainflou\modules\responsive\templates\Responsive-Block-MetricBox-Success.all.all.html

[RBS Change 3.x] Attribuer un ID unique à un élément

Problème : nous avons un template de bloc unique (un menu dans notre exemple) qui est utilisé plusieurs fois dans la page, chaque fois pour afficher un contenu différent mais avec un balisage similaire. Nous voulons cependant attribuer un ID unique à chaque occurence de ce bloc dans le DOM (dans notre exemple, pour pouvoir les ouvrir/fermer avec le composant Collapse de Bootstrap 3).

Solution : appliquer ${root/getDocument/getId} sur la valeur des attributs href et id :

Utiliser les points de rupture du composant grille de Bootstrap 3 pour créer des media-queries JS avec Enquire.js

Demo en live sur jsFiddle.net.

Fichier global-vars.js :

Fichier global-mediaqueries.js :