Changeset 75116 in spip-zone


Ignore:
Timestamp:
Aug 30, 2013, 9:12:18 AM (7 years ago)
Author:
marcimat@…
Message:

Afficher dans le menu des liens vers les marqueurs et erreurs, s'il y en a.
Créer des statistiques avant les transformations en templates pour éviter des boucles à chaque appel de twig.

Location:
_galaxie_/code.spip.net/autodoc/trunk
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • _galaxie_/code.spip.net/autodoc/trunk/src/autodoc/Plugin/Core/ServiceProvider.php

    r74906 r75116  
    1717use autodoc\Plugin\Core\Compiler\Pass\SpipTagsCollector;
    1818use autodoc\Plugin\Core\Compiler\Pass\ApisCollector;
     19use autodoc\Plugin\Core\Compiler\Pass\Statistics;
    1920
    2021
     
    6465        $app['compiler']->insert(new SpipTagsCollector(),    SpipTagsCollector::COMPILER_PRIORITY);
    6566        $app['compiler']->insert(new ApisCollector(),        ApisCollector::COMPILER_PRIORITY);
     67        $app['compiler']->insert(new Statistics(),           Statistics::COMPILER_PRIORITY);
    6668    }
    6769}
  • _galaxie_/code.spip.net/autodoc/trunk/templates/zora/content/statistiques.twig

    r74958 r75116  
    11
    22{% include 'inclure/ariane_et_titre_standard.twig' %}
     3
    34
    45
     
    910        </thead>
    1011        <tbody>
    11                 <tr><th>Répertoires</th><td>{{ project.indexes.directories.0.count }}</td></tr>
    12                 <tr><th>Fichiers</th><td>{{ project.files|length }}</td></tr>
    13                 <tr><th>Fonctions</th><td>{{ project.indexes.functions|length }}</td></tr>
    14                 <tr><th>Constantes</th><td>{{ project.indexes.constants|length }}</td></tr>
     12{% set liste = [
     13        { 'titre': 'Répertoires',            'total': project.indexes.directories.0|length },
     14        { 'titre': 'Fichiers',               'total': project.files|length },
     15        { 'titre': 'Fonctions',              'total': project.indexes.functions|length },
     16        { 'titre': 'Constantes',             'total': project.indexes.constants|length },
     17        { 'titre': 'Classes',                'total': project.indexes.classes|length },
     18        { 'titre': 'Méthodes de classes',    'total': project.indexes.statistics.methods.classes },
     19        { 'titre': 'Interfaces',             'total': project.indexes.interfaces|length },
     20        { 'titre': 'Méthodes d\'interfaces', 'total': project.indexes.statistics.methods.interfaces },
     21        { 'titre': 'Traits',                 'total': project.indexes.traits|length },
     22        { 'titre': 'Méthodes de traits',     'total': project.indexes.statistics.methods.traits },
     23] %}
     24        {% for quoi in liste %}
     25                {% if quoi.total %}
     26                        <tr><th>{{ quoi.titre }}</th><td>{{ quoi.total }}</td></tr>
     27                {% endif %}
     28        {% endfor %}
    1529
    16                         {%- spaceless %}
    17                                 {% set methods_classes = 0 %}
    18                                 {% set methods_interfaces = 0 %}
    19                                 {% set methods_traits = 0 %}
    20 
    21                                 {% for class in project.indexes.classes %}
    22                                         {% set methods_classes = methods_classes + class.methods|length %}
    23                                 {% endfor %}
    24                                 {% for class in project.indexes.interfaces %}
    25                                         {% set methods_interfaces = methods_interfaces + class.methods|length %}
    26                                 {% endfor %}
    27                                 {% for class in project.indexes.traits %}
    28                                         {% set methods_traits = methods_traits + class.methods|length %}
    29                                 {% endfor %}
    30                         {% endspaceless -%}
    31 
    32                 <tr><th>Classes</th><td>{{ project.indexes.classes|length }}</td></tr>
    33                 <tr><th>Méthodes des classes</th><td>{{ methods_classes }}</td></tr>
    34                 <tr><th>Interfaces</th><td>{{ project.indexes.interfaces|length }}</td></tr>
    35                 <tr><th>Méthodes d'interfaces</th><td>{{ methods_interfaces }}</td></tr>
    36                 <tr><th>Traits</th><td>{{ project.indexes.traits|length }}</td></tr>
    37                 <tr><th>Méthodes de traits</th><td>{{ methods_traits }}</td></tr>
    38                 <tr><th><a href="{{ path( 'deprecies.html'  ) }}">Éléments dépréciés</a></th><td>{{ project.indexes.functions|selectionner('tags.deprecated')|length }}</td></tr>
     30        {% if project.indexes.statistics.deprecateds %}
     31                <tr>
     32                        <th><a href="{{ path( 'deprecies.html'  ) }}">Éléments dépréciés</a></th>
     33                        <td>{{ project.indexes.statistics.deprecateds }}</td>
     34                </tr>
     35        {% endif %}
    3936        </tbody>
    4037</table>
    4138
    42 {%- spaceless %}
    43         {% set erreurs = 0 %}
    44         {% set notices = 0 %}
    45         {% set todo = 0 %}
    46         {% set fixme = 0 %}
    4739
    48         {% for file in project.files %}
    49                 {% if file.markers.count %}
    50                         {% for marker in file.markers %}
    51                                 {% if marker.type == 'TODO' %}
    52                                         {% set todo = todo + 1 %}
    53                                 {% elseif marker.type == 'FIXME' %}
    54                                         {% set fixme = fixme + 1 %}
    55                                 {% endif %}
    56                         {% endfor %}
    57                 {% endif %}
    58 
    59                 {% for error in file.allerrors %}
    60                         {% if error.severity == 'error' %}
    61                                 {% set erreurs = erreurs + 1 %}
    62                         {% elseif error.severity == 'notice' %}
    63                                 {% set notices = notices + 1 %}
    64                         {% endif %}
    65                 {% endfor %}
    66 
    67         {% endfor %}
    68 {% endspaceless -%}
    69 
     40{% if project.indexes.statistics.markers|length %}
    7041<table class="table statistiques">
    7142        <caption>Marqueurs dans les commentaires</caption>
     
    7445        </thead>
    7546        <tbody>
    76                 <tr><th><a href="{{ path( 'marqueurs.html#todo'  ) }}">Marqueurs : Todo</a></th><td>{{ todo }}</td></tr>
    77                 <tr><th><a href="{{ path( 'marqueurs.html#fixme' ) }}">Marqueurs : Fixme</a></th><td>{{ fixme }}</td></tr>
     47                {% for type,markers in project.indexes.statistics.markers %}
     48                        <tr><th><a href="{{ path( 'marqueurs.html#' ~ type|lower  ) }}">Marqueurs : {{ type|title }}</a></th><td>{{ markers }}</td></tr>
     49                {% endfor %}
    7850        </tbody>
    7951</table>
     52{% endif %}
    8053
     54
     55{% if project.indexes.statistics.errors|length %}
    8156<table class="table statistiques">
    8257        <caption>Erreurs de phpDoc</caption>
     
    8560        </thead>
    8661        <tbody>
    87                 <tr><th><a href="{{ path( 'erreurs.html' ) }}">Erreurs</a></th><td>{{ erreurs }}</td></tr>
    88                 <tr><th><a href="{{ path( 'erreurs.html#notices' ) }}">Notices</a></th><td>{{ notices }}</td></tr>
     62                {% for type,erreurs in project.indexes.statistics.errors %}
     63                        {% if type == 'error' %}
     64                                <tr><th><a href="{{ path( 'erreurs.html' ) }}">Erreurs</a></th><td>{{ erreurs }}</td></tr>
     65                        {% elseif type == 'notice' %}
     66                                <tr><th><a href="{{ path( 'erreurs.html#notices' ) }}">Notices</a></th><td>{{ erreurs }}</td></tr>
     67                        {% endif %}
     68                {% endfor %}
    8969        </tbody>
    9070</table>
     71{% endif %}
    9172
    9273
  • _galaxie_/code.spip.net/autodoc/trunk/templates/zora/inclure/nav.twig

    r75107 r75116  
    66        {'path':'apis/index.html',      'nom': 'APIs',       'elements': project.indexes.apis}
    77] %}
    8 {%- set elements_autres = {
    9         'elements': [
    10                 {'path':'boucles.html',         'nom': 'Boucles',    'elements': project.indexes.spip.boucles},
    11                 {'path':'pipelines/index.html', 'nom': 'Pipelines',  'elements': project.indexes.spip.pipelines},
    12                 {'path':'constantes.html',      'nom': 'Constantes', 'elements': project.indexes.constants}
    13         ],
    14         'afficher': project.indexes.spip.boucles|length
    15                 or project.indexes.spip.pipelines|length
    16                 or project.indexes.constants|length
    17 } %}
     8{%- set elements_autres = [
     9        {'path':'boucles.html',         'nom': 'Boucles',    'elements': project.indexes.spip.boucles},
     10        {'path':'pipelines/index.html', 'nom': 'Pipelines',  'elements': project.indexes.spip.pipelines},
     11        {'path':'constantes.html',      'nom': 'Constantes', 'elements': project.indexes.constants}
     12] %}
    1813
    1914{%- set classes = {
     
    4439
    4540                                        {%- for e in elements %}
    46                                                 {%- if e.elements.count %}
     41                                                {%- if e.elements|length %}
    4742
    4843                                                <li>{{ '' -}}
    49                                                         <a href="{{ path(e.path) }}" title="{{ e.elements.count ~ ' ' ~ e.nom|lower }}">
     44                                                        <a href="{{ path(e.path) }}" title="{{ e.elements|length ~ ' ' ~ e.nom|lower }}">
    5045                                                                {{- e.nom -}}
    5146                                                        </a>{{ '' -}}
     
    5449                                        {%- endfor %}
    5550
    56                                         {%- if elements_autres.afficher or classes.afficher %}
    57                                           <li class="dropdown">
    58                                                 <a href="#" class="dropdown-toggle" data-toggle="dropdown">Autre <b class="caret"></b></a>
    59                                                 <ul class="dropdown-menu">
    60                                                         {%- for e in elements_autres.elements %}
    61                                                                 {%- if e.elements.count %}
    6251
    63                                                                 <li>{{ '' -}}
    64                                                                         <a href="{{ path(e.path) }}" title="{{ e.elements.count ~ ' ' ~ e.nom|lower }}">
    65                                                                                 {{- e.nom -}}
    66                                                                         </a>{{ '' -}}
    67                                                                 </li>
     52                                                <li class="dropdown">
     53                                                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Autre <b class="caret"></b></a>
     54                                                        <ul class="dropdown-menu">
     55                                                                {%- for e in elements_autres %}
     56                                                                        {%- if e.elements.count %}
     57
     58                                                                        <li>{{ '' -}}
     59                                                                                <a href="{{ path(e.path) }}" title="{{ e.elements|length ~ ' ' ~ e.nom|lower }}">
     60                                                                                        {{- e.nom -}}
     61                                                                                </a>{{ '' -}}
     62                                                                        </li>
     63                                                                        {%- endif %}
     64                                                                {%- endfor %}
     65
     66                                                                {%- if classes.afficher %}
     67                                                                        <li>
     68                                                                                {%- set virgule = false -%}
     69                                                                                <a href="{{ path( classes.path ) }}" title="
     70                                                                                        {%- for type,collection in classes.elements if collection|length -%}
     71                                                                                                {%- if virgule %}, {% endif -%}
     72                                                                                                {%- set virgule = true -%}
     73                                                                                                {{ collection|length ~ ' ' ~ type }}
     74                                                                                        {%- endfor -%}
     75                                                                                ">
     76                                                                                        {{- classes.nom -}}
     77                                                                                </a>{{ '' -}}
     78                                                                        </li>
    6879                                                                {%- endif %}
    69                                                         {%- endfor %}
    7080
    71                                                         {%- if classes.afficher %}
    72                                                                 <li>
    73                                                                         {%- set virgule = false -%}
    74                                                                         <a href="{{ path( classes.path ) }}" title="
    75                                                                                 {%- for type,collection in classes.elements if collection.count -%}
    76                                                                                         {%- if virgule %}, {% endif -%}
    77                                                                                         {%- set virgule = true -%}
    78                                                                                         {{ collection.count ~ ' ' ~ type }}
     81                                                                {% if project.indexes.statistics.markers|length %}
     82                                                                        <li><a href="{{ path('marqueurs.html') }}"
     83                                                                                title="
     84                                                                                {%- for type,marker in project.indexes.statistics.markers -%}
     85                                                                                        {{ marker ~ ' ' ~ type|lower }}{% if not loop.last %}, {% endif %}
    7986                                                                                {%- endfor -%}
    80                                                                         ">
    81                                                                                 {{- classes.nom -}}
    82                                                                         </a>{{ '' -}}
    83                                                                 </li>
    84                                                         {%- endif %}
     87                                                                                ">
     88                                                                                Marqueurs (
     89                                                                                {%- for type,marker in project.indexes.statistics.markers -%}
     90                                                                                        {{ type|lower }}{% if not loop.last %}, {% endif %}
     91                                                                                {%- endfor -%}
     92                                                                                )</a>
     93                                                                        </li>
     94                                                                {% endif %}
    8595
    86                                                         <li><a href="{{ path('statistiques.html') }}">Statistiques</a></li>
     96                                                                {% set deprecies = project.indexes.statistics.deprecateds %}
     97                                                                {% if deprecies %}
     98                                                                        <li><a href="{{ path('deprecies.html') }}" title="{{ deprecies ~ ' éléments'}}">Éléments dépréciés</a></li>
     99                                                                {% endif %}
    87100
    88                                                         {#- <!-- lien temporaire -->
    89                                                         <li><a href="{{ path('debug.html') }}">Debug</a></li>
    90                                                         #}
    91                                                 </ul>
    92                                           </li>
    93                                         {%- endif %}
     101                                                                {% if project.indexes.statistics.errors|length %}
     102                                                                        <li><a href="{{ path('erreurs.html') }}"
     103                                                                                title="
     104                                                                                {%- for type,errors in project.indexes.statistics.errors -%}
     105                                                                                        {%- if type == 'error' -%}
     106                                                                                                {{ errors ~ ' erreurs' }}
     107                                                                                        {%- elseif type == 'notice' -%}
     108                                                                                                {{ errors ~ ' notices' }}
     109                                                                                        {%- endif -%}
     110                                                                                        {% if not loop.last %}, {% endif %}
     111                                                                                {%- endfor -%}
     112                                                                                ">
     113                                                                                Erreurs</a>
     114                                                                        </li>
     115                                                                {% endif %}
     116
     117                                                                <li><a href="{{ path('statistiques.html') }}">Statistiques</a></li>
     118
     119                                                                {#- <!-- lien temporaire -->
     120                                                                <li><a href="{{ path('debug.html') }}">Debug</a></li>
     121                                                                #}
     122                                                        </ul>
     123                                                </li>
    94124
    95125                                        </ul>
  • _galaxie_/code.spip.net/autodoc/trunk/templates/zora/last_stat.twig

    r74922 r75116  
    22        {% set erreurs = 0 %}
    33        {% set notices = 0 %}
    4         {% for file in project.files %}
    5                 {% for error in file.allerrors %}
    6                         {% if error.severity == 'error' %}
    7                                 {% set erreurs = erreurs + 1 %}
    8                         {% elseif error.severity == 'notice' %}
    9                                 {% set notices = notices + 1 %}
    10                         {% endif %}
    11                 {% endfor %}
    12         {% endfor %}
     4        {% if project.indexes.statistics.errors.notice %}
     5                {% set notices = project.indexes.statistics.errors.notice %}
     6        {% endif %}
     7        {% if project.indexes.statistics.errors.error %}
     8                {% set erreurs = project.indexes.statistics.errors.error %}
     9        {% endif %}
    1310{% endspaceless -%}
    1411{{- ("now"|date("Y-m-d H:i")) ~ ',' ~ (erreurs) ~ ',' ~ (notices) ~ "\n" -}}
Note: See TracChangeset for help on using the changeset viewer.