public function _createContent(&$toReturn)
 {
     $arModuleToInstall = CopixSession::get('arModuleToInstall', 'copix');
     $arInstalledModule = CopixSession::get('arInstalledModule', 'copix');
     $moduleName = array_pop($arModuleToInstall);
     $url = $this->getParam('url');
     if (($message = CopixModule::installModule($moduleName)) === true) {
         $toReturn = _i18n('install.module.install') . ' ' . $moduleName . ' <img src="' . _resource('img/tools/valid.png') . '" />';
         if (count($arModuleToInstall) > 0) {
             $toReturn .= _tag('copixzone', array('id' => uniqid(), 'process' => 'admin|installmodule', 'url' => $url, 'auto' => true, 'ajax' => true));
         } elseif ($url) {
             $toReturn .= sprintf('<form action="%s" method="post"><input type="submit" value="%s"/></form>', htmlspecialchars($url), _i18n('copix:common.buttons.next'));
         } else {
             $toReturn .= "<script>\$('back').setStyle('display','');</script>";
         }
         array_push($arInstalledModule, $moduleName);
     } else {
         array_push($arInstalledModule, $moduleName);
         $toReturn = _i18n('install.module.install') . ' ' . $moduleName . ' ' . _tag('popupinformation', array('img' => _resource('img/tools/delete.png')), $message);
         $toReturn .= '<div class="errorMessage">' . $message . '</div>';
         if (count($arInstalledModule) > 0) {
             CopixSession::set('arModuleToDelete', $arInstalledModule, 'copix');
             CopixSession::set('arInstalledModule', null, 'copix');
             CopixSession::set('arModuleToInstall', null, 'copix');
             $toReturn .= _tag('copixzone', array('id' => uniqid(), 'process' => 'admin|deletemodule', 'auto' => true, 'ajax' => true));
         }
     }
     CopixSession::set('arModuleToInstall', $arModuleToInstall, 'copix');
     CopixSession::set('arInstalledModule', $arInstalledModule, 'copix');
     return true;
 }
 /**
  * Retourne les données du chart
  *
  */
 public function processGetChartsDatas()
 {
     $cle = CopixRequest::get('cle');
     echo CopixSession::get("charts|datas|{$cle}");
     CopixSession::set("charts|datas|{$cle}", null);
     return _arNone();
 }
 /**
  * Retourne les logs sous forme d'idérateur
  *
  * @param 	string	$pProfil	Nom du profil dont on souhaite afficher le contenu
  * @param 	int 	$pNbItems	Nombres d'items à afficher
  * @return 	Iterator
  */
 public function getLog($pProfil, $pNbItems = 20)
 {
     // Mise en place des limites
     $page = CopixSession::get('log|numpage') - 1;
     $start = $page * $pNbItems;
     // Création du Search Params
     $sp = _daoSP()->addCondition('profile', '=', $pProfil)->orderBy(array('date', 'DESC'));
     $dbNbLines = _ioDAO('copixlog')->countBy($sp);
     CopixSession::set('log|nbpage', ceil($dbNbLines / $pNbItems));
     $sp = $sp->setLimit($start, $pNbItems);
     return _ioDAO('copixlog')->findBy($sp);
 }
 public function _createContent(&$toReturn)
 {
     $moduleName = CopixZone::getParam('moduleName');
     $arDependency = CopixModule::getDependenciesForDelete($moduleName);
     $tpl = new CopixTpl();
     $tpl->assign('arDependency', $arDependency);
     $tpl->assign('arModuleToDelete', $arDependency);
     CopixSession::set('arModuleToDelete', $arDependency, 'copix');
     $tpl->assign('id', uniqid());
     $tpl->assign('arModuleToDelete', $arDependency);
     $toReturn = $tpl->fetch('delete.script.tpl');
     return true;
 }
 /**
  * Envoie du mail
  */
 public function processSend()
 {
     $ppo->mail = CopixSession::get('admin|email|donnees');
     $ppo->mail['send'] = true;
     $ppo->mail['dest'] = _request("maildest");
     $ppo->mail['cc'] = _request("mailcc");
     $ppo->mail['cci'] = _request("mailcci");
     $ppo->mail['from'] = _request("mailfrom");
     $ppo->mail['fromname'] = _request("mailfromname");
     $ppo->mail['subject'] = _request("mailtitle");
     $ppo->mail['msg'] = _request("mailmsg");
     CopixSession::set('admin|email|donnees', $ppo->mail);
     $arrErrors = _class("emailservices")->sendMail($ppo->mail);
     return CopixActionGroup::process('admin|Email::create', array('error' => $arrErrors, 'sending' => 'true'));
 }
 public function _createContent(&$toReturn)
 {
     if (CopixZone::getParam('arModule') !== null && is_array(CopixZone::getParam('arModule'))) {
         $arModule = CopixZone::getParam('arModule');
     } else {
         $arModule = array(CopixZone::getParam('moduleName'));
     }
     $arModuleToInstall = array();
     $arOrder = array();
     foreach ($arModule as $moduleName) {
         $arDependency = CopixModule::getDependenciesForInstall($moduleName);
         foreach ($arDependency as $key => $dependency) {
             if ($dependency->kind === 'module') {
                 //Gestion des modules en double avec les dependences
                 if (!in_array($dependency->name, $arModuleToInstall)) {
                     $arModuleToInstall[] = $dependency->name;
                     $arOrder[] = $dependency->level;
                 } else {
                     //Gestion du niveau d'install des dependences
                     $key = array_search($dependency->name, $arModuleToInstall);
                     if ($arOrder[$key] < $dependency->level) {
                         $arOrder[$key] = $dependency->level;
                     }
                 }
             }
         }
     }
     array_multisort($arOrder, SORT_ASC, $arModuleToInstall, SORT_DESC);
     $arModuleInfos = array();
     $tpl = new CopixTpl();
     $tpl->assign('arModuleToInstall', $arModuleToInstall);
     $tpl->assign('arModuleInfos', $arModuleInfos);
     CopixSession::set('arModuleToInstall', $arModuleToInstall, 'copix');
     CopixSession::set('arInstalledModule', array(), 'copix');
     $tpl->assign('id', uniqid());
     $tpl->assign('url', CopixZone::getParam('url_return', _url('admin|install|manageModules')));
     $tpl->assign('messageConfirm', CopixZone::getParam('messageConfirm', true));
     $toReturn = $tpl->fetch('admin|install.script.tpl');
     return true;
 }
 public function _createContent(&$toReturn)
 {
     $arModuleToDelete = CopixSession::get('arModuleToDelete', 'copix');
     $moduleName = array_pop($arModuleToDelete);
     if (($message = CopixModule::deleteModule($moduleName)) === true) {
         $toReturn = _i18n('install.module.delete') . ' ' . $moduleName . ' <img src="' . _resource('img/tools/valid.png') . '" />';
         if (count($arModuleToDelete) > 0) {
             $toReturn .= _tag('copixzone', array('id' => uniqid(), 'process' => 'admin|deletemodule', 'auto' => true, 'ajax' => true));
         } else {
             $toReturn .= "<script>\$('back').setStyle('display','');</script>";
         }
     } else {
         $toReturn = _i18n('install.module.delete') . ' ' . $moduleName . ' ' . _tag('popupinformation', array('img' => _resource('img/tools/delete.png')), $message);
         $toReturn .= '<div class="errorMessage">' . $message . '</div>';
         if (count($arModuleToDelete) > 0) {
             $toReturn .= _tag('copixzone', array('id' => uniqid(), 'process' => 'admin|deletemodule', 'auto' => true, 'ajax' => true));
         } else {
             $toReturn .= "<script>\$('back').setStyle('display','');</script>";
         }
     }
     CopixSession::set('arModuleToDelete', $arModuleToDelete, 'copix');
     return true;
 }
 /**
  * Destruction de l'utilisateur courant
  */
 public static function destroyCurrentUser()
 {
     CopixSession::set('copix|auth|user', null);
 }
 /**
  * Mise en session de l'aide simpe édité
  * @access: private.
  */
 private function _setSessionSimpleHelp($toSet)
 {
     CopixSession::set('edithelp_object', serialize($toSet), 'simplehelp');
 }
 /**
  * Supprime tout les log de ce profil
  * @param	string	$pProfil	le nom du profil à vider
  */
 public function deleteProfile($pProfil)
 {
     CopixSession::set('copix|log|firebug|' . $pProfil, null);
 }
