Extension:FileProtocolLinksSMB
|
FileProtocolLinksSMB Release status: unknown |
|
|---|---|
| Implementation | Tag |
| Description | highlights links to local filesystems via SMB Protocol |
| Author(s) | Dan Sinclair |
| Last version | 0.1 |
| License | No license specified |
| Download | No link |
|
Check usage (experimental) |
|
Contents |
[edit] Description
This is a modification of the FileProtocolLinks extension. This basically adds the ability for Mac/Linux/Unix users to connect to a server via SMB so they can get to a linked file.
[edit] Example
This example of how to use this extension on Macs. I haven't tried or tested this on Linux or Unix yet, but please feel free to try it and let me know how it goes!!
I've found out that for this to work properly, you need to already have the SMB share mounted onto your computer. This is definitely true for Macs running Leopard (good luck with Tiger as there IS a bug with SMB shares mounting on Tiger 10.4!).
[edit] Mac
<smb>servername/directory/file.extension</smb>
It's as simple as that!!
[edit] Sourcecode
All you need to do is copy this into a file called FileProtocolLinksSMB.php located in /extensions.
<?php
/**
* This file contains the main include file for the FileProtocolLinksSMB extension of
* MediaWiki. This code is released under the GNU General Public License.
*
* @author Dan Sinclair
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @package MediaWikiExtensions
* @version 0.1
*/
/**
* Register the FileProtocolLinksSMB extension with MediaWiki
*/
$wgExtensionFunctions[] = 'registerFileProtocolLinksSMB';
/**
* Sets the tag that this extension looks for and the function by which it
* operates
*/
function registerFileProtocolLinksSMB()
{
global $wgParser;
$wgParser->setHook('smb', 'renderFileProtocolLinkSMB');
}
/**
* Renders an smb file protocol link based on the information provided by $input.
*
* @param string
* The string should be in the following format:
* URI[;link text]
* One example for a mac environment would be:
* /servername/directory/something.txt|some nice text
* @return string
* Returns an anchor tag for the given input. For the example above
* the return string would be
* <a style="color:green" href="smb://servername/directory/something.txt“>some nice text</a>
* The links are rendered in green text color to make it easier to recognize
* them as local shares.
*/
function renderFileProtocolLinkSMB($input)
{
$exploded = explode('|', $input);
$uri = htmlentities($exploded[0], ENT_COMPAT, "UTF-8");
if (!isset($exploded[1]) || empty($exploded[1])) {
// no linktext has been specified ==> use the URI as linktext
$linktext = $uri;
}
else {
$linktext = htmlentities($exploded[1], ENT_COMPAT, "UTF-8");
}
return sprintf('<a style="color:green" href="smb://%s">%s</a>',
$uri, $linktext);
}
#credits for [[Special:Version]]
$wgExtensionCredits['other'][] = array(
'name' => 'FileProtocolLinksSMB',
'author' => 'Dan Sinclair',
'description' => 'highlights SMB links to local filesystem',
'url' => 'http://www.mediawiki.org/wiki/Extension:FileProtocolLinksSMB');
?>
and then add;
require_once("extensions/FileProtocolLinksSMB.php");
to LocalSettings.php.
[edit] NB
Please note that you may need to have FileProtocolLinks already installed on your wiki to get this working (but then again you may not as i haven't tested it so i don't know!!).
Please also note that i only take credit for modifying the original FileProtocolLinks extension. All credit for that goes to EdmundMielach!!
