inContentLanguage()->text(); } else { $text = "{{#default_form:$default_form}}"; } if ( $parent_category !== '' ) { global $wgContLang; $namespace_labels = $wgContLang->getNamespaces(); $category_namespace = $namespace_labels[NS_CATEGORY]; $text .= "\n\n[[$category_namespace:$parent_category]]"; } return $text; } function execute( $query ) { $this->setHeaders(); $out = $this->getOutput(); $req = $this->getRequest(); // Cycle through the query values, setting the appropriate // local variables. if ( !is_null( $query ) ) { $presetCategoryName = str_replace( '_', ' ', $query ); $out->setPageTitle( wfMessage( 'pf-createcategory-with-name', $presetCategoryName )->text() ); $category_name = $presetCategoryName; } else { $presetCategoryName = null; $category_name = $req->getVal( 'category_name' ); } $default_form = $req->getVal( 'default_form' ); $parent_category = $req->getVal( 'parent_category' ); $category_name_error_str = null; $save_page = $req->getCheck( 'wpSave' ); $preview_page = $req->getCheck( 'wpPreview' ); if ( $save_page || $preview_page ) { // Guard against cross-site request forgeries (CSRF). $validToken = $this->getUser()->matchEditToken( $req->getVal( 'csrf' ), 'CreateCategory' ); if ( !$validToken ) { $text = "This appears to be a cross-site request forgery; canceling save."; $out->addHTML( $text ); return; } // Validate category name if ( $category_name === '' ) { $category_name_error_str = wfMessage( 'pf_blank_error' )->escaped(); } else { // Redirect to wiki interface $out->setArticleBodyOnly( true ); $title = Title::makeTitleSafe( NS_CATEGORY, $category_name ); $full_text = self::createCategoryText( $default_form, $category_name, $parent_category ); $text = PFUtils::printRedirectForm( $title, $full_text, "", $save_page, $preview_page, false, false, false, null, null ); $out->addHTML( $text ); return; } } $all_forms = PFUtils::getAllForms(); // Set 'title' as hidden field, in case there's no URL niceness. $text = "\t" . '
\n"; $out->addHTML( $text ); } protected function getGroupName() { return 'pf_group'; } }