Talk:Policies/Wiki Style

From Mandriva Community Wiki

Jump to: navigation, search



[edit] Edittools (OLD)

Please could any Sysop click on http://wiki.mandriva.com/en/index.php?title=MediaWiki:Edittools&action=edit and copy and paste from http://en.wikipedia.org/w/index.php?title=MediaWiki:Edittools&action=edit in order to help editing. --Nbrouard 01:07, 6 June 2007 (CEST)

Thanks for pointing this... I tried to, but the <charinsert> tag is not known by this wiki : is there a special extension required ? yoho 08:57, 6 June 2007 (CEST)
Yes, it is an extension CharInsert.php, with

require_once( "extensions/CharInsert.php"); in you LocalSettings.php

Please add at least Expr.php and ParserFunctions too.
Unfortunately, I don't have access to these files... I can't add extensions myself. But please, add these to the list of extensions here
  • Done Nbrouard 10:30, 6 June 2007 (CEST)
require_once( "extensions/Expr.php");
require_once( "extensions/ParserFunctions.php");

[edit] extensions/CharInsert.php (OLD)

<?php
# Copyright (C) 2004,2006 Brion Vibber <[email protected]>
# http://www.mediawiki.org/
# 
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or 
# (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# http://www.gnu.org/copyleft/gpl.html

/**
 * Extension to create new character inserts which can be used on
 * the edit page to make it easy to get at special characters and
 * such forth.
 *
 * @author Brion Vibber <brion at pobox.com>
 * @package MediaWiki
 * @subpackage Extensions
 */

if( !defined( 'MEDIAWIKI' ) ) {
        die();
}

$wgExtensionFunctions[] = 'setupSpecialChars';
$wgExtensionCredits['parserhook'][] = array(
        'name' => 'CharInsert',
        'author' => 'Brion Vibber'
);

function setupSpecialChars() {
    global $wgParser;
    $wgParser->setHook( 'charinsert', 'charInsert' );
}

function charInsert( $data ) {
        return implode( "<br />\n",
                array_map( 'charInsertLine',
                        explode( "\n", trim( $data ) ) ) );
}

function charInsertLine( $data ) {
        return implode( "\n",
                array_map( 'charInsertItem',
                        preg_split( '/\\s+/', charInsertArmor( $data ) ) ) );
}

function charInsertArmor( $data ) {
        return preg_replace_callback(
                '!(.*?)!i',
                'charInsertNowiki',
                $data );
}

function charInsertNowiki( $matches ) {
        return str_replace(
                array( '\t', '\r', ' ' ),
                array( '	', '&#12;', ' ' ),
                $matches[1] );
}

function charInsertItem( $data ) {
        $chars = explode( '+', $data );
        if( count( $chars ) > 1 ) {
                return charInsertChar( $chars[0], $chars[1], 'Click the character while selecting a text' );
        } elseif( count( $chars ) == 1 ) {
                return charInsertChar( $chars[0] );
        } else {
                return charInsertChar( '+' );
        }
}

function charInsertChar( $start, $end = '', $title = null ) {
        $estart = charInsertJsString( $start );
        $eend   = charInsertJsString( $end   );
        if( $eend == '' ) {
                $inline = charInsertDisplay( $start );
        } else {
                $inline = charInsertDisplay( $start . $end );
        }
        if( $title ) {
                $extra = ' title="' . htmlspecialchars( $title ) . '"';
        } else {
                $extra = '';
        }
        return wfElement( 'a',
                array(
                        'onclick' => "insertTags('$estart','$eend','');return false",
                        'href'    => '#' ),
                $inline );
}

function charInsertJsString( $text ) {
        return strtr(
                charInsertDisplay( $text ),
                array(
                        "\\"   => "\\\\",
                        "\""   => "\\\"",
                        "'"    => "\\'",
                        "\r\n" => "\\n",
                        "\r"   => "\\n",
                        "\n"   => "\\n",
                ) );
}

function charInsertDisplay( $text ) {
        static $invisibles = array(     ' ',     ' ' );
        static $visibles   = array( '&nbsp;', '&#160;' );
        return Sanitizer::decodeCharReferences(
                        str_replace( $invisibles, $visibles, $text ) );
}

?>

Personal tools