예제 #11
0
 /**
  * Destruction de l'objet, on met à jour la session avec les langues retenues
  */
 public function __destruct()
 {
     CopixSession::set('plugin|i18n|lang', $this->_lang);
     CopixSession::set('plugin|i18n|country', $this->_country);
 }
 public function sendmail($mail)
 {
     $arrErrors = array();
     if ($mail['dest'] == null || $mail['dest'] == "") {
         $arrErrors[] = _i18n('email.error.nodest');
     } else {
         $arrTmp = explode(",", $mail['dest']);
         try {
             foreach ($arrTmp as $key => $tmpMail) {
                 if ($tmpMail != "") {
                     CopixFormatter::getMail($tmpMail);
                 }
             }
         } catch (CopixException $e) {
             $arrErrors[] = _i18n('email.error.baddest');
         }
     }
     if ($mail['cc'] != "") {
         $arrTmp = explode(",", $mail['cc']);
         try {
             foreach ($arrTmp as $key => $tmpMail) {
                 if ($tmpMail != "") {
                     CopixFormatter::getMail($tmpMail);
                 }
             }
         } catch (CopixException $e) {
             $arrErrors[] = _i18n('email.error.badcc');
         }
     } else {
         $mail['cc'] = "";
     }
     if ($mail['cci'] != "") {
         $arrTmp = explode(",", $mail['cci']);
         try {
             foreach ($arrTmp as $key => $tmpMail) {
                 if ($tmpMail != "") {
                     CopixFormatter::getMail($tmpMail);
                 }
             }
         } catch (CopixException $e) {
             $arrErrors[] = _i18n('email.error.badcci');
         }
     } else {
         $mail['cci'] = "";
     }
     if ($mail['subject'] == null || $mail['subject'] == "") {
         $arrErrors[] = _i18n('email.error.nosubject');
     }
     if ($mail['msg'] == null || $mail['msg'] == "") {
         $arrErrors[] = _i18n('email.error.nomsg');
     }
     if ($mail['from'] == null || $mail['from'] == "") {
         $arrErrors[] = _i18n('email.error.nofrom');
     } else {
         $arrTmp = explode(",", $mail['from']);
         try {
             foreach ($arrTmp as $tmpMail) {
                 if ($tmpMail != "") {
                     CopixFormatter::getMail($tmpMail);
                 }
             }
         } catch (CopixException $e) {
             $arrErrors[] = _i18n('email.error.badfrom');
         }
     }
     if ($mail['fromname'] == null || $mail['fromname'] == "") {
         $arrErrors[] = _i18n('email.error.nofromname');
     }
     if (count($arrErrors) == 0) {
         $monMail = new CopixTextEMail($mail['dest'], $mail['cc'], $mail['cci'], utf8_decode($mail['subject']), utf8_decode($mail['msg']));
         $monMail->send($mail['from'], $mail['fromname']);
         CopixSession::set('admin|email|donnees', $this->newMail());
     }
     return $arrErrors;
 }
 public static function delete($pId)
 {
     CopixSession::set($pId, null, 'COPIXLIST');
 }
