element.html.twig 13KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321
  1. {% if display_edit_actions is not defined %}
  2. {% set display_edit_actions = true %}
  3. {% endif %}
  4. {% if display_player is not defined %}
  5. {% set display_player = true %}
  6. {% endif %}
  7. {% if display_comments is not defined %}
  8. {% set display_comments = true %}
  9. {% endif %}
  10. <table>
  11. <tr>
  12. <td class="element_thumbnail">
  13. {% if element.embed %}
  14. <a href="#" class="a_thumbnail {% if display_player %}element_open element_embed_open_link{% endif %} {% if element.embed and display_player %}embed{% else %}noembed{% endif %}">
  15. <img class="play" style="display: none;" src="{{ asset('bundles/muzichcore/img/1328283150_media-playback-start.png') }}" alt="" />
  16. <img
  17. class="element_thumbnail"
  18. {% if element.thumbnailUrl %}
  19. src="{{ element.thumbnailUrl }}"
  20. {% else %}
  21. src="{{ asset('bundles/muzichcore/img/nothumb.png') }}"
  22. {% endif %}
  23. title="{{ 'element.show.open_embed'|trans({}, 'elements') }}"
  24. alt=""
  25. />
  26. </a>
  27. {% else %}
  28. <a href="{{ element.url }}" class="a_thumbnail element_open {% if element.embed %}embed{% else %}noembed{% endif %}" target="_blank">
  29. <img class="open" style="display: none;" src="{{ asset('bundles/muzichcore/img/1328283201_emblem-symbolic-link.png') }}" alt="" />
  30. <img
  31. class="element_thumbnail"
  32. {% if element.thumbnailUrl %}
  33. src="{{ element.thumbnailUrl }}"
  34. {% else %}
  35. src="{{ asset('bundles/muzichcore/img/nothumb.png') }}"
  36. {% endif %}
  37. title="{{ 'element.show.open_embed'|trans({}, 'elements') }}"
  38. alt=""
  39. />
  40. </a>
  41. {% endif %}
  42. <ul class="element_thumb_actions">
  43. <li class="score">
  44. {{ element.points }}
  45. </li>
  46. {% if element.owner.id != app.user.id %}
  47. <li class="vote thumb">
  48. {% if element.hasVoteGood(app.user.id) %}
  49. <a class="vote" href="{{ path('ajax_element_remove_vote_good', {
  50. 'element_id' : element.id,
  51. 'token' : app.user.getPersonalHash
  52. }) }}" title="{{ 'element.vote.good'|trans({}, 'elements') }}">
  53. <img src="{{ asset('img/icon_thumb_red.png') }}" alt="vote" />
  54. </a>
  55. {% else %}
  56. <a class="vote" href="{{ path('ajax_element_add_vote_good', {
  57. 'element_id' : element.id,
  58. 'token' : app.user.getPersonalHash
  59. }) }}" title="{{ 'element.vote.good'|trans({}, 'elements') }}">
  60. <img src="{{ asset('img/icon_thumb.png') }}" alt="vote" />
  61. </a>
  62. {% endif %}
  63. </li>
  64. {% endif %}
  65. <li class="star">
  66. {% if element.hasFavoriteUser(app.user.id) %}
  67. <a class="favorite_link" href="{{ path('favorite_remove', { 'id': element.id, 'token': app.user.personalHash }) }}" >
  68. <img id="favorite_{{ element.id }}_is" src="{{ asset('img/icon_star_2_red.png') }}" title="{{ 'element.favorite.remove'|trans({}, 'elements') }}" alt="{{ 'element.favorite.remove'|trans({}, 'elements') }}"/>
  69. </a>
  70. {% else %}
  71. <a class="favorite_link" href="{{ path('favorite_add', { 'id': element.id, 'token': app.user.personalHash }) }}" >
  72. <img id="favorite_{{ element.id }}_isnot" src="{{ asset('img/icon_star_2.png') }}" title="{{ 'element.favorite.add'|trans({}, 'elements') }}" alt="{{ 'element.favorite.add'|trans({}, 'elements') }}" />
  73. </a>
  74. {% endif %}
  75. </li>
  76. </ul>
  77. </td>
  78. <td class="element_content">
  79. <ul class="element_links_actions" class="gradient">
  80. <li class="element_link">
  81. <a title="{{ 'element.link'|trans({}, 'elements') }}" class="element_link" href="{{ element.url }}" target="_blank">
  82. <img src="{{ asset('/img/icon_link.png') }}" alt="link" />
  83. </a>
  84. </li>
  85. {% if app.user.id != element.owner.id %}
  86. {% if display_edit_actions %}
  87. <li class="element_propose_tags">
  88. <a title="{{ 'element.proposition_tags.link_title'|trans({}, 'userui') }}"
  89. class="element_propose_tags"
  90. href="{{ path('ajax_element_propose_tags_open', {'element_id' : element.id}) }}">
  91. <img src="{{ asset('bundles/muzichcore/img/1333484018_rss-tag.png') }}" alt="tags_proposition" />
  92. </a>
  93. </li>
  94. <li class="element_reshare">
  95. <a title="{{ 'element.reshare.link_title'|trans({}, 'userui') }}"
  96. class="element_reshare"
  97. href="{{ path('ajax_reshare_element', {'element_id':element.id, 'token':app.user.getPersonalHash('reshare_'~element.id)}) }}">
  98. <img src="{{ asset('/img/icon_reload.png') }}" alt="re" />
  99. </a>
  100. </li>
  101. <li class="element_report">
  102. <a title="{{ 'element.report.link_title'|trans({}, 'userui') }}"
  103. class="element_report"
  104. href="{{ path('ajax_report_element', {'element_id':element.id, 'token':app.user.getPersonalHash}) }}">
  105. <img src="{{ asset('/img/icon_alert.png') }}" alt="report" />
  106. </a>
  107. </li>
  108. {% endif %}
  109. {% endif %}
  110. {% if app.user.id == element.owner.id %}
  111. {% if display_edit_actions %}
  112. {% if element.hasTagProposition %}
  113. <li class="element_view_propositions_link">
  114. <a title="{{ 'element.view_propositions.link'|trans({}, 'elements') }}" class="element_view_propositions_link"
  115. href="{{ path('ajax_element_proposed_tags_view', {'element_id' : element.id}) }}"
  116. >
  117. <img src="{{ asset('bundles/muzichcore/img/1333493527_tag_add.png') }}" alt="tags proposition" />
  118. </a>
  119. </li>
  120. {% endif %}
  121. <li class="element_edit_link">
  122. <a title="{{ 'element.edit.link'|trans({}, 'elements') }}" class="element_edit_link"
  123. href="{{ path('element_edit', {'element_id' : element.id}) }}"
  124. >
  125. <img src="{{ asset('/img/icon_pen.png') }}" alt="edit" />
  126. </a>
  127. </li>
  128. <li class="element_remove_link">
  129. <a title="{{ 'element.remove.link'|trans({}, 'elements') }}" class="element_remove_link"
  130. href="{{ path('element_remove', {'element_id' : element.id}) }}"
  131. >
  132. <img src="{{ asset('/img/icon_close_2.png') }}" alt="delete" />
  133. </a>
  134. </li>
  135. {% endif %}
  136. {% endif %}
  137. </ul>
  138. <span class="element_name">
  139. {% if element.embed %}
  140. <a href="#" class="element_open element_name_embed_open_link">
  141. {{ element.name }}
  142. </a>
  143. {% else %}
  144. <a href="{{ element.url }}" class="element_open" target="_blank">
  145. {{ element.name }}
  146. </a>
  147. {% endif %}
  148. </span>
  149. <br />
  150. {% autoescape false %}
  151. {% if element.group and no_group_name is not defined%}
  152. {{ 'element.name.whoandgroup'|trans({
  153. '%owner_url%' : path('show_user', {'slug': element.owner.slug}),
  154. '%owner_name%' : element.owner.name,
  155. '%group_url%' : path('show_group', {'slug': element.group.slug}),
  156. '%group_name%' : element.group.name
  157. }, 'elements') }}
  158. {% else %}
  159. {{ 'element.name.who'|trans({
  160. '%owner_url%' : path('show_user', {'slug': element.owner.slug}),
  161. '%owner_name%' : element.owner.name
  162. }, 'elements') }}
  163. {% endif %}
  164. {{ element.created.date|date_or_relative_date }}
  165. {% if element.parent %}
  166. {{ 'element.name.reshare'|trans({
  167. '%owner_url%' : path('show_user', {'slug': element.parent.owner.slug}),
  168. '%owner_name%' : element.parent.owner.name
  169. }, 'elements') }}
  170. {% endif %}
  171. {% endautoescape %}
  172. <div class="loader">
  173. <img class="element_loader" style="display: none;" src="{{ asset('/bundles/muzichcore/img/ajax-loader.gif') }}" alt="loading"/>
  174. </div>
  175. {% if element.tags|length %}
  176. <ul class="element_tags">
  177. {% for tag in element.tags %}
  178. <li class="element_tag">
  179. <a id="element_tag_{{ tag.id }}" href="#"
  180. class="element_tag button {% if app.user.haveTagsFavorite(tag.id) %}element_tag_large_for_fav_still{% endif %}"
  181. >
  182. {{ tag.name }}
  183. </a>
  184. {% if app.user.haveTagsFavorite(tag.id) %}
  185. <img class="tag_to_favorites" src="{{ asset('/img/icon_heart.png') }}"
  186. alt="add-to-favorites"
  187. title="{{ 'element.tag.isfav.title'|trans({'%tagname%':tag.name}, 'elements') }}"
  188. />
  189. {% else %}
  190. <a
  191. href="{{ path('ajax_tag_add_to_favorites', {
  192. 'tag_id' : tag.id,
  193. 'token' : app.user.getPersonalHash
  194. }) }}"
  195. class="tag_to_favorites"
  196. style="display: none;"
  197. title="{{ 'element.tag.addtofav.title'|trans({}, 'elements') }}"
  198. >
  199. <img class="tag_add_to_favorites" src="{{ asset('/img/icon_heart.png') }}" alt="add-to-favorites"/>
  200. </a>
  201. {% endif %}
  202. </li>
  203. {% endfor %}
  204. </ul>
  205. {% endif %}
  206. <a href="#" class="button element_open element_embed_close_link" style="display: none;">
  207. {{ 'element.show.close_embed'|trans({}, 'elements') }}
  208. </a>
  209. {% if display_comments %}
  210. {% autoescape false %}
  211. {% if element.comments|length > 1 %}
  212. <a href="#hide_comments_{{ element.id }}" class="hide_comments" style="display: none;">
  213. {{ 'element.comments.hideare'|trans({}, 'elements') }}
  214. </a>
  215. <a href="#comments_{{ element.id }}" class="display_comments">
  216. {{ 'element.comments.thereare'|trans({'%count%':element.comments|length}, 'elements') }}
  217. </a>
  218. {% elseif element.comments|length == 1 %}
  219. <a href="#hide_comments_{{ element.id }}" class="hide_comments" style="display: none;">
  220. {{ 'element.comments.hideis'|trans({}, 'elements') }}
  221. </a>
  222. <a href="#comments_{{ element.id }}" class="display_comments">
  223. {{ 'element.comments.thereis'|trans({}, 'elements') }}
  224. </a>
  225. {%endif %}
  226. {% endautoescape %}
  227. <a href="#add_comment_{{ element.id }}" class="add_comment">
  228. {{ 'element.comments.add'|trans({}, 'elements') }}
  229. </a>
  230. {% endif %}
  231. </td>
  232. </tr>
  233. </table>
  234. {% if ids_display is defined %}
  235. {% if ids_display == event_const('TYPE_TAGS_PROPOSED') %}
  236. {% include 'MuzichCoreBundle:Element:tag.propositions.html.twig' with {
  237. 'propositions' : element.getTagsProposition,
  238. 'element_id' : element.id
  239. } %}
  240. {% endif %}
  241. {% endif %}
  242. {% if element.embed and display_player %}
  243. {% autoescape false %}
  244. <div id="embed_{{ element.id }}" class="element_embed" style="display: none;">
  245. {{ element.embed }}
  246. </div>
  247. {% endautoescape %}
  248. {% endif %}
  249. {% if display_comments %}
  250. <div class="comments" style="display: none;">
  251. <ul class="comments">
  252. {% if element.comments|length %}
  253. {% for comment in element.comments %}
  254. {% include "MuzichCommentBundle:Comment:li.comment.html.twig" with {'element_id' : element.id} %}
  255. {% endfor %}
  256. {% endif %}
  257. </ul>
  258. <div class="comments_loader">
  259. <img class="comments_loader" style="display: none;" src="{{ asset('/bundles/muzichcore/img/ajax-loader.gif') }}" alt="loading"/>
  260. </div>
  261. <form
  262. action="{{ path('ajax_add_comment', {'element_id':element.id, 'token':app.user.getPersonalHash}) }}"
  263. method="post"
  264. name="add_comment"
  265. style="display: none;"
  266. class="add_comment"
  267. >
  268. {% include "MuzichCommentBundle:Comment:form.html.twig" with {
  269. 'submit_value' : 'element.comments.add_submit'|trans({}, 'elements'),
  270. 'cancel_value' : 'element.comments.add_cancel'|trans({}, 'elements'),
  271. 'following' : element.userFollowComments(app.user.id),
  272. 'own' : (app.user.id == element.owner.id)
  273. } %}
  274. </form>
  275. <a href="#add_comment_{{ element.id }}" class="add_comment">
  276. {{ 'element.comments.add'|trans({}, 'elements') }}
  277. </a>
  278. </div>
  279. {% endif %}