Extension:BibleRef

From MediaWiki.org
Jump to: navigation, search
MediaWiki extensions manualManual:Extensions
Crystal Clear action run.png
BibleRef

Release status:Extension status unknown

ImplementationTemplate:Extension#type Tag
DescriptionTemplate:Extension#description This extension allows you to easily link Bible references to the Bible text at BibleGateway.com.
Author(s)Template:Extension#username Matt Dolan http://mgdproductions.co.uk
Latest versionTemplate:Extension#version 1.2
LicenseTemplate:Extension#license No license specified
Download No link

Translate the BibleRef extension if it is available at translatewiki.net

Check usage and version matrix.

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

Installation[edit]

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]

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

Bible Version[edit]

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]

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]

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

Example[edit]

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

See also[edit]