/** * @since 0.3 * * @param $template * * @return false */ public static function onUserCreateForm( $template ) { if ( is_null( Title::newFromText( SemanticSignupSettings::get( 'formName' ), SF_NS_FORM ) ) ) { return true; } $url = SemanticSignup::getTitleFor( 'SemanticSignup' )->escapeFullURL(); global $wgOut; $wgOut->redirect( $url ); return false; }
private function printForm() { global $wgUser; /* * SemanticForms disable the form automatically if current user hasn't got edit rights * so we have to use a bot account for the form request. Current user is being saved in * the $old_user variable to be restored afterwards */ $old_user = null; if ( $wgUser->isAnon() ) { $old_user = $wgUser; $wgUser = User::newFromName( SemanticSignupSettings::get( 'botName' ) ); } $form_title = Title::newFromText( SemanticSignupSettings::get( 'formName' ), SF_NS_FORM ); $form = new Article( $form_title ); $form_definition = $form->getContent(); global $sfgFormPrinter; list ( $form_text, $javascript_text, $data_text, $form_page_title, $generated_page_name ) = $sfgFormPrinter->formHTML( $form_definition, false, false ); $text = <<<END <form name="createbox" onsubmit="return validate_all()" action="" method="post" class="createbox"> END; $text .= $form_text . '</form>'; global $sfgScriptPath, $sfgYUIBase, $wgOut; $mainCssUrl = $sfgScriptPath . '/skins/SF_main.css'; $wgOut->addLink( array( 'rel' => 'stylesheet', 'type' => 'text/css', 'media' => "screen, projection", 'href' => $mainCssUrl ) ); $wgOut->addLink( array( 'rel' => 'stylesheet', 'type' => 'text/css', 'media' => "screen, projection", 'href' => $sfgYUIBase . "autocomplete/assets/skins/sam/autocomplete.css" ) ); $wgOut->addLink( array( 'rel' => 'stylesheet', 'type' => 'text/css', 'media' => "screen, projection", 'href' => $sfgScriptPath . '/skins/SF_yui_autocompletion.css' ) ); $wgOut->addLink( array( 'rel' => 'stylesheet', 'type' => 'text/css', 'media' => "screen, projection", 'href' => $sfgScriptPath . '/skins/floatbox.css' ) ); // FIXME: wtf? $wgOut->addScript( '<script type="text/javascript" src="' . $sfgYUIBase . 'yahoo/yahoo-min.js"></script>' . "\n" ); $wgOut->addScript( '<script type="text/javascript" src="' . $sfgYUIBase . 'dom/dom-min.js"></script>' . "\n" ); $wgOut->addScript( '<script type="text/javascript" src="' . $sfgYUIBase . 'event/event-min.js"></script>' . "\n" ); $wgOut->addScript( '<script type="text/javascript" src="' . $sfgYUIBase . 'get/get-min.js"></script>' . "\n" ); $wgOut->addScript( '<script type="text/javascript" src="' . $sfgYUIBase . 'connection/connection-min.js"></script>' . "\n" ); $wgOut->addScript( '<script type="text/javascript" src="' . $sfgYUIBase . 'json/json-min.js"></script>' . "\n" ); $wgOut->addScript( '<script type="text/javascript" src="' . $sfgYUIBase . 'datasource/datasource-min.js"></script>' . "\n" ); $wgOut->addScript( '<script type="text/javascript" src="' . $sfgYUIBase . 'autocomplete/autocomplete-min.js"></script>' . "\n" ); $wgOut->addScript( '<script type="text/javascript" src="' . $sfgScriptPath . '/libs/SF_yui_autocompletion.js"></script>' . "\n" ); $wgOut->addScript( '<script type="text/javascript" src="' . $sfgScriptPath . '/libs/floatbox.js"></script>' . "\n" ); global $wgFCKEditorDir; if ( $wgFCKEditorDir ) { $wgOut->addScript( '<script type="text/javascript" src="' . "$wgScriptPath/$wgFCKEditorDir" . '/fckeditor.js"></script>' . "\n" ); } if ( !empty( $javascript_text ) ) { $wgOut->addScript( ' <script type="text/javascript">' . "\n" . $javascript_text . '</script>' . "\n" ); } $wgOut->addMeta( 'robots', 'noindex,nofollow' ); $wgOut->addHTML( $text ); // Restore the current user. if ( $old_user ) { $wgUser = $old_user; } }