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;
 }
 /**
  * S'assure que l'utilisateur peut réaliser la chaine de droit donnée
  *
  * @param	string		$pString	La chaine de droit à tester
  * @param 	CopixUser	$pUser		L'utilisateur dont on teste les droits
  * @return	boolean
  */
 public function assert($pStringType, $pString, $pUser)
 {
     if (!CopixModule::isEnabled('auth')) {
         return true;
     }
     return null;
 }
 /**
  * Récupération de la liste de tous les tests possibles
  */
 private function getAllTests()
 {
     $testables = array();
     foreach (CopixModule::getList() as $modulePosition => $moduleName) {
         $testables = array_merge($testables, $this->getTestableForModule($moduleName));
     }
     return $testables;
 }
 public function _createContent(&$toReturn)
 {
     $moduleName = CopixZone::getParam('moduleName');
     if (($message = CopixModule::updateModule($moduleName)) === true) {
         $toReturn = _i18n('install.module.update') . ' ' . $moduleName . ' <img src="' . _resource('img/tools/valid.png') . '" />';
     } else {
         $toReturn = _i18n('install.module.update') . ' ' . $moduleName . ' ' . _tag('popupinformation', array('img' => _resource('img/tools/delete.png')), $message);
         $toReturn .= '<div class="errorMessage">' . $message . '</div>';
     }
     return true;
 }
 /**
  * gets module list, we only get modules with parameters
  */
 function _getModuleWithParams()
 {
     $toReturn = array();
     foreach (CopixModule::getList() as $moduleName) {
         if (count(CopixConfig::getParams($moduleName)) > 0) {
             $informations = CopixModule::getInformations($moduleName);
             $toReturn[$moduleName] = $informations->description;
         }
     }
     return $toReturn;
 }
 /**
  * Création d'une instance d'un objet service
  * @param Object $pServiceDescription un objet qui décrit les composantes du service (avec les propriétés module, service, methode)
  */
 private static function _create($pServiceDescription, $pParams = array())
 {
     $serviceID = $pServiceDescription->module . '|' . $pServiceDescription->service;
     $execPath = CopixModule::getPath($pServiceDescription->module);
     $fileName = $execPath . COPIX_CLASSES_DIR . strtolower(strtolower($pServiceDescription->service)) . '.services.php';
     if (!Copix::RequireOnce($fileName)) {
         throw new CopixServicesException('Cannot load service from ' . $fileName);
     }
     //Nom des objets/méthodes à utiliser.
     $objName = 'Services' . $pServiceDescription->service;
     return new $objName($pParams);
 }
 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;
 }
 /**
  * Récupération de la liste des DAO d'un module donné
  * @param $pModuleName le nom du module
  */
 public function _getAllDAOForModule($pModuleName)
 {
     //on va rechercher l'ensemble des fichiers DAO pour le module donné.
     $toReturn = array();
     $filePath = CopixModule::getPath($pModuleName) . 'resources/*.dao.xml';
     //$filePath = str_replace ('/', '\\', $filePath);
     if (($files = glob($filePath)) !== false) {
         foreach ($files as $fileName) {
             $className = basename($fileName, '.dao.xml');
             $toReturn[] = $pModuleName . '|' . $className;
         }
     }
     return $toReturn;
 }
 public function process($pParams)
 {
     static $_init = false;
     static $htmlPath = '';
     extract($pParams);
     //check the initialisation
     if (!$_init) {
         $path = CopixModule::getPath('htmleditor') . COPIX_CLASSES_DIR;
         $htmlPath = CopixUrl::get() . 'js/FCKeditor/';
         require_once $path . 'fckeditor.php';
         $_init = true;
     }
     if (empty($content)) {
         $content = '&nbsp;';
     }
     //name of the textarea.
     if (empty($name)) {
         throw new CopixTemplateTagException('htmleditor: missing name parameter');
     } else {
         if (!isset($width)) {
             $width = CopixConfig::get('htmleditor|width');
             //$width = '100%';
         }
         if (!isset($height)) {
             $height = CopixConfig::get('htmleditor|height');
             //$height = '450px';
         }
         /*
          * ATTENTION les éléments de config viewPhototèque etc font doublon avec la sélection de la toolbarset, mais sont nécessaire à Copix
          * Par contre si on ne les load pas, on a une erreur de FCKeditor, il faut donc supprimer ce gestionnaire d'erreur sinon on se prend un alert javascript
          * le gestionnaire en question se trouve dans "FCKToolbarItems.GetItem" (chercher cette chaîne pour le trouver) et désactiver "alert( FCKLang.UnknownToolbarItem.replace( /%1/g, itemName ) ) ;
          */
         $oFCKeditor = new FCKeditor($name);
         $oFCKeditor->BasePath = $htmlPath;
         $oFCKeditor->Value = $content;
         $oFCKeditor->ToolbarSet = 'Copix';
         $oFCKeditor->Width = $width;
         $oFCKeditor->Height = $height;
         $oFCKeditor->Config['viewPhototheque'] = CopixModule::isEnabled('pictures') ? 'true' : 'false';
         $oFCKeditor->Config['viewCmsLink'] = CopixModule::isEnabled('cms') ? 'true' : 'false';
         $oFCKeditor->Config['viewLinkPopup'] = CopixModule::isEnabled('cms') ? 'true' : 'false';
         $oFCKeditor->Config['viewDocument'] = CopixModule::isEnabled('document') ? 'true' : 'false';
         $oFCKeditor->Config['viewMailto'] = 'true';
         // Configuration de la feuille de style à utiliser.
         //$oFCKeditor->Config['EditorAreaCSS'] = CopixUrl::get ().'styles/themes/hivers/hivers.css';
         $out = $oFCKeditor->CreateHtml();
     }
     return $out;
 }
 /**
  * Construction du message
  * @param    mixed   $pParams    tableau de paramètre ou clef
  * @param    mixed   $pContent   null (ImageProtect n'est pas censé recevoir de contenu)
  * @return   string  balise html contenant le bouton de selection i18n
  */
 public function process($pParams, $pContent = null)
 {
     if (!isset($pParams['name'])) {
         throw new CopixTagException("[ImageProtect] Missing name parameter");
     }
     if (!isset($pParams['id'])) {
         throw new CopixTagException("[ImageProtect] Missing id parameter");
     }
     $caption = isset($pParams['caption']) ? $pParams['caption'] : '';
     $listeModules = CopixModule::getList(false);
     sort($listeModules);
     $winSelecter = '<div id="divpopup_' . $pParams['id'] . '" style="display:none; border:1px; border-style:solid; border-color:#000; background-color:#FFF ;" >' . "\n\n" . '    <div id="divpopup1_' . $pParams['id'] . '" style="float:left;" >' . "\n" . '    ' . _tag('select', array('id' => 'selectmodule1_' . $pParams['id'], 'name' => 'selectmodule_' . $pParams['id'], 'values' => $listeModules, 'extra' => 'style="width:200px;" size="12"', 'emptyShow' => false)) . "\n" . '    </div>' . "\n\n" . '    <div id="divpopup2_' . $pParams['id'] . '" style="display:none;float:left;" >' . "\n" . '        ' . _tag('select', array('id' => 'selectmodule2_' . $pParams['id'], 'name' => 'selectmodule_' . $pParams['id'], 'values' => $listeModules, 'extra' => 'style="width:200px;" size="10"', 'emptyShow' => false)) . "\n" . '        <div id="divtrad_' . $pParams['id'] . '" > ' . "\n" . '             <textarea cols="30" rows="1" readonly="readonly" style="width:200px; overflow:hidden;" >traduction de  \'i18n</textarea>' . "\n" . '        </div>' . "\n" . '    </div>' . "\n\n" . '</div>' . "\n";
     $javascript = '<script type="text/javascript">' . "\n" . '$("' . $pParams['id'] . '").addEvent("mouseover", function (){' . "\n" . '    $("divpopup_' . $pParams['id'] . '").setStyles({' . "\n" . '        "position":"absolute",' . "\n" . '        "top" : 200+"px",' . "\n" . '        "left" : 200+"px",' . "\n" . '        "zIndex":"1000",' . "\n" . '        "display":"block"' . "\n" . '    });' . "\n" . '});' . "\n\n" . '$("selectmodule1_' . $pParams['id'] . '").addEvent("change", function () {' . "\n" . '    $("divpopup2_' . $pParams['id'] . '").setStyle("display","block");' . "\n" . '});' . "\n" . '</script>' . "\n";
     return '<label>' . $caption . '<input type="text" name="' . $pParams['name'] . '" /></label>' . "\n" . '<img src="' . _resource("img/icons/languages.gif") . '" id="' . $pParams['id'] . '" alt="' . _i18n('copix:common.buttons.select') . '" />' . "\n" . $winSelecter . $javascript;
 }
 public function _createContent(&$toReturn)
 {
     $moduleName = CopixZone::getParam('moduleName');
     $infos = CopixModule::getInformations($moduleName);
     $tpl = new CopixTpl();
     if (in_array($moduleName, CopixModule::getList())) {
         $arModule = CopixModule::getDependenciesForDelete($moduleName);
         $template = 'detailmoduledelete.tpl';
         $record = _dao('Copix:copixmodule')->get($moduleName);
         $tpl->assign('version', $record->version_cpm);
     } else {
         $arDependencies = CopixModule::getDependenciesForInstall($moduleName);
         $arModule = array();
         $arExtension = array();
         $install = true;
         foreach ($arDependencies as $key => $dependency) {
             if ($dependency->kind === 'module') {
                 if (CopixModule::testDependency($dependency)) {
                     $dependency->exists = true;
                     $dependency->isInabled = CopixModule::isEnabled($dependency->name);
                     $arModule[] = $dependency;
                 } else {
                     $dependency->exists = false;
                     $install = false;
                     $arModule[] = $dependency;
                 }
             } else {
                 if (CopixModule::testDependency($dependency)) {
                     $dependency->exists = true;
                     $arExtension[] = $dependency;
                 } else {
                     $dependency->exists = false;
                     $install = false;
                     $arExtension[] = $dependency;
                 }
             }
         }
         $tpl->assign('arExtension', $arExtension);
         $tpl->assign('install', $install);
         $template = 'detailmoduleinstall.tpl';
     }
     $tpl->assign('path', CopixModule::getPath($moduleName));
     $tpl->assign('arModule', $arModule);
     $tpl->assign('info', $infos);
     $tpl->assign('moduleName', $moduleName);
     $toReturn = $tpl->fetch($template);
     return true;
 }
 function _createContent(&$toReturn)
 {
     $tpl =& new CopixTpl();
     $toAdd = $this->params['toAdd'];
     $toDelete = $this->params['toDelete'];
     foreach ($toAdd as $key => $elem) {
         $toAdd[$key] = CopixModule::getInformations($elem);
     }
     foreach ($toDelete as $key => $elem) {
         $toDelete[$key] = CopixModule::getInformations($elem);
     }
     $tpl->assign('toAdd', $toAdd);
     $tpl->assign('toDelete', $toDelete);
     $toReturn = $tpl->fetch('install.confirm.tpl');
     return true;
 }
 public function setUp()
 {
     $config = CopixConfig::Instance();
     if (method_exists($config, 'copixtpl_clearPaths')) {
         $config->copixtpl_clearPaths();
         $config->copixtpl_addPath(COPIX_PROJECT_PATH . 'themes/');
         CopixTpl::clearFilePathCache();
     }
     $config->i18n_path_enabled = true;
     CopixTpl::setTheme('testtheme');
     CopixI18N::setLang('fr');
     CopixI18N::setCountry('FR');
     $this->themeDir = COPIX_PROJECT_PATH . 'themes/testtheme/';
     $this->defaultDir = COPIX_PROJECT_PATH . 'themes/default/';
     $this->moduleDir = CopixModule::getBasePath('copixtest') . '/copixtest/' . COPIX_TEMPLATES_DIR;
 }
 /**
  * Préparation de l'installation
  */
 public function processInstallFramework()
 {
     // find the current connection type (defined in /plugins/copixDB/profils.definition.xml)
     $config = CopixConfig::instance();
     $driver = $config->copixdb_getProfile();
     $typeDB = $driver->getDriverName();
     // Search each module install file
     $scriptName = 'prepareinstall.' . $typeDB . '.sql';
     $file = CopixModule::getPath('admin') . COPIX_INSTALL_DIR . 'scripts/' . $scriptName;
     CopixDB::getConnection()->doSQLScript($file);
     //make sure that copixmodule is reset
     CopixModule::reset();
     $tpl = new CopixTpl();
     $tpl->assignZone('MAIN', 'admin|installmodulewithdep', array('arModule' => array('generictools', 'auth', 'default', 'admin'), 'url_return' => _url('admin|database|done'), 'messageConfirm' => false));
     return _arDisplay($tpl);
 }
 /**
  * Vérifie que l'on est bien authentifié (A voir).
  */
 public function beforeAction()
 {
     $pServiceName = CopixRequest::get('wsname');
     $this->_path = CopixModule::getPath('wsserver');
     if (isset($pServiceName)) {
         $this->_wsname = $pServiceName;
         $arRes = _ioDAO('wsservices')->findBy(_daoSP()->addCondition('name_wsservices', '=', $pServiceName));
         if (count($arRes) == 0) {
             throw new CopixException('Service introuvable ' . htmlentities($pServiceName));
         }
         $wsServiceInfo = $arRes[0];
         $this->_exportModule = $wsServiceInfo->module_wsservices;
         $this->_exportClass = $wsServiceInfo->class_wsservices;
         $this->_exportClassFilename = CopixModule::getPath($this->_exportModule) . COPIX_CLASSES_DIR . strtolower($wsServiceInfo->file_wsservices);
     } else {
         $this->_exportModule = CopixConfig::get('wsserver|exportedModule');
         $this->_exportClass = CopixConfig::get('wsserver|exportedClass');
         $this->_exportClassFilename = CopixModule::getPath($this->_exportModule) . COPIX_CLASSES_DIR . strtolower(CopixConfig::get('wsserver|exportedClassFile'));
     }
 }
 /**
  * Récupération des modules dans l'ordre de leur description
  *
  */
 public function _getModuleOrderByDescription()
 {
     $arReturn = array();
     foreach (CopixModule::getList(true) as $module) {
         $temp = CopixModule::getInformations($module);
         $modulePath = CopixModule::getPath($module);
         if (is_dir($modulePath . COPIX_CLASSES_DIR)) {
             $servicesDir = opendir($modulePath . COPIX_CLASSES_DIR);
             while ($file = readdir($servicesDir)) {
                 if (preg_match("/class.php\$/", $file)) {
                     $temp->services[] = $file;
                 }
             }
         }
         if (isset($temp->services)) {
             $arReturn[] = $temp;
         }
     }
     return $arReturn;
 }
 /**
  * Méthode qui gère réellement les handlers
  *
  * @param string $pType le type de handler que l'on gère
  * @param strng $pTitle le title de la page
  * @return ActionReturn
  */
 private function _handlers($pType, $pTitle)
 {
     $ppo = new CopixPPO();
     $ppo->TITLE_PAGE = $pTitle;
     //On lance la récupération depuis les module.xml
     $handlers = CopixModule::getParsedModuleInformation('copix|' . $pType . 'handlers', '/moduledefinition/' . $pType . 'handlers/' . $pType . 'handler', array('CopixAuthParserHandler', 'parse' . $pType . 'Handler'));
     //Instanciation de l'objet qui récupère la config dans le fichier
     _classInclude('auth|useConfigurationFile');
     $configurationFile = new useConfigurationFile($pType);
     $activeHandler = $configurationFile->get();
     $ppo->handlers = array();
     //On tri les handlers activer
     foreach ($handlers as $key => $handler) {
         $ppo->handlers[$key] = false;
         if (in_array($key, $activeHandler)) {
             $ppo->handlers[$key] = true;
         }
     }
     $ppo->type = $pType;
     return _arPpo($ppo, 'handlers.list.tpl');
 }
 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;
 }
 /**
  * Says if we have to compile the file
  */
 function _mustCompile()
 {
     if ($this->config->compile_forced) {
         return true;
     }
     //no compiled file ?
     if (!is_readable($config->compile_dir . 'significanturl.php')) {
         return true;
     }
     if ($this->config->compile_check) {
         //compiled file, checking if there is an updated module.xml file since the compilation
         $compilationTime = filemtime($config->compile_dir . 'significanturl.php');
         $modulesList = CopixModule::getList();
         foreach ($modulesList as $dir) {
             $xmlFilename = COPIX_MODULE_PATH . $dir . '/module.xml';
             if (is_readable($xmlFilename)) {
                 if (filemtime($xmlFilename) > $compilationTime) {
                     return true;
                 }
             }
         }
     }
     return false;
 }
 public function process($pParams)
 {
     $size = '';
     if (isset($pParams['width'])) {
         $size .= ' width="' . $pParams['width'] . '"';
     }
     if (isset($pParams['height'])) {
         $size .= ' height="' . $pParams['height'] . '"';
     }
     $src = '';
     if (isset($pParams['resource'])) {
         $src = CopixUrl::getResource($pParams['resource']);
     }
     if (isset($pParams['id']) && $src == '') {
         if (!CopixModule::isEnabled('pictures')) {
             throw new CopixException('Vous devez activer le module pictures');
         }
         $arParams = array('picture_id' => $pParams['id']);
         if (isset($pParams['width'])) {
             $arParams['width'] = $pParams['width'];
         }
         if (isset($pParams['height'])) {
             $arParams['height'] = $pParams['height'];
         }
         $src = CopixUrl::get('pictures|default|getImage', $arParams);
     }
     $title = '';
     if (isset($pParams['title'])) {
         $title = $pParams['title'];
     }
     $alt = $title;
     if (isset($pParams['alt'])) {
         $alt = $pParams['alt'];
     }
     return '<img src="' . $src . '" alt="' . $alt . '" title="' . $title . '" ' . $size . ' />';
 }
 public function afterInstall()
 {
     // find the current connection type (defined in /plugins/copixDB/profils.definition.xml)
     $config = CopixConfig::instance();
     $driver = $config->copixdb_getProfile();
     $typeDB = $driver->getDriverName();
     // Search each module install file
     $scriptName = 'afterinstall.' . $typeDB . '.sql';
     $file = CopixModule::getPath('admin') . COPIX_INSTALL_DIR . 'scripts/' . $scriptName;
     CopixDB::getConnection()->doSQLScript($file);
 }
 /**
  * Permet d'exporter les classes des modukes
  *
  * @return CopixActionReturn
  */
 public function processExportClass()
 {
     $pModuleName = CopixRequest::get('moduleName');
     $pClassFileName = CopixRequest::get('classFileName');
     // si on a confirmé l'ajout
     if (CopixRequest::get('confirm')) {
         $pServiceName = trim(CopixRequest::get('serviceName'));
         $pClassName = CopixRequest::get('className');
         $pClassFileName = _request('classFileName');
         $pModuleName = _request('moduleName');
         // nom de service vide
         if ($pServiceName == '') {
             return _arRedirect(_url('admin|ExportClass', array('error' => 'serviceEmpty', 'moduleName' => $pModuleName, 'classFileName' => $pClassFileName)));
         }
         // verification si on n'a pas déja un service de ce nom
         $wsservices = _ioDao('wsservices')->findBy(_daoSP()->addCondition('name_wsservices', '=', $pServiceName));
         if (count($wsservices) > 0) {
             return _arRedirect(_url('admin|ExportClass', array('error' => 'serviceExists', 'moduleName' => $pModuleName, 'classFileName' => $pClassFileName)));
         }
         CopixDB::getConnection()->doQuery("insert into wsservices (name_wsservices, module_wsservices, file_wsservices, class_wsservices) values ('" . $pServiceName . "','" . $pModuleName . "','" . $pClassFileName . "', '" . $pClassName . "')");
         $res = 'Url du Webservice  : <a href="' . _url('wsserver||', array('wsname' => $pServiceName)) . '">' . _url('wsserver||', array('wsname' => $pServiceName)) . '</a><br/>' . "\n";
         $res .= 'Url du fichier wsdl : <a href="' . _url('wsserver|default|wsdl', array('wsname' => $pServiceName)) . '">' . _url('wsserver|default|wsdl', array('wsname' => $pServiceName)) . '</a><br/>' . "\n";
         $res .= '<br />';
         $res .= '<input type="button" value="' . _i18n('wsserver.back') . '" onclick="javascript: document.location=\'' . _url('admin|manageWebServices') . '\';" />';
         $tpl = new CopixTpl();
         $tpl->assign('MAIN', $res);
         return new CopixActionReturn(CopixActionReturn::DISPLAY, $tpl);
         // si on doit afficher le formulaire d'ajout
     } else {
         $ppo = new CopixPPO();
         $ppo->TITLE_PAGE = _i18n('wsserver.title.manageWebServices');
         $ppo->classFileName = $pClassFileName;
         $ppo->arErrors = array();
         // erreur "service existant" passée en paramètre
         if (_request('error') !== null) {
             $ppo->arErrors[] = _i18n('wsserver.error.' . _request('error'));
         }
         $ppo->ModuleName = $pModuleName;
         $arBefore = get_declared_classes();
         include CopixModule::getPath($pModuleName) . COPIX_CLASSES_DIR . $pClassFileName;
         $arAfter = get_declared_classes();
         $arClass = array_diff($arAfter, $arBefore);
         sort($arClass);
         if (count($arClass) == 0) {
             throw new Exception('Pas de classe à exporter');
         }
         $ppo->arClass = $arClass;
         return _arPPO($ppo, 'wsservices.add.php');
     }
 }
 /**
  * Analyse et découpe une sélecteur de ressource.
  *
  * Accepte les deux formes suivantes :
  * - chemin/vers/ressource.txt
  * - module|chemin/vers/ressource.txt
  *
  * Le '/' initial du chemin est supprimé.
  *
  * @param unknown_type $pResourcePath Sélecteur de la ressource.
  * @return array Tableau de la forme (chemin, nom_du_module ou null, chemin_du_module ou null)
  */
 private static function _parseResourcePath($pResourcePath)
 {
     if (!preg_match('@^((\\w+)?\\|)?/?(.+)$@', $pResourcePath, $parts)) {
         throw new CopixException(_i18n("copix:copix.error.resource.invalidResource", $pResourcePath));
     }
     list(, $modulePrefix, $moduleName, $resourcePath) = $parts;
     if (!empty($modulePrefix) && empty($moduleName)) {
         $moduleName = CopixContext::get();
     }
     return array($resourcePath, $moduleName, empty($moduleName) ? null : CopixModule::getPath($moduleName));
 }
 public function testObject()
 {
     $element = new CopixSessionObject($object = _ioClass('fooclass'), CopixModule::getPath('copixtest') . 'classes/fooclass.class.php');
     $this->assertEquals($element->getSessionObject(), $object);
     $serialized = serialize($element);
     $elementBack = unserialize($serialized);
     $this->assertEquals(strtolower(get_class($elementBack->getSessionObject())), 'fooclass');
     $this->assertEquals(1, $elementBack->getParam(1));
     $this->assertEquals(array(1, 2), $elementBack->getArrayWith(1, 2));
     $elementBack->test = 2;
     $this->assertEquals($elementBack->test, 2);
     $this->assertEquals($elementBack->getSessionObject()->test, 2);
     $elementBack->notExists = 3;
     $this->assertEquals($elementBack->notExists, 3);
     $this->assertEquals($elementBack->getSessionObject()->notExists, 3);
     $elementBack->setPublicPropertyTest(4);
     $this->assertEquals($elementBack->test, 4);
     $this->assertEquals($elementBack->getSessionObject()->test, 4);
     $this->assertEquals($elementBack->getPublicPropertyTest(), 4);
     $this->assertEquals($elementBack->getSessionObject()->getPublicPropertyTest(), 4);
     $elementBack->setPrivatePropertyTest(5);
     $this->assertEquals($elementBack->getPrivatePropertyTest(), 5);
     $this->assertEquals($elementBack->getSessionObject()->getPrivatePropertyTest(), 5);
     $elementBack->setUnknownProperty('notexists', 6);
     $this->assertEquals($elementBack->getUnknownProperty('notexists'), 6);
     $this->assertEquals($elementBack->getSessionObject()->getUnknownProperty('notexists'), 6);
     $this->assertEquals($elementBack->notexists, 6);
     $this->assertEquals($elementBack->getSessionObject()->notexists, 6);
 }
