<?php

require_once './user_writing_config.php';
//library credentials
require_once '../build/libZoteroSingle.php';
$library = new \Zotero\Library($libraryType, $libraryID, $userSlug, $apiKey);
//create a new item of type book
$newItem = $library->getTemplateItem('book');
$newItem->set('title', 'This is a book');
$newItem->set('abstractNote', 'Created using a zotero php library and the write api');
$createItemResponse = $library->createItem($newItem);
if ($createItemResponse->isError()) {
    echo $createItemResponse->getStatus() . "\n";
    echo $createItemResponse->getBody() . "\n";
    die("Error creating Zotero item\n\n");
} else {
    //load the item into the library so it is included and has the itemKey and etag
    //and anything else the api populates that we didn't set in our item
    $createItemFeed = new Zotero_Feed($createItemResponse->getBody());
    $createdItem = $library->items->addItemsFromFeed($createItemFeed);
    $createdItem = $createdItem[0];
    echo "Item created\n\n\n<br />";
}
$existingItem = new Zotero_Item($createItemResponse->getBody());
//add child note
$newNoteItem = $library->getTemplateItem('note');
$addNoteResponse = $library->addNotes($existingItem, $newNoteItem);
if ($addNoteResponse->isError()) {
    echo $addNoteResponse->getStatus() . "\n";
    echo $addNoteResponse->getBody() . "\n";
    die("error adding child note to item");
Beispiel #2
0
<?php

require_once './user_writing_config.php';
//library credentials
require_once '../build/libZoteroSingle.php';
//create the zotero library object which will be our interface for interacting with the Zotero API
$zlib = new \Zotero\Library($libraryType, $libraryID, $librarySlug, $apiKey);
$zItems = array();
for ($i = 0; $i < 5; $i++) {
    $item = $zlib->getTemplateItem('webpage');
    $item->set('title', 'zotero webpage item');
    $zItems[] = $item;
}
#make the request to save the items to the Zotero server
$writtenItems = $zlib->items->writeItems($zItems);
#individual items may fail even if the request goes through, so we should check each one for errors
foreach ($writtenItems as $item) {
    if ($item->writeFailure != false) {
        echo "Failed writing item {$item->writeFailure['key']} - {$item->get('title')}\n";
        echo "Status code: {$item->writeFailure['code']}\n";
        echo "Message: {$item->writeFailure['message']}\n\n";
    } else {
        echo "Item successfully created. itemKey: {$item->get('itemKey')} - {$item->get('title')}";
    }
}
#get the version of the last item to use for delete requests
$version = $writtenItems[count($writtenItems) - 1]->get('itemVersion');
#split written items into chunks since we can only delete 50 at a time
$chunks = array_chunk($writtenItems, 50);
foreach ($chunks as $chunk) {
    $deletedItemResponse = $zlib->items->deleteItems($chunk, $version);