J'ai écris un code en "PHP 7.3.27-1~deb10u1 (cli) (built: Feb 13 2021 16:31:40) ( NTS )"

Je vérifie une requête super simple et souhaite configurer soit en "true" soit en "false" :

Soit je suis super-admin (root), soit je suis admin, soit je suis modérateur - je souhaite configurer une variable "avec status" $with_status à "false" pour afficher tous les contenus du site.
OU ^^ je suis membre ou internaute seulement (donc) et je configure la variable $with_status à "true".

Cela me permet "après" d'envoyer une requête SQL en demandant soit le contenu disponible (jc.content_right = 1) ou voir tous les contenu (où il faut être donc, authentifier et moderateur minimum) (jc.content_right = 0|5|8 donc sans envoyer jc.content_right)

Le truc le plus simple du monde ^^

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
$with_status = (($root === true || $admin === true || $moderator === true) ? false : true); // pour la conpréhension j'ai ajouté des parenthèses ^^ - Info : parenthèses à mettre si vous écrivez la condition dans un echo :) 
$req_status = $with_status === true ? ' ' : ' AND jc.content_right = 1 ';
 
echo '<br />'.$req_status.' - ';
Si une (ou plusieurs) des 3 demandes me retourne true alors je configure à false !

//--

A titre d'information, je ne vais pas écrire/configurer la variable $with_status style de manière fausse !

Code : Sélectionner tout - Visualiser dans une fenêtre à part
$with_status = $root === true && $admin === true && $moderator === true ? false : true;
Cela signifirait : je suis ROOT ET je suis ADMIN ET je suis MODERATEUR - La chose impossible dirais-je !!! Je ne peut pas être tout cela à la fois.

Soit une personne est super-admin, soit elle est administratrice, soit elle est modératrice et donc elle (la condition) me renverrait toujourstrue !

//---

Les développeurs PHP ont un problème mental depuis 2.3 ans 4 ? :/ ou je rêve. J'avais une différence (il y a quelques jours) de retour entre and et && - et entre or et || fascinant ! Je vous aime les développeurs PHP - ceux qui créaient le language !

//---


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
// J'ai des methods de ma classe user qui me retourne true ou false selon le status d'un utilisateur - donc vrai (et non pas 1) ou vide (rien et non pas 0)
// Plus le status est fort les autres sont configurés en true jusqu'au status moderateur.
 
// En étant authentifié (membre) : il peut-être soit super-admin, soit admin, soit modérateur (soit membre seulement).
 
// je vous ai remplacé les method par de simple variables pour la simplicité de l'explication / de la demande.
 
// ici je suis super-admin (donc admin / moderateur)
$root = true;
$admin = true;
$moderator = true;
 
// ici je suis admin (donc moderateur)
$root = false;
$admin = true;
$moderator = true;
 
// ici je suis moderateur
$root = false;
$admin = false;
$moderator = true;
 
// ici je suis internaute
$root = ''; // ou false
$admin = ''; // ou false
$moderator = ''; // ou false
 
//$with_status = $root == true || $admin == true || $moderator == true ? false : true;
$with_status = $root === true || $admin === true || $moderator === true ? false : true;
$req_status = $with_status === true ? ' ' : ' AND jc.content_right = 1 ';
 
echo '<br />'.$req_status.' - ';
 
 
$contents_req = 'SELECT jc.* FROM zw_contents jc WHERE (jc.content_id_tree = 1 ) '.$req_status.' ORDER BY jc.content_date_mod DESC LIMIT 0, 40';
 
echo '<br />'.$contents_req.' ';
 
 
?>
Cordialement,
Romain