예제 #14
0
 public function processPreDelete()
 {
     CopixSession::set('admin|database|loginInformations', null);
 }
 /**
  * retourne le code html qui sera attaché au tpl
  * @return code html a passer au template
  */
 protected function getChart($width = 400, $height = 250)
 {
     _classInclude('chart_swf|CopixSwfChart');
     CopixSession::set("charts|datas|{$this->_cle}", CopixSwfChart::getChartData($this->_data));
     $swf = _class('chart_swf|CopixSwfChart');
     return $swf->getChart(_url("chart_swf||getChartsDatas", array("cle" => $this->_cle)), $width, $height);
 }
 /**
  * Marque les tests de connection pour les connections configurées en session
  *
  * @return boolean Vrai si les connections sont toutes accessibles
  */
 private function _testConnections()
 {
     $toReturn = true;
     $arConnections = $this->_getConnections();
     foreach ($arConnections as $position => $connection) {
         try {
             $profile = new CopixDBProfile('test_' . $position, $connection['driver'] . ':' . $connection['connectionString'], $connection['user'], $connection['password'], $connection['extra']);
             if (($result = CopixDB::testConnection($profile)) !== true) {
                 $toReturn = false;
             }
             $arConnections[$position]['available'] = $result === true;
             $arConnections[$position]['errorNotAvailable'] = $result === true ? '' : $result;
         } catch (CopixDBException $e) {
             $toReturn = false;
             $arConnections[$position]['available'] = false;
             $arConnections[$position]['errorNotAvailable'] = $e->getMessage();
         }
     }
     // var_dump($arConnections);
     CopixSession::set('admin|database|configure', $arConnections);
     return $toReturn;
 }
 /**
  * Validation des modifications apportées sur un utilisateur
  */
 public function processValid()
 {
     //$user = new stdClass ();
     $user = _record('dbuser');
     $user->login_dbuser = _request('login_dbuser', '');
     $user->email_dbuser = _request('email_dbuser');
     $errors = array();
     //on vérifie si le login n'est pas déja pris
     $sp = _daoSp();
     $sp->addCondition('login_dbuser', '=', $user->login_dbuser);
     if ($user->login_dbuser === '') {
         $errors['loginEmpty'] = 1;
     }
     if (count(_ioDAO('dbuser')->findBy($sp))) {
         $errors['loginNotAvailable'] = 1;
     }
     //on vérifie si un mot de passe est donné qu'ils soient bien identiques
     if (CopixRequest::get('password_dbuser')) {
         if (CopixRequest::get('password_dbuser') != CopixRequest::get('password_confirmation_dbuser')) {
             $errors['passwordDoNotMatch'] = 1;
         } else {
             $user->password_dbuser = md5(CopixRequest::get('password_dbuser'));
         }
     } else {
         //Comme c'est automatiquement un nouvel utilisateur, il est obligatoire de saisir un nouveau mot de passe.
         $errors['passwordEmpty'] = 1;
     }
     if (Copixconfig::get('auth|typeConfirm') == "email") {
         if (!$user->email_dbuser) {
             $errors['emailEmpty'] = 1;
         } else {
             try {
                 CopixFormatter::getMail($user->email_dbuser);
             } catch (CopixException $e) {
                 $errors['emailIsBad'] = 1;
             }
         }
     }
     if (Copixconfig::get('auth|typeConfirm') == "email") {
         $user->enabled_dbuser = 0;
     } else {
         $user->enabled_dbuser = 1;
     }
     //Si le module imageprotect est activé test la protection anti-spam
     if (CopixModule::isEnabled('antispam')) {
         CopixRequest::assert('confirmcode_dbuser');
         CopixRequest::assert('idcode_dbuser');
         $code = _request('confirmcode_dbuser');
         $idCode = _request('idcode_dbuser');
         // Test si le code de ssession est valide
         _classInclude('antispam|imageprotect');
         if (!ImageProtect::getCode($idCode, $code)) {
             $errors['confirmCodeBad'] = 1;
         }
     }
     //redirige vers l'éditeur si il y a des erreurs
     if (count($errors) != 0) {
         $errors['idForm'] = uniqid();
         CopixSession::set('auth|createForm', $user, $errors['idForm']);
         return _arRedirect(_url('auth|usersregister|edit', $errors));
     }
     //sauvegarde de l'utilisateur
     _ioDAO('dbuser')->insert($user);
     return _arRedirect(_url(''));
 }
