Dropbox plugin: how to automatically add metadata?


#1

Hi.
I’ve been using the Dropbox plugin to import a bulk of files into the repository, and it worked fine, turning them into single items.
As all files are different issues of the same monthly magazine, some of the metadata are consequently always the same (f.i.: Publisher, Author, Format).
Is there a way to automatically insert the value of those fields, maybe through the plugin itself or a fork of it? Or what would it be the best way to automatize the operation, instead of manually editing any single new item?
Thanks


#2

One option is to use the Batch Upload plugin and just use the Dropbox folder as a place to FTP your files.

FTP all your files, then create a CSV with the columns you want (Publisher, Author, Format, etc). Add a column for File and have it point to the URL of each file you uploaded into the Dropbox folder. So, for example, it’d be http://www.example.com/plugins/Dropbox/files/FileA.pdf.

When you upload the CSV and complete the Batch Upload, it’ll grab the files from the URL. You’ll then want to clean out your Dropbox folder afterwards.


#3

That’s a good suggestion, thank you @abschrack.

Still, also Batch Upload works only when uploading new Items, while what I am looking for is a way to “batch update” several Items’ fields at the same time, when those fields are not among the ones that can be already “batch updated” with the normal Omeka functions (for the way db’s tables are designed, the Batch Update function now works only on one of the tables containing the information about every single Item, while the metadata are mostly contained in a second one).

I think a plugin that could batch update that second table would be mostly useful.


#4

While thinking about the new plugin, I’ve altered the Dropbox one, adding the possibility to pass the Item Type too.

In index.php I’ve added, after line 61, the following code:

<div id="item_type-form" class="field">
    <label for="dropbox-item_type-id"><?php echo __('Item Type'); ?></label>
    <div class="inputs">
        <?php  
            echo $this->formSelect(
                'dropbox-item_type-id',
                $item->item_type_id,
                array('id' => 'item-type'),
                get_table_options('ItemType')
            );
        ?>
    </div>
</div>

and then, in IndexController.php, I’ve added the following code after line 81:

 'item_type_id' => $_POST['dropbox-item_type-id']
      ? $_POST['dropbox-item_type-id']
      : null

Hope this helps.