Beispiel #1
0
/**
 * 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();
}
Beispiel #2
0
/**
 * 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();
}
Beispiel #3
0
 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');