function qSession($key, $value = '__get')
{
    if ($value != '__get') {
        return CopixSession::set($key, $value, 'quiz');
    }
    if ($key == 'delete') {
        CopixSession::destroyNamespace('quiz');
    }
    return CopixSession::get($key, 'quiz');
}
 /**
  * Supression d'un utilisateur du groupe
  */
 public function processRemoveUser()
 {
     $this->_validFromRequest();
     $users = CopixSession::get('auth|usersgroup');
     unset($users[CopixRequest::get('handlerUser')][CopixRequest::get('idUser')]);
     CopixSession::set('auth|usersgroup', $users);
     return _arRedirect(_url('auth|groups|edit'));
 }
 public function beforeDisplay(&$display)
 {
     $jscode = array();
     $logs = array();
     foreach (CopixConfig::instance()->copixlog_getRegistered() as $profil) {
         $name = CopixConfig::instance()->copixlog_getProfile($profil);
         $name = $name['strategy'];
         if (strtoupper($name) == "FIREBUG") {
             $logs[] = CopixLog::getLog($profil);
         }
     }
     //merge last logs to new logs
     if (CopixSession::get('plugin|firebug|log') !== null) {
         $logs = array_merge(CopixSession::get('plugin|firebug|log'), $logs);
         CopixSession::set('plugin|firebug|log', null);
     }
     $logs = array_reverse($logs);
     foreach ($logs as $arlog) {
         foreach ($arlog as $log) {
             foreach (array('message', 'file', 'line', 'level', 'classname', 'functionname', 'type') as $var) {
                 if (isset($log->{$var})) {
                     ${$var} = $log->{$var};
                     unset($log->{$var});
                 } else {
                     ${$var} = null;
                 }
             }
             $log->date = CopixDateTime::yyyymmddhhiissToDateTime($log->date);
             $log->location = "{$file}:{$line}";
             $log->function = ($classname ? "{$classname}::" : "") . $functionname;
             switch ($level) {
                 case CopixLog::INFORMATION:
                     $type = "info";
                     break;
                 case CopixLog::WARNING:
                 case CopixLog::NOTICE:
                     $type = "warn";
                     break;
                 case CopixLog::EXCEPTION:
                 case CopixLog::ERROR:
                 case CopixLog::FATAL_ERROR:
                     $type = "error";
                     break;
                 default:
                     $type = "log";
             }
             unset($log->level);
             $jscode[] = sprintf('_l(%s,%s,%s,%s);', CopixJSON::encode($type), CopixJSON::encode($message), CopixJSON::encode($log->location), CopixJSON::encode($log));
         }
     }
     foreach (CopixConfig::instance()->copixlog_getRegistered() as $profil) {
         $name = CopixConfig::instance()->copixlog_getProfile($profil);
         $name = $name['strategy'];
         if (strtoupper($name) == "FIREBUG") {
             CopixLog::deleteProfile($profil);
         }
     }
     if (count($jscode) > 0) {
         $jscode[] = "if(window.console && console.firebug){var _l=function(t,m,l,e){console.group('[COPIX] - '+t+' - '+l);console[t](m);console.dir(e);console.groupEnd();}";
         $jscode = array_reverse($jscode);
         $jscode[] = "}";
         CopixHTMLHeader::addJSCode(implode("\n", $jscode));
     }
 }
 /**
  * Acces direct a un module
  *
  * Fonction generique d'acces a un module depuis un noeud.
  *
  * @author Stephane Holtz <*****@*****.**>
  */
 public function go()
 {
     // NOTIFICATIONS : Préparation de l'enregistrement de la visite. Le module_id est à completer avant enregistrement.
     $lastvisit = _record("kernel|kernel_notifications_lastvisit");
     $lastvisit->user_id = $this->user->id;
     // id Copix
     $lastvisit->date = date('Y-m-d H:i:s');
     $lastvisit->node_type = _request("ntype");
     $lastvisit->node_id = _request("nid");
     $lastvisit->module_type = _request("mtype");
     $lastvisit->module_id = null;
     $mid = _request("mid", 0);
     if (!is_null(_request("ntype")) && !is_null(_request("nid")) && !is_null(_request("mtype"))) {
         CopixSession::set('myNode', array('type' => _request("ntype"), 'id' => _request("nid")));
         if (_request("ntype") == 'CLUB' && _request("mtype") == 'comptes' && !_request("mid")) {
             $loadModule = new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('groupe||getHomeMembers', array('id' => _request("nid"))));
         } elseif (_request("ntype") == 'CLUB' && _request("mtype") == 'admin' && !_request("mid")) {
             $loadModule = new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('groupe||getHomeAdmin', array('id' => _request("nid"))));
         } elseif (strpos(_request("ntype"), 'USER_') === false) {
             // Si on ne connait pas l'ID du module, on tente de le detecter automatiquement
             if (!$mid) {
                 $modules = Kernel::getModEnabled(_request("ntype"), _request("nid"), '', 0, 0, true);
                 foreach ($modules as $module) {
                     if ($module->module_type == 'MOD_' . strtoupper(_request("mtype"))) {
                         if (isset($module->module_id)) {
                             $mid = $module->module_id;
                         } else {
                             $mid = 0;
                         }
                         break;
                     }
                 }
             }
             // die('CopixUrl::get('._request("mtype").'|default|go   id='.$mid);
             $loadModule = new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get(_request("mtype") . '|default|go', array('id' => $mid)));
         } else {
             if ($mid) {
                 $loadModule = new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get(_request("mtype") . '|default|go', array('id' => $mid)));
             } else {
                 $loadModule = new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get(_request("mtype") . '||'));
             }
         }
         // NOTIFICATIONS : Enregistrement de la visite de l'utilisateur (avec suppression de doublons)
         if ($mid) {
             $lastvisit->module_id = $mid;
         }
         if ($lastvisit->user_id) {
             _dao('kernel|kernel_notifications_lastvisit')->deleteBy(_daoSp()->addCondition('user_id', '=', $lastvisit->user_id)->addCondition('node_type', '=', $lastvisit->node_type)->addCondition('node_id', '=', $lastvisit->node_id)->addCondition('module_type', '=', $lastvisit->module_type)->addCondition('module_id', '=', $lastvisit->module_id));
             _dao("kernel|kernel_notifications_lastvisit")->insert($lastvisit);
         }
         // LOGS : Logs d'usage
         Logs::set(array('type' => 'GO', 'node_type' => _request("ntype"), 'node_id' => _request("nid"), 'module_type' => _request("mtype"), 'module_id' => $mid ? $mid : null));
         return $loadModule;
     }
     $loadModule = new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('||'));
     return $loadModule;
 }
 /**
  * Supression d'un handleExcept pour le profil en cours de modification
  */
 public function processRemoveHandleExcept()
 {
     if ($handleExceptToRemove = _request('handleExcept')) {
         if ($profile = CopixSession::get('admin|log|edit')) {
             unset($profile['handleExcept'][array_search($handleExceptToRemove, $profile['handleExcept'])]);
             CopixSession::set('admin|log|edit', $profile);
         }
     }
     return _arRedirect(_url('log|edit'));
 }
