Пример #1
0
 function save()
 {
     // nothing changed, then don't save (so the timestamp remains the same, so it does not appear as if it needs translation again)!
     if ($this->changed == false) {
         return;
     }
     global $db;
     //$query = "replace into " . Config::dbSurvey() . "_settings (suid, object, objecttype, name, value, mode, language) values(";
     $query = "replace into " . Config::dbSurvey() . "_settings (suid, object, objecttype, name, value, mode, language) values(?,?,?,?,?,?,?)";
     $suid = $this->getSuid();
     $object = $this->getObject();
     $objecttype = $this->getObjectType();
     $name = $this->getName();
     $value = $this->getValue();
     if ($this->getMode() != "") {
         $mode = $this->getMode();
     } else {
         $mode = getSurveyMode();
     }
     if ($this->getLanguage() != "") {
         $language = $this->getLanguage();
     } else {
         $language = getSurveyLanguage();
     }
     $bp = new BindParam();
     $bp->add(MYSQL_BINDING_INTEGER, $suid);
     $bp->add(MYSQL_BINDING_INTEGER, $object);
     $bp->add(MYSQL_BINDING_STRING, $objecttype);
     $bp->add(MYSQL_BINDING_STRING, $name);
     $bp->add(MYSQL_BINDING_STRING, $value);
     $bp->add(MYSQL_BINDING_INTEGER, $mode);
     $bp->add(MYSQL_BINDING_STRING, $language);
     $db->executeBoundQuery($query, $bp->get());
     /* save history if value change */
     if ($this->previousvalue != $value) {
         $track = new Track($suid, $object, $objecttype);
         $track->addEntry($name, $value);
     }
     // update previous values now we saved
     $this->previousvalue = $this->getValue();
     $this->previousobject = $this->getObject();
     $this->previoussuid = $this->getSuid();
     $this->previouslanguage = $this->getLanguage();
     $this->previousmode = $this->getMode();
     $this->previousobjecttype = $this->getObjectType();
 }
Пример #2
0
 function storeRouting($routing)
 {
     global $db;
     //remove old ones
     $result = $db->executeQuery('delete from ' . Config::dbSurvey() . '_routing where suid = ' . prepareDatabaseString($this->getSuid()) . ' and seid = ' . prepareDatabaseString($this->getSeid()));
     $query = 'insert into ' . Config::dbSurvey() . '_routing (suid, seid, rgid, rule) VALUES  ';
     $routinglines = explode("\r\n", rtrim($routing));
     $lines = array();
     $cnt = 1;
     foreach ($routinglines as $line) {
         $lines[] = '(' . prepareDatabaseString($this->getSuid()) . ', ' . prepareDatabaseString($this->getSeid()) . ',' . $cnt . ', "' . prepareDatabaseString($line, false) . '")';
         $cnt++;
     }
     $query .= implode($lines, ',');
     $result = $db->executeQuery($query);
     //add new lines
     /* save history if value change */
     $track = new Track($this->getSuid(), $this->getObjectName(), $this->getObjectType());
     $track->addEntry(SETTING_ROUTING, $routing);
 }