Zotero Import Bug and Question


I was trying out the Zotero import and realised it did not work properly for User Items. I have taken a look at the code and think I have found the problem.

The function _import in importProcess.php refers to item ID as $item->itemID() but the feed actually stores the item ID under zapi:key. I have managed to get things working after amending the itemID() to key() instead for the occurrences.

Now I have a question! I am not syncing my file attachments with the Zotero servers due to both monetary (budget for the online storage space!) and privacy/confidentiality issues. I have synced them with a personal server using WebDav instead.

Is there any way I can get this plugin to grab the files from my server instead? Please point me in some general direction as to where I should look at.


In fact the Omeka is setup on the same server space as the file attachments.

Any ideas or advice?

Thank you!

The plugin is a mess right now, because of a bug in the Zotero API. We are working on it, here is the latest from another forum post:



Just an update on the situation!

I managed to get the plugin to work by changing all the feed type variables function references itemID() to key() in ImportProcess.php.

I have also managed to make the plugin (UGLILY) pull files out from servers other than Zotero, by intercepting the $location variable in the _mapAttachment function in the ImportProcess.php

  $location = FILE_ATT_LOCATION."/{$element->key()}.zip";    }else{
  $method = "{$this->_libraryType}ItemFile";
  $location = $this->_client->$method($this->_libraryId, $element->key());

Very ugly and by brute force, but gets the work done. Can be improved by implementing an auto un-archiving function to store the files nicely in the Omeka server.

But as for now, hope it helps anyone who is looking for such implementations.