ppound
3 years ago
7 changed files with 205 additions and 109 deletions
@ -0,0 +1,38 @@
|
||||
<?php |
||||
|
||||
namespace Drupal\roblib_search_eds\Controller; |
||||
|
||||
use Drupal\Core\Controller\ControllerBase; |
||||
|
||||
/** |
||||
* Controller for d3 graphs. |
||||
*/ |
||||
class RoblibSearchEdsController extends ControllerBase { |
||||
|
||||
/** |
||||
* Display the markup. |
||||
* |
||||
* @return array |
||||
* A renderable array. |
||||
*/ |
||||
public function articleResults($query = NULL) { |
||||
return [ |
||||
'#theme' => 'roblib_search_results', |
||||
'#query' => $query, |
||||
]; |
||||
} |
||||
|
||||
/** |
||||
* Display the markup. |
||||
* |
||||
* @return array |
||||
* A renderable array. |
||||
*/ |
||||
public function bookResults($query = NULL) { |
||||
return [ |
||||
'#theme' => 'roblib_search_results', |
||||
'#query' => $query, |
||||
]; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,133 @@
|
||||
<?php |
||||
|
||||
namespace Drupal\roblib_search\Form; |
||||
|
||||
use Drupal\Core\Form\FormBase; |
||||
use Drupal\Core\Form\FormStateInterface; |
||||
|
||||
/** |
||||
* Settings form for module |
||||
* |
||||
* @author ppound |
||||
*/ |
||||
class RoblibSearchEdsSettingsForm extends FormBase { |
||||
|
||||
/** |
||||
* {@inheritdoc} |
||||
*/ |
||||
public function getFormId() { |
||||
return 'roblib_search_eds_settings_form'; |
||||
} |
||||
|
||||
/** |
||||
* {@inheritdoc} |
||||
*/ |
||||
public function buildForm(array $form, FormStateInterface $form_state) { |
||||
$config = \Drupal::config('roblib_search_eds.settings'); |
||||
$form['eds_rest_url'] = array( |
||||
'#type' => 'textfield', |
||||
'#title' => t('EDS Rest endpoint'), |
||||
'#default_value' => $config->get('eds_rest_url'), |
||||
'#description' => t('The base EDS URL, for example https://eds-api.ebscohost.com/edsapi/rest'), |
||||
'#required' => TRUE, |
||||
); |
||||
$form['eds_auth_url'] = array( |
||||
'#type' => 'textfield', |
||||
'#title' => t('EDS Auth endpoint'), |
||||
'#default_value' => $config->get('eds_auth_url'), |
||||
'#description' => t('The EDS Auth endpoint, for example https://eds-api.ebscohost.com/Authservice/rest'), |
||||
'#required' => TRUE, |
||||
); |
||||
|
||||
$form['eds_user'] = array( |
||||
'#type' => 'textfield', |
||||
'#title' => t('EDS user'), |
||||
'#default_value' => $config->get('eds_user'), |
||||
'#description' => t('EDS user, for example username'), |
||||
'#required' => TRUE, |
||||
); |
||||
|
||||
$form['eds_pass'] = array( |
||||
'#type' => 'textfield', |
||||
'#title' => t('EDS password'), |
||||
'#default_value' => $config->get('eds_pass'), |
||||
'#description' => t('EDS password, for example password'), |
||||
'#required' => TRUE, |
||||
); |
||||
|
||||
$form['eds_guest'] = array( |
||||
'#type' => 'textfield', |
||||
'#title' => t('EDS Guest access'), |
||||
'#default_value' => $config->get('eds_guest'), |
||||
'#description' => t('EDS Guest access, y = guest access, n = not a guest'), |
||||
'#required' => TRUE, |
||||
); |
||||
|
||||
$form['eds_article_profile'] = array( |
||||
'#type' => 'textfield', |
||||
'#title' => t('EDS Article profile'), |
||||
'#default_value' => $config->get('eds_article_profile'), |
||||
'#description' => t('EDS profile, for example edsapi'), |
||||
'#required' => TRUE, |
||||
); |
||||
|
||||
$form['eds_book_profile'] = array( |
||||
'#type' => 'textfield', |
||||
'#title' => t('EDS Book profile'), |
||||
'#default_value' => $config->get('eds_book_profile'), |
||||
'#description' => t('EDS Book profile, for example apilite'), |
||||
'#required' => TRUE, |
||||
); |
||||
|
||||
$form['eds_num_results'] = array( |
||||
'#type' => 'textfield', |
||||
'#title' => t('Number of results to return'), |
||||
'#default_value' => $config->get('eds_num_results'), |
||||
'#description' => t('The number of results to display in the Bento box, usurally 5'), |
||||
'#required' => TRUE, |
||||
); |
||||
$form['eds_article_limiters'] = array( |
||||
'#type' => 'textarea', |
||||
'#title' => t('The limiters for Article searches'), |
||||
'#default_value' => $config->get('eds_article_limiters'), |
||||
'#description' => t('Specify the Publication Types to use as limiters for Article searches. Formatted similar to |
||||
AND (PT Article OR PT Magazines OR PT News OR PT Academic Journals OR PT Conference Materials)'), |
||||
'#required' => TRUE, |
||||
); |
||||
$form['eds_book_limiters'] = array( |
||||
'#type' => 'textarea', |
||||
'#title' => t('The limiters for Books and Media searches'), |
||||
'#default_value' => $config->get('eds_book_limiters'), |
||||
'#description' => t('Specify the Publication Types to use as limiters for Article searches. Formatted similar to |
||||
AND (PT Book OR PT Video OR PT Audio'), |
||||
'#required' => TRUE, |
||||
); |
||||
return $form; |
||||
} |
||||
|
||||
/** |
||||
* {@inheritdoc} |
||||
*/ |
||||
public function validateForm(array &$form, FormStateInterface $form_state) { |
||||
|
||||
} |
||||
|
||||
/** |
||||
* {@inheritdoc} |
||||
*/ |
||||
public function submitForm(array &$form, FormStateInterface $form_state) { |
||||
$config = \Drupal::configFactory()->getEditable('roblib_search_eds.settings'); |
||||
$config->set('eds_rest_url', $form_state->getValue('eds_rest_url'))->save(); |
||||
$config->set('eds_auth_url', $form_state->getValue('eds_auth_url'))->save(); |
||||
$config->set('eds_user', $form_state->getValue('eds_user'))->save(); |
||||
$config->set('eds_pass', $form_state->getValue('eds_pass'))->save(); |
||||
$config->set('eds_guest', $form_state->getValue('eds_guest'))->save(); |
||||
$config->set('eds_article_profile', $form_state->getValue('eds_article_profile'))->save(); |
||||
$config->set('eds_book_profile', $form_state->getValue('eds_book_profile'))->save(); |
||||
$config->set('eds_num_results', $form_state->getValue('eds_num_results'))->save(); |
||||
$config->set('eds_article_limiters', $form_state->getValue('eds_article_limiters'))->save(); |
||||
$config->set('eds_book_limiters', $form_state->getValue('eds_book_limiters'))->save(); |
||||
|
||||
} |
||||
|
||||
} |
@ -1,10 +0,0 @@
|
||||
name = Roblib Search EDS |
||||
dependencies[] = roblib_search |
||||
dependencies[] = ebsco |
||||
configure = admin/roblib_search/eds_search |
||||
description = implements the Roblib Search modules _roblib_search hook |
||||
package = Roblib Search |
||||
version = 7.x-dev |
||||
core = 7.x |
||||
stylesheets[all][] = css/roblib_search_eds.css |
||||
|
@ -0,0 +1,8 @@
|
||||
name: Roblib Search EDS |
||||
configure: admin/roblib_search/eds_search |
||||
description: Implements the Roblib Search modules _roblib_search hook |
||||
package: Roblib Search |
||||
core_version_requirement: ^8.9 || ^9 |
||||
dependancies: |
||||
- roblib_search |
||||
- ebsco |
@ -0,0 +1,25 @@
|
||||
roblib_search_eds.settings: |
||||
path: '/admin/config/system/roblib_search' |
||||
defaults: |
||||
_form: '\Drupal\roblib_search_eds\Form\RoblibSearchEdsSettingsForm' |
||||
_title: 'Roblib Search EDS Settings Form' |
||||
requirements: |
||||
_permission: 'administer site configuration' |
||||
|
||||
roblib_search_eds.article_search: |
||||
path: '/roblib_search/eds/articles/{query}' |
||||
defaults: |
||||
_controller: '\Drupal\roblib_search_eds\Controller\RoblibSearchEdsController::articleResults' |
||||
_title: 'Roblib Search EDS Articles' |
||||
query: '[a-zA-Z\s]+' |
||||
requirements: |
||||
_permission: 'access content' |
||||
|
||||
roblib_search_eds.book_search: |
||||
path: '/roblib_search/eds/book/{query}' |
||||
defaults: |
||||
_controller: '\Drupal\roblib_search_eds\Controller\RoblibSearchEdsController::bookResults' |
||||
_title: 'Roblib Search EDS Articles' |
||||
query: '[a-zA-Z\s]+' |
||||
requirements: |
||||
_permission: 'access content' |
Loading…
Reference in new issue