detail.template.html.twig 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. <!DOCTYPE html>
  2. <html lang="fr">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>{{ event.name }}</title>
  6. </head>
  7. <body style="margin:0; padding:0; background-color:#f0f4f8;">
  8. <center style="width:100%; background-color:#f0f4f8;">
  9. <table role="presentation" width="100%" cellpadding="0" cellspacing="0" border="0">
  10. <tr>
  11. <td align="center">
  12. <table role="presentation" width="600" cellpadding="0" cellspacing="0" border="0" style="background:#ffffff;">
  13. <!-- HEADER -->
  14. <tr>
  15. <td style="padding:20px; text-align:center; background:#0066cc; color:#ffffff; font-family:Arial, Helvetica, sans-serif;">
  16. <h1 style="margin:0; font-size:24px;">✨ {{ event.name }} ✨</h1>
  17. </td>
  18. </tr>
  19. <!-- EVENT IMAGE -->
  20. <tr>
  21. <td>
  22. <img src="{{ ('/events/' ~ (event.picture ?: 'placeholder.webp'))|base64img }}"
  23. width="600" height="200"
  24. style="display:block; border:0;">
  25. </td>
  26. </tr>
  27. <!-- EVENT CONTENT -->
  28. <tr>
  29. <td style="padding:20px; border-bottom:1px solid #e0e0e0;">
  30. <table role="presentation" width="100%" cellpadding="0" cellspacing="0" border="0">
  31. <tr>
  32. <td style="background:#e6f2ff; padding:15px;">
  33. <p style="margin:0 0 6px 0; font-size:14px; color:#004080;">
  34. <strong>Lieu :</strong> A COMPLETER
  35. </p>
  36. <p style="margin:0; font-size:14px; color:#004080;">
  37. <strong>Date :</strong> du {{ event.startOn|date('d/m/Y \\à H:i') }} au {{ event.endOn|date('d/m/Y \\à H:i') }}
  38. </p>
  39. </td>
  40. </tr>
  41. </table>
  42. <p style="margin:16px 0; font-size:14px; color:#555; line-height:1.5;">
  43. {{ event.description }}
  44. </p>
  45. {% set authors = [] %}
  46. {% for party in event.parties %}
  47. {% if party.gamemasterIsAuthor and party.gamemaster not in authors %}
  48. {% set authors = authors|merge([party.gamemaster]) %}
  49. {% endif %}
  50. {% endfor %}
  51. {% if authors|length > 0 %}
  52. <p style="margin:16px 0; font-size:16px; color:#333;">
  53. <strong>Les auteur(rice)s présent(e)s</strong>
  54. </p>
  55. {% for gamemaster in authors %}
  56. <table role="presentation" width="100%" cellpadding="0" cellspacing="0" border="0" style="background:#f5f5f5; margin-bottom:16px;">
  57. <tr>
  58. <td width="128" valign="top" style="padding:12px;">
  59. <img src="{{ ('/gamemasters/' ~ (gamemaster.picture ?: 'placeholder.webp'))|base64img }}"
  60. width="128"
  61. style="display:block; border-radius:6px;">
  62. </td>
  63. <td valign="top" style="padding:12px;">
  64. <p style="margin:0; font-size:16px; color:#004080;">
  65. <strong>{{ gamemaster.preferedName }}</strong>
  66. </p>
  67. <p style="margin:6px 0 0 0; font-size:13px; color:#555;">
  68. {{ gamemaster.description }}
  69. </p>
  70. <p style="margin:6px 0 0 0; font-size:13px; color:#555;">
  71. Auteur(rice) de : {{ gamemaster.authorOfGames|map(game => game.name)|join(', ') }}
  72. </p>
  73. </td>
  74. </tr>
  75. </table>
  76. {% endfor %}
  77. {% endif %}
  78. </td>
  79. </tr>
  80. <!-- GAMES LOOP -->
  81. {% for party in event.parties %}
  82. <tr>
  83. <td>
  84. <!-- Game image -->
  85. <img src="{{ ('/games/' ~ (party.game.picture ?: 'placeholder.webp'))|base64img }}"
  86. width="600" height="200"
  87. style="display:block; border:0;">
  88. </td>
  89. </tr>
  90. <tr>
  91. <td style="padding:20px; border-bottom:1px solid #e0e0e0;">
  92. <table role="presentation" width="100%" cellpadding="0" cellspacing="0" border="0">
  93. <tr>
  94. <td style="background:#e6f2ff; padding:15px;">
  95. <h2 style="margin:0 0 6px 0; font-size:18px; color:#004080;">
  96. {{ party.game.name }}
  97. </h2>
  98. <p style="margin:0; font-size:14px; color:#004080;">
  99. <strong>Date :</strong> du {{ party.startOn|date('d/m/Y \\à H:i') }} au {{ party.endOn|date('d/m/Y \\à H:i') }}
  100. </p>
  101. </td>
  102. </tr>
  103. </table>
  104. <h3 style="margin:16px 0 6px 0; font-size:14px; color:#004080;">Le jeu</h3>
  105. <p style="margin:0 0 16px 0; font-size:14px; color:#555; line-height:1.5;">
  106. {{ party.game.description }}
  107. </p>
  108. {% if party.description %}
  109. <h3 style="margin:0 0 6px 0; font-size:14px; color:#004080;">La partie proposée</h3>
  110. <p style="margin:0; font-size:14px; color:#555; line-height:1.5;">
  111. {{ party.description }}
  112. </p>
  113. {% endif %}
  114. </td>
  115. </tr>
  116. {% endfor %}
  117. <!-- END GAMES LOOP -->
  118. <tr>
  119. <td style="padding:20px; text-align:center;">
  120. <p style="margin:0 0 16px 0; font-size:14px; color:#555;">
  121. Vous pouvez vous inscrire dès à présent à nos animations !
  122. </p>
  123. <table role="presentation" cellpadding="0" cellspacing="0" border="0" align="center">
  124. <tr>
  125. <td style="background:#0066cc; padding:10px 18px;">
  126. <a href="{{ app_url ~ path('app_main_booking', {'id': event.id, 'view': 'pictures'})}}"
  127. style="color:#ffffff; text-decoration:none; font-size:14px;">
  128. Voir le détail et m'inscrire
  129. </a>
  130. </td>
  131. <td width="10"></td>
  132. <td style="background:#0099cc; padding:10px 18px;">
  133. <a href="{{ app_url|replace({'https://' : 'webcal://'}) ~ path('app_main_ics', {'id': event.id}) }}"
  134. style="color:#ffffff; text-decoration:none; font-size:14px;">
  135. Ajouter à mon agenda
  136. </a>
  137. </td>
  138. </tr>
  139. </table>
  140. </td>
  141. </tr>
  142. <!-- FOOTER -->
  143. <tr>
  144. <td style="padding:20px; text-align:center; font-size:12px; color:#888;">
  145. Réalisé à partir de ORGASSO : une application pour tous vos événements rôlistiques !
  146. </td>
  147. </tr>
  148. </table>
  149. </td>
  150. </tr>
  151. </table>
  152. </center>
  153. </body>
  154. </html>