macros.html.twig 4.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. {% macro listPackages(packages, paginate, showAutoUpdateWarning, meta) %}
  2. <ul class="packages list-unstyled">
  3. {% for package in packages %}
  4. {% if package.id is numeric %}
  5. {% set packageUrl = path('view_package', { 'name' : package.name }) %}
  6. {% else %}
  7. {% set packageUrl = path('view_providers', { 'name' : package.name }) %}
  8. {% endif %}
  9. <li data-url="{{ packageUrl }}" class="row">
  10. <div class="col-xs-12 package-item">
  11. <div class="row">
  12. <div class="col-sm-9 col-lg-10">
  13. {% if package.language is defined and package.language != null %}<p class="pull-right language">{{ package.language }}</p>{% endif %}
  14. <h4 class="font-bold">
  15. <a href="{{ packageUrl }}">{{ package.name }}</a>
  16. {% if package.id is not numeric or package.name == 'nelmio/alice' %}
  17. <small>(Virtual Package)</small>
  18. {% endif %}
  19. {% if showAutoUpdateWarning and not package.autoUpdated %}
  20. <small>(Not Auto-Updated)</small>
  21. {% endif %}
  22. </h4>
  23. {% if package.description is defined and package.description %}
  24. <p>{{ package.description }}</p>
  25. {% endif %}
  26. {% if package.abandoned is defined and package.abandoned %}
  27. <p class="abandoned">
  28. <i class="glyphicon glyphicon-exclamation-sign"></i> Abandoned! {% if package.replacementPackage %}See <a href="{{ path('view_package', {name: package.replacementPackage}) }}">{{ package.replacementPackage }}</a>{% endif %}
  29. </p>
  30. {% endif %}
  31. </div>
  32. <div class="col-sm-3 col-lg-2">
  33. {% if meta %}
  34. <p class="metadata">
  35. <span class="metadata-block"><i class="glyphicon glyphicon-arrow-down"></i> {{ meta.downloads[package.id]|default(0)|number_format(0, '.', '&#8201;')|raw }}</span>
  36. <span class="metadata-block"><i class="glyphicon glyphicon-star"></i> {{ meta.favers[package.id]|number_format(0, '.', '&#8201;')|raw }}</span>
  37. </p>
  38. {% endif %}
  39. </div>
  40. </div>
  41. </div>
  42. </li>
  43. {% endfor %}
  44. {% if paginate is defined and paginate and packages.haveToPaginate() %}
  45. {{ pagerfanta(packages, 'twitter_bootstrap', {'proximity': 2}) }}
  46. {% endif %}
  47. </ul>
  48. {% endmacro %}
  49. {% macro listPackagesShort(packages, showVersion, showMoreUrl) %}
  50. <ul class="list-unstyled">
  51. {% for package in packages %}
  52. <li>
  53. <a href="{{ path('view_package', {'name' : package.name }) }}">{{ package.name }}{% if showVersion is defined and showVersion %}<strong>{{ package.version }}</strong>{% endif %}</a>
  54. {{ package.description|truncate(60) }}
  55. </li>
  56. {% endfor %}
  57. {% if showMoreUrl is defined and showMoreUrl %}
  58. <li><a href="{{ path('browse_popular') }}">See more...</a></li>
  59. {% endif %}
  60. </ul>
  61. {% endmacro %}
  62. {% macro packageLink(packageName, type) %}
  63. {%- if type == 'provide' and (packageName is existing_provider or packageName is existing_package) -%}
  64. <a href="{{ path('view_providers', { 'name': packageName }) }}">{{ packageName }}</a>
  65. {%- elseif packageName is existing_package -%}
  66. <a href="{{ path('view_package', { 'name': packageName }) }}">{{ packageName }}</a>
  67. {%- else -%}
  68. {{ packageName }}
  69. {%- endif -%}
  70. {% endmacro %}