Пример #1
0
 function getTag()
 {
     $tag = new Dase_DBO_Tag($this->db);
     if ($tag->load($this->tag_id)) {
         return $tag;
     } else {
         return false;
     }
 }
Пример #2
0
 protected function setup($r)
 {
     //Locates requested tag.  Method still needs to authorize.
     $tag = new Dase_DBO_Tag($this->db);
     if ($r->has('tag_ascii_id') && $r->has('eid')) {
         $tag->ascii_id = $r->get('tag_ascii_id');
         $tag->eid = $r->get('eid');
         $found = $tag->findOne();
     } elseif ($r->has('tag_id')) {
         $found = $tag->load($r->get('tag_id'));
     }
     if (isset($found) && $found && $found->id) {
         $this->tag = $tag;
     } else {
         $r->renderError(404, 'no such tag');
     }
 }
Пример #3
0
 public function insert($db, $r)
 {
     $user = $r->getUser();
     $atom_author = $this->getAuthorName();
     //should be exception??
     if (!$atom_author || $atom_author != $user->eid) {
         $r->renderError(401, 'users do not match');
     }
     $set = new Dase_DBO_Tag($db);
     $set->ascii_id = Dase_Util::dirify($this->getAsciiId());
     $set->eid = $user->eid;
     if ($set->findOne()) {
         $r->renderError(409, 'set with that name exists');
     }
     $set->dase_user_id = $user->id;
     $set->name = $this->getTitle();
     $set->is_public = 0;
     $set->item_count = 0;
     $set->type = 'set';
     $set->created = date(DATE_ATOM);
     $set->updated = date(DATE_ATOM);
     $set->insert();
     /*
     		foreach ($this->getCategories() as $category) {
     			$tag_cat = new Dase_DBO_TagCategory($db);
     			$tag_cat->tag_id = $set->id;
     			$tag_cat->category_id = 0;
     			$tag_cat->term = $category['term'];
     			$tag_cat->label = $category['label'];
     			$scheme = str_replace('http://daseproject.org/category/','',$category['scheme']);
     			$tag_cat->scheme = $scheme;
     			$tag_cat->insert();
     		}
     */
     return $set;
 }
Пример #4
0
 public function getCartAtom($r)
 {
     $u = $this->user;
     $tag = new Dase_DBO_Tag($this->db);
     $tag->dase_user_id = $u->id;
     $tag->type = 'cart';
     if ($tag->findOne()) {
         $r->renderResponse($tag->asAtom($r->app_root));
     } else {
         $r->renderError(404);
     }
 }
Пример #5
0
<?php

include 'config.php';
$tag = new Dase_DBO_Tag($db);
foreach ($tag->findAll() as $t) {
    $lower = Dase_Util::dirify($t->ascii_id);
    if ($t->ascii_id != $lower) {
        print "PROBLEM! {$t->ascii_id}\n";
        $t->ascii_id = $lower;
        print $t;
        $t->update();
    } else {
        print "OK {$t->ascii_id}\n";
    }
}
Пример #6
0
 public static function get($db, $ascii_id, $eid)
 {
     if (!$ascii_id || !$eid) {
         return false;
     }
     $user = new Dase_DBO_DaseUser($db);
     $user->retrieveByEid($eid);
     $tag = new Dase_DBO_Tag($db);
     $tag->ascii_id = $ascii_id;
     $tag->dase_user_id = $user->id;
     $tag->findOne();
     if ($tag->id) {
         return $tag;
     } else {
         return false;
     }
 }
Пример #7
0
 public function getSearchAtom($r)
 {
     $r->renderResponse(Dase_DBO_Tag::searchTagsAtom($this->db, $r->app_root, $r->get('q')));
 }
Пример #8
0
<?php

include 'config.php';
$tags = new Dase_DBO_Tag();
foreach ($tags->find() as $tag) {
    $tag->updated = date(DATE_ATOM, strtotime($tag->updated));
    $tag->created = date(DATE_ATOM, strtotime($tag->created));
    if (!$tag->eid) {
        $u = new Dase_DBO_DaseUser();
        $u->load($tag->dase_user_id);
        $tag->eid = $u->eid;
    }
    $tag->eid = strtolower($tag->eid);
    if (!$tag->is_public) {
        $tag->is_public = 0;
    }
    print "updating {$tag->ascii_id}\n";
    //$tag->update();
}
Пример #9
0
 public function getTag()
 {
     $tag = new Dase_DBO_Tag($this->db);
     $tag->load($this->tag_id);
     return $tag;
 }
Пример #10
0
 public function dumpSetsXml()
 {
     $prefix = $this->db->table_prefix;
     $writer = new XMLWriter();
     $writer->openMemory();
     $writer->setIndent(true);
     $writer->startDocument('1.0', 'UTF-8');
     $writer->startElement('user_sets');
     $writer->writeAttribute('archived_date', date(DATE_ATOM));
     $writer->writeAttribute('eid', $this->eid);
     $writer->writeAttribute('name', $this->name);
     $sets = new Dase_DBO_Tag($this->db);
     $sets->dase_user_id = $this->id;
     $total_sets = $sets->findCount();
     $set_count = 0;
     foreach ($sets->find() as $set) {
         $set = clone $set;
         $tag_items = new Dase_DBO_TagItem($this->db);
         $tag_items->tag_id = $set->id;
         if ($tag_items->findCount()) {
             $set_count++;
             $set = clone $set;
             $writer->startElement('set');
             $writer->writeAttribute('ascii_id', $set->ascii_id);
             $writer->writeAttribute('name', $set->name);
             $writer->writeAttribute('eid', $set->eid);
             $writer->writeAttribute('created', $set->created);
             $writer->writeAttribute('updated', $set->updated);
             $writer->writeAttribute('visibility', $set->visibility);
             $writer->writeAttribute('item_count', $set->item_count);
             if ($set->description) {
                 $writer->startElement('description');
                 $writer->text($set->description);
                 $writer->endElement();
             }
             foreach ($set->getCategories() as $cat) {
                 $cat = clone $cat;
                 $writer->startElement('category');
                 $writer->writeAttribute('scheme', $cat->scheme);
                 $writer->writeAttribute('term', $cat->term);
                 $writer->writeAttribute('label', $cat->label);
                 $writer->endElement();
             }
             $item_count = 0;
             foreach ($set->getTagItems() as $tag_item) {
                 $tag_item = clone $tag_item;
                 $item_count++;
                 $writer->startElement('item');
                 $writer->writeAttribute('sort_order', $tag_item->sort_order);
                 $writer->writeAttribute('item_unique', $tag_item->p_collection_ascii_id . '/' . $tag_item->p_serial_number);
                 if ($tag_item->annotation) {
                     $writer->startElement('annotation');
                     $writer->text($tag_item->annotation);
                     $writer->endElement();
                 }
                 $writer->endElement();
                 error_log('user ' . $this->eid . ' set number ' . $set_count . ' of ' . $total_sets . ' item number ' . $item_count);
             }
             $writer->endElement();
         }
     }
     $writer->endDocument();
     if ($set_count) {
         return $writer->flush(true);
     } else {
         return false;
     }
 }