Example #1
0
add_filter('init', '\\PressBooks\\Redirect\\rewrite_rules_for_format', 1);
add_filter('init', '\\PressBooks\\Redirect\\rewrite_rules_for_catalog', 1);
add_filter('init', '\\PressBooks\\Redirect\\rewrite_rules_for_api', 1);
add_filter('login_redirect', '\\PressBooks\\Redirect\\login', 10, 3);
// -------------------------------------------------------------------------------------------------------------------
// Sitemap
// -------------------------------------------------------------------------------------------------------------------
add_filter('init', '\\PressBooks\\Redirect\\rewrite_rules_for_sitemap', 1);
add_action('do_robotstxt', '\\PressBooks\\Utility\\add_sitemap_to_robots_txt');
// -------------------------------------------------------------------------------------------------------------------
// Shortcodes
// -------------------------------------------------------------------------------------------------------------------
remove_filter('the_content', 'wpautop');
add_filter('the_content', 'wpautop', 12);
// execute wpautop after shortcode processing
$_ = \PressBooks\Shortcodes\Footnotes\Footnotes::getInstance();
$_ = \PressBooks\Shortcodes\Generics\Generics::getInstance();
$_ = \PressBooks\Shortcodes\WikiPublisher\Glyphs::getInstance();
// -------------------------------------------------------------------------------------------------------------------
// Upgrade Book Metadata
// -------------------------------------------------------------------------------------------------------------------
if (\PressBooks\Book::isBook()) {
    add_action('init', function () {
        $meta_version = get_option('pressbooks_metadata_version', 0);
        if ($meta_version < \PressBooks\Metadata::$currentVersion) {
            $metadata = new \PressBooks\Metadata();
            $metadata->upgrade($meta_version);
            update_option('pressbooks_metadata_version', \PressBooks\Metadata::$currentVersion);
        }
    }, 1000);
}
 /**
  * @covers \Pressbooks\Shortcodes\Footnotes\Footnotes::convertWordFootnotes
  */
 public function test_convertWordFootnotes()
 {
     $this->_fakeAjax();
     // Test invalid permissions
     ob_start();
     \Pressbooks\Shortcodes\Footnotes\Footnotes::convertWordFootnotes();
     $buffer = ob_get_clean();
     $this->assertContains(__('Invalid permissions.', 'pressbooks'), $buffer);
     // Test is json
     $user_id = $this->factory->user->create(array('role' => 'administrator'));
     wp_set_current_user($user_id);
     $_REQUEST['_ajax_nonce'] = wp_create_nonce('pb-footnote-convert');
     $_POST['content'] = 'Hello world!';
     ob_start();
     \Pressbooks\Shortcodes\Footnotes\Footnotes::convertWordFootnotes();
     $buffer = ob_get_clean();
     $this->assertJson($buffer);
     // TODO: Test regular expressions by passing Word and LibreOffice footnote HTML
 }