public function getMyHolds($user) { $holds = array(); $holds['holds'] = array(); $holds['holds']['available'] = array(); $holds['holds']['unavailable'] = array(); $availableHolds = new EContentHold(); $availableHolds->userId = $user->id; $availableHolds->status = 'available'; $availableHolds->find(); while ($availableHolds->fetch()) { require_once ROOT_DIR . '/RecordDrivers/RestrictedEContentDriver.php'; $recordDriver = new RestrictedEContentDriver($availableHolds->recordId); if ($recordDriver->isValid()) { $expirationDate = $availableHolds->dateUpdated + 5 * 24 * 60 * 60; $holds['holds']['available'][] = array('id' => $availableHolds->recordId, 'recordId' => $recordDriver->getUniqueID(), 'source' => $recordDriver->getSources(), 'title' => $recordDriver->getTitle(), 'author' => $recordDriver->getPrimaryAuthor(), 'available' => true, 'create' => $availableHolds->datePlaced, 'expire' => $expirationDate, 'status' => $availableHolds->status, 'links' => $this->getOnHoldEContentLinks($availableHolds), 'recordUrl' => $recordDriver->getLinkUrl(), 'bookcoverUrl' => $recordDriver->getBookcoverUrl('medium'), 'holdSource' => 'eContent'); } } $unavailableHolds = new EContentHold(); $unavailableHolds->userId = $user->id; $unavailableHolds->whereAdd("(status = 'active' or status = 'suspended')"); $unavailableHolds->find(); while ($unavailableHolds->fetch()) { require_once ROOT_DIR . '/RecordDrivers/RestrictedEContentDriver.php'; $recordDriver = new RestrictedEContentDriver($unavailableHolds->recordId); if ($recordDriver->isValid()) { $holds['holds']['unavailable'][] = array('id' => $unavailableHolds->recordId, 'recordId' => $recordDriver->getUniqueID(), 'source' => $recordDriver->getSources(), 'title' => $recordDriver->getTitle(), 'author' => $recordDriver->getPrimaryAuthor(), 'available' => true, 'createTime' => $unavailableHolds->datePlaced, 'status' => $unavailableHolds->status, 'position' => $this->_getHoldPosition($unavailableHolds), 'links' => $this->getOnHoldEContentLinks($unavailableHolds), 'frozen' => $unavailableHolds->status == 'suspended', 'reactivateDate' => $unavailableHolds->reactivateDate, 'recordUrl' => $recordDriver->getLinkUrl(), 'bookcoverUrl' => $recordDriver->getBookcoverUrl('medium'), 'holdSource' => 'eContent', 'format' => $recordDriver->getFormats()); } } return $holds; }