Tout d'abord merci pour votre aide et la rapidité de vos réponses !
En faite voici le code de ma méthode
Code :
function treatWantedTag(&$tag, $tagContent, $treatmentMode, $visualizationMode, &$treatedObject, $treatmentParameters)
{
global $cms_user;
switch ($treatmentMode) {
case MODULE_TREATMENT_PAGECONTENT_TAGS:
if (!is_a($treatedObject,"CMS_page")) {
$this->raiseError('$treatedObject must be a CMS_page object');
return false;
}
switch ($tag->getName()) {
case 'atm-wzf-wizard':
$wzfType = $tag->getAttribute("type");
$wzfMode = $tag->getAttribute("mode");
//$user_context = $_SESSION["cms_context"];
$user = $cms_user;//$cms_user$user_context ? $user_context->getUser() : false;
if (!isset($user) || !($user instanceof CMS_profile_user) || $user->getLogin()=='anonymous') {
return 'Votre session à expirée !';
}
//get page website
$website = $treatedObject->getWebsite();
//get website url
$url = $website->getURL();
//build load url
$loadUrl = $url.self::WZF_LOAD_FILE_PATH_WR;
$saveUrl = $url.self::WZF_SAVE_FILE_PATH_WR.'?type='.$wzfType;
$content = '<link rel="stylesheet" type="text/css" href="/js/extjs/resources/css/ext-all.css"/>'."\n"
.'<link rel="stylesheet" type="text/css" href="/js/frmwizard/resources/css/commons.css"/>'."\n"
.'<script type="text/javascript" src="/js/jquery.js"></script>'."\n"
.'<script type="text/javascript" src="/js/extjs/adapter/jquery/ext-jquery-adapter.js"></script>'."\n"
.'<script type="text/javascript" src="/js/extjs/ext-all-debug.js"></script>'."\n"
.'<script type="text/javascript" src="/js/extjs/ext-lang-fr.js"></script>'."\n"
.'<script type="text/javascript" src="/js/frmwizard/wzf-all-debug.js"></script>'."\n"
.'<script type="text/javascript" src="/js/frmwizard/'.$wzfType.'Wizard.js"></script>'."\n"
.'<script type="text/javascript">Ext.onReady(function(){'."\n"
.'var f = new Ai.AIWizard'.$wzfMode.'({'."\n"
.'saveUrl:\''.$saveUrl.'\','."\n"
.'wizardType:\''.$wzfType.'\'});'."\n"
.'f.startWizard();'."\n"
.'f.loadForm({url:\''.$loadUrl.'\'});'."\n"
.'});</script>'."\n";
if ($wzfMode=='Panel'){
$content .= $user->getLogin().'<br/><div id="wizardForm" style="margin:5px"></div>'."\n";
}
return $content;
break;
case 'atm-wzf-export':
$exportType =$tag->getAttribute("type");
$exportSport = $tag->getAttribute("sport");
//get link template
$template = $tag->getInnerContent();
//get page website
$website = $treatedObject->getWebsite();
//get website url
$url = $website->getURL();
//build pdf url
$url .= self::WZF_EXPORT_FILE_PATH_WR.'?type='.$exportType.'&sport='.$exportSport;
//create link
if ($tag->getAttribute("keeprequest") == 'true') {
return '<?php echo \''.str_replace("{{href}}", $url.'\'.($_SERVER["QUERY_STRING"] ? \'&\'.$_SERVER["QUERY_STRING"] : \'\').\'', str_replace("\\\\'", "\'", str_replace("'", "\'", $template))).'\' ?>';
} else {
return str_replace("{{href}}", $url, $template);
}
break;
}
break;
}
return $tagContent;
}
J'ai besoin de récupérer l'utilisateur courant pour lui proposer un formulaire de saisie. Je suis sûr que l'utilisateur courant n'est pas root car la première chose que fait ce formulaire est de faire un appel ajax au code suivant pour préremplir le formulaire :
Code :
<?php
require_once($_SERVER["DOCUMENT_ROOT"]."/cms_rc_frontend.php");
// Récupération de l'utilisateur courant
$cms_context = $_SESSION["cms_context"];
$cms_user = $cms_context ? $cms_context->getUser() : false;
if (!$cms_user) {
echo "{success:false,msg:'Vous n\'êtes pas identifié ou votre session à expirée'}";
exit;
}
// Vérification des droits
if (!CMS_wzf_formModel::isWriteGrantedFor($cms_user)){
echo "{success:false,msg:'Vous n\'êtes pas autorisé à éffectuer cette action'}";
exit;
}
$msg = '{success:true,data:{'."\n"
.'XXX_nom:\''.addslashes($cms_user->getLastName())."'\n"
.',XXX_prenom:\''.addslashes($cms_user->getFirstName())."'\n"
.',XXX_email:\''.addslashes($cms_user->getEmail())."'\n"
.',XXX_discipline:\''.addslashes($cms_user->getContactData()->getService())."'\n"
.',XXX_niveau:\''.addslashes($cms_user->getContactData()->getJobTitle())."'\n"
.',XXX_neLe:\''.addslashes($cms_user->getContactData()->getState())."'\n"
.'}}';
echo $msg;
?>
Or ce code retourne les données de l'utilisateur loggé (et pas root).
Bilan le code suivant retourne un utilisateur différent que l'on soit dans la méthode treatWantedTag ou que l'on soit dans un php appelé directement (ici un appel ajax) :
[code]
$cms_context = $_SESSION["cms_context"];
$cms_user = $cms_context ? $cms_context->getUser() : false;
[code]
Voilà et merci d'avance !