function addToSearchableObjects($wasNew = false) { $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 = SearchableObjects::findById(array('rel_object_id' => $this->getObjectId(), 'column_name' => $column_name)); if (!$searchable_object instanceof SearchableObject) { $searchable_object = new SearchableObject(); $searchable_object->setRelObjectId($this->getObjectId()); $searchable_object->setColumnName($column_name); } $searchable_object->setContent($content); $searchable_object->setContactId($this->getAccount() instanceof MailAccount ? $this->getAccount()->getContactId() : 0); $searchable_object->save(); } // if } // foreach } // if $rows = DB::executeAll("select column_name from " . TABLE_PREFIX . "searchable_objects where rel_object_id=" . $this->getObjectId()); if ($wasNew) { SearchableObjects::dropContentByObjectColumn($this, 'uid'); $searchable_object = new SearchableObject(); $searchable_object->setRelObjectId($this->getObjectId()); $searchable_object->setColumnName('uid'); $searchable_object->setContent($this->getUniqueObjectId()); $searchable_object->setContactId($this->getAccount() instanceof MailAccount ? $this->getAccount()->getContactId() : 0); $searchable_object->save(); } $rows = DB::executeAll("select column_name from " . TABLE_PREFIX . "searchable_objects where rel_object_id=" . $this->getObjectId()); }