Source of file BetterButtonPrevNextAction.php
Size: 2,685 Bytes - Last Modified: 2021-12-23T10:56:01+00:00
/var/www/docs.ssmods.com/process/src/src/Actions/BetterButtonPrevNextAction.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 | <?php namespace UncleCheese\BetterButtons\Actions; use SilverStripe\Control\Controller; use UncleCheese\BetterButtons\Actions\BetterButtonAction; /** * Defines a set of buttons that offers prev/next navigation from within a * GridField detail form * * @author Uncle Cheese <unclecheese@leftandmain.com> * @package silverstripe-gridfield-betterbuttons */ class BetterButtonPrevNextAction extends BetterButtonAction { /** * Gets the HTML for the button * @return string */ public function getButtonHTML() { $html = '<div class="btn-group" role="group">'; // Prev/next links. Todo: This doesn't scale well. // Check if the gridfield as been filtered $params = array( 'q' => (array)$this->gridFieldRequest->getRequest()->getVar('q') ); $searchVars = (bool)$params ? '?' . http_build_query($params) : ''; $previousRecordID = $this->gridFieldRequest->getPreviousRecordID(); $cssClass = $previousRecordID ? "cms-panel-link" : "disabled"; $prevLink = $previousRecordID ? Controller::join_links($this->gridFieldRequest->gridField->Link(), "item", $previousRecordID . $searchVars) : "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 btn btn-default 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 = $this->gridFieldRequest->getNextRecordID(); $cssClass = $nextRecordID ? "cms-panel-link" : "disabled"; $nextLink = $nextRecordID ? Controller::join_links($this->gridFieldRequest->gridField->Link(), "item", $nextRecordID . $searchVars) : "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 btn btn-default gridfield-better-buttons-prevnext gridfield-better-buttons-next %s' href='%s' title='%s'>%s <img src='".BETTER_BUTTONS_DIR."/images/next.png' alt='next' /></a>", $cssClass, $nextLink, $linkTitle, $linkText ); $html .= '</div>'; return $html; } } |