Skip to content

Commit

Permalink
Updates Form elements to accommodate the update Form Library
Browse files Browse the repository at this point in the history
  • Loading branch information
turnermm committed Dec 6, 2021
1 parent ea51f91 commit fc6df37
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 4 deletions.
33 changes: 30 additions & 3 deletions action.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ class action_plugin_preregister extends DokuWiki_Action_Plugin {
private $captcha;

function register(Doku_Event_Handler $controller){
$controller->register_hook('FORM_REGISTER_OUTPUT', 'BEFORE', $this, 'update_register_form');
$controller->register_hook('HTML_REGISTERFORM_OUTPUT', 'BEFORE', $this, 'update_register_form');
$controller->register_hook('ACTION_ACT_PREPROCESS', 'BEFORE', $this, 'allow_preregister_check');
$controller->register_hook('TPL_ACT_UNKNOWN', 'BEFORE', $this, 'process_preregister_check');
Expand Down Expand Up @@ -128,27 +129,53 @@ function update_register_form(&$event, $param) {
if($_SERVER['REMOTE_USER']){
return;
}

$form = $event->data;
$form_update = false;
if(is_a($form,\dokuwiki\Form\Form::class)) {
$form_update = true;
$form->setHiddenField('save', 0);
$form->setHiddenField('do', 'preregistercheck');
}
else {
$event->data->_hidden['save'] = 0;
$event->data->_hidden['do'] = 'preregistercheck';

}
if(!$form_update) {
for($i=0; $i <count($event->data->_content); $i++) {
if(isset($event->data->_content[$i]['type']) && $event->data->_content[$i]['type'] == 'submit')
{
$event->data->_content[$i]['value'] = 'Submit';
break;
}
}
$pos = $event->data->findElementByAttribute('type','submit');
}

else {
$pos = $form->findPositionByAttribute('type','submit');
$form->removeElement($pos);
$button = $form->addButton('','pregister');
$button->attrs(['type' => 'submit','value'=>'Submit']);
}

if($form_update) {
$pos = $form->findPositionByAttribute('type','submit');
}
else $pos = $event->data->findElementByAttribute('type','submit');
if(!$pos) return; // no button -> source view mode
if($this->captcha == 'builtin') {
$cards = $this-> get_cards();
$sel ="";
$out = $this->format_cards($cards,$sel);
if($form_update) {
$form->setHiddenField('sel',implode("",$sel));
$form->addHTML($out,$pos++);
}
else {
$event->data->_hidden['sel'] = implode("",$sel);
$event->data->insertElement($pos++,$out);
}
}
}


function process_registration($index) {
Expand Down
2 changes: 1 addition & 1 deletion plugin.info.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
base preregister
author Myron Turner
email turnermm02@shaw.ca
date 2017-04-10
date 2021-12-05
name preregister
desc Additional confirmation layer for new registrations
url https://www.dokuwiki.org/plugin:preregister
Expand Down

0 comments on commit fc6df37

Please sign in to comment.