Trucs utiles et erreurs courantes sous eZ publish 4.x
Par Ronan le mardi, avril 8 2008, 13:00 - eZ Publish - Lien permanent
Je note au fil de l'eau les bons trucs et les erreurs courantes avec eZ Publish 4.x
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 :
- copier le fichier traductions française pour la 4.x dans /share/translations
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
- Un article complet : http://ez.no/developer/articles/how_to_create_ez_publish_forms
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 :
Commentaires
Créer des sections (obligatoire dans cette méthode) faux!!! , les pagelayout peuvent être surchargée comme toutes les autres templates !
Paradox : Ok, merci pour la correction.
De rien, félicitations pour ces snippets