je vous propose donc un patch fait avec l'aide d'EzSystems : https://github.com/alexsebbane/ezpublish/commit/868a28e31aa2a0aed0662080f4a41ca2fa5af14c

Ce patch n'est pas encore inclus à eZPublish : attention, si votre site est sous support , vous ne devez en aucun cas utilisé ce patch.

Sachant qu'un disclaimer s'affiche si l'internaute se trouve dnas une arborescence dont le noeud pare nt est en relation avec un disclaimer. il faudra donc pour un noeud : savoir si un disclaimer s'applique puis si tel est le cas l'afficher.

Dès lors, il ne reste plus qu'à définir un type de contenu 'disclaimer' (titre, texte,libelle de validation du disclaimer et libelle d'annulation du disclaimer ) et inclure un template dans le pagelayout , le role de ce template étant de verifier et de controler l'affichage d'un disclaimer.

vous trouverez ci dessous le template de verification et le template de vue pour afficher un disclaimer.

  1. {if and(is_set($module_result.node_id),is_set($module_result.content_info),$module_result.content_info.class_identifier|ne("disclaimer"))}
  2. {def $relatedobjects =fetch( content, related_objects, hash('object_id', $module_result.content_info.object_id,'all_relations', 'common','related_class_identifiers', array("disclaimer")))}
  3. {foreach $relatedobjects as $related}
  4. {set $contentclassspecialnodeid=$related.main_node.main_node_id }
  5. {if $contentclassspecialnodeid|eq("")}
  6. {def $currentitemdisclaimer = fetch( 'content', 'node', hash( 'node_id', $module_result.node_id ) )}
  7. {foreach $currentitemdisclaimer.path as $node_enfant reverse}
  8. {if $contentclassspecialnodeid|eq("")}
  9. {set $relatedobjects =fetch( content, related_objects, hash('object_id', $node_enfant.contentobject_id,'all_relations', 'common','related_class_identifiers', array("disclaimer")))}
  10. {foreach $relatedobjects as $related}
  11. {set $contentclassspecialnodeid=$related.main_node.main_node_id }
  12. {else}
  13. {break}
  14. {/if}
  15. {/if}
  16. {/if}
  17. {if $contentclassspecialnodeid|ne("")}
  18. {def $disclaimer_node= fetch( 'content', 'node', hash( 'node_id', $contentclassspecialnodeid))}
  19. {node_view_gui view=prescreen content_node=$disclaimer_node dest=$module_result.node_id }
  20. {/if}
  1. <script type="text/javascript">
  2. if (document.cookie.indexOf('{concat('cookie',$node.node_id)}')<=-1)
  3. {literal}{{/literal}
  4. document.cookie='test_cook=oui;path=/';
  5. if (document.cookie.indexOf('test_cook')<=-1){literal}{{/literal}
  6.  
  7. {literal}}{/literal}
  8. else
  9. {literal}{{/literal}
  10. function visite()
  11. {literal}{{/literal}
  12. document.cookie='{concat('cookie',$node.node_id)}=ok;path=/';
  13. if(document.getElementById)
  14. {literal}{{/literal}
  15. document.getElementById("bloc-disclaimer").style.display='none'
  16. {literal}}{/literal}
  17. {literal}}{/literal}
  18.  
  19. document.write("<div id='bloc-disclaimer' style='text-align:left;'>");
  20. document.write("<div style='position:absolute;top:0;left:0;z-index:1000;width:100%;height:1024px;background-color:#F2F2F2;filter:alpha(opacity=95);-moz-opacity:0.90;opacity:0.90;text-align:center;line-height: normal ; clear: both;'>");
  21. document.write("</div>");
  22. document.write("<div style='position:absolute;z-index:1001;width:100%;text-align:center; clear: both;'>");
  23. document.write("<div style='width:900px;margin-left:auto;margin-right:auto;margin-top:5px;border:4px #F2F2F2 solid;padding:10px;background-color:#FFFFFF;font-family:Verdana,Arial,Geneva,Helvetica,sans-serif;font-size:13px;'>");
  24. document.write("<br /><span style='font-size:16px;margin:0px;font-variant:small-caps;font-weight:900;'><h1 style='font-size:16px;margin:0px;font-variant:small-caps;font-weight:900;'>{$node.data_map.titre.content}</h1></span><br />");
  25. document.write("<span style='line-height:15px;'>{$node.data_map.contenu.content.output.output_text|wash('javascript')}</span>");
  26. document.write("<br /><br />");
  27. document.write("<center>");
  28. document.write("<a href='#' onclick='visite();return(false)' style='background:#F2F2F2;color:#FFFFFF;font-size:11px;padding:10px;text-decoration:none;font-weight:900' >{$node.data_map.libelle_ok.content}</a>");
  29. document.write("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
  30. document.write("<a href='{'/'|ezurl(no)}' style='background:#F2F2F2;color:#FFFFFF;font-size:11px;padding:10px;text-decoration:none;font-weight:900'>{$node.data_map.libelle_nok.content}</a></center>");
  31. document.write("<br />");
  32. document.write("</div>");
  33. document.write("</div>");
  34. document.write("</div>");
  35. {literal}}{/literal}
  36. {literal}}{/literal}
  37. else
  38. {literal}{{/literal}
  39. {literal}}{/literal}
  40. </script>