function smarty_function_htmleditor($params, &$smarty)
{
    static $_init = false;
    extract($params);
    //check the initialisation
    if (!$_init) {
        switch (strtolower(CopixConfig::get('htmleditor|type'))) {
            case 'htmlarea':
                CopixHtmlHeader::addJsCode('_editor_url = "' . CopixUrl::get() . 'js/htmlarea/";');
                //path of the library
                if (empty($htmlPath)) {
                    $htmlPath = CopixUrl::get() . 'js/htmlarea/';
                    //default path under CopiX
                }
                CopixHTMLHeader::addJSLink($htmlPath . 'htmlarea.js');
                CopixHTMLHeader::addJSLink($htmlPath . 'dialog.js');
                if (empty($lang)) {
                    $lang = CopixI18N::getLang();
                }
                CopixHTMLHeader::addJSLink($htmlPath . 'lang/' . $lang . '.js');
                CopixHTMLHeader::addCSSLink($htmlPath . 'htmlarea.css');
                CopixHTMLHeader::addJSLink($htmlPath . 'popupwin.js');
                $jsCode = 'HTMLArea.loadPlugin("TableOperations");
                HTMLArea.loadPlugin("InsertAnchor");
                HTMLArea.loadPlugin("TableToggleBorder");
                HTMLArea.loadPlugin("ContextMenu");';
                if (CopixModule::isValid('pictures') && CopixModule::isValid('cms') && CopixModule::isValid('document')) {
                    $jsCode = 'HTMLArea.loadPlugin("AstonTools");';
                }
                CopixHTMLHeader::addJSCode($jsCode);
                break;
            case 'fckeditor':
            default:
                $path = COPIX_MODULE_PATH . 'htmleditor/' . COPIX_CLASSES_DIR;
                $htmlPath = CopixUrl::get() . 'js/FCKeditor/';
                require_once $path . 'fckeditor.php';
                break;
        }
        //     CopixHTMLHeader::addJSLink ($path.'fckconfig.js');
        //		 CopixHTMLHeader::addJSLink ($path.'fckeditor.js');
        $_init = true;
    }
    if (empty($content)) {
        $content = '&nbsp;';
    }
    //name of the textarea.
    if (empty($name)) {
        $smarty->trigger_error('htmleditor: missing name parameter');
    } else {
        if (!$width) {
            $width = CopixConfig::get('htmleditor|width');
            //$width = '100%';
        }
        if (!$height) {
            $height = CopixConfig::get('htmleditor|height');
            //$height = '450px';
        }
        switch (strtolower(CopixConfig::get('htmleditor|type'))) {
            case 'htmlarea':
                $out = '<textarea id="' . $name . '" name="' . $name . '" style="width: ' . $width . 'px; height:' . $height . 'px;" >' . $content . '</textarea>';
                $out .= '<script type="text/javascript" defer="1">
         var editor' . $name . ' = null;
         editor' . $name . ' = new HTMLArea("' . $name . '");
         editor' . $name . '.registerPlugin("TableOperations");
         editor' . $name . '.registerPlugin("TableToggleBorder");
         editor' . $name . '.registerPlugin("InsertAnchor");
         editor' . $name . '.registerPlugin("ContextMenu");';
                if (CopixModule::isValid('pictures') && CopixModule::isValid('cms') && CopixModule::isValid('document')) {
                    $out .= 'editor' . $name . '.registerPlugin("AstonTools");';
                }
                $out .= 'editor' . $name . '.config.pageStyle = "@import url(\\"' . CopixUrl::get() . 'styles/styles_copix.css\\");";
         editor' . $name . '.generate ();
         </script>';
                break;
            case 'fckeditor':
            default:
                /*
                 * ATTENTION les éléments de config viewPhototèque etc font doublon avec la sélection de la toolbarset, mais sont nécessaire à Copix
                 * Par contre si on ne les load pas, on a une erreur de FCKeditor, il faut donc supprimer ce gestionnaire d'erreur sinon on se prend un alert javascript
                 * le gestionnaire en question se trouve dans "FCKToolbarItems.GetItem" (chercher cette chaîne pour le trouver) et désactiver "alert( FCKLang.UnknownToolbarItem.replace( /%1/g, itemName ) ) ;"
                 */
                $oFCKeditor = new FCKeditor($name);
                $oFCKeditor->BasePath = $htmlPath;
                $oFCKeditor->Value = $content;
                $oFCKeditor->ToolbarSet = 'Copix';
                $oFCKeditor->Width = $width;
                $oFCKeditor->Height = $height;
                $oFCKeditor->Config['viewPhototheque'] = CopixModule::isValid('pictures') ? 'true' : 'false';
                $oFCKeditor->Config['viewCmsLink'] = CopixModule::isValid('cms') ? 'true' : 'false';
                $oFCKeditor->Config['viewLinkPopup'] = CopixModule::isValid('cms') ? 'true' : 'false';
                $oFCKeditor->Config['viewDocument'] = CopixModule::isValid('document') ? 'true' : 'false';
                // Configuration de la feuille de style à utiliser.
                $oFCKeditor->Config['EditorAreaCSS'] = CopixUrl::get() . 'styles/styles_copix.css';
                $out = $oFCKeditor->CreateHtml();
                break;
        }
    }
    return $out;
}
 /**
  * Retourne vrai ou faux selon que l'admin est possible ou pas
  *
  * @return boolean
  */
 public function adminIsInstall()
 {
     return CopixModule::isEnabled('admin');
 }
 /**
  * Create code highlights
  * @param _wikielement codeelement
  */
 private function _treatCode($code)
 {
     //syntaxe highlight
     $code->data = preg_replace('/\\[code(.*?)\\]/', "", $code->data);
     $code->data = preg_replace('/\\[\\/code(.*?)\\]/', "", $code->data);
     require_once CopixModule::getPath('geshi') . 'lib/geshi/geshi.php';
     $lang = $code->other;
     $code = $code->data;
     $geshi = new GeSHi($code, $lang);
     $geshi->set_header_type(GESHI_HEADER_DIV);
     $code = $geshi->parse_code();
     $code = "\n" . '<div class="wiki_code">' . $code . '</div>' . "\n";
     return $code;
 }
