Beispiel #1
0
 /**
  * Un-delete an object proposed for deletion (only for primary resource object type)
  *
  * @return boolean true on success, false on failure
  * @access public
  */
 function undelete()
 {
     if ($this->_objectResourceStatus != 1) {
         return false;
     }
     $this->removeProposedLocation();
     if (parent::writeToPersistence()) {
         global $cms_user;
         //get Object definition
         $objectDef = $this->getObjectDefinition();
         //get module codename
         $polyModuleCodename = $objectDef->getValue('module');
         //Log action
         $log = new CMS_log();
         $language = $cms_user->getLanguage();
         $log->logResourceAction(CMS_log::LOG_ACTION_RESOURCE_UNDELETE, $cms_user, $polyModuleCodename, $this->getStatus(), 'Item \'' . $this->getLabel() . '\' (' . $objectDef->getLabel($language) . ')', $this);
         return true;
     } else {
         return false;
     }
 }
Beispiel #2
0
 /**
  * Writes the page into persistence (MySQL for now), along with base data.
  *
  * @return boolean true on success, false on failure
  * @access public
  */
 function writeToPersistence()
 {
     parent::writeToPersistence();
     $isNew = $this->_pageID === NULL;
     // Inform modules of the page creation
     $modules = CMS_modulesCatalog::getAll('id');
     foreach ($modules as $codename => $module) {
         if (method_exists($module, 'pagePreSave')) {
             $module->pagePreSave($this, $isNew);
         }
     }
     //save page data
     $sql_fields = "\n\t\t\tresource_pag='" . parent::getID() . "',\n\t\t\tremindedEditorsStack_pag='" . SensitiveIO::sanitizeSQLString($this->_remindedEditors->getTextDefinition()) . "',\n\t\t\tlastReminder_pag='" . $this->_lastReminder->getDBValue() . "',\n\t\t\ttemplate_pag='" . $this->_templateID . "',\n\t\t\tlastFileCreation_pag='" . $this->_lastFileCreation->getDBValue() . "',\n\t\t\turl_pag='" . SensitiveIO::sanitizeSQLString($this->_pageURL) . "',\n\t\t\tprotected_pag='" . ($this->_protected ? 1 : 0) . "',\n\t\t\thttps_pag='" . ($this->_https ? 1 : 0) . "'\n\t\t";
     if ($this->_pageID) {
         $sql = "\n\t\t\t\tupdate\n\t\t\t\t\tpages\n\t\t\t\tset\n\t\t\t\t\t" . $sql_fields . "\n\t\t\t\twhere\n\t\t\t\t\tid_pag='" . $this->_pageID . "'\n\t\t\t";
     } else {
         $sql = "\n\t\t\t\tinsert into\n\t\t\t\t\tpages\n\t\t\t\tset\n\t\t\t\t\t" . $sql_fields;
     }
     $q = new CMS_query($sql);
     if ($q->hasError()) {
         return false;
     } elseif (!$this->_pageID) {
         $this->_pageID = $q->getLastInsertedID();
     }
     //save base data if modified
     if ($this->_editedBaseData) {
         $sql_fields = "\n\t\t\t\tpage_pbd='" . $this->_pageID . "',\n\t\t\t\ttitle_pbd='" . SensitiveIO::sanitizeSQLString($this->_editedBaseData["title"]) . "',\n\t\t\t\tlinkTitle_pbd='" . SensitiveIO::sanitizeSQLString($this->_editedBaseData["linkTitle"]) . "',\n\t\t\t\tkeywords_pbd='" . SensitiveIO::sanitizeSQLString($this->_editedBaseData["keywords"]) . "',\n\t\t\t\tdescription_pbd='" . SensitiveIO::sanitizeSQLString($this->_editedBaseData["description"]) . "',\n\t\t\t\treminderPeriodicity_pbd='" . SensitiveIO::sanitizeSQLString($this->_editedBaseData["reminderPeriodicity"]) . "',\n\t\t\t\treminderOn_pbd='" . $this->_editedBaseData["reminderOn"]->getDBValue() . "',\n\t\t\t\treminderOnMessage_pbd='" . SensitiveIO::sanitizeSQLString($this->_editedBaseData["reminderOnMessage"]) . "',\n\t\t\t\tcategory_pbd='" . SensitiveIO::sanitizeSQLString($this->_editedBaseData["category"]) . "',\n\t\t\t\tauthor_pbd='" . SensitiveIO::sanitizeSQLString($this->_editedBaseData["author"]) . "',\n\t\t\t\treplyto_pbd='" . SensitiveIO::sanitizeSQLString($this->_editedBaseData["replyto"]) . "',\n\t\t\t\tcopyright_pbd='" . SensitiveIO::sanitizeSQLString($this->_editedBaseData["copyright"]) . "',\n\t\t\t\tlanguage_pbd='" . SensitiveIO::sanitizeSQLString($this->_editedBaseData["language"]) . "',\n\t\t\t\trobots_pbd='" . SensitiveIO::sanitizeSQLString($this->_editedBaseData["robots"]) . "',\n\t\t\t\tpragma_pbd='" . SensitiveIO::sanitizeSQLString($this->_editedBaseData["pragma"]) . "',\n\t\t\t\trefresh_pbd='" . SensitiveIO::sanitizeSQLString($this->_editedBaseData["refresh"]) . "',\n\t\t\t\tredirect_pbd='" . SensitiveIO::sanitizeSQLString($this->_editedBaseData["redirect"]->getTextDefinition()) . "',\n\t\t\t\trefreshUrl_pbd='" . SensitiveIO::sanitizeSQLString($this->_editedBaseData["refreshUrl"]) . "',\n\t\t\t\tmetas_pbd='" . SensitiveIO::sanitizeSQLString($this->_editedBaseData["metas"]) . "',\n\t\t\t\tcodename_pbd='" . SensitiveIO::sanitizeSQLString($this->_editedBaseData["codename"]) . "'\n\t\t\t";
         if ($this->_baseDataID) {
             $sql = "\n\t\t\t\t\tupdate\n\t\t\t\t\t\tpagesBaseData_edited\n\t\t\t\t\tset\n\t\t\t\t\t\t" . $sql_fields . "\n\t\t\t\t\twhere\n\t\t\t\t\t\tid_pbd='" . $this->_baseDataID . "'\n\t\t\t\t";
         } else {
             $sql = "\n\t\t\t\t\tinsert into\n\t\t\t\t\t\tpagesBaseData_edited\n\t\t\t\t\tset\n\t\t\t\t\t\t" . $sql_fields;
         }
         $q = new CMS_query($sql);
         if (!$q->hasError() && !$this->_baseDataID) {
             $this->_baseDataID = $q->getLastInsertedID();
         }
     }
     // Inform modules of the page creation
     $modules = CMS_modulesCatalog::getAll('id');
     foreach ($modules as $codename => $module) {
         if (method_exists($module, 'pagePostSave')) {
             $module->pagePostSave($this, $isNew);
         }
     }
     return true;
 }
