public function __construct(\Form $form, \GridFieldDetailForm_ItemRequest $request) { $html = ""; $parameter = ''; if (isset($_REQUEST['q']) && !empty($_REQUEST['q'])) { $parameter .= '?'; foreach ($_REQUEST['q'] as $key => $val) { if (is_array($val)) { foreach ($val as $subVal) { $parameter .= 'q[' . $key . '][]' . '=' . $subVal . '&'; } } else { $parameter .= 'q[' . $key . ']' . '=' . $val . '&'; } } $parameter .= 'action_search=Apply+Filter'; } // Prev/next links. Todo: This doesn't scale well. $previousRecordID = $request->getPreviousRecordID(); $cssClass = $previousRecordID ? "cms-panel-link" : "disabled"; $prevLink = $previousRecordID ? \Controller::join_links($request->gridField->Link(), "item", $previousRecordID . $parameter) : "javascript:void(0);"; $linkTitle = $previousRecordID ? _t('GridFieldBetterButtons.PREVIOUSRECORD', 'Go to the previous record') : ""; $linkText = $previousRecordID ? _t('GridFieldBetterButtons.PREVIOUS', 'Previous') : ""; $html .= sprintf("<a class='ss-ui-button gridfield-better-buttons-prevnext gridfield-better-buttons-prev %s' href='%s' title='%s'><img src='" . BETTER_BUTTONS_DIR . "/images/prev.png' alt='previous' /> %s</a>", $cssClass, $prevLink, $linkTitle, $linkText); $nextRecordID = $request->getNextRecordID(); $cssClass = $nextRecordID ? "cms-panel-link" : "disabled"; $prevLink = $nextRecordID ? \Controller::join_links($request->gridField->Link(), "item", $nextRecordID . $parameter) : "javascript:void(0);"; $linkTitle = $nextRecordID ? _t('GridFieldBetterButtons.NEXTRECORD', 'Go to the next record') : ""; $linkText = $nextRecordID ? _t('GridFieldBetterButtons.NEXT', 'Next') : ""; $html .= sprintf("<a class='ss-ui-button gridfield-better-buttons-prevnext gridfield-better-buttons-prev %s' href='%s' title='%s'>%s <img src='" . BETTER_BUTTONS_DIR . "/images/next.png' alt='next' /></a>", $cssClass, $prevLink, $linkTitle, $linkText); parent::__construct("prev_next", $html); }