Beispiel #29
0
"></script>
<!--[if IE]>
  <link rel="stylesheet" href="<?php 
echo _resource("styles/ie.css");
?>
" type="text/css"/>
<![endif]-->
</head>
<body>
<div id="allcontent">
<div id="banner"><span id="slogan">100% communautaire, 100%
professionnel... 200% efficace.</span></div>
<!-- end banner -->
<div id="menu">
<?php 
if (CopixModule::isEnabled('quicksearch')) {
    echo CopixZone::process('quicksearch|quicksearchform');
}
?>
<ul>
<?php 
if (isset($menuItems)) {
    foreach ($menuItems as $menuCaption => $menuUrl) {
        echo '<li><a href="' . $menuUrl . '">' . $menuCaption . '</a></li>';
    }
}
?>
</ul>
</div>
 <div id="maincontent">
  <h1 class="main"><?php 
 /**
  * Check if the module has a correct name
  * Check (if trusted module is on) if the module name belongs to the trusted module list
  * Check if there is a module.xml file
  * Handles a cache as it is called very very very often
  */
 function isValid($moduleName)
 {
     static $okNames = array();
     if (isset($okNames[$moduleName])) {
         return $okNames[$moduleName];
     }
     return $okNames[$moduleName] = CopixModule::_isValid($moduleName);
 }