ppound
3 years ago
52 changed files with 242 additions and 299 deletions
@ -0,0 +1,9 @@
|
||||
name: Roblib Search EDS |
||||
type: module |
||||
configure: roblib_search_eds.settings |
||||
description: Implements the Roblib Search EDS book and article results |
||||
package: Roblib Search |
||||
core_version_requirement: ^8.9 || ^9 |
||||
dependancies: |
||||
- roblib_search |
||||
- ebsco |
@ -0,0 +1,8 @@
|
||||
roblib_search_eds.settings: |
||||
path: '/admin/config/system/roblib_search_eds_settings' |
||||
defaults: |
||||
_form: '\Drupal\roblib_search_eds\Form\EdsSettingsForm' |
||||
_title: 'Roblib Search EDS Settings Form' |
||||
requirements: |
||||
_permission: 'administer site configuration' |
||||
|
@ -0,0 +1,137 @@
|
||||
<?php |
||||
|
||||
namespace Drupal\roblib_search_eds\Form; |
||||
|
||||
use Drupal\Core\Form\FormBase; |
||||
use Drupal\Core\Form\FormStateInterface; |
||||
|
||||
/** |
||||
* Settings form for module |
||||
* |
||||
* @author ppound |
||||
*/ |
||||
class EdsSettingsForm 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, |
||||
); |
||||
$form['actions']['submit'] = [ |
||||
'#type' => 'submit', |
||||
'#value' => t('Save'), |
||||
'#button_type' => 'primary', |
||||
]; |
||||
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(); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,27 @@
|
||||
<?php |
||||
|
||||
namespace Drupal\roblib_search_eds\Plugin\Block; |
||||
|
||||
use Drupal\Core\Block\BlockBase; |
||||
|
||||
/** |
||||
* Provides EDS Article search results. |
||||
* |
||||
* @Block( |
||||
* id = "roblib_search_eds_articles_block", |
||||
* admin_label = @Translation("Roblib Search EDS Articles Block"), |
||||
* category = @Translation("Roblib Search"), |
||||
* ) |
||||
*/ |
||||
class RoblibSearchEdsArticles extends BlockBase { |
||||
|
||||
/** |
||||
* {@inheritdoc} |
||||
*/ |
||||
public function build() { |
||||
return [ |
||||
'#theme' => 'roblib_search_eds_articles', |
||||
'#query' => $query, |
||||
]; |
||||
} |
||||
} |
@ -0,0 +1,27 @@
|
||||
<?php |
||||
|
||||
namespace Drupal\roblib_search_eds\Plugin\Block; |
||||
|
||||
use Drupal\Core\Block\BlockBase; |
||||
|
||||
/** |
||||
* Provides EDS book search results. |
||||
* |
||||
* @Block( |
||||
* id = "roblib_search_eds_books_block", |
||||
* admin_label = @Translation("Roblib Search EDS Books Block"), |
||||
* category = @Translation("Roblib Search"), |
||||
* ) |
||||
*/ |
||||
class RoblibSearchEdsBooks extends BlockBase { |
||||
|
||||
/** |
||||
* {@inheritdoc} |
||||
*/ |
||||
public function build() { |
||||
return [ |
||||
'#theme' => 'roblib_search_eds_books', |
||||
'#query' => $query, |
||||
]; |
||||
} |
||||
} |
@ -0,0 +1,12 @@
|
||||
|
||||
<div class ="roblib-search-more" id="roblib-search-eds-article-more"></div> |
||||
<div class ="roblib-search-content eds-article" id="roblib-search-content-eds-articles"> |
||||
|
||||
|
||||
</div> |
||||
|
||||
<div id="roblib-eds-articles-more-results" class="roblib-eds-more-button button"></div> |
||||
<div id="roblib-eds-articles-toc" class="roblib-bento-toc moveme-please"></div> |
||||
|
||||
|
||||
|
@ -1,13 +1,6 @@
|
||||
<?php |
||||
|
||||
/** |
||||
* @file roblib-search-eds.tpl.php |
||||
* |
||||
*/ |
||||
?> |
||||
<div class ="roblib-search-more" id="roblib-search-eds-more"></div> |
||||
<div class ="roblib-search-content eds" id="roblib-search-content-eds"> |
||||
<img src="<?php print (empty($spinner_path) ? ' ' : $spinner_path); ?>"/> |
||||
|
||||
|
||||
</div> |
||||
<div id="roblib-eds-books-more-results" class="roblib-eds-more-button button"></div> |
@ -1,133 +0,0 @@
|
||||
<?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,8 +0,0 @@
|
||||
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 |
@ -1,25 +0,0 @@
|
||||
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' |
@ -1,35 +0,0 @@
|
||||
<?php |
||||
|
||||
/** |
||||
* @file roblib-search-eds-article.tpl.php |
||||
* Search ebscohost for articles |
||||
* |
||||
* Variables available: |
||||
* - $variables: all array elements of $variables can be used as a variable. e.g. $base_url equals $variables['base_url'] |
||||
* |
||||
* |
||||
*/ |
||||
?> |
||||
<div class ="roblib-search-more" id="roblib-search-eds-article-more"></div> |
||||
<div class ="roblib-search-content eds-article" id="roblib-search-content-eds-articles"> |
||||
<img src="<?php print (empty($spinner_path) ? ' ' : $spinner_path); ?>"/>
|
||||
|
||||
</div> |
||||
|
||||
<div id="roblib-eds-articles-more-results" class="roblib-eds-more-button button"></div> |
||||
<div id="roblib-eds-articles-toc" class="roblib-bento-toc moveme-please"></div> |
||||
<?php |
||||
/** |
||||
* Alternate way to create link back to ebscohost. |
||||
<form action="" id = 'roblib-search-eds-articles' method="post" style="width: 375px; overflow: auto;" onsubmit="return ebscoHostSearchGo(this);"> |
||||
<input id="ebscohosturl" name="ebscohosturl" type="hidden" value="https://search.ebscohost.com/login.aspx?direct=true&site=ehost-live&scope=site&type=0&custid=uprince&profid=eds&groupid=main&mode=and&cli0=RV&clv0=N&lang=en" /> |
||||
<input id="ebscohostsearchsrc" name="ebscohostsearchsrc" type="hidden" value="url" /> <input id="ebscohostsearchmode" name="ebscohostsearchmode" type="hidden" value="+" /> |
||||
<input id="ebscohostkeywords" name="ebscohostkeywords" type="hidden" value="" /> |
||||
<div><input id="ebscohostsearchtext" name="ebscohostsearchtext" value="history" type="hidden" size="23" style="font-size: 9pt; padding-left: 5px; margin-left: 0px;" /> <input type="submit" value="Search" style="font-size: 9pt; padding-left: 5px;" /></div> |
||||
</div> |
||||
|
||||
</form> |
||||
*/ |
||||
?> |
||||
|
||||
|
Loading…
Reference in new issue