/**
 * Alias à CopixSession::set ()
 * @param	string	$pPath	le chemin de l'élément en session que l'on souhaite récupérer
 * @param	mixed	$pValue	la valeur de l'élément à définir
 * @param	string	$pNamespace	le nom du namespace de session dans lequel on souhaite récupérer l'élément
 * @return void
 */
function _sessionSet($pPath, $pValue, $pNamespace = 'default')
{
    CopixSession::set($pPath, $pValue, $pNamespace);
}
 /**
  * Définition du thème à utiliser
  */
 public function processDoSelectTheme()
 {
     CopixSession::set('themechooser|theme', CopixRequest::getInArray('id_ctpt', CopixPluginRegistry::getConfig('themechooser|themechooser', true)->getThemeList(), true));
     return _arRedirect(_url());
 }
 /**
  * Création d'un nouvel utilisateur
  */
 public function processCreate()
 {
     CopixSession::set('auth|user', _record('dbuser'));
     return _arRedirect(_url('auth|users|edit'));
 }
 /**
  * Validation des modification sur le profil de cache
  */
 public function processValid()
 {
     $type = CopixSession::get('admin|cache|edit');
     if (_request('enabled')) {
         $type['enabled'] = true;
     }
     $type['strategy'] = _request('strategy');
     if (_request('strategy_class', null, true)) {
         $type['strategy'] = _request('strategy_class');
     }
     if ($dir = _request('dir')) {
         $type['dir'] = $dir;
     }
     $type['duration'] = _request('duration');
     if ($link = _request('link')) {
         $type['link'] .= $type['link'] == "" ? $link : "|" . $link;
     }
     CopixSession::set('admin|cache|edit', $type);
     if (_request('save')) {
         $types = CopixConfig::instance()->copixcache_getRegisteredProfiles();
         $types[$type['name']] = $type;
         _class('cacheConfigurationFile')->write($types);
         CopixSession::set('admin|cache|edit', null);
         return _arRedirect(_url('cache|admin'));
     } else {
         return _arRedirect(_url('cache|edit'));
     }
 }
 public function process($pParams)
 {
     if (!isset($pParams['zone'])) {
         new CopixTemplateTagException('zone');
     }
     $sessionVar = uniqid();
     $sessionZone = uniqid();
     CopixSession::set($sessionZone, $pParams['zone']);
     unset($pParams['zone']);
     CopixSession::set($sessionVar, $pParams);
     if (!isset($pParams['alt'])) {
         $pParams['alt'] = '';
     }
     if (!isset($pParams['imgtitle'])) {
         $pParams['imgtitle'] = '';
     }
     if (!isset($pParams['text'])) {
         $pParams['text'] = '';
     }
     if (!isset($pParams['displayimg'])) {
         $pParams['displayimg'] = true;
     }
     if (!isset($pParams['img'])) {
         $pParams['img'] = _resource('img/tools/information.png');
     }
     if (!isset($pParams['divclass'])) {
         $pParams['divclass'] = 'popupInformation';
     }
     if (!isset($pParams['handler'])) {
         $pParams['handler'] = 'onmouseover';
     }
     $id = uniqid('popupInformation');
     switch ($pParams['handler']) {
         case 'click':
             $toReturn = '<a rel="' . $id . '" id="div' . $id . '" href="javascript:void(null);">';
             $close = '</a>';
             break;
         default:
             //prend également en charge onmouseover qui est le handler par défaut.
             $toReturn = '<div rel="' . $id . '" id="div' . $id . '" class="divpopup" style="display:inline;">';
             $close = '</div>';
             break;
     }
     $toReturn .= $pParams['displayimg'] === true ? '<img src="' . $pParams['img'] . '" title="' . $pParams['imgtitle'] . '" alt="' . $pParams['alt'] . '" />' : '';
     $toReturn .= strlen($pParams['text']) ? $pParams['text'] : '';
     $toReturn .= isset($pParams['imgnext']) ? '<img src="' . $pParams['imgnext'] . '" />' : '';
     $toReturn .= $close;
     $width = 'auto';
     if (isset($pParams['width'])) {
         $width = $pParams['width'];
     }
     $toReturn .= '<div class="' . $pParams['divclass'] . '" id="' . $id . '" style="width:' . $width . ';display:none;" >';
     //$toReturn .= $pContent;
     $toReturn .= '</div>';
     $jsCode = "\nvar ajax_zone = {\n    getZone : function (pZone,pSession,pDiv) {\n        new Ajax('" . _url('generictools|ajax|getZone') . "', {\n                            method: 'post',\n                            update: pDiv,\n                            evalScripts : true,\n                            data: {'zone':pZone,'sessionvar':pSession}\n                        }).request();\n    }\n};\n";
     CopixHTMLHeader::addJSCode($jsCode, 'ajaxpopup');
     switch ($pParams['handler']) {
         case 'click':
             $jsCode = "\n                window.addEvent('domready',function () {\n                    var el = \$('div{$id}');\n                    var rel = \$(el.getProperty('rel'));\n                    var save{$id} = {\n                        click : false,\n                        flag : false,\n                        hide : function () {\n                            if (!save{$id}.flag) {\n                                rel.fireEvent('hide');\n                            }\n                        }\n                    };\n                    el.addEvent ('click', function (e) {\n                        save{$id}.click = true;\n                        rel.fireEvent('display');\n                    });\n                    el.addEvent('mouseleave', function () {\n                        if (save{$id}.click) {\n                            save{$id}.hide.delay(1000);\n                        }\n                    });\n                    rel.addEvent ('mouseleave', function () {\n                        rel.fireEvent('hide');\n                    });\n                    rel.addEvent ('mouseenter', function () {\n                        save{$id}.flag = true;\n                    });\n                    rel.addEvent ('display', function (e) {\n                        if (rel.getStyle('display') == 'none') {\n                            if (rel.innerHTML=='') {\n                                    rel.setHTML('<img src=\"" . CopixUrl::getResource('img/tools/load.gif') . "\" />');\n                                    ajax_zone.getZone('{$sessionZone}','{$sessionVar}',rel);\n                            }\n                            rel.setStyles({'left':(el.getLeft()+el.getSize().size.x)+'px','zIndex':'10'});\n\n                            rel.setStyle('display','');\n                            rel.fixdivShow.delay(200,rel);\n                        } else {\n                            rel.fixdivHide();\n                            rel.setStyle('display','none');\n                        }\n                    });\n                    rel.addEvent ('hide', function () {\n                        save{$id}.flag = false;\n                        save{$id}.click = false;\n                        rel.fixdivHide();\n                        rel.setStyle('display','none');\n                    });\n                });\n                ";
             break;
         default:
             $jsCode = "\n                 window.addEvent('domready',function () {\n                              el = \$('div{$id}');\n                             var rel = \$(el.getProperty('rel'));\n                             /*\n                             el.addEvent('trash',function () {\n                                rel.remove();\n                             });\n                             */\n\n                             rel.injectInside(document.body);\n                             el.addEvent('mouseenter', function (e) {\n                                if (rel.innerHTML=='') {\n                                    rel.setHTML('<img src=\"" . CopixUrl::getResource('img/tools/load.gif') . "\" />');\n                                    ajax_zone.getZone('{$sessionZone}','{$sessionVar}',rel)\n                                }\n                                var e = new Event(e);\n                                rel.fixdivShow();\n                                rel.setStyle('visibility','visible');\n                             });\n\n                             el.addEvent('mousemove', function (e) {\n                                var e = new Event(e);\n                                 rel.setStyles({\n                                    'position':'absolute',\n                                    'top' : (e.page.y+5)+'px',\n                                    'left' : (e.page.x+5)+'px'\n                                 });\n                             });\n\n                             el.addEvent('mouseleave', function (e) {\n                                 var e = new Event(e);\n                                 rel.fixdivHide();\n                                 rel.setStyle('visibility','hidden');\n                             });\n\n\n                });\n                 ";
     }
     CopixHTMLHeader::addJSCode($jsCode);
     _tag('mootools', array('plugin' => array('overlayfix')));
     return $toReturn;
 }
