Esempio n. 1
0
 function updateItemCount()
 {
     $tag_items = new Dase_DBO_TagItem($this->db);
     $tag_items->tag_id = $this->id;
     $this->item_count = $tag_items->findCount();
     $this->updated = date(DATE_ATOM);
     //postgres boolean weirdness make this necessary
     if (!$this->is_public) {
         $this->is_public = 0;
     }
     $this->update();
 }
Esempio n. 2
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;
     }
 }