/**
     * Get all the available languages for backoffice use (no module specified) or for a module backoffice.
     * Static function.
     *
     * @param string $module The codename of a module we want the languages of.
     * @param string $orderBy The ordering key to use (default : label_lng)
     * @return array(CMS_language) The available languages sorted by label
     * @access public
     */
    static function getAllLanguages($module = false, $orderBy = "label_lng")
    {
        static $languagesCatalog;
        if (isset($languagesCatalog[$module ? $module : 'all'])) {
            return $languagesCatalog[$module ? $module : 'all'];
        }
        $sql = "\n\t\t\tselect\n\t\t\t\tcode_lng\n\t\t\tfrom\n\t\t\t\tlanguages\n\t\t";
        if (!$module && $module != 'all') {
            $sql .= 'where availableForBackoffice_lng=1';
        }
        if ($orderBy) {
            $sql .= '
				order by
					' . $orderBy . '
			';
        }
        $q = new CMS_query($sql);
        $languages = array();
        while ($code = $q->getValue("code_lng")) {
            $lng = new CMS_language($code);
            if (!$lng->hasError() && (!$module || !in_array($module, $lng->getModulesDenied()))) {
                $languages[$code] = $lng;
            }
        }
        $languagesCatalog[$module ? $module : 'all'] = $languages;
        return $languages;
    }
Beispiel #2
0
 /**
  * Returns the html needed by the editor
  *
  * @return string
  * @access public
  */
 function getHTML()
 {
     $value = $this->_initialContent;
     // Editor base path
     $sBasePath = PATH_MAIN_WR . '/fckeditor/';
     $oFCKeditor = new FCKeditor($this->_formField);
     $oFCKeditor->BasePath = $sBasePath;
     $oFCKeditor->Config['AutoDetectLanguage'] = false;
     $oFCKeditor->Config['DefaultLanguage'] = $this->_language->getCode();
     $oFCKeditor->Value = $value;
     if (is_array($this->_editorAttributes)) {
         while (list($k, $v) = @each($this->_editorAttributes)) {
             if ($v != '') {
                 $oFCKeditor->{$k} = $v;
             }
         }
     }
     if (is_array($this->_editorConfigAttributes)) {
         while (list($k, $v) = @each($this->_editorConfigAttributes)) {
             if ($v != '') {
                 $oFCKeditor->Config[$k] = $v;
             }
         }
     }
     return $oFCKeditor->Create();
 }
Beispiel #3
0
 /**
  * Access to a filename path
  *
  * @access public
  * @param mixed $language : CMS_language or language code
  * @param boolean $withPath If false, only returns the filename
  * @param string $dataLocation Where does the data lies ? See CMS_resource constants
  * @param integer $relativeTo Can be web root or filesystem relative, see base constants
  * @param boolean $withFilename Should the function return the filename too or only the path ?
  * @return string
  */
 function getFilePath($language = false, $withPath = true, $relativeTo = PATH_RELATIVETO_WEBROOT, $withFilename = true)
 {
     if (!$this->_files) {
         $this->_retrieveLabels();
     }
     if (!$language && is_object($this->_language)) {
         $language = $this->_language->getCode();
     } elseif (is_a($language, 'CMS_language')) {
         $language = $language->getCode();
     }
     if (!$language) {
         return '';
     }
     if ($withPath) {
         switch ($relativeTo) {
             case PATH_RELATIVETO_WEBROOT:
                 $path = PATH_MODULES_FILES_WR . "/" . $this->_moduleCodename . "/" . RESOURCE_DATA_LOCATION_PUBLIC;
                 break;
             case PATH_RELATIVETO_FILESYSTEM:
                 $path = PATH_MODULES_FILES_FS . "/" . $this->_moduleCodename . "/" . RESOURCE_DATA_LOCATION_PUBLIC;
                 break;
         }
         if ($withFilename) {
             return $path . "/" . $this->_files[$language];
         } else {
             return $path;
         }
         return false;
     } elseif (isset($this->_files[$language])) {
         return $this->_files[$language];
     } else {
         return '';
     }
 }
