/** * Condense annotation into object * * @param ElggObject $topic */ function groups_2011030101($topic) { $annotation = $topic->getAnnotations('group_topic_post', 1); if (!$annotation) { // no text for this forum post so we delete (probably caused by #2624) return $topic->delete(); } $topic->description = $annotation[0]->value; $topic->save(); return $annotation[0]->delete(); }
/** * Condense first annotation into object * * @param ElggObject $topic */ function groups_2011030101($topic) { // do not upgrade topics that have already been upgraded if ($topic->description) { return true; } $annotation = $topic->getAnnotations(array('annotation_name' => 'group_topic_post', 'limit' => 1)); if (!$annotation) { // no text for this forum post so we delete (probably caused by #2624) return $topic->delete(); } $topic->description = $annotation[0]->value; $topic->save(); return $annotation[0]->delete(); }
public function testElggEntityGetAndSetAnnotations() { $this->assertIdentical($this->entity->getAnnotations(array('annotation_name' => 'non_existent')), array()); // save entity and check for annotation $this->entity->annotate('non_existent', 'foo'); $annotations = $this->entity->getAnnotations(array('annotation_name' => 'non_existent')); $this->assertIsA($annotations[0], '\\ElggAnnotation'); $this->assertIdentical($annotations[0]->name, 'non_existent'); $this->assertEqual($this->entity->countAnnotations('non_existent'), 1); // @todo belongs in Annotations API test class $this->assertIdentical($annotations, elgg_get_annotations(array('guid' => $this->entity->getGUID()))); $this->assertIdentical($annotations, elgg_get_annotations(array('guid' => $this->entity->getGUID(), 'type' => 'object'))); $this->assertIdentical(false, elgg_get_annotations(array('guid' => $this->entity->getGUID(), 'type' => 'object', 'subtype' => 'fail'))); // clear annotation $this->assertTrue($this->entity->deleteAnnotations()); $this->assertEqual($this->entity->countAnnotations('non_existent'), 0); // @todo belongs in Annotations API test class $this->assertIdentical(array(), elgg_get_annotations(array('guid' => $this->entity->getGUID()))); $this->assertIdentical(array(), elgg_get_annotations(array('guid' => $this->entity->getGUID(), 'type' => 'object'))); }
$blog->access_id = ACCESS_PRIVATE; $blog->title = $title; $blog->description = $description; $blog->excerpt = blog_make_excerpt($excerpt); // must be present or doesn't show up when metadata sorting. $blog->publish_date = time(); if (!$blog->save()) { $error = elgg_echo('blog:error:cannot_save'); } } // creat draft annotation if (!$error) { // annotations don't have a "time_updated" so // we have to delete everything or the times are wrong. // don't save if nothing changed if ($auto_save_annotations = $blog->getAnnotations('blog_auto_save', 1)) { $auto_save = $auto_save_annotations[0]; } else { $auto_save == FALSE; } if (!$auto_save) { $annotation_id = $blog->annotate('blog_auto_save', $description); } elseif ($auto_save instanceof ElggAnnotation && $auto_save->value != $description) { $blog->clearAnnotations('blog_auto_save'); $annotation_id = $blog->annotate('blog_auto_save', $description); } elseif ($auto_save instanceof ElggAnnotation && $auto_save->value == $description) { // this isn't an error because we have an up to date annotation. $annotation_id = $auto_save->id; } if (!$annotation_id) { $error = elgg_echo('blog:error:cannot_auto_save');