Configuration de débug:

Dans le fichier /ezpublish/settings/siteaccess/monsite/site.ini.append.php

# <conf de debug>  

[DebugSettings]
DebugRedirection=disabled
Debug=inline
DebugOutput=enabled
DisplayDebugWarnings=enabled
ScriptDebugOutput=enabled

[TemplateSettings]
#Debug=disabled
Debug=enabled
TemplateCompile=disabled
TemplateCache=disabled
ShowUsedTemplates=enabled
ShowXHTMLCode=disabled
#ShowMethodDebug=enabled
#NodeTreeCaching=disabled

# </conf de debug>

Traduire l'interface de eZ Publish 4.x en français :

Proposer des classes de style CSS dans OnlineEditor

  • Créer un fichier CSS dédié :
/* Style onlineeditor.css */
 
 /* embed : */
 .image_a_gauche
 {
        float:left;
 }
 .image_a_droite
 {
        float:left;
 }
  • Créer un content.ini avec les directives dédiées :
#content.ini
[embed]
AvailableClasses[]=image_a_gauche
AvailableClasses[]=image_a_droite

Cf. Documentation

No template could be loaded for "node/view/full.tpl" using resource "design"

  • Vérifier que le répertoire /ezpulibsh/design/mondesign/override et son contenu appartiennent à www-data. Ce répertoire n'existant pas défaut, une fois créé il prend par défaut les droits de son créateur (vous!) et n'est alors pas accessible à Apache.
  • Au besoin affecter les bons droits :
sudo chmod -R 777 override/
sudo sudo chown -R www-data:www-data override/

Afficher une image (attribut de classe) dans .tpl

<img class="maClasse"
 alt="{$node.data_map.monAttributImage.content.alternative_text|wash()}"
 src={$node.data_map.monAttributImage.content.original.url|ezroot()} />


Ne pas oublier le ezroot()...

Comparer des dates

{if $offre.data_map.AttribPublication_debut.content.timestamp|lt(currentdate())} 
<br />Le debut de publication 
{$offre.data_map.AttribPublication_debut.content.timestamp} 
commence avant ajourd'hui {currentdate()}
{/if}

Créer un lien direct vers un fichier dans un bloc XML dans l'Online Editor :

Ajouter le fichier comme un objet (icône) trombone en mode embed-inline

Ajouter dans le override.ini :

[file_embed-inline]
Source=content/view/embed-inline.tpl
MatchFile=embed/file_embed-inline.tpl
Subdir=templates
Match[class_identifier]=file

Créer le fichier file_embed-inline.tpl dans le design/mondesign/override/templates/embed/ :

{$object.name|wash} :
<a href={concat( 'content/download/',
$object.data_map.file.contentobject_id, '/',
$object.data_map.file.id,'/version/',
$object.data_map.file.version , '/file/',
$object.data_map.file.content.original_filename|urlencode )|ezurl}>
{$object.data_map.file.content.original_filename|wash(xhtml)}</a>
({$object.data_map.file.content.filesize|si(byte, kilo)})

Lister des objets selon la date de début et de fin de publication

{def $timestamp = currentdate()
 $my_contents=fetch( 'content','tree',hash(
   parent_node_id, $node.node_id,
   attribute_filter, array(
     array( 'maClasse/attribut_publication_debut', '<=', $timestamp ),
     array( 'maClasse/attribut_publication_fin', '>=', $timestamp ))
     )
   )
}

Faire un fil d'Arianne

Créer un fil d'arianne depuis la racine vers la page courante, de la forme :

Accueil > Folder 1 > Sous folder 1.1 > Article 1.1.1
{foreach $module_result.path as $Path} 
  {if $Path.url}
    <a href={$Path.url_alias|ezroot}>{$Path.text|wash}</a> >
  {else}
    {$Path.text|wash}
  {/if}
{/foreach}

Overrider le template pagelayout.tpl pour une section entière

  • Créer des sections dans le site
  • Pour la section concernée, créer un fichier de template pagelayout_sectionZ.tpl dans design/override/templates/
  • Modifier le fichier de settings override.ini.append.php :
[home_section_Z]
Source=pagelayout.tpl
MatchFile=pagelayout_sectionZ.tpl
Subdir=templates
Match[section]=17

Afficher une date dans un format particulier

Les dates dans eZ Publish (et si possible dans les extensions) sont stockées au format TimeStamp. Pour générer / convertir un timestamp dans un format "lisibles" (dd/mm/YYY, etc), il y a TimeStamp Converter, une extension de Firefox. Bien pratique pour générer rapidement des données de tests.

L'affichage des dates peut être customisé, et on peut définir plusieurs affichages pour un même site : date, datetime, date avec jour de la semaine, etc. Cf. le datetime.ini dans l'extension ticket de la CCMO par exemple :

Dans un .tpl :

{$monObjet.MonAttribut_Date|datetime( 'fullDateTimeFR' )}

Dans le datetime.ini :

[ClassSettings]
# Jeudi 01/05/2008, 21h00 :
Formats[fullDateTimeFR]=%l %d/%m/%Y, %Hh%i

Les Traductions

Dans translations/fre-FR/translation.ts

<!DOCTYPE TS><TS>
<context>
    <name>design/monsite/monModule/maVue</name>
    <message>
        <source>My Word</source>
        <translation>Mon Mot</translation>
    </message>
</context>
</TS>


Dans un .tpl :

{'My Word'|i18n( 'design/ monsite/monModule/maVue' )}

Debuggage

Paramètres d'un module/view :

{$view_parameters|attribute('show')}

Construire des formulaires

Trois articles e français chez Linuxorable.fr, passés à la trappe, mais récupérable chez Archive.org :

Un autre article en français :