Beispiel #4
0
 /**
  * Writes the news into persistence (MySQL for now), along with base data.
  *
  * @return boolean true on success, false on failure
  * @access public
  */
 function writeToPersistence()
 {
     //save data
     $closed = $this->_public === true ? 0 : 1;
     $sql_fields = "\n\t\t\towner_frm='" . $this->_ownerID . "',\n\t\t\tlanguage_frm='" . SensitiveIO::sanitizeSQLString($this->_language->getCode()) . "',\n\t\t\tname_frm='" . SensitiveIO::sanitizeSQLString($this->_name) . "',\n\t\t\tsource_frm='" . SensitiveIO::sanitizeSQLString($this->_source) . "',\n\t\t\tresponses_frm='" . SensitiveIO::sanitizeSQLString($this->_responses) . "',\n\t\t\tclosed_frm='" . $closed . "'";
     if ($this->_formID) {
         $sql = "\n\t\t\t\tupdate\n\t\t\t\t\tmod_cms_forms_formulars\n\t\t\t\tset\n\t\t\t\t\t" . $sql_fields . "\n\t\t\t\twhere\n\t\t\t\t\tid_frm='" . $this->_formID . "'\n\t\t\t";
     } else {
         $sql = "\n\t\t\t\tinsert into\n\t\t\t\t\tmod_cms_forms_formulars\n\t\t\t\tset\n\t\t\t\t\t" . $sql_fields;
     }
     $q = new CMS_query($sql);
     if ($q->hasError()) {
         $this->raiseError("Failed to write");
         return false;
     } elseif (!$this->_formID) {
         $this->_formID = $q->getLastInsertedID();
     }
     //then create the 4 defaut actions for this form if hasn't any
     if (!$this->hasActions()) {
         //Form answer excedeed
         $alreadyFoldAction = new CMS_forms_action();
         $alreadyFoldAction->setInteger("form", $this->_formID);
         $alreadyFoldAction->setInteger("type", CMS_forms_action::ACTION_ALREADY_FOLD);
         $alreadyFoldAction->setString("value", 'text');
         $alreadyFoldAction->writeToPersistence();
         //Save form results in DB
         $dbAction = new CMS_forms_action();
         $dbAction->setInteger("form", $this->_formID);
         $dbAction->setInteger("type", CMS_forms_action::ACTION_DB);
         $dbAction->writeToPersistence();
         //form OK
         $okAction = new CMS_forms_action();
         $okAction->setInteger("form", $this->_formID);
         $okAction->setInteger("type", CMS_forms_action::ACTION_FORMOK);
         $okAction->setString("value", 'text');
         $okAction->writeToPersistence();
         //form NOK
         $nokAction = new CMS_forms_action();
         $nokAction->setInteger("form", $this->_formID);
         $nokAction->setInteger("type", CMS_forms_action::ACTION_FORMNOK);
         $nokAction->setString("value", 'text');
         $nokAction->writeToPersistence();
     }
     return true;
 }
Beispiel #5
0
 /**
  * get admin object description
  *
  * @param mixed $language the language code (string) or the CMS_language (object) to use for description
  * @return string, the description
  * @access public
  */
 function getDescription($language)
 {
     if (is_a($language, "CMS_language")) {
         return $language->getMessage($this->_objectDescription, false, $this->_messagesModule);
     } else {
         $tmplanguage = new CMS_language($language);
         return $tmplanguage->getMessage($this->_objectDescription, false, $this->_messagesModule);
     }
 }
 /**
  * get object description
  *
  * @param mixed $language the language code (string) or the CMS_language (object) to use for description
  * @return string, the description
  * @access public
  */
 function getDescription($language)
 {
     //get object definition
     $objectDef = $this->getObjectDefinition();
     $description = new CMS_object_i18nm($objectDef->getValue("descriptionID"));
     if (is_a($language, "CMS_language")) {
         $subdesc = $description->getValue($language->getCode());
         return $language->getMessage($this->_objectDescription, array($subdesc), MOD_POLYMOD_CODENAME);
     } else {
         $subdesc = $description->getValue($language);
         $tmplanguage = new CMS_language($language);
         return $tmplanguage->getMessage($this->_objectDescription, array($subdesc), MOD_POLYMOD_CODENAME);
     }
 }
