xref: /plugin/zwidoku/utils.php (revision f82bbc904bd835fc66a3f52ffaef251433904ec2)
1*f82bbc90SS.Chekanov<?php
2*f82bbc90SS.Chekanov/**
3*f82bbc90SS.Chekanov * ZWIdoku Plugin: Utils
4*f82bbc90SS.Chekanov *
5*f82bbc90SS.Chekanov * @license  LGPL 2 (http://www.gnu.org/licenses/gpl.html)
6*f82bbc90SS.Chekanov * @author   S.Chekanov
7*f82bbc90SS.Chekanov * @based_on "pageindex" plugin by Kite <Kite@puzzlers.org>
8*f82bbc90SS.Chekanov * @based_on "externallink" plugin by Otto Vainio <plugins@valjakko.net>
9*f82bbc90SS.Chekanov * @based_on "pagelist" plugin by Esther Brunner <wikidesign@gmail.com>
10*f82bbc90SS.Chekanov *
11*f82bbc90SS.Chekanov */
12*f82bbc90SS.Chekanov
13*f82bbc90SS.Chekanov
14*f82bbc90SS.Chekanov   /**
15*f82bbc90SS.Chekanov         * Returns a TeX compliant version of the specified reference.
16*f82bbc90SS.Chekanov         * @param filename The reference.
17*f82bbc90SS.Chekanov         * @return A TeX compliant version, with no spaces, and no weird char.
18*f82bbc90SS.Chekanov         */
19*f82bbc90SS.Chekanov        function texifyReference($reference) {
20*f82bbc90SS.Chekanov                $patterns[ 0] = '/[áâ�| åä]/ui';
21*f82bbc90SS.Chekanov                $patterns[ 1] = '/[ðéêèë]/ui';
22*f82bbc90SS.Chekanov                $patterns[ 2] = '/[íîìï]/ui';
23*f82bbc90SS.Chekanov                $patterns[ 3] = '/[óôòøõö]/ui';
24*f82bbc90SS.Chekanov                $patterns[ 4] = '/[úûùü]/ui';
25*f82bbc90SS.Chekanov                $patterns[ 5] = '/æ/ui';
26*f82bbc90SS.Chekanov                $patterns[ 6] = '/ç/ui';
27*f82bbc90SS.Chekanov                $patterns[ 7] = '/�~_/ui';
28*f82bbc90SS.Chekanov                $patterns[ 8] = '/\\s/';
29*f82bbc90SS.Chekanov                $patterns[ 9] = '/#/';
30*f82bbc90SS.Chekanov                $patterns[10] = '/[^A-Za-z0-9\\-:]/';
31*f82bbc90SS.Chekanov                $replacements[ 0] = 'a';
32*f82bbc90SS.Chekanov                $replacements[ 1] = 'e';
33*f82bbc90SS.Chekanov                $replacements[ 2] = 'i';
34*f82bbc90SS.Chekanov                $replacements[ 3] = 'o';
35*f82bbc90SS.Chekanov                $replacements[ 4] = 'u';
36*f82bbc90SS.Chekanov                $replacements[ 5] = 'ae';
37*f82bbc90SS.Chekanov                $replacements[ 6] = 'c';
38*f82bbc90SS.Chekanov                $replacements[ 7] = 'ss';
39*f82bbc90SS.Chekanov                $replacements[ 8] = '-';
40*f82bbc90SS.Chekanov                $replacements[ 9] = ':';
41*f82bbc90SS.Chekanov                $replacements[10] = '_';
42*f82bbc90SS.Chekanov
43*f82bbc90SS.Chekanov                return preg_replace($patterns, $replacements, $reference);
44*f82bbc90SS.Chekanov        }
45*f82bbc90SS.Chekanov
46*f82bbc90SS.Chekanov
47*f82bbc90SS.Chekanov?>
48*f82bbc90SS.Chekanov
49