/** * Process renewal requests. * * @param \Zend\Stdlib\Parameters $request Request object * @param \VuFind\ILS\Connection $catalog ILS connection object * @param array $patron Current logged in patron * * @return array The result of the renewal, an * associative array keyed by item ID (empty if no renewals performed) */ public function processRenewals($request, $catalog, $patron) { // Pick IDs to renew based on which button was pressed: $all = $request->get('renewAll'); $selected = $request->get('renewSelected'); if (!empty($all)) { $ids = $request->get('renewAllIDS'); } else { if (!empty($selected)) { $ids = $request->get('renewSelectedIDS'); } else { $ids = []; } } // Retrieve the flashMessenger helper: $flashMsg = $this->getController()->flashMessenger(); // If there is actually something to renew, attempt the renewal action: if (is_array($ids) && !empty($ids)) { $renewResult = $catalog->renewMyItems(['details' => $ids, 'patron' => $patron]); if ($renewResult !== false) { // Assign Blocks to the Template if (isset($renewResult['blocks']) && is_array($renewResult['blocks'])) { foreach ($renewResult['blocks'] as $block) { $flashMsg->setNamespace('info')->addMessage($block); } } // Send back result details: return $renewResult['details']; } else { // System failure: $flashMsg->setNamespace('error')->addMessage('renew_error'); } } else { if (!empty($all) || !empty($selected)) { // Button was clicked but no items were selected: $flashMsg->setNamespace('error')->addMessage('renew_empty_selection'); } } return []; }