Beispiel #7
0
 /**
  * Import module from given array datas
  *
  * @param array $data The module datas to import
  * @param array $params The import parameters.
  *		array(
  *				create	=> false|true : create missing objects (default : true)
  *				update	=> false|true : update existing objects (default : true)
  *				files	=> false|true : use files from PATH_TMP_FS (default : true)
  *			)
  * @param CMS_language $cms_language The CMS_langage to use
  * @param array $idsRelation : Reference : The relations between import datas ids and real imported ids
  * @param string $infos : Reference : The import infos returned
  * @return boolean : true on success, false on failure
  * @access public
  */
 function fromArray($data, $params, $cms_language, &$idsRelation, &$infos)
 {
     if (!$this->getID()) {
         if (!isset($params['create']) || $params['create'] == true) {
             //if module does not exists yet, add codename and default admin frontend
             $this->setCodename($data['codename']);
             $this->setAdminFrontend('index.php');
         } else {
             $infos .= 'Module does not exists and parameter does not allow to create it ...' . "\n";
             return false;
         }
     }
     if (!$this->getID() && (!isset($params['create']) || $params['create'] == true) || $this->getID() && (!isset($params['update']) || $params['update'] == true)) {
         if (isset($data['labels'])) {
             //create labels
             $this->setLabel($cms_language->createMessage($this->_codename, $data['labels']));
         }
         if (!$this->writeToPersistence()) {
             $infos .= 'Error writing module ...' . "\n";
             return false;
         } elseif (isset($data['parameters']) && is_array($data['parameters']) && $data['parameters']) {
             //write module parameters
             $this->_hasParameters = 1;
             $filename = PATH_MODULES_FS . "/" . $this->_codename . "_rc.xml";
             if (!file_exists($filename)) {
                 $file = new CMS_file($filename);
                 $file->writeToPersistence(true);
             }
             $this->setAndWriteParameters($data['parameters']);
             $this->writeToPersistence();
         }
     }
     //append codename to parameters
     $params['module'] = $this->_codename;
     //add categories
     if (isset($data['categories']) && $data['categories']) {
         if (!CMS_moduleCategories_catalog::fromArray($data['categories'], $params, $cms_language, $idsRelation, $infos)) {
             $infos .= 'Error during categories import ...' . "\n";
             return false;
         }
     }
     if (!isset($params['files']) || $params['files'] == true) {
         //add JS
         if (isset($data['js']) && $data['js']) {
             foreach ($data['js'] as $jsFile) {
                 if ($jsFile && file_exists(PATH_TMP_FS . $jsFile)) {
                     if (file_exists(PATH_REALROOT_FS . $jsFile) && (!isset($params['updateJs']) || $params['updateJs'] == true) || (!isset($params['create']) || $params['create'] == true)) {
                         if (CMS_file::moveTo(PATH_TMP_FS . $jsFile, PATH_REALROOT_FS . $jsFile)) {
                             CMS_file::chmodFile(FILES_CHMOD, PATH_REALROOT_FS . $jsFile);
                         } else {
                             $infos .= 'Error during copy of file ' . $jsFile . ' ...' . "\n";
                         }
                     }
                 }
             }
         }
     }
     if (!isset($params['files']) || $params['files'] == true) {
         //add CSS
         if (isset($data['css']) && $data['css']) {
             foreach ($data['css'] as $cssFile) {
                 if ($cssFile && file_exists(PATH_TMP_FS . $cssFile)) {
                     if (file_exists(PATH_REALROOT_FS . $cssFile) && (!isset($params['updateCss']) || $params['updateCss'] == true) || (!isset($params['create']) || $params['create'] == true)) {
                         if (CMS_file::moveTo(PATH_TMP_FS . $cssFile, PATH_REALROOT_FS . $cssFile)) {
                             CMS_file::chmodFile(FILES_CHMOD, PATH_REALROOT_FS . $cssFile);
                         } else {
                             $infos .= 'Error during copy of file ' . $cssFile . ' ...' . "\n";
                         }
                     }
                 }
             }
         }
     }
     if (!isset($params['files']) || $params['files'] == true) {
         //add IMG
         if (isset($data['img']) && $data['img']) {
             foreach ($data['img'] as $imgFile) {
                 if ($imgFile && file_exists(PATH_TMP_FS . $imgFile)) {
                     if (file_exists(PATH_REALROOT_FS . $imgFile) && (!isset($params['updateImg']) || $params['updateImg'] == true) || (!isset($params['create']) || $params['create'] == true)) {
                         if (CMS_file::moveTo(PATH_TMP_FS . $imgFile, PATH_REALROOT_FS . $imgFile)) {
                             CMS_file::chmodFile(FILES_CHMOD, PATH_REALROOT_FS . $imgFile);
                         } else {
                             $infos .= 'Error during copy of file ' . $imgFile . ' ...' . "\n";
                         }
                     }
                 }
             }
         }
     }
     if (!isset($params['files']) || $params['files'] == true) {
         //add rows
         if (isset($data['rows']) && $data['rows']) {
             if (!CMS_rowsCatalog::fromArray($data['rows'], $params, $cms_language, $idsRelation, $infos)) {
                 $infos .= 'Error during rows import ...' . "\n";
                 return false;
             }
         }
     }
     return true;
 }
 * @package Automne
 * @subpackage admin
 * @author Sébastien Pauchet <*****@*****.**>
 */