Beispiel #3
0
 /**
  * Writes the object data into persistence (MySQL for now), along with base data.
  *
  * @return boolean true on success, false on failure
  * @access public
  */
 function writeToPersistence()
 {
     if ($this->_hasResource()) {
         //write parent
         parent::writeToPersistence();
     }
     //save data
     $sql_fields = "";
     $count = 0;
     foreach ($this->_tableData as $label => $aData) {
         $sql_fields .= $count ? "," : '';
         $count++;
         switch ($aData[0]) {
             case 'integer':
             case 'positiveInteger':
             case 'email':
                 if (is_null($this->_tableData[$label][1])) {
                     $sql_fields .= " `" . $label . $this->_tableSufix . "`=NULL";
                 } else {
                     $sql_fields .= " `" . $label . $this->_tableSufix . "`='" . SensitiveIO::sanitizeSQLString($this->_tableData[$label][1]) . "'";
                 }
                 break;
             case 'string':
             case 'html':
             case 'image':
             case 'file':
             case 'internalLink':
             case 'externalLink':
             case 'boolean':
             case 'linkType':
                 $sql_fields .= " `" . $label . $this->_tableSufix . "`='" . SensitiveIO::sanitizeSQLString($this->_tableData[$label][1]) . "'";
                 break;
             case 'date':
                 $sql_fields .= " `" . $label . $this->_tableSufix . "`='" . $this->_tableData[$label][1]->getDBValue() . "'";
                 break;
             case 'resource':
                 $sql_fields .= " `" . $label . $this->_tableSufix . "`='" . parent::getID() . "'";
                 break;
             case 'order':
                 /*
                  * ici il manque un truc pour pouvoir attribuer automatiquement les nouveaux ordres (lors de la création d'un objet)
                  * pb : savoir à quoi il se rapporte (clause where dans les fonctions associées aux ordre)
                  * solution ? lier ça direct dans la definition de la table (tableau _tableData ou autre variable) avantages, inconvénients ??? à voir
                  */
                 $sql_fields .= " `" . $label . $this->_tableSufix . "`='" . $this->_tableData[$label][1] . "'";
                 break;
             default:
                 if (class_exists($aData[0])) {
                     if (method_exists($this->_tableData[$label][1], "getID")) {
                         $sql_fields .= " `" . $label . $this->_tableSufix . "`='" . $this->_tableData[$label][1]->getID() . "'";
                     } elseif (method_exists($this->_tableData[$label][1], "getTextDefinition")) {
                         $sql_fields .= " `" . $label . $this->_tableSufix . "`='" . SensitiveIO::sanitizeSQLString($this->_tableData[$label][1]->getTextDefinition()) . "'";
                     } else {
                         $this->raiseError("Unknown save method for object " . $aData[0]);
                         return false;
                     }
                 } else {
                     $sql_fields .= " `" . $label . $this->_tableSufix . "`='" . SensitiveIO::sanitizeSQLString($this->_tableData[$label][1]) . "'";
                 }
                 break;
         }
     }
     $from = $this->_hasResource() ? $this->_tableName . '_edited' : $this->_tableName;
     if ($this->_ID) {
         $sql = "\n\t\t\t\tupdate\n\t\t\t\t\t" . $from . "\n\t\t\t\tset\n\t\t\t\t\t" . $sql_fields . "\n\t\t\t\twhere\n\t\t\t\t\t" . $this->_idName . $this->_tableSufix . "='" . $this->_ID . "'\n\t\t\t";
     } else {
         $sql = "\n\t\t\t\tinsert into\n\t\t\t\t\t" . $from . "\n\t\t\t\tset\n\t\t\t\t\t" . $sql_fields;
     }
     //pr($sql);
     $q = new CMS_query($sql);
     if ($q->hasError()) {
         $this->raiseError("Database write error");
         return false;
     } elseif (!$this->_ID) {
         $this->_ID = $q->getLastInsertedID();
     }
     return true;
 }