/**
  * Performs the work of inserting or updating the row in the database.
  *
  * If the object is new, it inserts it; otherwise an update is performed.
  * All related objects are also updated in this method.
  *
  * @param PropelPDO $con
  * @return int             The number of rows affected by this insert/update and any referring fk objects' save() operations.
  * @throws PropelException
  * @see        save()
  */
 protected function doSave(PropelPDO $con)
 {
     $affectedRows = 0;
     // initialize var to track total num of affected rows
     if (!$this->alreadyInSave) {
         $this->alreadyInSave = true;
         // We call the save method on the following object(s) if they
         // were passed to this object by their corresponding set
         // method.  This object relates to these object(s) by a
         // foreign key reference.
         if ($this->aLanguage !== null) {
             if ($this->aLanguage->isModified() || $this->aLanguage->isNew()) {
                 $affectedRows += $this->aLanguage->save($con);
             }
             $this->setLanguage($this->aLanguage);
         }
         if ($this->aDocumentation !== null) {
             if ($this->aDocumentation->isModified() || $this->aDocumentation->isNew()) {
                 $affectedRows += $this->aDocumentation->save($con);
             }
             $this->setDocumentation($this->aDocumentation);
         }
         if ($this->aDocument !== null) {
             if ($this->aDocument->isModified() || $this->aDocument->isNew()) {
                 $affectedRows += $this->aDocument->save($con);
             }
             $this->setDocument($this->aDocument);
         }
         if ($this->aUserRelatedByCreatedBy !== null) {
             if ($this->aUserRelatedByCreatedBy->isModified() || $this->aUserRelatedByCreatedBy->isNew()) {
                 $affectedRows += $this->aUserRelatedByCreatedBy->save($con);
             }
             $this->setUserRelatedByCreatedBy($this->aUserRelatedByCreatedBy);
         }
         if ($this->aUserRelatedByUpdatedBy !== null) {
             if ($this->aUserRelatedByUpdatedBy->isModified() || $this->aUserRelatedByUpdatedBy->isNew()) {
                 $affectedRows += $this->aUserRelatedByUpdatedBy->save($con);
             }
             $this->setUserRelatedByUpdatedBy($this->aUserRelatedByUpdatedBy);
         }
         if ($this->isNew() || $this->isModified()) {
             // persist changes
             if ($this->isNew()) {
                 $this->doInsert($con);
             } else {
                 $this->doUpdate($con);
             }
             $affectedRows += 1;
             // Rewind the body LOB column, since PDO does not rewind after inserting value.
             if ($this->body !== null && is_resource($this->body)) {
                 rewind($this->body);
             }
             $this->resetModified();
         }
         $this->alreadyInSave = false;
     }
     return $affectedRows;
 }
 /**
  * Import the topics to the DB
  */
 public function importTopics($lang = 'he')
 {
     // Topics
     $guides = Documentation::model()->documentationFolders;
     if (count($guides)) {
         foreach ($guides as $key => $guide) {
             // Load the guides files
             $files = $this->grabTopics($key, $lang);
             if (count($files)) {
                 foreach ($files as $file) {
                     // make a short name
                     $name = str_replace('.txt', '', end(explode('/', $file)));
                     // Check if we have one in the DB
                     $exists = Documentation::model()->exists('mkey=:key AND type=:type AND language=:lang', array(':lang' => $lang, ':key' => $name, ':type' => $key));
                     if ($exists) {
                         continue;
                     }
                     $contents = file_get_contents($file);
                     $contents = str_replace('«', '<', $contents);
                     $contents = str_replace('»', '>', $contents);
                     // Add
                     $save = new Documentation();
                     $save->name = $name;
                     $save->mkey = $name;
                     $save->language = $lang;
                     $save->type = $key;
                     $save->content = $contents;
                     $save->save();
                 }
             }
         }
     }
 }