function addToSearchableObjects($wasNew) { $columns_to_drop = array(); if ($wasNew) { $columns_to_drop = $this->getSearchableColumns(); } else { foreach ($this->getSearchableColumns() as $column_name) { if (isset($this->searchable_composite_columns[$column_name])) { foreach ($this->searchable_composite_columns[$column_name] as $colName) { if ($this->isColumnModified($colName)) { $columns_to_drop[] = $column_name; break; } } } else { if ($column_name == 'body') { $columns_to_drop[] = $column_name; } else { if ($this->getMailData()->columnExists($column_name) && $this->getMailData()->isColumnModified($column_name)) { $columns_to_drop[] = $column_name; } else { if ($this->isColumnModified($column_name)) { $columns_to_drop[] = $column_name; } } } } } } if (count($columns_to_drop) > 0) { SearchableObjects::dropContentByObjectColumns($this, $columns_to_drop); foreach ($columns_to_drop as $column_name) { $content = $this->getSearchableColumnContent($column_name); if (trim($content) != '') { $searchable_object = new SearchableObject(); $searchable_object->setRelObjectManager(get_class($this->manager())); $searchable_object->setRelObjectId($this->getObjectId()); $searchable_object->setColumnName($column_name); $searchable_object->setContent($content); $searchable_object->setProjectId(0); $searchable_object->setIsPrivate(false); $searchable_object->setUserId($this->getAccount() instanceof MailAccount ? $this->getAccount()->getUserId() : 0); $searchable_object->save(); } // if } // foreach } // if if ($wasNew) { SearchableObjects::dropContentByObjectColumns($this, array('uid')); $searchable_object = new SearchableObject(); $searchable_object->setRelObjectManager(get_class($this->manager())); $searchable_object->setRelObjectId($this->getObjectId()); $searchable_object->setColumnName('uid'); $searchable_object->setContent($this->getUniqueObjectId()); $searchable_object->setProjectId(0); $searchable_object->setIsPrivate(false); $searchable_object->setUserId($this->getAccount()->getUserId()); $searchable_object->save(); } }