[Resolu]Comment insérer un smarty tag dans du code PHP ?

Support en français pour CMS Made Simple.

Moderator: jce76350

Post Reply
SUUD6501
Forum Members
Forum Members
Posts: 46
Joined: Wed Aug 22, 2007 8:43 am

[Resolu]Comment insérer un smarty tag dans du code PHP ?

Post by SUUD6501 »

Bonjour,

Mon problème est que j'aimerais afficher ou non un smarty tag {edit} suivant que l'utilisateur est lecteur ou éditeur
Dans mon CMSMS, j'utilise un seul gabarit pour toutes mes pages.
Je ne suis pas des plus pointue en développement php et encore moins en manipulation des smarty tag mais je me suis aperçue qu'on ne pouvait pas associer les 2 comme ça brutalement.
J'ai créé ce tag que j'ai placé au bon endroit dans mon gabarit et qui fonctionne bien si par exemple je fais un "echo bonjour"; les éditeurs lisent bien le fameux "bonjour" et les lecteurs non.

session_start();
$headers = apache_request_headers();
foreach ($headers as $header => $value)
mysql_connect("Mon serveur","Mon ident","Mon mot de passe") or die("Impossible de se connecter à la base de données");
mysql_select_db("Ma table");
$sql="select * from cms_users where username='". $headers['sm_universalid']."'";
$result = mysql_query($sql) or die(mysql_error());
$row=mysql_num_rows($result);
if ($row==1)
{
echo "bonjour";
}

-----
l'idéal serait de pouvoir faire marcher ce script :

session_start();
$headers = apache_request_headers();
foreach ($headers as $header => $value)
mysql_connect("Mon serveur","Mon ident","Mon mot de passe") or die("Impossible de se connecter à la base de données");
mysql_select_db("Ma table");
$sql="select * from cms_users where username='". $headers['sm_universalid']."'";
$result = mysql_query($sql) or die(mysql_error());
$row=mysql_num_rows($result);
if ($row==1)
{
echo {edit};//le fameux smarty tag
}

D'avance merci beaucoup pour votre aide
Sylvie
Last edited by SUUD6501 on Fri Oct 24, 2008 7:38 pm, edited 1 time in total.
Pierre M.

Re: Comment insérer un smarty tag dans du code PHP ?

Post by Pierre M. »

Bonsoir,
SUUD6501 wrote: Mon problème est que j'aimerais afficher ou non un smarty tag {edit} suivant que l'utilisateur est lecteur ou éditeur
Vous ne pouvez distinguer des rôles d'utilisateurs que s'ils ne sont pas anonymes. Avec CMSms 1.4.x, ce que vous appelez "lecteur" est un visiteur anonyme. C'est la barrière du login de l'interface d'admin qui permet de distinguer entre les rédacteurs et les lecteurs.

Dans la v2 il est prévu qu'il n'y ait plus de distinction entre utilisateurs back et utilisateurs front. Mais pour le moment, si vous voulez faire des différences en front, voyez les howtos video sur FrontEnd Users et CustomContent.

Pierre M.
SUUD6501
Forum Members
Forum Members
Posts: 46
Joined: Wed Aug 22, 2007 8:43 am

Re: Comment insérer un smarty tag dans du code PHP ?

Post by SUUD6501 »

Bonjour,

En attendant la v2, j'ai réfléchi sur comment faire pour aller dans l'admin sans passer par le formulaire de connexion et je me suis dit qu'en supprimant la fonction check_login(); qui figure au début de toutes les pages du répertoire admin se serait suffisant mais non. Cela me semblait simple de commenter cette fonction sur toutes les pages.

Ma question est la suivante :

Y a t-il qqc de relativement simple à faire pour ne pas passer par ce formulaire de connexion ?
D'avance merci pour vos pistes de réflexion ou carrément la solution
Bonne journée
Last edited by SUUD6501 on Mon Oct 20, 2008 12:29 pm, edited 1 time in total.
Pierre M.

Re: Comment insérer un smarty tag dans du code PHP ?

Post by Pierre M. »

Pourquoi pas le contraire :
-vos "rédacteurs" entrent par l'interface d'admin et vont sur le site avec "Voir le site" où des {edit} leur permettent de revenir.
-vos "lecteurs" surfent normalement sur le site.

Fondamentalement, votre besoin, c'est quoi ?

Pierre
SUUD6501
Forum Members
Forum Members
Posts: 46
Joined: Wed Aug 22, 2007 8:43 am

Re: Comment insérer un smarty tag dans du code PHP ?

Post by SUUD6501 »

Mes utilisateurs doivent rentrer via le frontoffice et non pas par l'interface d'admin car c'est une demande du cahier des charges.

Indépendemment du CMSMS, chaque utilisateur a déjà un login + mot de passe afin d'accéder au SI de l'entreprise. Et suivant leur profil, ils ont droit d'accéder à telles ou telles applications.

Mon intention était d'éviter à mes utilisateurs (qui sont autorisé à rentrer ds la partie admin) de rentrer un 2ème login+mot de passe.

Dans un 1er temps, j'ai donc essayé ceci :
J'ai récupéré le login du SI puis j'ai fait une requête SQL sur la table cms_users en faisant une égalité sur les 2 login (qui sont identiques bien sûr).
Si la requête se vérifie, on affiche la page index.php (celle du frontoffice) en pensant naîvememt que ma petite balise {edit} allait s'afficher mais non...

Bonne soirée
Pierre M.

Re: Comment insérer un smarty tag dans du code PHP ?

Post by Pierre M. »

Si je comprends bien, c'est une problématique de "single sign on" avec un "SI de l'entreprise" où les utilisateurs sont déjà authentifiés "indépendemment du CMSMS".

Proposition du jour : si "déjà authentifiés" signifie qu'un cookie est positionné, vous pouvez modifier légèrement la balise {edit} de 1.4.1 pour qu'elle ne s'affiche que si ce cookie interne est positionné. Ainsi, vous différenciez vos "lecteurs étrangers anonymes" et vos "rédacteurs connus", ce qui répond à votre première demande. Pour éviter un deuxième login sur le backend, vous pouvez peut être customiser (à vos risques et périls) la fonction check_login() mais je doute que ça en vaille la peine.

Pierre
SUUD6501
Forum Members
Forum Members
Posts: 46
Joined: Wed Aug 22, 2007 8:43 am

Re: Comment insérer un smarty tag dans du code PHP ?

Post by SUUD6501 »

oui vous avez bien compris.
Je pense que je vais abandonner mon idée et au fond, c'est pas si grave si mes utilisateurs se connectent une 2ème fois.

Juste pour satisfaire ma curiosité, où trouve-t-on les pages qui génèrent la balise {edit}. Il est vrai que je n'ai pas la version 1.4.1 sur mes appli en cmsms mais je pense que sur les versions antérieures, elle est quelque part aussi.
merci
Pierre M.

Re: Comment insérer un smarty tag dans du code PHP ?

Post by Pierre M. »

Sans doute dans /plugins/function.edit.php
Post Reply

Return to “French - Français”