ppound
3 years ago
5 changed files with 266 additions and 0 deletions
@ -0,0 +1,62 @@
|
||||
<?php |
||||
|
||||
namespace Drupal\upei_roblib_ill\Controller; |
||||
|
||||
use Drupal\Core\Controller\ControllerBase; |
||||
use Drupal\Core\Url; |
||||
use Drupal\Core\Link; |
||||
use Symfony\Component\HttpFoundation\Response; |
||||
|
||||
/** |
||||
* Controller for d3 graphs. |
||||
*/ |
||||
class RoblibIllController extends ControllerBase { |
||||
|
||||
/** |
||||
* Show the user contact info etc. after ILL Request. |
||||
* @return string |
||||
* Rendered HTML |
||||
*/ |
||||
function finished() { |
||||
$config = \Drupal::config('upei_roblib_ill.settings'); |
||||
$contact_email = $config->get('ill_contact_email'); |
||||
$contact_phone_number = $config->get('ill_contact_phone'); |
||||
$librarian_link = Link::fromTextAndUrl($this->t('subject-specific'), Url::fromUri('http://library.upei.ca/librarians'))->toString(); |
||||
$help_message = $this->t("We can help! Please contact your !librarian_link librarian if you'd like help finding more resources relating to your topic.", |
||||
['!librarian_link' => $librarian_link]); |
||||
$standard_message = t("To contact the department about this request, you can send a message to @email or |
||||
call @phone.", ['@phone' => $contact_phone_number, '@email' => $contact_email]); |
||||
if (isset($_GET['error']) && $_GET['error'] === 'FALSE') { |
||||
$standard_message = t("A message including the Request ID has been sent to @email.", [ |
||||
'@email' => $_GET['email'], |
||||
]) . $standard_message; |
||||
} |
||||
|
||||
$output = [ |
||||
'#prefix' => '<div upei-roblib-ill-content>', |
||||
'#suffix' => '</div>', |
||||
//'#type' => 'page', |
||||
'dynamic_message' => [ |
||||
'#type' => 'markup', |
||||
'#markup' => $_GET['message'], |
||||
'#prefix' => '<div class="upei-roblib-ill-message">', |
||||
'#suffix' => '</div>', |
||||
], |
||||
'standard_message' => [ |
||||
'#type' => 'markup', |
||||
'#markup' => $standard_message, |
||||
'#prefix' => '<div class="upei-roblib-ill-email">', |
||||
'#suffix' => '</div>', |
||||
], |
||||
'help_message' => [ |
||||
'#type' => 'markup', |
||||
'#markup' => $help_message, |
||||
'#allowed_tags' => ['a', 'source'], |
||||
'#prefix' => '<div class="upei-roblib-ill-help">', |
||||
'#suffix' => '</div>', |
||||
], |
||||
]; |
||||
return $output; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,47 @@
|
||||
<?php |
||||
|
||||
namespace Drupal\upei_roblib_ill\Form; |
||||
|
||||
use Drupal\Core\Form\FormBase; |
||||
use Drupal\Core\Form\FormStateInterface; |
||||
|
||||
/** |
||||
* Settings form for module |
||||
* |
||||
* @author ppound |
||||
*/ |
||||
class RoblibIllLoanForm extends FormBase { |
||||
|
||||
/** |
||||
* {@inheritdoc} |
||||
*/ |
||||
public function getFormId() { |
||||
return 'roblib_ill_loan_form'; |
||||
} |
||||
|
||||
/** |
||||
* {@inheritdoc} |
||||
*/ |
||||
public function buildForm(array $form, FormStateInterface $form_state) { |
||||
|
||||
|
||||
$form = []; |
||||
|
||||
return $form; |
||||
} |
||||
|
||||
/** |
||||
* {@inheritdoc} |
||||
*/ |
||||
public function validateForm(array &$form, FormStateInterface $form_state) { |
||||
|
||||
} |
||||
|
||||
/** |
||||
* {@inheritdoc} |
||||
*/ |
||||
public function submitForm(array &$form, FormStateInterface $form_state) { |
||||
|
||||
} |
||||
|
||||
} |
@ -0,0 +1,126 @@
|
||||
<?php |
||||
|
||||
namespace Drupal\upei_roblib_ill\Form; |
||||
|
||||
use Drupal\Core\Form\FormBase; |
||||
use Drupal\Core\Form\FormStateInterface; |
||||
|
||||
/** |
||||
* Settings form for module |
||||
* |
||||
* @author ppound |
||||
*/ |
||||
class RoblibIllSettingsForm extends FormBase { |
||||
|
||||
/** |
||||
* {@inheritdoc} |
||||
*/ |
||||
public function getFormId() { |
||||
return 'roblib_ill_settings_form'; |
||||
} |
||||
|
||||
/** |
||||
* {@inheritdoc} |
||||
*/ |
||||
public function buildForm(array $form, FormStateInterface $form_state) { |
||||
$config = \Drupal::config('upei_roblib_ill.settings'); |
||||
|
||||
$form = []; |
||||
$form['ill_add_url'] = [ |
||||
'#required' => TRUE, |
||||
'#type' => 'textfield', |
||||
'#size' => 200, |
||||
'#title' => t('The Relais AddRequest URL'), |
||||
'#description' => t('The URL for the Relais ILL server AddRequest service, the default is |
||||
https://caul-cbua.relais-host.com/portal-service/request/add'), |
||||
'#default_value' => $config->get('ill_add_url'), |
||||
]; |
||||
$form['ill_auth_url'] = [ |
||||
'#required' => TRUE, |
||||
'#type' => 'textfield', |
||||
'#size' => 200, |
||||
'#title' => t('The Relais Auth URL'), |
||||
'#description' => t('The URL for the Relais ILL server Auth service (retrieve the aid), the default is |
||||
https://caul-cbua.relais-host.com/portal-service/user/authentication'), |
||||
'#default_value' => $config->get('ill_auth_url'), |
||||
]; |
||||
$form['ill_library_symbol'] = [ |
||||
'#required' => TRUE, |
||||
'#type' => 'textfield', |
||||
'#size' => 200, |
||||
'#title' => t('Your Relais Library Symbol'), |
||||
'#description' => t('Your Relais Library Symbol'), |
||||
'#default_value' => $config->get('ill_library_symbol'), |
||||
]; |
||||
|
||||
$form['ill_relais_key'] = [ |
||||
'#required' => TRUE, |
||||
'#type' => 'textfield', |
||||
'#size' => 200, |
||||
'#title' => t('The Relais API key'), |
||||
'#description' => t('The API key used to communicate with the Relais API, Contact Relais International to get your key'), |
||||
'#default_value' => $config->get('ill_relais_key'), |
||||
]; |
||||
$form['ill_doi_openurl_pid'] = [ |
||||
'#required' => TRUE, |
||||
'#type' => 'textfield', |
||||
'#size' => 200, |
||||
'#title' => t('OpenURL PID'), |
||||
'#description' => t('An identifier to call yourself, for the OpenURL endpoint. To use this service you first need to register for an account here: http://www.crossref.org/requestaccount/'), |
||||
'#default_value' => $config->get('ill_doi_openurl_pid'), |
||||
]; |
||||
$form['ill_contact_email'] = [ |
||||
'#required' => TRUE, |
||||
'#type' => 'textfield', |
||||
'#size' => 200, |
||||
'#title' => t('Contact Email'), |
||||
'#description' => t('The email address we want to show after a user has submitted an ILL request, Roblib uses ill@upei.ca'), |
||||
'#default_value' => $config->get('ill_contact_email'), |
||||
]; |
||||
$form['ill_contact_phone'] = [ |
||||
'#required' => TRUE, |
||||
'#type' => 'textfield', |
||||
'#size' => 200, |
||||
'#title' => t('Contact Phone Number'), |
||||
'#description' => t('The phone number we want to show to the user after a user has submitted an ILL request, Roblib uses 902-566-0445'), |
||||
'#default_value' => $config->get('ill_contact_phone'), |
||||
]; |
||||
$form['ill_header_message'] = [ |
||||
'#required' => TRUE, |
||||
'#type' => 'textarea', |
||||
'#title' => t('ILL Header Message'), |
||||
'#description' => t('The message that appears at the top of the ILL form, recently used for Covid messages. Leave this blank for no message to appear at the top of the form.'), |
||||
'#default_value' => $config->get('ill_header_message'), |
||||
]; |
||||
$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('upei_roblib_ill.settings'); |
||||
$config->set('ill_add_url', $form_state->getValue('ill_add_url'))->save(); |
||||
$config->set('ill_auth_url', $form_state->getValue('ill_auth_url'))->save(); |
||||
$config->set('ill_library_symbol', $form_state->getValue('ill_library_symbol'))->save(); |
||||
$config->set('ill_relais_key', $form_state->getValue('ill_relais_key'))->save(); |
||||
$config->set('ill_doi_openurl_pid', $form_state->getValue('ill_doi_openurl_pid'))->save(); |
||||
$config->set('ill_contact_email', $form_state->getValue('ill_contact_email'))->save(); |
||||
$config->set('ill_contact_phone', $form_state->getValue('ill_contact_phone'))->save(); |
||||
$config->set('ill_header_message', $form_state->getValue('ill_header_message'))->save(); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,7 @@
|
||||
name: Roblib ILL Loan Forms |
||||
type: module |
||||
configure: upei_roblib_ill.settings |
||||
description: Provides a front end for our Inter Library Loan users. |
||||
package: Roblib ILL |
||||
core_version_requirement: ^9 |
||||
dependancies: |
@ -0,0 +1,24 @@
|
||||
roblib_ill.settings: |
||||
path: 'admin/settings/roblibill' |
||||
defaults: |
||||
_form: '\Drupal\upei_roblib_ill\Form\RoblibIllSettingsForm' |
||||
_title: 'Roblib ILL Settings Form' |
||||
requirements: |
||||
_permission: 'administer site configuration' |
||||
|
||||
roblib_ill.loan_form: |
||||
path: 'upei/roblib/ill/{parameters}' |
||||
defaults: |
||||
_form: '\Drupal\upei_roblib_ill\Form\RoblibIllLoanForm' |
||||
_title: 'Roblib ILL Loan Form' |
||||
parameters: '[a-zA-Z\s]+' |
||||
requirements: |
||||
_permission: 'access content' |
||||
|
||||
roblib_ill.loan_form_finished: |
||||
path: 'upei/roblib/ill/finished' |
||||
defaults: |
||||
_controller: '\Drupal\upei_roblib_ill\Controller\RoblibIllController::finished' |
||||
_title: 'Inter Library Loan Completed' |
||||
requirements: |
||||
_permission: 'access content' |
Loading…
Reference in new issue