//This page must be accessible by all users to avoid infinite loop if a website home page is redirected to an external website
require_once dirname(__FILE__) . '/../../cms_rc_frontend.php';
define("MESSAGE_PAGE_REDIRECT", 320);
define("MESSAGE_PAGE_PAGE", 1303);
define("MESSAGE_PAGE_PAGE_REDIRECT_ERROR", 703);
//load interface instance
$view = CMS_view::getInstance();
$view->addCSSFile('main');
$view->addCSSFile('info');
//force language if none exists
if (!isset($cms_language) || !is_object($cms_language)) {
    $cms_language = new CMS_language(ADMINISTRATION_DEFAULT_LANGUAGE);
}
//get page
if (isset($_GET['pageId']) && sensitiveIO::isPositiveInteger($_GET['pageId'])) {
    $page = CMS_tree::getPageById($_GET['pageId']);
}
if (isset($page) && !$page->hasError()) {
    $redirect = '';
    $redirectlink = $page->getRedirectLink(true);
    if ($redirectlink->hasValidHREF()) {
        if ($redirectlink->getLinkType() == RESOURCE_LINK_TYPE_INTERNAL) {
            $redirectPage = new CMS_page($redirectlink->getInternalLink());
            if (!$redirectPage->hasError()) {
                $label = $cms_language->getMessage(MESSAGE_PAGE_PAGE) . ' "' . $redirectPage->getTitle() . '" (' . $redirectPage->getID() . ')';
            }
            $redirect = '<a href="' . $redirectPage->getURL(false, false, PATH_RELATIVETO_WEBROOT, true) . '">' . io::htmlspecialchars($label) . '</a>';
    CMS_grandFather::raiseError('Missing language code ... ');
    $view->setContent($content);
    $view->show();
}
$cms_message = '';
switch ($action) {
    case 'save':
        if ($code) {
            $language = CMS_languagesCatalog::getByCode($code);
            if (!$language || $language->hasError()) {
                CMS_grandFather::raiseError('Unknown language code : ' . $code);
                $view->setContent($content);
                $view->show();
            }
        } else {
            $language = new CMS_language();
            $language->setCode($selectedCode);
            $languagesCodes = CMS_languagesCatalog::getAllLanguagesCodes();
            $language->setLabel($languagesCodes[$selectedCode]);
        }
        $language->setDateFormat($dateFormat);
        if ($modulesDenied) {
            $modulesDenied = array_map('trim', explode(',', $modulesDenied));
            $language->setModulesDenied($modulesDenied);
        } else {
            $language->setModulesDenied(array());
        }
        $language->setAvailableForBackoffice($admin);
        if ($language->writeToPersistence()) {
            $content = array('success' => true);
            $cms_message = $cms_language->getMessage(MESSAGE_ACTION_OPERATION_DONE);
Beispiel #10
0
 /**
  * Set language
  *
  * @param CMS_language $language
  * @return boolean
  * @access public
  */
 function setLanguage($language)
 {
     // Check if CMS_contactData object
     if (is_a($language, "CMS_language") && !$language->hasError()) {
         $this->_language = $language;
         return true;
     } else {
         $language = new CMS_language($language);
         if ($language && !$language->hasError()) {
             $this->_language = $language;
             return true;
         }
     }
     $this->raiseError("Object required, or available language code : " . $language);
     return false;
 }
Beispiel #11
0
 /**
  * Returns the label for current status.
  *
  * @param CMS_language $language : Current language to get label
  * @return string label
  * @access public
  */
 function getStatusLabel($language)
 {
     //Hack : check for non-sense status (usually it is a page which creation is not properly done)
     if ($this->_publication == RESOURCE_PUBLICATION_NEVERVALIDATED && !$this->_editions) {
         $this->addEdition(RESOURCE_EDITION_CONTENT, $user);
         $this->writeToPersistence();
     }
     $img_status = $this->_publication == RESOURCE_PUBLICATION_NEVERVALIDATED ? "rond" : "carre";
     if ($this->_publication == RESOURCE_PUBLICATION_PUBLIC) {
         $img_status .= "_pub";
     }
     if ($this->_proposedFor == RESOURCE_LOCATION_DELETED) {
         $img_status .= "_sup";
     }
     if ($this->_proposedFor == RESOURCE_LOCATION_ARCHIVED) {
         $img_status .= "_arc";
     }
     if (($this->_editions & RESOURCE_EDITION_BASEDATA || $this->_editions & RESOURCE_EDITION_CONTENT) && !($this->_validationsRefused & RESOURCE_EDITION_BASEDATA) && !($this->_validationsRefused & RESOURCE_EDITION_CONTENT)) {
         $img_status .= "-o";
     } elseif ($this->_validationsRefused & RESOURCE_EDITION_BASEDATA || $this->_validationsRefused & RESOURCE_EDITION_CONTENT || $this->_validationsRefused & RESOURCE_EDITION_LOCATION) {
         $img_status .= "-r";
     } else {
         $img_status .= "-v";
     }
     if ($this->_editions & RESOURCE_EDITION_SIBLINGSORDER) {
         if ($this->_validationsRefused & RESOURCE_EDITION_SIBLINGSORDER) {
             $img_siblings = "orderefuse";
         } else {
             $img_siblings = "ordervalider";
         }
     }
     if ($this->_editions & RESOURCE_EDITION_MOVE) {
         if ($this->_validationsRefused & RESOURCE_EDITION_MOVE) {
             $img_siblings = "mouvrefuse";
         } else {
             $img_siblings = "mouvalider";
         }
     }
     if ($this->getDraft() && $img_status == 'rond-o') {
         $img_status = 'draft';
     }
     $label = $this->_getStatusLabel($img_status);
     $label .= isset($img_siblings) ? ', ' . $this->_getStatusLabel($img_siblings) : '';
     if ($lockUserId = $this->getLock()) {
         $lockUser = CMS_profile_usersCatalog::getById($lockUserId);
         $lockDate = $this->getLockDate();
         if (is_object($lockUser) && is_object($lockDate)) {
             $label .= ' - ' . $language->getMessage(self::MESSAGE_STATUS_LOCKEDBY) . ' ' . $lockUser->getFullName() . ' (' . $lockDate->getLocalizedDate($language->getDateFormat() . ' - H:i:s') . ')';
         } else {
             $label .= ' - ' . $language->getMessage(self::MESSAGE_STATUS_LOCKED);
         }
     }
     if ($this->getDraft()) {
         $label .= $img_status != 'draft' ? ' - ' . $language->getMessage(self::MESSAGE_STATUS_DRAFT) : $language->getMessage(self::MESSAGE_STATUS_DRAFT);
     }
     /*if ($this->getDraft() && $img_status == 'rond-o') {
     			$label .= $language->getMessage(self::MESSAGE_STATUS_DRAFT);
     		}*/
     return $label;
 }
Beispiel #12
0
 /**
  * Create messages.
  * @param	string	$sCodename	Module's codename.
  * @param	array	$aMessages	Localised message. $sLanguageCode => $sMessage
  * @return					Id of the inserted message.
  */
 public function createMessage($sCodename, $aMessages)
 {
     $iId = CMS_language::getNextMessageId($sCodename);
     foreach ($aMessages as $sLanguageCode => $sMessage) {
         $oQuery = new CMS_query("\n\t\t\t\tINSERT INTO\n\t\t\t\t\tmessages\n\t\t\t\tSET\n\t\t\t\t\tid_mes = " . SensitiveIO::sanitizeSQLString($iId) . ",\n\t\t\t\t\tmodule_mes = '" . SensitiveIO::sanitizeSQLString($sCodename) . "',\n\t\t\t\t\tlanguage_mes = '" . SensitiveIO::sanitizeSQLString($sLanguageCode) . "',\n\t\t\t\t\tmessage_mes = '" . SensitiveIO::sanitizeSQLString($sMessage) . "'\n\t\t\t");
     }
     return $iId;
 }
Beispiel #13
0
    $view->show();
}
//check user rights
if (!$cms_user->hasAdminClearance(CLEARANCE_ADMINISTRATION_EDITVALIDATEALL)) {
    CMS_grandFather::raiseError('User has no rights on language management');
    $view->show();
}
//load item messages
if ($code) {
    $language = CMS_languagesCatalog::getByCode($code);
    if (!$language || $language->hasError()) {
        CMS_grandFather::raiseError('Unknown language code : ' . $code);
        $view->show();
    }
} else {
    $language = new CMS_language();
}
$winLabel = sensitiveIO::sanitizeJSString($cms_language->getMessage(MESSAGE_PAGE_LANGUAGE_MANAGEMENT) . " :: " . $cms_language->getMessage(MESSAGE_PAGE_CREATE_UPDATE));
$languagesCodes = CMS_languagesCatalog::getAllLanguagesCodes();
$comboLanguages = array(array('format' => '', 'label' => '-'));
foreach ($languagesCodes as $languageCode => $label) {
    $comboLanguages[] = array('code' => $languageCode, 'label' => $languageCode . ' : ' . $label);
}
$comboLanguages = sensitiveIO::jsonEncode($comboLanguages);
$datesFormat = array(array('format' => '', 'label' => '-'), array('format' => 'd/m/Y', 'label' => date('d/m/Y') . ' (d/m/Y)'), array('format' => 'm/d/Y', 'label' => date('m/d/Y') . ' (m/d/Y)'), array('format' => 'Y/m/d', 'label' => date('Y/m/d') . ' (Y/m/d)'));
$datesFormat = sensitiveIO::jsonEncode($datesFormat);
$modules = CMS_modulesCatalog::getAll();
$modulesDenied = $language->getModulesDenied();
$availableModules = $excludedModules = array();
foreach ($modules as $codename => $module) {
    if (in_array($codename, $modulesDenied)) {
 /**
  * This function is called to catch and launch all FE forms actions
  *
  * @param array $formIDs : the forms ids to check for actions
  * @param integer $pageID : the current page id
  * @param boolean $public : the data status
  * @param string $languageCode : the language code used
  * @param reference array $polymodFormsError : the forms error status to return
  * @param reference array $polymodFormsItem : reference to the forms item
  * @return boolean : true on success, false on failure
  * @access public
  * @static
  */
 static function formActions($formIDs, $pageID, $languageCode, $public, &$polymodFormsError, &$polymodFormsItems)
 {
     global $cms_language, $cms_user;
     if (!is_array($formIDs)) {
         return false;
     }
     foreach ($formIDs as $formID) {
         if (io::request('formID') && io::request('formID') == $formID) {
             if (!isset($cms_language) || $cms_language->getCode() != $languageCode) {
                 $cms_language = new CMS_language($languageCode);
             }
             //instanciate item
             $item = '';
             if (io::request('object', 'io::isPositiveInteger', '')) {
                 //check user rights on module
                 $module = CMS_poly_object_catalog::getModuleCodenameForObjectType(io::request('object'));
                 //Check user rights
                 //here assume than user should only need the view right on module, because admin right allow Automne administration access
                 if (!is_object($cms_user) || !$cms_user->hasModuleClearance($module, CLEARANCE_MODULE_VIEW)) {
                     CMS_grandFather::raiseError('No user found or user has no administration rights on module ' . $module);
                     return false;
                 }
                 //instanciate object
                 $object = CMS_poly_object_catalog::getObjectDefinition(io::request('object'));
                 if ($object && io::request('item', 'io::isPositiveInteger', '')) {
                     $search = new CMS_object_search($object, false);
                     $search->addWhereCondition('item', io::request('item'));
                     $items = $search->search();
                     if (isset($items[io::request('item')])) {
                         $item = $items[io::request('item')];
                     } else {
                         $item = new CMS_poly_object($object->getID());
                     }
                 } else {
                     $item = new CMS_poly_object($object->getID());
                 }
             }
             if (is_object($item) && !$item->hasError()) {
                 //get item fieldsObjects
                 $fieldsObjects =& $item->getFieldsObjects();
                 //checks and assignments
                 $item->setDebug(false);
                 //first, check mandatory values
                 foreach ($fieldsObjects as $fieldID => $aFieldObject) {
                     //if field is part of formular
                     if (isset($_REQUEST['polymodFields'][$fieldID])) {
                         if (!$item->checkMandatory($fieldID, $_REQUEST, '')) {
                             $polymodFormsError[$formID]['required'][$fieldID] = $fieldID;
                         }
                     }
                 }
                 //second, set values for all fields
                 foreach ($fieldsObjects as $fieldID => $aFieldObject) {
                     //if field is part of formular
                     if (isset($_REQUEST['polymodFields'][$fieldID])) {
                         //if form use a callback, call it
                         //do not use call_user_function here
                         $funcName = 'form_' . $formID . '_' . $fieldID;
                         if (!$item->setValues($fieldID, $_REQUEST, '')) {
                             $polymodFormsError[$formID]['malformed'][] = $fieldID;
                         } elseif (!isset($polymodFormsError[$formID]['required'][$fieldID]) && function_exists('form_' . $formID . '_' . $fieldID) && !$funcName($formID, $fieldID, $item)) {
                             $polymodFormsError[$formID]['malformed'][] = $fieldID;
                         }
                     }
                 }
                 //set publication dates if needed
                 if (isset($_REQUEST['polymodFields']) && $_REQUEST['polymodFields']) {
                     if ($object->isPrimaryResource()) {
                         // Dates management
                         $dt_beg = new CMS_date();
                         $dt_beg->setDebug(false);
                         $dt_beg->setFormat($cms_language->getDateFormat());
                         $dt_end = new CMS_date();
                         $dt_end->setDebug(false);
                         $dt_end->setFormat($cms_language->getDateFormat());
                         if (!($dt_set_1 = $dt_beg->setLocalizedDate(@$_REQUEST["pub_start"], true))) {
                             $polymodFormsError[$formID]['malformed'][] = 'pub_start';
                         }
                         if (!($dt_set_2 = $dt_end->setLocalizedDate(@$_REQUEST["pub_end"], true))) {
                             $polymodFormsError[$formID]['malformed'][] = 'pub_end';
                         }
                         //if $dt_beg && $dt_end, $dt_beg must be lower than $dt_end
                         if (!$dt_beg->isNull() && !$dt_end->isNull()) {
                             if (CMS_date::compare($dt_beg, $dt_end, '>')) {
                                 $polymodFormsError[$formID]['malformed'][] = 'pub_start';
                                 $polymodFormsError[$formID]['malformed'][] = 'pub_end';
                                 $dt_set_1 = $dt_set_2 = false;
                             }
                         }
                         if ($dt_set_1 && $dt_set_2) {
                             $item->setPublicationDates($dt_beg, $dt_end);
                         }
                     }
                 }
                 //Check form token
                 if (!isset($_POST["atm-token"]) || !CMS_session::checkToken(MOD_POLYMOD_CODENAME . '-' . $formID, $_POST["atm-token"])) {
                     $polymodFormsError[$formID]['error'][] = 'form-token';
                     return false;
                 } else {
                     //Token is used so expire it
                     CMS_session::expireToken(MOD_POLYMOD_CODENAME . '-' . $formID);
                 }
                 if (!$polymodFormsError[$formID]) {
                     //save the data
                     if (!$item->writeToPersistence()) {
                         $polymodFormsError[$formID]['error'][] = 'write';
                         $polymodFormsError[$formID]['filled'] = 0;
                     } else {
                         $polymodFormsError[$formID]['filled'] = 1;
                         //if form use a callback, call it
                         //do not use call_user_function here
                         $funcName = 'form_' . $formID;
                         if (function_exists('form_' . $formID) && !$funcName($formID, $item)) {
                             $polymodFormsError[$formID]['filled'] = 0;
                             $polymodFormsError[$formID]['error'][] = 'callback';
                         }
                     }
                     //if item is a primary resource, unlock it
                     if ($object->isPrimaryResource()) {
                         $item->unlock();
                     }
                 } else {
                     $polymodFormsError[$formID]['filled'] = 0;
                 }
                 //save item for later use
                 $polymodFormsItems[$formID] = $item;
             } else {
                 $polymodFormsError[$formID]['filled'] = 0;
                 $polymodFormsError[$formID]['error'][] = 'right';
                 CMS_grandFather::raiseError('No item found or user has no administration rights on item... ');
                 return false;
             }
         }
     }
     return true;
 }
Beispiel #15
0
 /**
  * get object label
  *
  * @return string : the label
  * @access public
  */
 function getLabel()
 {
     global $cms_language;
     if (!is_object($this->_subfieldValues[0])) {
         $this->raiseError("No subField to get for label : " . print_r($this->_subfieldValues, true));
         return false;
     }
     $date = new CMS_date();
     $date->setFromDBValue($this->_subfieldValues[0]->getValue());
     $params = $this->getParamsValues();
     if (!is_object($cms_language)) {
         $cms_language = new CMS_language(APPLICATION_DEFAULT_LANGUAGE);
     }
     if (!$date->isNull()) {
         if (!$params['withHMS']) {
             return $date->getLocalizedDate($cms_language->getDateFormat());
         } else {
             return $date->getLocalizedDate($cms_language->getDateFormat()) . ' ' . $date->getHour() . ':' . $date->getMinute() . ':' . $date->getSecond();
         }
     }
     return '';
 }