Extension:BibleRef

From MediaWiki.org
Jump to: navigation, search
MediaWiki extensions manual - list
Crystal Clear action run.png
BibleRef

Release status: unknown

Implementation Tag
Description This extension allows you to easily link Bible references to the Bible text at BibleGateway.com.
Author(s) Matt Dolan http://mgdproductions.co.uk
Latest version 1.2
License No license specified
Download No link

Translate the BibleRef extension if possible

Check usage and version matrix; code metrics

This extension allows you to easily link Bible references to the Bible text at BibleGateway.com.

Installation[edit | edit source]

Add this line at the end of LocalSettings.php :

 include_once('extensions/BibleRef.php');

You can add a variable (optional) $wgBibleRefDefaultVersion in the LocalSettings.php file to change the default version, example to use a French version as default :

 $wgBibleRefDefaultVersion = 'ls';

Copy the following code into extensions/BibleRef.php :

<?php
# Bible References
# Version: 1.1
#
# Modified 7th May 2007 by Matt Dolan
#
# Links a Bible reference to the text at Biblegateway.com
#
# You can take advantage of BibleGateway's features such as displaying two references together:
# eg. Matt 28:18-20,2Cor 4
# 
# Tag :
#   <bible>ref</bible>
# Example :
#   Col 1:15-20
#   <bible>Col 1:15-20</bible>
# 
# Soli Deo Gloria!

 
$wgExtensionFunctions[] = 'wfBibleRef';
$wgExtensionCredits['parserhook'][] = array(
        'name' => 'Bible References',
        'version' => 1.2,
        'description' => 'Links Bible References to BibleGateway.com',
        'author' => 'Matt Dolan',
        'url' => 'http://www.mediawiki.org/wiki/Extension:BibleRef'
);
 
function wfBibleRef() {
        global $wgParser;
        $wgParser->setHook('bible', 'linkBibleRef');
}
 
# The callback function for converting the input text to HTML output
function linkBibleRef($input, $args) {
        global $wgBibleRefDefaultVersion;
 
        // BibleGateway's Version numbers
        $versions = array(
                'niv-us'        => 31, // New International Version (American English)
                'niv'           => 64, // New International Version (British English)
                'nasb'          => 49, // North American Standard Bible
                'esv'           => 47, // English Standard Version
                'tniv'          => 72, // Today's New International Version
                'msg'           => 65, // The Message
                'nlt'           => 51, // New Living Translation
                'kjv'           => 9,  // King James Version
                'av'            => 9,  // Authorised Version (= KJV)
                'cev'           => 46, // Contemporary English Version
                'nkjv'          => 50, // New King James Version
                'ls'            => 2,  // Louis Segond
                'sem'           => 32, // La Bible du Semeur
        );
 
 
        // Added functionality for other online Bibles - array values are URLs to search path
        $nonBGVersions = array(
                'net'           => 'http://net.bible.org/passage.php?passage=',              // Net Bible
		'greek'         => 'http://www.zhubert.com/bible?source=greek&verseref=',    // Original Greek
        );
 
 
        $versionText = strtolower($args['ver']);                // get the desired version from the XML tag
 
        if ($versionText=='')                           // if no version specified in XML tag
        {
                if (isset($wgBibleRefDefaultVersion)) {         // use the default defined value, if that's set elsewhere
                        if (is_int($wgBibleRefDefaultVersion))
                                $versionText = $wgBibleRefDefaultVersion;
                        else
                                $versionText = $versions[$wgBibleRefDefaultVersion];
                }
                else                                    // if none if given, default to ESV
                        $versionText = 47;
        }
 
 
        if ($nonBGVersions[$versionText]!='') {         // if the version requested match a non-Bible Gateway one above  
                $output = "<a href='".$nonBGVersions[$versionText].urlencode($input)."' ";
        }
        else {
                if ($versions[$versionText]!='')        // if the version requested match one defined above...
                        $version = $versions[$versionText];     // get the BibleGateway version number
                elseif (is_int($versionText))                   // if the given 'ver' tag is an integer, we'll assumed it's a version number
                        $version = $versionText;
 
                $output  = "<a href='http://www.biblegateway.com/passage/?search=".urlencode($input).";&version=".$version.";' ";
        }
 
        // if 'thisframe' is not specified in the XML tag, load it in a new window
        if (!isset($args['thiswindow']))
                $output .= " target='_blank'";
        $output .= ">".htmlspecialchars($input)."</a>";
 
        return $output;
}

Usage[edit | edit source]

Example: <bible>Col 1:15-20</bible>

Bible Version[edit | edit source]

The default Bible version is the ESV (English Standard Version) (see $wgBibleRefDefaultVersion above)

You may specify an alternate version in the tag, using the 'ver' attribute. Possible values:

  • 'NIV-US' - New International Version (American English)
  • 'NIV' - New International Version (British English)
  • 'NASB' - North American Standard Bible
  • 'ESV' - English Standard Version
  • 'TNIV' - Today's New International Version
  • 'MSG' - The Message
  • 'NLT' - New Living Translation
  • 'KJV' - King James Version
  • 'AV' - Authorised Version (synonym for KJV)
  • 'CEV' - Contemporary English Version
  • 'NKJV' - New King James Version
  • 'LS' - Louis Segond (french)
  • 'SEM' - La Bible du Semeur (french)
  • 'NET' - Net Bible
  • 'Greek' - Original Greek

Eg.: <bible ver="niv">John 1:1</bible>


Link Target Window[edit | edit source]

The Bible page by default will open in a new window. If you would rather it opened in the same window add the flag 'thiswindow'.

Eg.: <bible thiswindow>2 Cor 4</bible>


Credits[edit | edit source]

Created by Matt Dolan - http://mgdproductions.co.uk

Example[edit | edit source]

See an example of this add-on in action at: Cubic Path Wiki (run by the author of the AIM extension)

See also[edit | edit source]