member has_role tag logic results in limitations

Ouverte
#5,104 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
5/5
Temps estimé
Plus d'une semaine
Accessibilité débutants
20/100
Type d'issue
Fonctionnalité
Clarté
À clarifier
Activité
À l'abandon
Stack technique
php
Domaine
authorization

Piste de recherche

No files are named. Reproduce the template example from the issue with {exp:member:has_role} inside {exp:channel:entries} and inspect how no_results is handled by the tag parser. The change is to support an early-parsed {if has_role} conditional instead of relying on no_results; done means the nested template works without the two no_results blocks conflicting.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

So the member has_role tag works as a tag pair. But this means it's really difficult to do something like 'if member has role do 'x' otherwise do 'y' inside another tag. Because it has to rely on the no_results conditional, which will conflict with the no_results tag in the embedded conditional.

{exp:channel:entries limit="3" parse="inward"}
{title}<br>
{exp:member:has_role role_id="5"}
  <p>Editor</p>
  {if no_results}
    <p>Not an editor</p>
  {/if}
{/exp:member:has_role}
<hr>
{/exp:channel:entries}

See what I mean? You really can't effectively achieve a 'if/else' inside another tag.

I realize this is probably more a feature request than a bug, but it's a significant limitation. It would be a lot better if we had it as an early parsed conditional type thing and specifically didn't have to rely on no_results to do a 'if has role/elseif/else' sort of thing.

Langage dominant
PHP
Étoiles
505
Forks
135
Merge moyen
3 j 7 h
PR mergées (30 j)
7

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de ExpressionEngine/ExpressionEngine

Toutes les issues de ExpressionEngine/ExpressionEngine

Issues similaires

Plus d'issues PHP

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.