예제 #28
0
 /**
  * Remplissage d'un flash message
  *
  * @author Christophe Beyer <*****@*****.**>
  * @since 2012/06/21
  * @param string $type : warning, success, error
  * @param string $message Contenu du message
  */
 public function setFlashMessage($type, $message)
 {
     CopixSession::set('flash|' . $type, $message);
 }
 /**
  * Retourne les logs sous forme d'itérateur
  */
 public function getLog($pProfil, $pNbItems = 20)
 {
     $page = CopixSession::get('log|numpage') - 1;
     if (file_exists($this->_getFileName($pProfil))) {
         // Création d'un objet CopixCSV pour contenir le contenu du fichier
         $csvLog = new CopixCsv($this->_getFileName($pProfil));
         // Récupération de l'itérateur et compte du nombre de ligne
         $csvLines = $csvLog->getIterator();
         $csvNbLines = $csvLines->count();
         // Calcul de la position et des offset
         $pPosition = $csvNbLines - $page * $pNbItems - $pNbItems;
         // Calcul de la position de départ pour parcourir la portion du fichier à afficher
         if ($pPosition < 0) {
             $pOffset = $pNbItems + $pPosition;
             $pPosition = 0;
         } else {
             $pOffset = $pNbItems;
             $pPosition -= 1;
         }
         $csvLines->seek($pPosition);
         $content = array();
         for ($i = 0; $i < $pOffset; $i++) {
             $content[] = $csvLines->current();
             $csvLines->next();
         }
         $content = array_reverse($content);
         CopixSession::set('log|nbpage', ceil($csvNbLines / $pNbItems));
         $arrayObject = new ArrayObject(array_map(array($this, 'toObject'), $content));
         return $arrayObject->getIterator();
     }
     return new ArrayObject();
 }